From aeeccc954ee842b24da3558ac31d994053f12c2e Mon Sep 17 00:00:00 2001 From: Aaron Schulz Date: Thu, 4 Sep 2008 20:14:12 +0000 Subject: [PATCH] More EditPage cleanup, mainly coding/whitespace tweaks. Also note that from previous commit, showDeletionLog() is called regardless of special intros. --- includes/EditPage.php | 307 +++++++++++++++++++++--------------------- 1 file changed, 151 insertions(+), 156 deletions(-) diff --git a/includes/EditPage.php b/includes/EditPage.php index db9f671e85..5936f6682b 100644 --- a/includes/EditPage.php +++ b/includes/EditPage.php @@ -112,17 +112,18 @@ class EditPage { function getContent( $def_text = '' ) { global $wgOut, $wgRequest, $wgParser, $wgMessageCache; + wfProfileIn( __METHOD__ ); # Get variables from query string :P $section = $wgRequest->getVal( 'section' ); $preload = $wgRequest->getVal( 'preload' ); $undoafter = $wgRequest->getVal( 'undoafter' ); $undo = $wgRequest->getVal( 'undo' ); - wfProfileIn( __METHOD__ ); - $text = ''; + // For message page not locally set, use the i18n message. + // For other non-existent articles, use preload text if any. if( !$this->mTitle->exists() ) { - if ( $this->mTitle->getNamespace() == NS_MEDIAWIKI ) { + if( $this->mTitle->getNamespace() == NS_MEDIAWIKI ) { $wgMessageCache->loadAllMessages(); # If this is a system message, get the default text. $text = wfMsgWeirdKey( $this->mTitle->getText() ) ; @@ -130,27 +131,17 @@ class EditPage { # If requested, preload some text. $text = $this->getPreloadedText( $preload ); } - # We used to put MediaWiki:Newarticletext here if - # $text was empty at this point. - # This is now shown above the edit box instead. + // For existing pages, get text based on "undo" or section parameters. } else { - // FIXME: may be better to use Revision class directly - // But don't mess with it just yet. Article knows how to - // fetch the page record from the high-priority server, - // which is needed to guarantee we don't pick up lagged - // information. - $text = $this->mArticle->getContent(); - - if ($undo > 0 && $undoafter > 0 && $undo < $undoafter) { + if( $undo > 0 && $undoafter > 0 && $undo < $undoafter ) { # If they got undoafter and undo round the wrong way, switch them list( $undo, $undoafter ) = array( $undoafter, $undo ); } - - if ( $undo > 0 && $undo > $undoafter ) { + if( $undo > 0 && $undo > $undoafter ) { # Undoing a specific edit overrides section editing; section-editing # doesn't work with undoing. - if ( $undoafter ) { + if( $undoafter ) { $undorev = Revision::newFromId($undo); $oldrev = Revision::newFromId($undoafter); } else { @@ -170,7 +161,7 @@ class EditPage { $oldrev_text = $oldrev->getText(); $currev_text = $text; - if ( $currev_text != $undorev_text ) { + if( $currev_text != $undorev_text ) { $result = wfMerge( $undorev_text, $oldrev_text, $currev_text, $text ); } else { # No use doing a merge if it's just a straight revert. @@ -215,14 +206,14 @@ class EditPage { * @param $preload String: the title of the page. * @return string The contents of the page. */ - protected function getPreloadedText($preload) { - if ( $preload === '' ) + protected function getPreloadedText( $preload ) { + if( $preload === '' ) { return ''; - else { + } else { $preloadTitle = Title::newFromText( $preload ); - if ( isset( $preloadTitle ) && $preloadTitle->userCanRead() ) { - $rev=Revision::newFromTitle($preloadTitle); - if ( is_object( $rev ) ) { + if( isset( $preloadTitle ) && $preloadTitle->userCanRead() ) { + $rev = Revision::newFromTitle($preloadTitle); + if( is_object( $rev ) ) { $text = $rev->getText(); // TODO FIXME: AAAAAAAAAAA, this shouldn't be implementing // its own mini-parser! -ævar @@ -242,8 +233,8 @@ class EditPage { function extractMetaDataFromArticle () { global $wgUseMetadataEdit , $wgMetadataWhitelist , $wgLang ; $this->mMetaData = '' ; - if ( !$wgUseMetadataEdit ) return ; - if ( $wgMetadataWhitelist == '' ) return ; + if( !$wgUseMetadataEdit ) return ; + if( $wgMetadataWhitelist == '' ) return ; $s = '' ; $t = $this->getContent(); @@ -263,10 +254,10 @@ class EditPage { $first = explode ( ':' , $first ) ; $ns = array_shift ( $first ) ; $ns = trim ( str_replace ( '[' , '' , $ns ) ) ; - if ( strlen ( $ns ) == 2 OR strtolower ( $ns ) == $catlow ) + if( strlen ( $ns ) == 2 OR strtolower ( $ns ) == $catlow ) { $add = '[[' . $ns . ':' . implode ( ':' , $first ) . ']]' ; - if ( strtolower ( $ns ) == $catlow ) $cat[] = $add ; + if( strtolower ( $ns ) == $catlow ) $cat[] = $add ; else $ll[] = $add ; $x = implode ( ']]' , $y ) ; $t[$key] = $x ; @@ -274,8 +265,8 @@ class EditPage { } } } - if ( count ( $cat ) ) $s .= implode ( ' ' , $cat ) . "\n" ; - if ( count ( $ll ) ) $s .= implode ( ' ' , $ll ) . "\n" ; + if( count ( $cat ) ) $s .= implode ( ' ' , $cat ) . "\n" ; + if( count ( $ll ) ) $s .= implode ( ' ' , $ll ) . "\n" ; $t = implode ( "\n" , $t ) ; # Load whitelist @@ -292,7 +283,7 @@ class EditPage { $isentry = true ; $x = trim ( substr ( $x , 1 ) ) ; } - if ( $isentry ) + if( $isentry ) { $sat[] = strtolower ( $x ) ; } @@ -305,12 +296,12 @@ class EditPage { foreach ( $t AS $key => $x ) { $y = explode ( '}}' , $x , 2 ) ; - if ( count ( $y ) == 2 ) + if( count ( $y ) == 2 ) { $z = $y[0] ; $z = explode ( '|' , $z ) ; $tn = array_shift ( $z ) ; - if ( in_array ( strtolower ( $tn ) , $sat ) ) + if( in_array ( strtolower ( $tn ) , $sat ) ) { $tl[] = '{{' . $y[0] . '}}' ; $t[$key] = $y[1] ; @@ -318,10 +309,10 @@ class EditPage { } else $t[$key] = '{{' . $x ; } - else if ( $key != 0 ) $t[$key] = '{{' . $x ; + else if( $key != 0 ) $t[$key] = '{{' . $x ; else $t[$key] = $x ; } - if ( count ( $tl ) ) $s .= implode ( ' ' , $tl ) ; + if( count ( $tl ) ) $s .= implode ( ' ' , $tl ) ; $t = implode ( '' , $t ) ; $t = str_replace ( "\n\n\n" , "\n" , $t ) ; @@ -329,18 +320,20 @@ class EditPage { $this->mMetaData = $s ; } + /* + * Check if a page was deleted while the user was editing it, before submit. + * Note that we rely on the logging table, which hasn't been always there, + * but that doesn't matter, because this only applies to brand new + * deletes. + */ protected function wasDeletedSinceLastEdit() { - /* Note that we rely on the logging table, which hasn't been always there, - * but that doesn't matter, because this only applies to brand new - * deletes. - */ - if ( $this->deletedSinceEdit ) + if( $this->deletedSinceEdit ) return true; - if ( $this->mTitle->isDeleted() ) { + if( $this->mTitle->isDeleted() ) { $this->lastDelete = $this->getLastDelete(); - if ( !is_null($this->lastDelete) ) { + if( !is_null($this->lastDelete) ) { $deletetime = $this->lastDelete->log_timestamp; - if ( ($deletetime - $this->starttime) > 0 ) { + if( ($deletetime - $this->starttime) > 0 ) { $this->deletedSinceEdit = true; } } @@ -365,14 +358,15 @@ class EditPage { */ function edit() { global $wgOut, $wgUser, $wgRequest; - - if ( !wfRunHooks( 'AlternateEdit', array( &$this ) ) ) + // Allow extensions to modify/prevent this form or submission + if( !wfRunHooks( 'AlternateEdit', array( &$this ) ) ) { return; + } wfProfileIn( __METHOD__ ); wfDebug( __METHOD__.": enter\n" ); - // this is not an article + // This is not an article $wgOut->setArticleFlag( false ); $this->importFormData( $wgRequest ); @@ -389,7 +383,7 @@ class EditPage { // Force preview $this->save = false; $this->preview = true; - } elseif( $this->preview || $this->diff ){ + } elseif( $this->preview || $this->diff ) { // A warning will be displayed instead } else { $this->readOnlyPage( $this->getContent() ); @@ -400,36 +394,17 @@ class EditPage { $wgOut->addScriptFile( 'edit.js' ); - $permErrors = $this->mTitle->getUserPermissionsErrors( 'edit', $wgUser ); - - if( !$this->mTitle->exists() ) { - $permErrors = array_merge( $permErrors, - wfArrayDiff2( $this->mTitle->getUserPermissionsErrors( 'create', $wgUser ), $permErrors ) ); - } - - # Ignore some permissions errors. - $remove = array(); - foreach( $permErrors as $error ) { - if ( ( $this->preview || $this->diff ) && - ($error[0] == 'blockedtext' || $error[0] == 'autoblockedtext')) - { - // Don't worry about blocks when previewing/diffing - $remove[] = $error; - } - } - $permErrors = wfArrayDiff2( $permErrors, $remove ); - - if ( $permErrors ) { + if( $permErrors = $this->getEditPermissionErrors() ) { wfDebug( __METHOD__.": User can't edit\n" ); $this->readOnlyPage( $this->getContent(), true, $permErrors, 'edit' ); wfProfileOut( __METHOD__ ); return; } else { - if ( $this->save ) { + if( $this->save ) { $this->formtype = 'save'; } else if( $this->preview ) { $this->formtype = 'preview'; - } else if ( $this->diff ) { + } else if( $this->diff ) { $this->formtype = 'diff'; } else { # First time through $this->firsttime = true; @@ -460,19 +435,19 @@ class EditPage { # Optional notices on a per-namespace and per-page basis $editnotice_ns = 'editnotice-'.$this->mTitle->getNamespace(); $editnotice_page = $editnotice_ns.'-'.$this->mTitle->getDBkey(); - if ( !wfEmptyMsg( $editnotice_ns, wfMsgForContent( $editnotice_ns ) ) ) { + if( !wfEmptyMsg( $editnotice_ns, wfMsgForContent( $editnotice_ns ) ) ) { $wgOut->addWikiText( wfMsgForContent( $editnotice_ns ) ); } - if ( MWNamespace::hasSubpages( $this->mTitle->getNamespace() ) ) { + if( MWNamespace::hasSubpages( $this->mTitle->getNamespace() ) ) { $parts = explode( '/', $this->mTitle->getDBkey() ); $editnotice_base = $editnotice_ns; while ( count( $parts ) > 0 ) { $editnotice_base .= '-'.array_shift( $parts ); - if ( !wfEmptyMsg( $editnotice_base, wfMsgForContent( $editnotice_base ) ) ) { + if( !wfEmptyMsg( $editnotice_base, wfMsgForContent( $editnotice_base ) ) ) { $wgOut->addWikiText( wfMsgForContent( $editnotice_base ) ); } } - } else if ( !wfEmptyMsg( $editnotice_page, wfMsgForContent( $editnotice_page ) ) ) { + } else if( !wfEmptyMsg( $editnotice_page, wfMsgForContent( $editnotice_page ) ) ) { $wgOut->addWikiText( wfMsgForContent( $editnotice_page ) ); } @@ -481,8 +456,8 @@ class EditPage { # that edit() already checked just in case someone tries to sneak # in the back door with a hand-edited submission URL. - if ( 'save' == $this->formtype ) { - if ( !$this->attemptSave() ) { + if( 'save' == $this->formtype ) { + if( !$this->attemptSave() ) { wfProfileOut( __METHOD__."-business-end" ); wfProfileOut( __METHOD__ ); return; @@ -491,8 +466,8 @@ class EditPage { # First time through: get contents, set time for conflict # checking, etc. - if ( 'initial' == $this->formtype || $this->firsttime ) { - if ($this->initialiseForm() === false) { + if( 'initial' == $this->formtype || $this->firsttime ) { + if( $this->initialiseForm() === false) { $this->noSuchSectionPage(); wfProfileOut( __METHOD__."-business-end" ); wfProfileOut( __METHOD__ ); @@ -506,6 +481,27 @@ class EditPage { wfProfileOut( __METHOD__."-business-end" ); wfProfileOut( __METHOD__ ); } + + protected function getEditPermissionErrors() { + global $wgUser; + $permErrors = $this->mTitle->getUserPermissionsErrors( 'edit', $wgUser ); + # Can this title be created? + if( !$this->mTitle->exists() ) { + $permErrors = array_merge( $permErrors, + wfArrayDiff2( $this->mTitle->getUserPermissionsErrors( 'create', $wgUser ), $permErrors ) ); + } + # Ignore some permissions errors when a user is just previewing/viewing diffs + $remove = array(); + foreach( $permErrors as $error ) { + if( ($this->preview || $this->diff) && + ($error[0] == 'blockedtext' || $error[0] == 'autoblockedtext') ) + { + $remove[] = $error; + } + } + $permErrors = wfArrayDiff2( $permErrors, $remove ); + return $permErrors; + } /** * Show a read-only error @@ -514,7 +510,7 @@ class EditPage { */ function readOnlyPage( $source = null, $protected = false, $reasons = array(), $action = null ) { global $wgRequest, $wgOut; - if ( $wgRequest->getBool( 'redlink' ) ) { + if( $wgRequest->getBool( 'redlink' ) ) { // The edit page was reached via a red link. // Redirect to the article page and let them click the edit tab if // they really want a permission error. @@ -595,13 +591,13 @@ class EditPage { // if we forced preview due to session failure. $this->mTriedSave = !$this->preview; - if ( $this->tokenOk( $request ) ) { + if( $this->tokenOk( $request ) ) { # Some browsers will not report any submit button # if the user hits enter in the comment box. # The unmarked state will be assumed to be a save, # if the form seems otherwise complete. wfDebug( "$fname: Passed token check.\n" ); - } else if ( $this->diff ) { + } else if( $this->diff ) { # Failed token check, but only requested "Show Changes". wfDebug( "$fname: Failed token check; Show Changes requested.\n" ); } else { @@ -650,7 +646,7 @@ class EditPage { $this->watchthis = false; $this->recreate = false; - if ( $this->section == 'new' && $request->getVal( 'preloadtitle' ) ) { + if( $this->section == 'new' && $request->getVal( 'preloadtitle' ) ) { $this->summary = $request->getVal( 'preloadtitle' ); } } @@ -749,7 +745,7 @@ class EditPage { } # Check image redirect - if ( $this->mTitle->getNamespace() == NS_IMAGE && + if( $this->mTitle->getNamespace() == NS_IMAGE && Title::newFromRedirect( $this->textbox1 ) instanceof Title && !$wgUser->isAllowed( 'upload' ) ) { if( $wgUser->isAnon() ) { @@ -760,7 +756,7 @@ class EditPage { } # Reintegrate metadata - if ( $this->mMetaData != '' ) $this->textbox1 .= "\n" . $this->mMetaData ; + if( $this->mMetaData != '' ) $this->textbox1 .= "\n" . $this->mMetaData ; $this->mMetaData = '' ; # Check for spam @@ -778,13 +774,13 @@ class EditPage { wfProfileOut( $fname ); return self::AS_SPAM_ERROR; } - if ( $wgFilterCallback && $wgFilterCallback( $this->mTitle, $this->textbox1, $this->section, $this->hookError, $this->summary ) ) { + if( $wgFilterCallback && $wgFilterCallback( $this->mTitle, $this->textbox1, $this->section, $this->hookError, $this->summary ) ) { # Error messages or other handling should be performed by the filter function wfProfileOut( "$fname-checks" ); wfProfileOut( $fname ); return self::AS_FILTERING; } - if ( !wfRunHooks( 'EditFilter', array( $this, $this->textbox1, $this->section, &$this->hookError, $this->summary ) ) ) { + if( !wfRunHooks( 'EditFilter', array( $this, $this->textbox1, $this->section, &$this->hookError, $this->summary ) ) ) { # Error messages etc. could be handled within the hook... wfProfileOut( "$fname-checks" ); wfProfileOut( $fname ); @@ -795,14 +791,14 @@ class EditPage { wfProfileOut( $fname ); return self::AS_HOOK_ERROR_EXPECTED; } - if ( $wgUser->isBlockedFrom( $this->mTitle, false ) ) { + if( $wgUser->isBlockedFrom( $this->mTitle, false ) ) { # Check block state against master, thus 'false'. wfProfileOut( "$fname-checks" ); wfProfileOut( $fname ); return self::AS_BLOCKED_PAGE_FOR_USER; } $this->kblength = (int)(strlen( $this->textbox1 ) / 1024); - if ( $this->kblength > $wgMaxArticleSize ) { + if( $this->kblength > $wgMaxArticleSize ) { // Error will be displayed by showEditForm() $this->tooBig = true; wfProfileOut( "$fname-checks" ); @@ -810,8 +806,8 @@ class EditPage { return self::AS_CONTENT_TOO_BIG; } - if ( !$wgUser->isAllowed('edit') ) { - if ( $wgUser->isAnon() ) { + if( !$wgUser->isAllowed('edit') ) { + if( $wgUser->isAnon() ) { wfProfileOut( "$fname-checks" ); wfProfileOut( $fname ); return self::AS_READ_ONLY_PAGE_ANON; @@ -823,12 +819,12 @@ class EditPage { } } - if ( wfReadOnly() ) { + if( wfReadOnly() ) { wfProfileOut( "$fname-checks" ); wfProfileOut( $fname ); return self::AS_READ_ONLY_PAGE; } - if ( $wgUser->pingLimiter() ) { + if( $wgUser->pingLimiter() ) { wfProfileOut( "$fname-checks" ); wfProfileOut( $fname ); return self::AS_RATE_LIMITED; @@ -836,7 +832,7 @@ class EditPage { # If the article has been deleted while editing, don't save it without # confirmation - if ( $this->wasDeletedSinceLastEdit() && !$this->recreate ) { + if( $this->wasDeletedSinceLastEdit() && !$this->recreate ) { wfProfileOut( "$fname-checks" ); wfProfileOut( $fname ); return self::AS_ARTICLE_WAS_DELETED; @@ -846,23 +842,23 @@ class EditPage { # If article is new, insert it. $aid = $this->mTitle->getArticleID( GAID_FOR_UPDATE ); - if ( 0 == $aid ) { + if( 0 == $aid ) { // Late check for create permission, just in case *PARANOIA* - if ( !$this->mTitle->userCan( 'create' ) ) { + if( !$this->mTitle->userCan( 'create' ) ) { wfDebug( "$fname: no create permission\n" ); wfProfileOut( $fname ); return self::AS_NO_CREATE_PERMISSION; } # Don't save a new article if it's blank. - if ( '' == $this->textbox1 ) { + if( '' == $this->textbox1 ) { wfProfileOut( $fname ); return self::AS_BLANK_ARTICLE; } // Run post-section-merge edit filter - if ( !wfRunHooks( 'EditFilterMerged', array( $this, $this->textbox1, &$this->hookError, $this->summary ) ) ) { + if( !wfRunHooks( 'EditFilterMerged', array( $this, $this->textbox1, &$this->hookError, $this->summary ) ) ) { # Error messages etc. could be handled within the hook... wfProfileOut( $fname ); return self::AS_HOOK_ERROR; @@ -902,7 +898,7 @@ class EditPage { } $userid = $wgUser->getId(); - if ( $this->isConflict) { + if( $this->isConflict ) { wfDebug( "EditPage::editForm conflict! getting section '$this->section' for time '$this->edittime' (article time '" . $this->mArticle->getTimestamp() . "')\n" ); $text = $this->mArticle->replaceSection( $this->section, $this->textbox1, $this->summary, $this->edittime); @@ -918,14 +914,14 @@ class EditPage { } # Suppress edit conflict with self, except for section edits where merging is required. - if ( ( $this->section == '' ) && ( 0 != $userid ) && ( $this->mArticle->getUser() == $userid ) ) { + if( ( $this->section == '' ) && ( 0 != $userid ) && ( $this->mArticle->getUser() == $userid ) ) { wfDebug( "EditPage::editForm Suppressing edit conflict, same user.\n" ); $this->isConflict = false; } else { # switch from section editing to normal editing in edit conflict - if($this->isConflict) { + if( $this->isConflict ) { # Attempt merge - if( $this->mergeChangesInto( $text ) ){ + if( $this->mergeChangesInto( $text ) ) { // Successful merge! Maybe we should tell the user the good news? $this->isConflict = false; wfDebug( "EditPage::editForm Suppressing edit conflict, successful merge.\n" ); @@ -937,7 +933,7 @@ class EditPage { } } - if ( $this->isConflict ) { + if( $this->isConflict ) { wfProfileOut( $fname ); return self::AS_CONFLICT_DETECTED; } @@ -945,7 +941,7 @@ class EditPage { $oldtext = $this->mArticle->getContent(); // Run post-section-merge edit filter - if ( !wfRunHooks( 'EditFilterMerged', array( $this, $text, &$this->hookError, $this->summary ) ) ) { + if( !wfRunHooks( 'EditFilterMerged', array( $this, $text, &$this->hookError, $this->summary ) ) ) { # Error messages etc. could be handled within the hook... wfProfileOut( $fname ); return self::AS_HOOK_ERROR; @@ -966,7 +962,7 @@ class EditPage { # And a similar thing for new sections if( $this->section == 'new' && !$this->allowBlankSummary && $wgUser->getOption( 'forceeditsummary' ) ) { - if (trim($this->summary) == '') { + if(trim($this->summary) == '') { $this->missingSummary = true; wfProfileOut( $fname ); return self::AS_SUMMARY_NEEDED; @@ -977,7 +973,7 @@ class EditPage { wfProfileIn( "$fname-sectionanchor" ); $sectionanchor = ''; if( $this->section == 'new' ) { - if ( $this->textbox1 == '' ) { + if( $this->textbox1 == '' ) { $this->missingComment = true; return self::AS_TEXTBOX_EMPTY; } @@ -995,7 +991,7 @@ class EditPage { $hasmatch = preg_match( "/^ *([=]{1,6})(.*?)(\\1) *\\n/i", $this->textbox1, $matches ); # we can't deal with anchors, includes, html etc in the header for now, # headline would need to be parsed to improve this - if($hasmatch and strlen($matches[2]) > 0) { + if( $hasmatch and strlen($matches[2]) > 0 ) { $sectionanchor = $wgParser->guessSectionNameFromWikiText( $matches[2] ); } } @@ -1010,7 +1006,7 @@ class EditPage { // Check for length errors again now that the section is merged in $this->kblength = (int)(strlen( $text ) / 1024); - if ( $this->kblength > $wgMaxArticleSize ) { + if( $this->kblength > $wgMaxArticleSize ) { $this->tooBig = true; wfProfileOut( $fname ); return self::AS_MAX_ARTICLE_SIZE_EXCEEDED; @@ -1039,7 +1035,7 @@ class EditPage { $regexes = (array)$wgSpamRegex; foreach( $regexes as $regex ) { $matches = array(); - if ( preg_match( $regex, $text, $matches ) ) { + if( preg_match( $regex, $text, $matches ) ) { return $matches[0]; } } @@ -1054,9 +1050,9 @@ class EditPage { function initialiseForm() { $this->edittime = $this->mArticle->getTimestamp(); $this->textbox1 = $this->getContent(false); - if ($this->textbox1 === false) return false; + if( $this->textbox1 === false) return false; - if ( !$this->mArticle->exists() && $this->mTitle->getNamespace() == NS_MEDIAWIKI ) + if( !$this->mArticle->exists() && $this->mTitle->getNamespace() == NS_MEDIAWIKI ) $this->textbox1 = wfMsgWeirdKey( $this->mTitle->getText() ); wfProxyCheck(); return true; @@ -1065,10 +1061,10 @@ class EditPage { function setHeaders() { global $wgOut, $wgTitle; $wgOut->setRobotPolicy( 'noindex,nofollow' ); - if ( $this->formtype == 'preview' ) { + if( $this->formtype == 'preview' ) { $wgOut->setPageTitleActionText( wfMsg( 'preview' ) ); } - if ( $this->isConflict ) { + if( $this->isConflict ) { $wgOut->setPageTitle( wfMsg( 'editconflict', $wgTitle->getPrefixedText() ) ); } elseif( $this->section != '' ) { $msg = $this->section == 'new' ? 'editingcomment' : 'editingsection'; @@ -1113,7 +1109,7 @@ class EditPage { #we parse this near the beginning so that setHeaders can do the title #setting work instead of leaving it in getPreviewText $previewOutput = ''; - if ( $this->formtype == 'preview' ) { + if( $this->formtype == 'preview' ) { $previewOutput = $this->getPreviewText(); } @@ -1122,7 +1118,7 @@ class EditPage { # Enabled article-related sidebar, toplinks, etc. $wgOut->setArticleRelated( true ); - if ( $this->isConflict ) { + if( $this->isConflict ) { $wgOut->addWikiMsg( 'explainconflict' ); $this->textbox2 = $this->textbox1; @@ -1144,7 +1140,7 @@ class EditPage { } } - if ( $this->missingComment ) { + if( $this->missingComment ) { $wgOut->wrapWikiMsg( '
$1
', 'missingcommenttext' ); } @@ -1160,10 +1156,10 @@ class EditPage { $wgOut->addWikiText( $this->hookError ); } - if ( !$this->checkUnicodeCompliantBrowser() ) { + if( !$this->checkUnicodeCompliantBrowser() ) { $wgOut->addWikiMsg( 'nonunicodebrowser' ); } - if ( isset( $this->mArticle ) && isset( $this->mArticle->mRevision ) ) { + if( isset( $this->mArticle ) && isset( $this->mArticle->mRevision ) ) { // Let sysop know that this will make private content public if saved if( !$this->mArticle->mRevision->userCan( Revision::DELETED_TEXT ) ) { @@ -1209,11 +1205,11 @@ class EditPage { $wgOut->addWikiMsg( $noticeMsg ); $wgOut->addHTML( "\n" ); } - if ( $this->mTitle->isCascadeProtected() ) { + if( $this->mTitle->isCascadeProtected() ) { # Is this page under cascading protection from some source pages? list($cascadeSources, /* $restrictions */) = $this->mTitle->getCascadeProtectionSources(); $notice = "$1\n"; - if ( count($cascadeSources) > 0 ) { + if( count($cascadeSources) > 0 ) { # Explain, and list the titles responsible foreach( $cascadeSources as $page ) { $notice .= '* [[:' . $page->getPrefixedText() . "]]\n"; @@ -1225,10 +1221,10 @@ class EditPage { $wgOut->addWikiMsg( 'titleprotectedwarning' ); } - if ( $this->kblength === false ) { + if( $this->kblength === false ) { $this->kblength = (int)(strlen( $this->textbox1 ) / 1024); } - if ( $this->tooBig || $this->kblength > $wgMaxArticleSize ) { + if( $this->tooBig || $this->kblength > $wgMaxArticleSize ) { $wgOut->addHTML( "
\n" ); $wgOut->addWikiMsg( 'longpageerror', $wgLang->formatNum( $this->kblength ), $wgLang->formatNum( $wgMaxArticleSize ) ); $wgOut->addHTML( "
\n" ); @@ -1239,7 +1235,7 @@ class EditPage { } $q = 'action='.$this->action; - #if ( "no" == $redirect ) { $q .= "&redirect=no"; } + #if( "no" == $redirect ) { $q .= "&redirect=no"; } $action = $wgTitle->escapeLocalURL( $q ); $colonSep = wfMsg( 'colon-separator' ); @@ -1254,7 +1250,7 @@ class EditPage { htmlspecialchars( wfMsg( 'newwindow' ) ); global $wgRightsText; - if ( $wgRightsText ) { + if( $wgRightsText ) { $copywarnMsg = array( 'copyrightwarning', '[[' . wfMsgForContent( 'copyrightpage' ) . ']]', $wgRightsText ); @@ -1289,7 +1285,7 @@ class EditPage { $wgOut->addHTML( $this->editFormPageTop ); - if ( $wgUser->getOption( 'previewontop' ) ) { + if( $wgUser->getOption( 'previewontop' ) ) { $this->displayPreviewArea( $previewOutput, true ); } @@ -1336,13 +1332,13 @@ class EditPage { $formattedhiddencats = $sk->formatHiddenCategories( $hiddencats ); global $wgUseMetadataEdit ; - if ( $wgUseMetadataEdit ) { + if( $wgUseMetadataEdit ) { $metadata = $this->mMetaData ; $metadata = htmlspecialchars( $wgContLang->recodeForEdit( $metadata ) ) ; $top = wfMsgWikiHtml( 'metadata_help' ); /* ToDo: Replace with clean code */ $ew = $wgUser->getOption( 'editwidth' ); - if ( $ew ) $ew = " style=\"width:100%\""; + if( $ew ) $ew = " style=\"width:100%\""; else $ew = ''; /* /ToDo */ $metadata = $top . "" ; @@ -1350,8 +1346,8 @@ class EditPage { else $metadata = "" ; $recreate = ''; - if ($this->wasDeletedSinceLastEdit()) { - if ( 'save' != $this->formtype ) { + if( $this->wasDeletedSinceLastEdit() ) { + if( 'save' != $this->formtype ) { $wgOut->addWikiMsg('deletedwhileediting'); } else { // Hide the toolbar and edit area, use can click preview to get it back @@ -1447,7 +1443,7 @@ END END ); - if ( $this->isConflict && wfRunHooks( 'EditPageBeforeConflictDiff', array( &$this, &$wgOut ) ) ) { + if( $this->isConflict && wfRunHooks( 'EditPageBeforeConflictDiff', array( &$this, &$wgOut ) ) ) { $wgOut->wrapWikiMsg( '==$1==', "yourdiff" ); $de = new DifferenceEngine( $this->mTitle ); @@ -1459,7 +1455,7 @@ END } $wgOut->addHTML( $this->editFormTextBottom ); $wgOut->addHTML( "\n" ); - if ( !$wgUser->getOption( 'previewontop' ) ) { + if( !$wgUser->getOption( 'previewontop' ) ) { $this->displayPreviewArea( $previewOutput, false ); } @@ -1526,13 +1522,13 @@ END $wgOut->addHTML( Xml::openElement( 'div', $attribs ) ); - if ( $this->formtype == 'preview' ) { + if( $this->formtype == 'preview' ) { $this->showPreview( $previewOutput ); } $wgOut->addHTML( '' ); - if ( $this->formtype == 'diff') { + if( $this->formtype == 'diff') { $this->showDiff(); } } @@ -1545,13 +1541,14 @@ END */ protected function showPreview( $text ) { global $wgOut; - - if($this->mTitle->getNamespace() == NS_CATEGORY) { + if( $this->mTitle->getNamespace() == NS_CATEGORY) { $this->mArticle->openShowCategory(); } + # This hook seems slightly odd here, but makes things more + # consistent for extensions. wfRunHooks( 'OutputPageBeforeHTML',array( &$wgOut, &$text ) ); $wgOut->addHTML( $text ); - if($this->mTitle->getNamespace() == NS_CATEGORY) { + if( $this->mTitle->getNamespace() == NS_CATEGORY ) { $this->mArticle->closeShowCategory(); } } @@ -1604,10 +1601,8 @@ END $fname, array( 'LIMIT' => 1, 'ORDER BY' => 'log_timestamp DESC' ) ); - if($dbr->numRows($res) == 1) { - while ( $x = $dbr->fetchObject ( $res ) ) - $data = $x; - $dbr->freeResult ( $res ) ; + if( $dbr->numRows($res) ) { + $data = $dbr->fetchObject( $res ); } else { $data = null; } @@ -1623,8 +1618,8 @@ END wfProfileIn( __METHOD__ ); - if ( $this->mTriedSave && !$this->mTokenOk ) { - if ( $this->mTokenOkExceptSuffix ) { + if( $this->mTriedSave && !$this->mTokenOk ) { + if( $this->mTokenOkExceptSuffix ) { $note = wfMsg( 'token_suffix_mismatch' ); } else { $note = wfMsg( 'session_fail_preview' ); @@ -1647,7 +1642,7 @@ END # don't parse user css/js, show message about preview # XXX: stupid php bug won't let us use $wgTitle->isCssJsSubpage() here - if ( $this->isCssJsSubpage ) { + if( $this->isCssJsSubpage ) { if(preg_match("/\\.css$/", $this->mTitle->getText() ) ) { $previewtext = wfMsg('usercsspreview'); } else if(preg_match("/\\.js$/", $this->mTitle->getText() ) ) { @@ -1664,16 +1659,16 @@ END # If we're adding a comment, we need to show the # summary as the headline - if($this->section=="new" && $this->summary!="") { + if( $this->section=="new" && $this->summary!="" ) { $toparse="== {$this->summary} ==\n\n".$toparse; } - if ( $this->mMetaData != "" ) $toparse .= "\n" . $this->mMetaData; + if( $this->mMetaData != "" ) $toparse .= "\n" . $this->mMetaData; // Parse mediawiki messages with correct target language - if ( $this->mTitle->getNamespace() == NS_MEDIAWIKI ) { + if( $this->mTitle->getNamespace() == NS_MEDIAWIKI ) { $pos = strrpos( $this->mTitle->getText(), '/' ); - if ( $pos !== false ) { + if( $pos !== false ) { $code = substr( $this->mTitle->getText(), $pos+1 ); switch ($code) { case $wgLang->getCode(): @@ -1697,14 +1692,14 @@ END $this->mParserOutput = $parserOutput; $wgOut->addParserOutputNoText( $parserOutput ); - if ( count( $parserOutput->getWarnings() ) ) { + if( count( $parserOutput->getWarnings() ) ) { $note .= "\n\n" . implode( "\n\n", $parserOutput->getWarnings() ); } } $previewhead = '

' . htmlspecialchars( wfMsg( 'preview' ) ) . "

\n" . "
" . $wgOut->parse( $note ) . "
\n"; - if ( $this->isConflict ) { + if( $this->isConflict ) { $previewhead .='

' . htmlspecialchars( wfMsg( 'previewconflict' ) ) . "

\n"; } @@ -1803,7 +1798,7 @@ END $wgOut->addHtml( '
' ); $wgOut->addWikiMsg( 'spamprotectiontext' ); - if ( $match ) + if( $match ) $wgOut->addWikiMsg( 'spamprotectionmatch', wfEscapeWikiText( $match ) ); $wgOut->addHtml( '
' ); @@ -1838,7 +1833,7 @@ END $currentText = $currentRevision->getText(); $result = ''; - if( wfMerge( $baseText, $editText, $currentText, $result ) ){ + if( wfMerge( $baseText, $editText, $currentText, $result ) ) { $editText = $result; wfProfileOut( $fname ); return true; @@ -1863,7 +1858,7 @@ END } $currentbrowser = $_SERVER["HTTP_USER_AGENT"]; foreach ( $wgBrowserBlackList as $browser ) { - if ( preg_match($browser, $currentbrowser) ) { + if( preg_match($browser, $currentbrowser) ) { return false; } } @@ -2056,7 +2051,7 @@ END $checkboxes['minor'] = ''; $minorLabel = wfMsgExt('minoredit', array('parseinline')); - if ( $wgUser->isAllowed('minoredit') ) { + if( $wgUser->isAllowed('minoredit') ) { $attribs = array( 'tabindex' => ++$tabindex, 'accesskey' => wfMsg( 'accesskey-minoredit' ), @@ -2069,7 +2064,7 @@ END $watchLabel = wfMsgExt('watchthis', array('parseinline')); $checkboxes['watch'] = ''; - if ( $wgUser->isLoggedIn() ) { + if( $wgUser->isLoggedIn() ) { $attribs = array( 'tabindex' => ++$tabindex, 'accesskey' => wfMsg( 'accesskey-watch' ), @@ -2107,7 +2102,7 @@ END $buttons['save'] = Xml::element('input', $temp, ''); ++$tabindex; // use the same for preview and live preview - if ( $wgLivePreview && $wgUser->getOption( 'uselivepreview' ) ) { + if( $wgLivePreview && $wgUser->getOption( 'uselivepreview' ) ) { $temp = array( 'id' => 'wpPreview', 'name' => 'wpPreview', @@ -2205,7 +2200,7 @@ END $newtext = $this->mArticle->preSaveTransform( $newtext ); $oldtitle = wfMsgExt( 'currentrev', array('parseinline') ); $newtitle = wfMsgExt( 'yourtext', array('parseinline') ); - if ( $oldtext !== false || $newtext != '' ) { + if( $oldtext !== false || $newtext != '' ) { $de = new DifferenceEngine( $this->mTitle ); $de->setText( $oldtext, $newtext ); $difftext = $de->getDiff( $oldtitle, $newtitle ); @@ -2319,7 +2314,7 @@ END // Do some sanity checks. These aren't needed for reversability, // but should help keep the breakage down if the editor // breaks one of the entities whilst editing. - if ((substr($invalue,$i,1)==";") and (strlen($hexstring) <= 6)) { + if( (substr($invalue,$i,1)==";") and (strlen($hexstring) <= 6) ) { $codepoint = hexdec($hexstring); $result .= codepointToUtf8( $codepoint ); } else { @@ -2436,7 +2431,7 @@ END } function getBaseRevision() { - if ($this->mBaseRevision == false) { + if( $this->mBaseRevision == false ) { $db = wfGetDB( DB_MASTER ); $baseRevision = Revision::loadFromTimestamp( $db, $this->mTitle, $this->edittime ); -- 2.20.1