Views (Templates)

This is a user-contributed Extra. If you find issues or would like more info or help, please contact the author.

Using custom views / templates

Every view that is presented to the user can be customized using Evo chunks.

The snippet changes between views based on a post-back system. It looks for the value of $_POST['service'] to determine which view to display. In the case of the default view for a logged in user, a form is presented with two submit buttons. The buttons each have the name attribute set to "service", but a different value

<button type="submit" id="wlpeLogoutButton" name="service" value="logout">Log Out</button>
<button type="submit" id="wlpeProfileButton" name="service" value="profile">Profile</button>

If the "Log Out" button is pressed, the $_POST['service'] value is "logout" and WebLoginPE executes the code in the case "logout": block.

The services in WebLoginPE are:
Simple Register Profile
  • login
  • logout
  • profile
  • saveprofilesimple
  • deleteprofilesimple
  • confirmdeleteprofilesimple
  • registernew
  • register
  • forgot
  • resetpassword
  • activate
  • activated
  • default (display login form or welcome message if user is logged in)
  • register
  • cancel
  • login
  • logout
  • default (display registration form)
  • saveprofile
  • cancel
  • logout
  • deleteprofile
  • confirmdeleteprofile
  • default (display your profile for editing)
Manager Users Taconite
  • editprofile
  • saveuserprofile
  • messageuser
  • deleteuser
  • confirmdeleteuser
  • default (display a list of all the site users)
  • viewprofile
  • messageuser
  • default (display all users)
  • login
  • logout
  • register
  • resetpassword
  • activated
&messageTpl

WebLoginPE will display many messages, either confirmations or errors. The message will be placed in a placeholder ([+wlpe.message+]) which you can put anywhere in your custom form or anywhere on the page.

When creating the chunk for &messageTpl you should place "[+wlpe.message.text+]" wherever you want the actual message to show up in the template.

Default:
<div class="wlpeMessage"><p class="wlpeMessageText">[+wlpe.message.text+]</p></div>
&loginFormTpl

The view presented to the user asking for their "username" and "password". Required form field names are "username" and "password". Optional inputs are a checkbox named "rememberme" which sets a 5 year cookie, or a select named "stayloggedin" which sets a cookie for the number of seconds specified in each options value. The cookie name is "WebLoginPE" and the value is a MD5 hash of the username and password (usernames and passwords should never be set in the open because cookies are saved in plain text. That is why WebLoginPE converts them to a hash). When the user returns to your site, WebLoginPE grabs the cookie, uses an algorithm to decode the username and password, then automatically logs the user in.

Default:
[+wlpe.message+]
<div id="wlpeLogin">
<form id="wlpeLoginForm" action="[~[*id*]~]" method="POST">
<fieldset id="wlpeLoginFieldset">
<legend id="wlpeLegend">Web User Login Form</legend>
<label id="wlpeUsernameLabel" for="wlpeUsername">Username
<input id="wlpeUsername" type="text" name="username" />
</label>
<label id="wlpePasswordLabel" for="wlpePassword">Password
<input id="wlpePassword" type="password" name="password" />
</label>
<label id="wlpeStayLoggedInLabel" for="wlpeStayLoggedIn">Stay Logged In
<select id="wlpeStayLoggedIn" name="stayloggedin">
<option value="">No</option>
<option value="3600">1 Hour</option>
<option value="86400">1 Day</option>
<option value="604800">1 Week</option>
<option value="2678400">1 Month</option>
<option value="315569260">Forever</option>
</select>
</label>
</fieldset>
<fieldset id="wlpeLoginButtons">
<button type="submit" id="wlpeLoginButton" name="service" value="login">Login</button>
<button type="submit" id="wlpeReminderButton" name="service" value="forgot">Forgot Password</button>
<button type="submit" id="wlpeRegisterButton" name="service" value="registernew">Register</button>
</fieldset>
</form>
</div>
&successTpl

The view presented to the user asking for their "username" and "password". Required form field names are "username" and "password". Optional inputs are a checkbox named "rememberme" which sets a 5 year cookie, or a select named "stayloggedin" which sets a cookie for the number of seconds specified in each options value. The cookie name is "WebLoginPE" and the value is a MD5 hash of the username and password (usernames and passwords should never be set in the open because cookies are saved in plain text. That is why WebLoginPE converts them to a hash). When the user returns to your site, WebLoginPE grabs the cookie, uses an algorythm to decode the username and password, then automatically logs the user in.

