3 * Html forms for user login and account creation
10 * @defgroup Templates Templates
13 if( !defined( 'MEDIAWIKI' ) ) die( -1 );
16 * HTML template for Special:Userlogin form
19 class UserloginTemplate
extends QuickTemplate
{
21 if( $this->data
['message'] ) {
23 <div
class="<?php $this->text('messagetype') ?>box">
24 <?php
if ( $this->data
['messagetype'] == 'error' ) { ?
>
25 <strong
><?php
$this->msg( 'loginerror' )?
></strong
><br
/>
27 <?php
$this->html('message') ?
>
29 <div
class="visualClear"></div
>
32 <div id
="loginstart"><?php
$this->msgWiki( 'loginstart' ); ?
></div
>
33 <div id
="userloginForm">
34 <form name
="userlogin" method
="post" action
="<?php $this->text('action') ?>">
35 <h2
><?php
$this->msg('login') ?
></h2
>
36 <p id
="userloginlink"><?php
$this->html('link') ?
></p
>
37 <?php
$this->html('header'); /* pre-table point for form plugins... */ ?
>
38 <div id
="userloginprompt"><?php
$this->msgWiki('loginprompt') ?
></div
>
39 <?php
if( @$this->haveData( 'languages' ) ) { ?
><div id
="languagelinks"><p
><?php
$this->html( 'languages' ); ?
></p
></div
><?php
} ?
>
42 <td
class="mw-label"><label
for='wpName1'><?php
$this->msg('yourname') ?
></label
></td
>
45 echo Html
::input( 'wpName', $this->data
['name'], 'text', array(
46 'class' => 'loginText',
51 # Can't do + array( 'autofocus' ) because + for arrays in PHP
52 # only works right for associative arrays! Thanks, PHP.
53 ) +
( $this->data
['name'] ?
array() : array( 'autofocus' => '' ) ) ); ?
>
58 <td
class="mw-label"><label
for='wpPassword1'><?php
$this->msg('yourpassword') ?
></label
></td
>
61 echo Html
::input( 'wpPassword', null, 'password', array(
62 'class' => 'loginPassword',
63 'id' => 'wpPassword1',
66 ) +
( $this->data
['name'] ?
array( 'autofocus' ) : array() ) ); ?
>
70 <?php
if( isset( $this->data
['usedomain'] ) && $this->data
['usedomain'] ) {
72 foreach( $this->data
['domainnames'] as $dom ) {
73 $doms .= "<option>" . htmlspecialchars( $dom ) . "</option>";
76 <tr id
="mw-user-domain-section">
77 <td
class="mw-label"><?php
$this->msg( 'yourdomainname' ) ?
></td
>
79 <select name
="wpDomain" value
="<?php $this->text( 'domain' ) ?>"
87 if( $this->haveData( 'extrafields' ) ) {
88 echo $this->data
['extrafields'];
91 if( $this->data
['canremember'] ) { ?
>
96 global $wgCookieExpiration, $wgLang;
98 wfMsgExt( 'remembermypassword', 'parsemag', $wgLang->formatNum( ceil( $wgCookieExpiration / ( 3600 * 24 ) ) ) ),
101 $this->data
['remember'],
102 array( 'tabindex' => '8' )
110 <td
class="mw-submit">
112 echo Html
::input( 'wpLoginAttempt', wfMsg( 'login' ), 'submit', array(
113 'id' => 'wpLoginAttempt',
116 if ( $this->data
['useemail'] && $this->data
['canreset'] ) {
118 echo Html
::input( 'wpMailmypassword', wfMsg( 'mailmypassword' ), 'submit', array(
119 'id' => 'wpMailmypassword',
127 <?php
if( @$this->haveData( 'uselang' ) ) { ?
><input type
="hidden" name
="uselang" value
="<?php $this->text( 'uselang' ); ?>" /><?php
} ?
>
128 <?php
if( @$this->haveData( 'token' ) ) { ?
><input type
="hidden" name
="wpLoginToken" value
="<?php $this->text( 'token' ); ?>" /><?php
} ?
>
131 <div id
="loginend"><?php
$this->msgWiki( 'loginend' ); ?
></div
>
140 class UsercreateTemplate
extends QuickTemplate
{
141 function addInputItem( $name, $value, $type, $msg, $helptext = false ) {
142 $this->data
['extraInput'][] = array(
147 'helptext' => $helptext,
152 if( $this->data
['message'] ) {
154 <div
class="<?php $this->text('messagetype') ?>box">
155 <?php
if ( $this->data
['messagetype'] == 'error' ) { ?
>
156 <strong
><?php
$this->msg( 'loginerror' )?
></strong
><br
/>
158 <?php
$this->html('message') ?
>
160 <div
class="visualClear"></div
>
163 <div id
="signupstart"><?php
$this->msgWiki( 'signupstart' ); ?
></div
>
166 <form name
="userlogin2" id
="userlogin2" method
="post" action
="<?php $this->text('action') ?>">
167 <h2
><?php
$this->msg('createaccount') ?
></h2
>
168 <p id
="userloginlink"><?php
$this->html('link') ?
></p
>
169 <?php
$this->html('header'); /* pre-table point for form plugins... */ ?
>
170 <?php
if( @$this->haveData( 'languages' ) ) { ?
><div id
="languagelinks"><p
><?php
$this->html( 'languages' ); ?
></p
></div
><?php
} ?
>
173 <td
class="mw-label"><label
for='wpName2'><?php
$this->msg('yourname') ?
></label
></td
>
174 <td
class="mw-input">
176 echo Html
::input( 'wpName', $this->data
['name'], 'text', array(
177 'class' => 'loginText',
188 <td
class="mw-label"><label
for='wpPassword2'><?php
$this->msg('yourpassword') ?
></label
></td
>
189 <td
class="mw-input">
191 echo Html
::input( 'wpPassword', null, 'password', array(
192 'class' => 'loginPassword',
193 'id' => 'wpPassword2',
196 ) + User
::passwordChangeInputAttribs() ); ?
>
198 <td
><div id
="password-strength"></div
></td
>
200 <?php
if( $this->data
['usedomain'] ) {
202 foreach( $this->data
['domainnames'] as $dom ) {
203 $doms .= "<option>" . htmlspecialchars( $dom ) . "</option>";
207 <td
class="mw-label"><?php
$this->msg( 'yourdomainname' ) ?
></td
>
208 <td
class="mw-input">
209 <select name
="wpDomain" value
="<?php $this->text( 'domain' ) ?>"
218 <td
class="mw-label"><label
for='wpRetype'><?php
$this->msg('yourpasswordagain') ?
></label
></td
>
219 <td
class="mw-input">
221 echo Html
::input( 'wpRetype', null, 'password', array(
222 'class' => 'loginPassword',
226 ) + User
::passwordChangeInputAttribs() ); ?
>
228 <td
><div id
="password-retype"></div
></td
>
231 <?php
if( $this->data
['useemail'] ) { ?
>
232 <td
class="mw-label"><label
for='wpEmail'><?php
$this->msg('youremail') ?
></label
></td
>
233 <td
class="mw-input">
235 echo Html
::input( 'wpEmail', $this->data
['email'], 'email', array(
236 'class' => 'loginText',
241 <div
class="prefsectiontip">
242 <?php
if( $this->data
['emailrequired'] ) {
243 $this->msgWiki('prefs-help-email-required');
245 $this->msgWiki('prefs-help-email');
251 <?php
if( $this->data
['userealname'] ) { ?
>
254 <td
class="mw-label"><label
for='wpRealName'><?php
$this->msg('yourrealname') ?
></label
></td
>
255 <td
class="mw-input" colspan
="2">
256 <input type
='text' class='loginText' name
="wpRealName" id
="wpRealName"
258 value
="<?php $this->text('realname') ?>" size
='20' />
259 <div
class="prefsectiontip">
260 <?php
$this->msgWiki('prefs-help-realname'); ?
>
265 <?php
if( $this->data
['usereason'] ) { ?
>
268 <td
class="mw-label"><label
for='wpReason'><?php
$this->msg('createaccountreason') ?
></label
></td
>
269 <td
class="mw-input" colspan
="2">
270 <input type
='text' class='loginText' name
="wpReason" id
="wpReason"
272 value
="<?php $this->text('reason') ?>" size
='20' />
276 <?php
if( $this->data
['canremember'] ) { ?
>
279 <td
class="mw-input" colspan
="2">
281 global $wgCookieExpiration, $wgLang;
282 echo Xml
::checkLabel(
283 wfMsgExt( 'remembermypassword', 'parsemag', $wgLang->formatNum( ceil( $wgCookieExpiration / ( 3600 * 24 ) ) ) ),
286 $this->data
['remember'],
287 array( 'tabindex' => '8' )
295 if ( isset( $this->data
['extraInput'] ) && is_array( $this->data
['extraInput'] ) ) {
296 foreach ( $this->data
['extraInput'] as $inputItem ) { ?
>
299 if ( !empty( $inputItem['msg'] ) && $inputItem['type'] != 'checkbox' ) {
300 ?
><td
class="mw-label"><label
for="<?php
301 echo htmlspecialchars( $inputItem['name'] ); ?>"><?php
302 $this->msgWiki( $inputItem['msg'] ) ?
></label
><?php
307 <td
class="mw-input" colspan
="2">
308 <input type
="<?php echo htmlspecialchars( $inputItem['type'] ) ?>" name
="<?php
309 echo htmlspecialchars( $inputItem['name'] ); ?>"
310 tabindex
="<?php echo $tabIndex++; ?>"
312 if ( $inputItem['type'] != 'checkbox' ) {
313 echo htmlspecialchars( $inputItem['value'] );
317 ?>" id
="<?php echo htmlspecialchars( $inputItem['name'] ); ?>"
319 if ( $inputItem['type'] == 'checkbox' && !empty( $inputItem['value'] ) )
320 echo 'checked="checked"';
322 if ( $inputItem['type'] == 'checkbox' && !empty( $inputItem['msg'] ) ) {
324 <label
for="<?php echo htmlspecialchars( $inputItem['name'] ); ?>"><?php
325 $this->msgHtml( $inputItem['msg'] ) ?
></label
><?php
327 if( $inputItem['helptext'] !== false ) {
329 <div
class="prefsectiontip">
330 <?php
$this->msgWiki( $inputItem['helptext'] ); ?
>
342 <td
class="mw-submit" colspan
="2">
343 <input type
='submit' name
="wpCreateaccount" id
="wpCreateaccount"
344 tabindex
="<?php echo $tabIndex++; ?>"
345 value
="<?php $this->msg('createaccount') ?>" />
346 <?php
if( $this->data
['createemail'] ) { ?
>
347 <input type
='submit' name
="wpCreateaccountMail" id
="wpCreateaccountMail"
348 tabindex
="<?php echo $tabIndex++; ?>"
349 value
="<?php $this->msg('createaccountmail') ?>" />
354 <?php
if( @$this->haveData( 'uselang' ) ) { ?
><input type
="hidden" name
="uselang" value
="<?php $this->text( 'uselang' ); ?>" /><?php
} ?
>
355 <?php
if( @$this->haveData( 'token' ) ) { ?
><input type
="hidden" name
="wpCreateaccountToken" value
="<?php $this->text( 'token' ); ?>" /><?php
} ?
>
358 <div id
="signupend"><?php
$this->msgWiki( 'signupend' ); ?
></div
>