* (bug 13130) Moved edit token and autosummary fields above edit tools to
authorBrion Vibber <brion@users.mediawiki.org>
Thu, 28 Feb 2008 00:47:00 +0000 (00:47 +0000)
committerBrion Vibber <brion@users.mediawiki.org>
Thu, 28 Feb 2008 00:47:00 +0000 (00:47 +0000)
  reduce broken form submissions

RELEASE-NOTES
includes/EditPage.php

index 526e101..3d3123b 100644 (file)
@@ -37,6 +37,8 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN
 * (bug 13100) Added 'preloadtitle' parameter to action=edit&section=new that
   pre-fills the section title field.
 * (bug 13112) Added Special:RelatedChanges alias to Special:Recentchangeslinked
+* (bug 13130) Moved edit token and autosummary fields above edit tools to
+  reduce broken form submissions
 
 
 === Bug fixes in 1.13 ===
index badb695..3c964dd 100644 (file)
@@ -1229,14 +1229,26 @@ class EditPage {
                # if this is a comment, show a subject line at the top, which is also the edit summary.
                # Otherwise, show a summary field at the bottom
                $summarytext = htmlspecialchars( $wgContLang->recodeForEdit( $this->summary ) ); # FIXME
+               
+               # If a blank edit summary was previously provided, and the appropriate
+               # user preference is active, pass a hidden tag as wpIgnoreBlankSummary. This will stop the
+               # user being bounced back more than once in the event that a summary
+               # is not required.
+               #####
+               # For a bit more sophisticated detection of blank summaries, hash the
+               # automatic one and pass that in the hidden field wpAutoSummary.
+               $summaryhiddens =  '';
+               if( $this->missingSummary ) $summaryhiddens .= wfHidden( 'wpIgnoreBlankSummary', true );
+               $autosumm = $this->autoSumm ? $this->autoSumm : md5( $this->summary );
+               $summaryhiddens .= wfHidden( 'wpAutoSummary', $autosumm );
                if( $this->section == 'new' ) {
-                       $commentsubject="<span id='wpSummaryLabel'><label for='wpSummary'>{$subject}:</label></span>\n<div class='editOptions'>\n<input tabindex='1' type='text' value=\"$summarytext\" name='wpSummary' id='wpSummary' maxlength='200' size='60' /><br />";
+                       $commentsubject="<span id='wpSummaryLabel'><label for='wpSummary'>{$subject}:</label></span>\n<div class='editOptions'>\n<input tabindex='1' type='text' value=\"$summarytext\" name='wpSummary' id='wpSummary' maxlength='200' size='60' />{$summaryhiddens}<br />";
                        $editsummary = '';
                        $subjectpreview = $summarytext && $this->preview ? "<div class=\"mw-summary-preview\">".wfMsg('subject-preview').':'.$sk->commentBlock( $this->summary, $this->mTitle )."</div>\n" : '';
                        $summarypreview = '';
                } else {
                        $commentsubject = '';
-                       $editsummary="<span id='wpSummaryLabel'><label for='wpSummary'>{$summary}:</label></span>\n<div class='editOptions'>\n<input tabindex='2' type='text' value=\"$summarytext\" name='wpSummary' id='wpSummary' maxlength='200' size='60' /><br />";
+                       $editsummary="<span id='wpSummaryLabel'><label for='wpSummary'>{$summary}:</label></span>\n<div class='editOptions'>\n<input tabindex='2' type='text' value=\"$summarytext\" name='wpSummary' id='wpSummary' maxlength='200' size='60' />{$summaryhiddens}<br />";
                        $summarypreview = $summarytext && $this->preview ? "<div class=\"mw-summary-preview\">".wfMsg('summary-preview').':'.$sk->commentBlock( $this->summary, $this->mTitle )."</div>\n" : '';
                        $subjectpreview = '';
                }
@@ -1339,21 +1351,6 @@ END
 </div><!-- editButtons -->
 </div><!-- editOptions -->");
 
-               $wgOut->addHtml( '<div class="mw-editTools">' );
-               $wgOut->addWikiMsgArray( 'edittools', array(), array( 'content' ) );
-               $wgOut->addHtml( '</div>' );
-
-               $wgOut->addHTML( $this->editFormTextAfterTools );
-
-               $wgOut->addHTML( "
-<div class='templatesUsed'>
-{$formattedtemplates}
-</div>
-<div class='hiddencats'>
-{$formattedhiddencats}
-</div>
-");
-
                /**
                 * To make it harder for someone to slip a user a page
                 * which submits an edit form to the wiki without their
@@ -1369,19 +1366,20 @@ END
                $token = htmlspecialchars( $wgUser->editToken() );
                $wgOut->addHTML( "\n<input type='hidden' value=\"$token\" name=\"wpEditToken\" />\n" );
 
+               $wgOut->addHtml( '<div class="mw-editTools">' );
+               $wgOut->addWikiMsgArray( 'edittools', array(), array( 'content' ) );
+               $wgOut->addHtml( '</div>' );
 
-               # If a blank edit summary was previously provided, and the appropriate
-               # user preference is active, pass a hidden tag here. This will stop the
-               # user being bounced back more than once in the event that a summary
-               # is not required.
-               if( $this->missingSummary ) {
-                       $wgOut->addHTML( "<input type=\"hidden\" name=\"wpIgnoreBlankSummary\" value=\"1\" />\n" );
-               }
+               $wgOut->addHTML( $this->editFormTextAfterTools );
 
-               # For a bit more sophisticated detection of blank summaries, hash the
-               # automatic one and pass that in a hidden field.
-               $autosumm = $this->autoSumm ? $this->autoSumm : md5( $this->summary );
-               $wgOut->addHtml( wfHidden( 'wpAutoSummary', $autosumm ) );
+               $wgOut->addHTML( "
+<div class='templatesUsed'>
+{$formattedtemplates}
+</div>
+<div class='hiddencats'>
+{$formattedhiddencats}
+</div>
+");
 
                if ( $this->isConflict ) {
                        $wgOut->wrapWikiMsg( '==$1==', "yourdiff" );