MyBB Hacks

Full Version: Additional Settings For Custom Profile Fields [1.2]
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
(06-20-2012 08:05 AM)brad-t Wrote: [ -> ]I am wondering if it's possible to do Avatar upload and Signature edit in this page as well
You can try this attachment (attached) in your test board. The avatar gallery is not included here.

This uses usercp_editsig, usercp_editsig_suspended, usercp_editsig_current and usercp_avatar templates. So you need to edit those templates.
This is for example only:
usercp_avatar:
Basically, you only need the input fields from this template.

HTML Code
<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder">
	<tr>
		<td class="thead" colspan="2">
			<strong>{$lang->custom_avatar}</strong>
		</td>
	</tr>
	<tr>
		<td class="trow1" width="40%"><strong>{$lang->avatar_upload}</strong></td>
		<td class="trow1" width="60%">
			<input type="file" name="avatarupload" size="25" class="fileupload" />
			{$auto_resize}
		</td>
	</tr>
	<tr>
		<td class="trow2" width="40%"><strong>{$lang->avatar_url}</strong></td>
		<td class="trow2" width="60%"><input type="text" class="textbox" name="avatarurl" size="45" value="{$avatarurl}" /></td>
	</tr>
	<tr>
		<td class="trow1 smalltext" colspan="2">
			{$lang->avatar_note}{$avatarmsg}
			<div style="text-align:center">
				<label><input type="radio" class="radio" name="update_remove_avatar" value="0"{$urac[0]}>{$lang->leave_sig_settings}</label>
				<label><input type="radio" class="radio" name="update_remove_avatar" value="1"{$urac[1]}>{$lang->remove_avatar}</label>
				<label><input type="radio" class="radio" name="update_remove_avatar" value="2"{$urac[2]}>{$lang->change_avatar}</label>
			</div>
		</td>
	</tr>
</table>