Default:
[+wlpe.message+]
<div id="wlpeUser">
<div id="wlpeUserInfo">
<div id="wlpeWelcome">
<img id="wlpeMyProfileImg" src="[+user.photo+]" alt="[+user.username+]" title="[+user.username+]" height="30" width="30" />
<p id="wlpeWelcomeParagraph">Welcome back [+user.username+]!</p>
</div>
<p id="wlpeLoginCount">You have logged into [(site_name)] [+user.logincount+] times now.<br />
Your last login was [+user.lastlogin+]</p>
<blockquote>
[+user.comment+]
</blockquote>
</div>
<form id="wlpeUserForm" action="[~[*id*]~]" method="POST">
<fieldset id="wlpeUserButtons">
<button type="submit" id="wlpeLogoutButton" name="service" value="logout">Log Out</button>
<button type="submit" id="wlpeProfileButton" name="service" value="profile">Profile</button>
</fieldset>
</form>
</div>
&registerTpl

The view presented to the user to register for a new account. You can have a form input for every field in the database table "web_user_attributes" and all the fields set in &customFields*. When setting up your form, the input name attribute should be the same as the field name in the table. For example, the form input asking for the users mobile phone number (table field "mobilephone") should be:

<input type="text" name="mobilephone" value="[+post.mobilephone+]" />

Placeholders for values in the $_POST array are available for use in your forms so that if there is an error, all the information that the user entered in your form is not lost. As you can see in the example for "mobilephone" above, the placeholder "[+post.inputname+]" is set for each input name attribute.

If you specified form fields in &inputHandler, you could also use the [+form.fieldname+] placeholder here.

