* Make form consistent with Special:EmailUser

* Use proper XML functions
* Use CSS classes for table construction for proper RTL support
* Move : into messages for consistency
This commit is contained in:
Raimond Spekking 2008-11-04 08:19:56 +00:00
parent 38a3d8b11d
commit d3b09bdc19
2 changed files with 70 additions and 56 deletions

View File

@ -16,14 +16,15 @@ $messages['en'] = array(
'contactpage-desc' => '[[Special:Contact|Contact form for visitors]]', 'contactpage-desc' => '[[Special:Contact|Contact form for visitors]]',
'contactpage-title' => 'Contact', 'contactpage-title' => 'Contact',
'contactpage-pagetext' => 'Please use the form below to contact us.', 'contactpage-pagetext' => 'Please use the form below to contact us.',
'contactpage-defsubject' => 'Contact Message', 'contactpage-legend' => 'Send e-mail',
'contactpage-defsubject' => 'Contact message',
'contactpage-subject-and-sender' => '$1 (from $2)', 'contactpage-subject-and-sender' => '$1 (from $2)',
'contactpage-fromname' => 'your name *', 'contactpage-fromname' => 'Your name: *',
'contactpage-fromaddress' => 'your e-mail **', 'contactpage-fromaddress' => 'Your e-mail: **',
'contactpage-formfootnotes' => '* optional<br /> 'contactpage-formfootnotes' => '* optional<br />
** optional but needed if you want an answer', ** optional but needed if you want an answer',
'contactpage-fromname-required' => 'your name', 'contactpage-fromname-required' => 'Your name:',
'contactpage-fromaddress-required' => 'your e-mail', 'contactpage-fromaddress-required' => 'Your e-mail:',
'contactpage-formfootnotes-required' => 'All fields are required.', 'contactpage-formfootnotes-required' => 'All fields are required.',
'contactpage-captcha' => 'To send the message, please solve the captcha ([[Special:Captcha/help|more info]])', 'contactpage-captcha' => 'To send the message, please solve the captcha ([[Special:Captcha/help|more info]])',
'contactpage-captcha-failed' => 'Captcha test failed! ([[Special:Captcha/help|more info]])', 'contactpage-captcha-failed' => 'Captcha test failed! ([[Special:Captcha/help|more info]])',

View File

@ -6,7 +6,7 @@
* @addtogroup SpecialPage * @addtogroup SpecialPage
* @author Daniel Kinzler, brightbyte.de * @author Daniel Kinzler, brightbyte.de
* @copyright © 2007 Daniel Kinzler * @copyright © 2007 Daniel Kinzler
* @licence GNU General Public Licence 2.0 or later * @license GNU General Public Licence 2.0 or later
*/ */
if( !defined( 'MEDIAWIKI' ) ) { if( !defined( 'MEDIAWIKI' ) ) {
@ -161,58 +161,71 @@ class EmailContactForm {
$msgSuffix = $wgContactRequireAll ? '-required' : ''; $msgSuffix = $wgContactRequireAll ? '-required' : '';
$emt = wfMsg( "emailto" ); $titleObj = SpecialPage::getTitleFor( 'Contact' );
$rcpt = $this->target->getName(); $action = $titleObj->getLocalURL( 'action=submit' );
$emr = wfMsg( "emailsubject" );
$emm = wfMsg( "emailmessage" );
$ems = wfMsg( "emailsend" );
$emc = wfMsg( "emailccme" );
$emfn = wfMsg( "contactpage-fromname$msgSuffix" );
$emfa = wfMsg( "contactpage-fromaddress$msgSuffix" );
$encSubject = htmlspecialchars( $this->subject );
$encFromName = htmlspecialchars( $this->fromname );
$encFromAddress = htmlspecialchars( $this->fromaddress );
$titleObj = SpecialPage::getTitleFor( "Contact" );
$action = $titleObj->escapeLocalURL( "action=submit" );
$token = $wgUser->isAnon() ? EDIT_TOKEN_SUFFIX : $wgUser->editToken(); //this kind of sucks, really... $token = $wgUser->isAnon() ? EDIT_TOKEN_SUFFIX : $wgUser->editToken(); //this kind of sucks, really...
$token = htmlspecialchars( $token );
$wgOut->addHTML( "
<form id=\"emailuser\" method=\"post\" action=\"{$action}\">
<table border='0' id='mailheader'>
<tr>
<td align='right'>{$emr}:</td>
<td align='left'>
<input type='text' size='60' maxlength='200' name=\"wpSubject\" value=\"{$encSubject}\" />
</td>
</tr><tr>
<td align='right'>{$emfn}:</td>
<td align='left'>
<input type='text' size='60' maxlength='200' name=\"wpFromName\" value=\"{$encFromName}\" />
</td>
<tr>
<td align='right'>{$emfa}:</td>
<td align='left'>
<input type='text' size='60' maxlength='200' name=\"wpFromAddress\" value=\"{$encFromAddress}\" />
</td>
</tr>
<tr>
<td></td>
<td align='left'>
<small>".wfMsg( "contactpage-formfootnotes$msgSuffix" )."</small>
</td>
</tr>
</table>
<span id='wpTextLabel'><label for=\"wpText\">{$emm}:</label><br /></span>
<textarea name=\"wpText\" rows='20' cols='80' wrap='virtual' style=\"width: 100%;\">" . htmlspecialchars( $this->text ) .
"</textarea>
" . wfCheckLabel( $emc, 'wpCCMe', 'wpCCMe', $wgUser->getBoolOption( 'ccmeonemails' ) ) . "<br />
" . $this->getCaptcha() . "
<input type='submit' name=\"wpSend\" value=\"{$ems}\" />
<input type='hidden' name='wpEditToken' value=\"$token\" />
</form>\n" );
$wgOut->addHTML(
Xml::openElement( 'form', array( 'method' => 'post', 'action' => $action, 'id' => 'emailuser' ) ) .
Xml::openElement( 'fieldset' ) .
Xml::element( 'legend', null, wfMsg( 'contactpage-legend' ) ) .
Xml::openElement( 'table', array( 'id' => 'mailheader' ) ) .
"<tr>
<td class='mw-label'>" .
Xml::label( wfMsg( 'emailsubject' ), 'wpSubject' ) .
"</td>
<td class='mw-input' id='mw-contactpage-subject'>" .
Xml::input( 'wpSubject', 60, $this->subject, array( 'type' => 'text', 'maxlength' => 200 ) ) .
"</td>
</tr>
<tr>
<td class='mw-label'>" .
Xml::label( wfMsg( "contactpage-fromname$msgSuffix" ), 'wpFromName' ) .
"</td>
<td class='mw-input' id='mw-contactpage-from'>" .
Xml::input( 'wpFromName', 60, $this->fromname, array( 'type' => 'text', 'maxlength' => 200 ) ) .
"</td>
</tr>
<tr>
<td class='mw-label'>" .
Xml::label( wfMsg( "contactpage-fromaddress$msgSuffix" ), 'wpFromAddress' ) .
"</td>
<td class='mw-input' id='mw-contactpage-address'>" .
Xml::input( 'wpFromAddress', 60, $this->fromaddress, array( 'type' => 'text', 'maxlength' => 200 ) ) .
"</td>
</tr>
<tr>
<td></td>
<td class='mw-input' id='mw-contactpage-formfootnote'>
<small>" . wfMsg( "contactpage-formfootnotes$msgSuffix" ) . "</small>
</td>
</tr>
<tr>
<td class='mw-label'>" .
Xml::label( wfMsg( 'emailmessage' ), 'wpText' ) .
"</td>
<td class='mw-input'>" .
Xml::textarea( 'wpText', $this->text, 80, 20, array( 'id' => 'wpText' ) ) .
"</td>
</tr>
<tr>
<td></td>
<td class='mw-input'>" .
Xml::checkLabel( wfMsg( 'emailccme' ), 'wpCCMe', 'wpCCMe', $wgUser->getBoolOption( 'ccmeonemails' ) ) .
"<br />" . $this->getCaptcha() .
"</td>
</tr>
<tr>
<td></td>
<td class='mw-submit'>" .
Xml::submitButton( wfMsg( 'emailsend' ), array( 'name' => 'wpSend', 'accesskey' => 's' ) ) .
"</td>
</tr>" .
Xml::hidden( 'wpEditToken', $token ) .
Xml::closeElement( 'table' ) .
Xml::closeElement( 'fieldset' ) .
Xml::closeElement( 'form' )
);
} }
function useCaptcha() { function useCaptcha() {