There is an options to update and remove avatar (line #22 - #23), so the avatar process is not executed if the user choose the 'No action' option (by default, it's selected).

usercp_editsig:
The same as the avatar above, basically, you only need to input fields from this template.

HTML Code
<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder">
	<tr>
		<td class="thead" colspan="2">
			<div class="float_right">
				<label><input type="checkbox" class="checkbox" name="updatesig" value="1"{$updatesigcheck} />&nbsp;{$lang->update_sig}</label>
			</div>
			<strong>{$lang->edit_sig}</strong>
		</td>
	</tr>
	<tr>
		<td class="trow1" valign="top" width="20%">
			<span class="smalltext">{$lang->edit_sig_note}</span>
			{$smilieinserter}
		</td>
		<td class="trow1" width="80%">
			<textarea rows="15" cols="70" id="signature" name="signature">{$sig}</textarea>
			{$codebuttons}
		</td>
	</tr>
	<tr>
		<td class="trow2">
			<span class="smalltext">{$lang->edit_sig_note2}</span>
		</td>
		<td class="trow2">
			<span class="smalltext">
				<label><input type="radio" class="radio" name="updateposts" value="enable" />&nbsp;{$lang->enable_sig_posts}</label><br />
				<label><input type="radio" class="radio" name="updateposts" value="disable" />&nbsp;{$lang->disable_sig_posts}</label><br />
				<label><input type="radio" class="radio" name="updateposts" value="0" checked="checked" />&nbsp;{$lang->leave_sig_settings}</label>
			</span>
		</td>
	</tr>
</table>

There is an additional checkbox for processing (validating and updating) the signature (line #5). If the user doesn't check the checkbox, the signature won't be saved (updated), but they can still view the change (a bit similar to preview).

usercp_editsig_current:
For the current/preview signature

HTML Code
<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder">
<tr>
<td class="thead"><strong>{$lang->current_sig}</strong></td>
</tr>
<tr>
<td class="trow1">{$sigpreview}</td>
</tr>
</table>
<br />


usercp_editsig_suspended:
Will be displayed if the user doesn't have permission to edit their signature:

HTML Code
<div class="clear">{$lang->edit_sig_no_permission}</div>


There are some additional variables you need to add to your usercp template:
{$editsig}: for displaying the edit signature form or the no permission message.
{$signature}: for displaying the current/preview signature.
{$avatarupload}: for displaying the avatar form.
And you need to add enctype="multipart/form-data" to the form tags.

An example:

HTML Code
<html>
<head>
<title>{$lang->user_cp}</title>
{$headerinclude}
</head>
<body>
{$header}
<table width="100%" border="0" align="center">
<tr>
{$usercpnav}
<td valign="top">
<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder">
<tr>
<td class="thead" colspan="{$colspan}"><strong>{$lang->account_summary}</strong></td>
</tr>
<tr>
{$avatar}
<td class="trow2">
<span class="largetext">{$username}</span><br />
<strong>{$lang->postnum}</strong> <a href="search.php?action=finduser&amp;uid={$mybb->user['uid']}">{$mybb->user['posts']}</a> {$lang->posts_day}<br />
{$reputation}
<strong>{$lang->email}</strong> {$mybb->user['email']}<br />
<strong>{$lang->registration_date}</strong> {$regdate}<br />
<strong>{$lang->primary_usergroup}</strong> {$usergroup}<br />
{$referral_info}
</td>
</tr>
</table>
<br class="clear" />
{$errors}
<form action="usercp.php" method="post" enctype="multipart/form-data">
	<input type="hidden" name="my_post_key" value="{$mybb->post_code}" />
	<div class="float_right" style="width:49%">
		<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder">
			<tr>
				<td class="thead" colspan="2"><strong>{$lang->edit_options}</strong></td>
			</tr>
			<tr>
				<td class="trow2">{$lang->tpp}</td>
				<td class="trow2">
					{$threadperpage}
				</td>
			</tr>
			<tr>
				<td class="trow2">{$lang->ppp}</td>
				<td class="trow2">
					{$postperpage}
				</td>
			</tr>
			<tr>
				<td class="trow2">Time Zone:</td>
				<td class="trow2">{$tzselect}</td>
			</tr>
			<tr>
				<td class="trow2" colspan="2">
					<div>{$showsig}</div>
					<div>{$showavatar}</div>
				</td>
			</tr>
			<tr>
				<td class="trow2" colspan="2">
					<div>{$allownotices}</div>
					<div>{$receivepms}</div>
					<div>{$pmnotice}</div>
					<div>{$pmnotify}</div>
				</td>
			</tr>
		</table>
	</div>
	<div style="width:49%">
		<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder">
			<tr>
				<td class="thead" colspan="4"><strong>{$lang->edit_profile}</strong></td>
			</tr>
			{$xtpf_minp['fid3']}
			<tr>
				<td class="trow2">{$lang->birthday}</td>
				<td class="trow2">
					{$birth_day}
				</td>
			</tr>
			<tr>
				<td class="trow2">{$lang->birthdayprivacy}</td>
				<td class="trow2">
					{$bdprivacy}
				</td>
			</tr>
			<tr>
				<td class="trow2" colspan="2">
					<table border="0" style="margin:auto">
						{$xtpf_minp['fid4']}
						{$xtpf_minp['fid5']}
						<tr>
							<td><img src="images/www.png" alt="" title="{$lang->website_url}" /></td>
							<td>
								{$userwebsite}
							</td>
						</tr>
					</table>
				</td>
			</tr>
		</table>
		{$xtpf_minp['fid2']}{$xtpf_minp['fid6']}
	</div>
	<br />{$editsig}
	<br />
	{$signature}{$avatarupload}
	<br class="clear" />
	<div class="clear" style="text-align:center">
		<input type="hidden" name="action" value="do_update_xt_proffields" />
		<input type="submit" class="button" value="Update Profile" />
	</div>
</form>
<br class="clear" />
{$latest_subscribed}
{$latest_threads}
{$latest_warnings}
{$user_notepad}
</td>
</tr>
</table>
{$footer}
</body>
</html>

Thank you as always for your hard work!! I'm looking forward to try it out.
I've been using this a bit and one of the things that I did was copy over some checkboxes from the options page to the User CP page. It seems to work fine when I click the update button in the User CP, but the checkboxes don't stay checked. If I go back to the options page, the correct ones are check.

Would you happen to know of a fix to keep the checkboxes properly saved in the User CP page?

By "checkboxes," I mean the options such as "Display users' avatars in their posts." etc.
By default, this plugin doesn't touch any settings in Edit Options page. I don't know what method you use to update the user options from your User CP main page?
I didn't really change anything - all I did was copy some code over from the edit options page, and the wrapped it in the form similar to this:

Code:
<form action="usercp.php" method="post">
<input type="hidden" name="my_post_key" value="{$mybb->post_code}" />
Contents and input fields
<input type="hidden" name="action" value="do_update_xt_proffields" />
<input type="submit" class="button" value="Update Profile" />
</form>


Which seems to work, except for what I said above about the checkboxes not displaying the correct selections (but the settings have been saved in Edit Options even after editing from User CP).

Still, I don't know what your method to update the user's options.
What I mean is, I think you need php script to do that (by default, as far as I know, there is no do_update_xt_proffields action processed in usercp).

I don't know whether you use the example plugin in this post or not:
http://mybbhacks.zingaburga.com/showthre...http://mybbhacks.zingaburga.com/showthread.php?tid=1271&pid=1140
In the example plugin above, for example, if you want to display the Display users' avatars in their posts checkbox setting, you only need to put {$showavatar} variable in your main User CP page (the checked/unchecked status already included - I think).

I'm sorry if I misunderstand what you mean.
sorry for not being more clear. Yes, I use that plugin along with the one in the first post to do this. I didn't know there was such a variable for the Options page checkboxes.
Thank you! That is what I am trying to do. I used the {$showavatar} and it's working perfectly. I also tested another one {$allownotices} and I think I get it now. I'll use this structure.

Smile

EDIT: The only one I cant find out is the daylight savings correction box. Would you know the variable for this or maybe if theres some way I could find out myself?
Not all settings from the Edit Options page "loaded" by the plugin. Try re-downloading the plugin (I've updated it). Just replace the old one with the new one (you don't need to deactivate/reactivate it).

Use {$dstcorrection} variable for displaying the DST setting.
For example:

HTML Code
<tr>
	<td class="trow2">{$lang->dst_correction}</td>
	<td class="trow2">{$dstcorrection}</td>
</tr>

Thank you very much RateU!
Hallo, I have been working away using this on my new forum and I have a neat looking profile (I think) but I am struggling a little with the concepts of the inputs and so on to customize the usercp.php?action=profile page.

I really wanted to share this here as I think it is a neat little layout that uses only 5kb of javascript (not jquery) and has the option to enable tab persistence via a cookie. Unfortunately, I think that it would only really be good enough to share if the usercp.php?action=profile page was edited too.


Can you suggest what posts I should be looking at in this thread to work out how best to use the inputs? I did not really want to redo the whole usercp as one of our key things is getting users to use avatars from the avatar gallery, so having the avatar and sig on profile only helps me if the gallery is there too.

Thank you

(link to profile page)

http://www.classifiedbilliards.com/mybb/...http://www.classifiedbilliards.com/mybb/member.php?action=profi
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Reference URL's