*It is advised against providing inputs for id, internalKey, role, blocked, blockedunitl, blockedafter, failedlogincount, and sessionid as that can SERIOUSLY corrupt your entire Evo installation. Those fields should only be edited by the web master from the back end.
Default Instant:
[+wlpe.message+]
<div id="wlpeNewUser">
<form id="wlpeUserRegisterForm" action="[~[*id*]~]" method="post" enctype="multipart/form-data">
<fieldset id="wlpeUserRegisterInput">
<div id="wlpeNewUserInfo">
<p id="wlpeRegisterInfo">Use this form to register for a new user account.<br />
<span class="info">Filds marked with <span class="required">*</span> are required.</span></p>
</div>
<legend>Register for a new user account</legend>
<label for="wlpeUserRegisterEmail"><span class="required">*</span> Email
<input id="wlpeUserRegisterEmail" type="text" name="email" value="[+post.email+]" />
</label>
<label for="wlpeUserRegisterUserName"><span class="required">*</span> Desired User Name
<input id="wlpeUserRegisterUserName" type="text" name="username" value="[+post.username+]" />
</label>
<label for="wlpeUserRegisterFullName"><span class="required">*</span> Full Name
<input id="wlpeUserRegisterFullName" type="text" name="fullname" value="[+post.fullname+]" />
</label>
<label for="wlpeUserRegisterPassword"><span class="required">*</span> Password
<input id="wlpeUserRegisterPassword" type="password" name="password" value="[+post.password+]" />
</label>
<label for="wlpeUserRegisterPasswordConfirm"><span class="required">*</span> Password (confirm)
<input id="wlpeUserRegisterPasswordConfirm" type="password" name="passwordconfirm" value="[+post.passwordconfirm+]" />
</label>
<label for="wlpeUserRegisterPhone">Phone number
<input id="wlpeUserRegisterPhone" type="text" name="phone" />
</label>
<label for="wlpeUserRegisterMobile">Mobile number
<input id="wlpeUserRegisterMobile" type="text" name="mobilephone" value="[+post.mobilephone+]" />
</label>
<label for="wlpeUserRegisterFax">Fax number
<input id="wlpeUserRegisterFax" type="text" name="fax" value="[+post.fax+]" />
</label>
<label for="wlpeUserRegisterState">State
<input id="wlpeUserRegisterState" type="text" name="state" value="[+post.state+]" />
</label>
<label for="wlpeUserRegisterZip">Zip Code
<input id="wlpeUserRegisterZip" type="text" name="zip" value="[+post.zip+]" />
</label>
[+form.country+]
<label for="wlpeUserRegisterDob">Date of birth <span class="info">(DD-MM-YYYY)</span>
<input id="wlpeUserRegisterDob" type="text" name="dob" value="[+post.dob+]" />
</label>
[+form.gender+]
<img id="wlpeUserDefaultImage" src="[+user.defaultphoto+]" alt="Default User Image" title="Default User Image" height="100" width="100" />
<label for="wlpeUserProfilePhoto" id="photolabel">User Photo
<input id="wlpeUserProfilePhoto" type="file" name="photo" />
</label>
<p id="wlpeUserProfilePhotoInfo" class="info">No bigger than 100kb. will be resized to 100 x 100.</p>
<label for="wlpeUserRegisterComment">Comment/Signature
<textarea id="wlpeUserRegisterComment" name="comment">[+post.comment+]</textarea>
</label>
<img id="wlpeCaptchaImage" src="[+form.captcha+]" width="148" height="60" alt="If you have trouble reading the code, click on the code itself to generate a new random code." />
<label for="wlpeUserRegisterCaptcha" id="wlpeCaptchaLabel"><span class="required">*</span>Please enter the code in the image.
<input type="text" id="wlpeUserRegisterCaptcha" name="formcode" >
</label>
<p id="wlpeTermsOfServiceLabel">Terms of Service/Privacy Policy</p>
<div id="wlpeTermsOfService">[+tos+]</div>
<label for="wlpeTosCheckbox" id="wlpeTosCheckboxLabel"><span class="required">*</span>I accept the Terms of Service
<input type="checkbox" id="wlpeTosCheckbox" name="tos" />
</label>
</fieldset>
<fieldset id="wlpeUserRegisterButtons">
<button type="submit" id="wlpeSaveRegisterButton" name="service" value="register">Register</button>
<button type="submit" id="wlpeCancelRegisterButton" name="service" value="cancel">Cancel</button>
</fieldset>
</form>
</div>
Default Verify:
[+wlpe.message+]
<div id="wlpeRegister">
<form id="wlpeRegisterForm" name="wlpeRegisterForm" action="[~[*id*]~]" method="post">
<fieldset id="wlpeRegisterFieldset">
<p class="wlpeRegisterInfo">Enter your email address, your name, and your desired username in the fields below.</p>
<p class="wlpeRegisterInfo">A password will be emailed to you with instructions on how to activate Your account.</p>
<label for="wlpeRegisterEmail">Your Email Address
<input type="text" id="wlpeRegisterEmail" name="email" />
</label>
<label for="wlpeRegisterFullName">Your Full Name
<input type="text" id="wlpeRegisterFullName" name="fullname" />
</label>
<label for="wlpeRegisterUserName">Your desired username
<input type="text" id="wlpeRegisterUserName" name="username" />
</label>
</fieldset>
<fieldset id="wlpeRegisterButtonFieldset">
<button type="submit" id="wlpeRegisterButton" name="service" value="register">Register</button>
<button type="submit" id="wlpeRegisterCancelButton" name="service" value="cancel">Cancel</button>
</fieldset>
</form>
</div>
&registerSuccessTpl

The view presented to the user to after successfully registering for a new account. If you want this custom view to be displayed after registration, DO NOT put the &regSuccessId parameter in your call. The default is the whatever is specified in &loginFormTpl so the user can log in after registering.

Default:
[+wlpe.message+]
<div id="wlpeLogin">
<form id="wlpeLoginForm" action="[~[*id*]~]" method="POST">
<fieldset id="wlpeLoginFieldset">
<legend id="wlpeLegend">Web User Login Form</legend>
<label id="wlpeUsernameLabel" for="wlpeUsername">Username
<input id="wlpeUsername" type="text" name="username" />
</label>
<label id="wlpePasswordLabel" for="wlpePassword">Password
<input id="wlpePassword" type="password" name="password" />
</label>
<label id="wlpeStayLoggedInLabel" for="wlpeStayLoggedIn">Stay Logged In
<select id="wlpeStayLoggedIn" name="stayloggedin">
<option value="">No</option>
<option value="3600">1 Hour</option>
<option value="86400">1 Day</option>
<option value="604800">1 Week</option>
<option value="2678400">1 Month</option>
<option value="315569260">Forever</option>
</select>
</label>
</fieldset>
<fieldset id="wlpeLoginButtons">
<button type="submit" id="wlpeLoginButton" name="service" value="login">Login</button>
<button type="submit" id="wlpeReminderButton" name="service" value="forgot">Forgot Password</button>
<button type="submit" id="wlpeRegisterButton" name="service" value="registernew">Register</button>
</fieldset>
</form>
</div>
&tosChunk

In your registration form, you may want your users to agree to your "Terms Of Service / Privacy Policy" before you accept their registration. You specify your terms of service chunk with this parameter, then in your registration form, use the placeholder [+tos+] (which is set by WebLoginPE to hold your tosChunk) where you want your Terms of Service to be displayed and put a checkbox with the name attribute set to "tos". You should also specify "tos" in the &regRequired parameter to make sure that if they don't check it (signifying that they agree) they will not be allowed to register.

<p id="wlpeTermsOfServiceLabel">Terms of Service/Privacy Policy</p>
<div id="wlpeTermsOfService">[+tos+]</div>
<label for="wlpeTosCheckbox" id="wlpeTosCheckboxLabel"><span class="required">*</span>I accept the Terms of Service
<input type="checkbox" id="wlpeTosCheckbox" name="tos" />
</label>
Default:

The default terms of service can be found in the snippet download, in the following file "Default Forms/defaultTosTpl.html.txt" & "Default Forms/defaultTosTpl.html" - generated using Kinky Solution's Terms Of Service / Privacy Policy Document Generator.

&profileTpl

The form presented to the user which allows them to modify their attributes stored in the databse. Like &registerTpl, this form can contain as many or as few of the table fields from web_user_attributes AND the extended user attributes table as you want. The difference in this form is that you can set the value of the form fields to one of the placeholders. For example the "Full Name" input would look like:

<input type="text" name="fullname" value="[+user.fullname+]" />

If you specified form fields in &inputHandler, you could also use the [+form.fieldname+] placeholder here and the users selections and checks would be remembered and pre-selected or pre-checked.

Default:
[+wlpe.message+]
<div id="wlpeUser">
<form enctype="multipart/form-data" id="wlpeUserProfileForm" action="[~[*id*]~]" method="POST">
<fieldset id="wlpeUserProfileInput">
<div id="wlpeUserInfo">
<h3 id="wlpeProfileWelcome">Hello [+user.fullname+] ([+user.username+])!</h3>
<p id="wlpeProfileInfo" class="info">Use this form to update your profile information</p>
</div>
<legend>Your User Profile</legend>
<label for="wlpeUserProfileFullName">Full Name
<input id="wlpeUserProfileFullName" type="text" name="fullname" value="[+user.fullname+]" />
</label>
<label for="wlpeUserProfileEmail">Email
<input id="wlpeUserProfileEmail" type="text" name="email" value="[+user.email+]" />
</label>
<label for="wlpeUserProfilePhone">Phone number
<input id="wlpeUserProfilePhone" type="text" name="phone" value="[+user.phone+]" />
</label>
<label for="wlpeUserProfileMobile">Mobile number
<input id="wlpeUserProfileMobile" type="text" name="mobilephone" value="[+user.mobilephone+]" />
</label>
<label for="wlpeUserProfileFax">Fax number
<input id="wlpeUserProfileFax" type="text" name="fax" value="[+user.fax+]" />
</label>
<label for="wlpeUserProfileState">State
<input id="wlpeUserProfileState" type="text" name="state" value="[+user.state+]" />
</label>
<label for="wlpeUserProfileZip">Zip Code
<input id="wlpeUserProfileZip" type="text" name="zip" value="[+user.zip+]" />
</label>
[+form.country+]
<label for="wlpeUserProfileDob">Date of birth <span class="info">(DD-MM-YYYY)</span>
<input id="wlpeUserProfileDob" type="text" name="dob" value="[+user.dob+]" />
</label>
[+form.gender+]
<label for="wlpeUserProfileComment">Comment/Signature
<textarea id="wlpeUserProfileComment" name="comment">[+user.comment+]</textarea>
</label>
<img id="wlpeUserProfilePhotoImg" src="[+user.photo+]" alt="[+user.username+]" title="[+user.fullname+]" height="100" width="100" />
<label for="wlpeUserProfilePhoto" id="wlpeUserPhotoLabel">User Photo
<input type="hidden" id="wlpeUserHiddenPhoto" name="userphoto" value="[+user.photo+]" />
<input id="wlpeUserProfilePhoto" type="file" name="photo" value="" />
</label>
<p id="wlpeUserProfilePhotoInfo" class="info">No bigger than 100kb. will be resized to 100 x 100.</p>
<fieldset id="wlpeNewPasswordArea">
<legend id="wlpeNewPasswordAreaLegend">Change your password</legend>
<p id="wlpeNewPasswordInfo">Change your password <br /><span class="info">(leave blank if you do not want a new password).</span></p>
<label for="wlpeUserProfilePassword">New Password
<input id="wlpeUserProfilePassword" type="password" name="password" value="" />
</label>
<label for="wlpeUserProfilePasswordConfirm">New Password (confirm)
<input id="wlpeUserProfilePasswordConfirm" type="password" name="password.confirm" value="" />
</label>
</fieldset>
</fieldset>
<fieldset id="wlpeUserProfileButtons">
<button type="submit" id="wlpeSaveProfileButton" name="service" value="saveprofile">Save</button>
<button type="submit" id="wlpeProfileDoneButton" name="service" value="cancel">Done</button>
<button type="submit" id="wlpeProfileLogoutButton" name="service" value="logout">Logout</button>
<button type="submit" id="wlpeProfileDeleteButton" name="service" value="deleteprofile">Delete My Profile</button>
</fieldset>
</form>
</div>
&userOuterTpl

The template that works as a "wrapper" for each of your lists in type=`users`.

Default:
[+wlpe.message+]
<div class="wlpeUsersList">
<h3>[+view.title+]</h3>
[+view.list+]
</div>
&usersTpl

When you have called WebLoginPE with &type=`users`, each user in the databases is listed and (in the default template) their user image and username are links to a separate area that can list more details about the user and give other users a form to contact that user. Since this view may contain privileged data, you may want to use "Access Permissions" on this page. The &usersTpl paramter chunk should define the structure of the block for EACH user on this page. It will loop through each user, one at a time, exchange the placeholders for their info, add it to the que, then go to the next user. When it has finished looping over each user, it will return the entire que to the page. This view has access to the [+user.age+] placeholder that calculates the user's age based on their DOB.

If you specified form fields in &customFields parameter for register and profile, you should also specify them here to make sure placeholders are set for them.

Default:
[+wlpe.message+]
<div class="wlpeUserPage">
<div class="wlpeUserPagePhoto">
<a href="[~[*id*]~]?service=viewprofile&username=[+view.username+]"><img src="[+view.photo+]" alt="[+view.photo+]" title="[+view.username+]" height="100" width="100" /></a>
<a href="[~[*id*]~]?service=viewprofile&username=[+view.username+]"><p class="wlpeUserPageUsername">[+view.username+]</p></a>
</div>
<div class="wlpeUserPageUserContent">
<p class="wlpeUserPageAttrUsername">Username: [+view.username+]</p>
<p class="wlpeUserPageAttrAge">Age: [+view.age+]</p>
<p class="wlpeUserPageAttrLastLogin">Last Login: [+view.thislogin+]</p>
<blockquote class="wlpeUserPageAttrComment">[+view.comment+]</blockquote>
</div>
</div>
&viewProfileTpl

When you have called WebLoginPE with &type=`users`, each user in the databases is listed and (in the default template) their user image and username are links to a separate area that can list more details about the user and give other users a form to contact that user. As with &usersTpl, this view may contain privileged data, you may want to use "Access Permissions" on the calling page. The &viewProfileTpl paramter chunk should define the structure of this separate area to view more details on an individual user. This view has access to the [+view.age+] placeholder that calculates the user's age based on their DOB.

If you specified form fields in &customFields parameter for register and profile, you should also specify them here to make sure placeholders are set for them.

Default:
[+wlpe.message+]
<table id="wlpeViewProfileTable">
<tr>
<td colspan=2 class="wlpeViewProfileHeader"><h3>Viewing the profile of "[+view.username+]":</h3></td>
</tr>
<tr>
<td class="wlpeViewAttribute">Username:</td>
<td class="wlpeViewAttributeValue">[+view.username+]</td>
</tr>
<tr>
<td class="wlpeViewAttribute">Full Name:</td>
<td class="wlpeViewAttributeValue">[+view.fullname+]</td>
</tr>
<tr>
<td class="wlpeViewAttribute">Email:</td>
<td class="wlpeViewAttributeValue">[+view.email+]</td>
</tr>
<tr>
<td class="wlpeViewAttribute">Phone Number:</td>
<td class="wlpeViewAttributeValue">[+view.phone+]</td>
</tr>
<tr>
<td class="wlpeViewAttribute">Mobile Phone Number:</td>
<td class="wlpeViewAttributeValue">[+view.mobilephone+]</td>
</tr>
<tr>
<td class="wlpeViewAttribute">Fax Number:</td>
<td class="wlpeViewAttributeValue">[+view.fax+]</td>
</tr>
<tr>
<td class="wlpeViewAttribute">State:</td>
<td class="wlpeViewAttributeValue">[+view.state+]</td>
</tr>
<tr>
<td class="wlpeViewAttribute">Country:</td>
<td class="wlpeViewAttributeValue">[+view.country+]</td>
</tr>
<tr>
<td class="wlpeViewAttribute">Age:</td>
<td class="wlpeViewAttributeValue">[+view.age+]</td>
</tr>
<tr>
<td class="wlpeViewAttribute">Gender:</td>
<td class="wlpeViewAttributeValue">[+view.gender+]</td>
</tr>
<tr>
<td class="wlpeViewAttribute">Signature:</td>
<td class="wlpeViewAttributeValue">[+view.comment+]</td>
</tr>
<tr>
<td class="wlpeViewAttribute">Photo:</td>
<td class="wlpeViewAttributeValue"><img src="[+view.photo+]" alt="[+view.photo+]" title="[+view.username+]" /></td>
</tr>
<tr>
<td colspan="2" class="wlpeViewContact">
<form name="wlpeViewContactForm" method="post" action="[~[*id*]~]">
<fieldset id="wlpeViewContactFormFieldset">
<h4>Contact [+view.username+]</h4>
<label for"wlpeViewContactSubject" id="wlpeViewContactSubjectLabel">Subject:
<input type="text" id="wlpeViewContactSubject" name="subject" />
</label>
<label for"wlpeViewContactMessage" id="wlpeViewContactMessageLabel">Message:
<textarea id="wlpeViewContactMessage" name="message"></textarea>
</label>
</fieldset>
<fieldset id="wlpeViewContactButtons">
<button type="submit" id="wlpeContactSend" name="service" value="messageuser">Send Message to [+view.username+]</button>
</fieldset>
</form>
</td>
</tr>
</table>
&profileDeleteTpl

The form presented to the user to confirm that they actually want to delete their account. This is presented after the user has clicked the "Delete My Profile" button on the profile page. We want to make sure they didn't click it by accident!

Default:
[+wlpe.message+]
<div id="wlpeProfileDelete">
<form id="wlpeProfileDeleteForm" name="profileDelteForm" action="[~[*id*]~]" method="POST">
<fieldset id="wlpeProfileDeleteFieldset">
<legend id="wlpeProfileDeleteFieldsetLegend">Delete Your Profile</legend>
<h1 id="wlpeProfileDeleteWarning" class="warning">WARNING!</h1>
<p>You are about to delete your profile. Are you sure you want to continue?</p>
</fieldset>
<fieldset id="wlpeProfileDeleteButtonsFieldset">
<button type="submit" id="wlpeProfileDeleteButton" name="service" value="confirmdeleteprofile">YES! DELETE my profile</button>
<button type="submit" id="wlpeProfileCancelButton" name="service" value="doNotDelete">NO! Keep my profile</button>
</fieldset>
</form>
</div>
&manageOuterTpl

The template that works as a "wrapper" for each of your lists in type=`manager`. The default is the same as the default &userOuterTpl.

Default:
[+wlpe.message+]
<div class="wlpeUsersList">
<h3>[+view.title+]</h3>
[+view.list+]
</div>
&manageTpl

The template (chunk) that will be applied to each user in type=`manager`.

Default:
<form class="wlpeManageUsersForm" action="[~[*id*]~]" method="POST">
<div class="wlpeUserPage">
<div class="wlpeUserPagePhoto">
<img src="[+view.photo+]" alt="[+view.photo+]" title="[+view.username+]" height="100" width="100" />
<p class="wlpeUserPageUsername">[+view.username+]</p>
<!-- These hidden fields are IMPORTANT! -->
<input type="hidden" name="internalKey" value="[+view.internalKey+]" />
<input type="hidden" name="username" value="[+view.username+]" />
</div>
<div class="wlpeUserPageUserContent"> 
<p class="wlpeUserPageAttrUsername"><span class="wlpeViewUsersUsername">Username</span>: [+view.username+]</p>
<p class="wlpeUserPageAttrAge"><span class="wlpeViewUsersAge">Age</span>: [+view.age+]</p>
<p class="wlpeUserPageAttrLastLogin"><span class="wlpeViewUsersLastLogin">Current Status</span>: [+view.status+]</p>
<div class="wlpeMangeUsersButtons">
<button class="wlpeEditButton" name="service" value="editprofile">Edit [+view.username+]</button>
<button class="wlpeDeleteButton" name="service" value="deleteuser">Delete [+view.username+]</button>
</div>
</div>
</div>
</form>
&manageProfileTpl

The Form (chunk) that will be displayed when editing a user's attributes in type=`manager`.

Default:
[+wlpe.message+]
<div id="wlpeUser">
<form enctype="multipart/form-data" id="wlpeUserProfileForm" action="[~[*id*]~]" method="POST">
<fieldset id="wlpeUserProfileInput">
<div id="wlpeUserInfo">
<h3 id="wlpeProfileWelcome">Editing the profile of [+view.username+] ([+view.fullname+])!</h3>
<p id="wlpeProfileInfo" class="info">Use this form to edit [+view.username+]'s profile information</p>
</div>
<legend>[+view.username+]'s User Profile</legend>
<!-- These hidden fields are IMPORTANT! -->
<input type="hidden" name="internalKey" value="[+view.internalKey+]" />
<input type="hidden" name="username" value="[+view.username+]" />
<label for="wlpeUserProfileFullName">Full Name
<input id="wlpeUserProfileFullName" type="text" name="fullname" value="[+view.fullname+]" />
</label>
<label for="wlpeUserProfileEmail">Email
<input id="wlpeUserProfileEmail" type="text" name="email" value="[+view.email+]" />
</label>
<label for="wlpeUserProfilePhone">Phone number
<input id="wlpeUserProfilePhone" type="text" name="phone" value="[+view.phone+]" />
</label>
<label for="wlpeUserProfileMobile">Mobile number
<input id="wlpeUserProfileMobile" type="text" name="mobilephone" value="[+view.mobilephone+]" />
</label>
<label for="wlpeUserProfileFax">Fax number
<input id="wlpeUserProfileFax" type="text" name="fax" value="[+view.fax+]" />
</label>
<label for="wlpeUserProfileState">State
<input id="wlpeUserProfileState" type="text" name="state" value="[+view.state+]" />
</label>
<label for="wlpeUserProfileZip">Zip Code
<input id="wlpeUserProfileZip" type="text" name="zip" value="[+view.zip+]" />
</label>
[+form.country+]
<label for="wlpeUserProfileDob">Date of birth <span class="info">(DD-MM-YYYY)</span>
<input id="wlpeUserProfileDob" type="text" name="dob" value="[+view.dob+]" />
</label>
[+form.gender+]
<label for="wlpeUserProfileComment">Comment/Signature
<textarea id="wlpeUserProfileComment" name="comment">[+view.comment+]</textarea>
</label>
<img id="wlpeUserProfilePhotoImg" src="[+view.photo+]" alt="[+view.username+]" title="[+view.fullname+]" height="100" width="100" />
<label for="wlpeUserProfilePhoto" id="wlpeUserPhotoLabel">User Photo
<input type="hidden" id="wlpeUserHiddenPhoto" name="userphoto" value="[+view.photo+]" />
<input id="wlpeUserProfilePhoto" type="file" name="photo" value="" />
</label>
<p id="wlpeUserProfilePhotoInfo" class="info">No bigger than 100kb. will be resized to 100 x 100.</p>
<fieldset id="wlpeNewPasswordArea">
<legend id="wlpeNewPasswordAreaLegend">Change your password</legend>
<p id="wlpeNewPasswordInfo">Change your password <br />
<span class="info">(leave blank if you do not want to set a new password for this user).</span></p>
<label for="wlpeUserProfilePassword">New Password
<input id="wlpeUserProfilePassword" type="password" name="password" value="" />
</label>
<label for="wlpeUserProfilePasswordConfirm">New Password (confirm)
<input id="wlpeUserProfilePasswordConfirm" type="password" name="password.confirm" value="" />
</label>
</fieldset>
</fieldset>
<fieldset id="wlpeUserProfileButtons">
<button type="submit" id="wlpeSaveProfileButton" name="service" value="saveuserprofile">Save</button>
<button type="submit" id="wlpeProfileDoneButton" name="service" value="cancel">Done</button>
<button type="submit" id="wlpeProfileDeleteButton" name="service" value="deleteuserprofile">Delete This Profile</button>
</fieldset>
</form>
</div>
&manageDeleteTpl

The Form (chunk) that will be displayed asking for confirmation of intention to delete after clicking the "Delete Profile" button for a user in type=`manager`.

Default:
[+wlpe.message+]
<div id="wlpeProfileDelete">
<form id="wlpeProfileDeleteForm" name="profileDelteForm" action="[~[*id*]~]" method="POST">
<fieldset id="wlpeProfileDeleteFieldset">
<legend id="wlpeProfileDeleteFieldsetLegend">Delete User Profile</legend>
<h1 id="wlpeProfileDeleteWarning" class="warning">WARNING!</h1>
<p>You are about to delete the profile of &quot;[+post.username+]&quot;. Are you sure you want to continue?</p>
</fieldset>
<fieldset id="wlpeProfileDeleteButtonsFieldset">
<button type="submit" id="wlpeProfileDeleteButton" name="service" value="confirmdeleteuser">YES! DELETE [+post.username+]'s profile</button>
<button type="submit" id="wlpeProfileCancelButton" name="service" value="doNotDelete">NO! Keep this profile</button>
</fieldset>
</form>
</div>
&resetTpl

The form presented when a user clicks the "Forgot Password" button. This form has only one input ("email"). They enter their email address, WebLoginPE sets a random password and key in the web_users table's cachepwd field and sends them a link to the URL of the page that this was called from with the string "?service=activate&userid=3&activationkey=kl3tW5rtDi where "3" would be the users internalKey and "kl3tW5rtDi" would be the randomly generated activation key which is a 10 character string.

Default:
[+wlpe.message+]
<div id="wlpeReset">
<form id="wlpeResetForm" name="wlpeResetForm" action="[~[*id*]~]" method="POST">
<fieldset id="wlpeResetFieldset">
<h3 id="wlpeResetInfo">Don't Worry, it happens to everyone.</h3>
<p>Enter your email address in the field below and we will set a temporary password for your account.</p>
<p>This temporary password will be emailed to you with instructions on how to activate it.</p>
<label for="wlpeResetEmail">Your Email Address
<input type="text" id="wlpeResetEmail" name="email" />
</label>
</fieldset>
<fieldset id="wlpeResetButtonFieldset">
<button type="submit" id="wlpeResetButton" name="service" value="resetpassword">Send Password</button>
<button type="submit" id="wlpeResetCancelButton" name="service" value="cancel">Cancel</button>
</fieldset>
</form>
</div>
&activateTpl

This form is presented when the user clicks the link in the email that was sent from the &resetTpl form. It is the view for service=activate. The user is asked for the temporary password that was emailed to them and they are given the option to set a new password. WebLoginPE then checks that the temporary password and the activationkey match what was stored in the cachepwd field for the internalKey in the web_users table. If everything checks out, the new password that the user entered is activated. The default form has three input fields with the name attributes "activationpassword", "newpassword", and "newpassword.confirm".

Default:
[+wlpe.message+]
<div id="wlpeActivate">
<form id="wlpeActivateForm" name="wlpeActivateForm" action="[~[*id*]~]" method="POST">
<fieldset id="wlpeActivateFieldset">
<input type="hidden" name="userid" value="[+request.userid+]" />
<input type="hidden" name="activationkey" value="[+request.activationkey+]" />
<label for="wlpeActivationPassword">Activation password
<input type="text" id="wlpeActivationPassword" name="activationpassword" />
</label>
<label for="wlpeNewPassword">New password
<input type="password" id="wlpeNewPassword" name="newpassword" />
</label>
<label for="wlpeNewPasswordConfirm">New password (Confirm)
<input type="password" id="wlpeNewPasswordConfirm" name="newpassword.confirm" />
</label>
</fieldset>
<fieldset id="wlpeActivateButtonFieldset">
<button type="submit" id="wlpeActivateButton" name="service" value="activated">Activate</button>
</fieldset>
</form>
</div>
&notifyTpl

This is not a view presented to the user, but a template format for the email message that will be sent to the addresses in &notify. It uses all the placeholders that are available in the Tools > Configuration > User > Web signup email template, with the addition of [+uem+] for the user's email address. The user's password will NOT be available in this template.

Default:
Hello, my name is [+ufn+] and I just signed up at [+sname+] as "[+uid+]" using WebLoginPE.
My email address is [+uem+].
P.S. This message was auto generated by WebLoginPE and PHPMailer.
&notifySubject

This is also not a view presented to the user, but a definition of the subject line for the email message that will be sent to the addresses in &notify.

Default:
New Web User for [(site_name)].

Suggest an edit to this page.