wfProfileIn( __METHOD__ );
# Get variables from query string :P
$section = $wgRequest->getVal( 'section' );
-
- $preload = $wgRequest->getVal( 'preload',
+
+ $preload = $wgRequest->getVal( 'preload',
// Custom preload text for new sections
$section === 'new' ? 'MediaWiki:addsection-preload' : '' );
$undoafter = $wgRequest->getVal( 'undoafter' );
if ( $this->mTitle->getNamespace() == NS_MEDIAWIKI ) {
# If this is a system message, get the default text.
list( $message, $lang ) = $wgMessageCache->figureMessage( $wgContLang->lcfirst( $this->mTitle->getText() ) );
- $wgMessageCache->loadAllMessages( $lang );
$text = wfMsgGetKey( $message, false, $lang, false );
if( wfEmptyMsg( $message, $text ) )
$text = $this->getPreloadedText( $preload );
}
$wgOut->addScriptFile( 'edit.js' );
-
+
if ( $wgUser->getOption( 'uselivepreview', false ) ) {
$wgOut->includeJQuery();
$wgOut->addScriptFile( 'preview.js' );
/**
* Does this EditPage class support section editing?
* This is used by EditPage subclasses to indicate their ui cannot handle section edits
- *
+ *
* @return bool
*/
protected function isSectionEditSupported() {
* This is used by EditPage subclasses when simply customizing the action
* variable in the constructor is not enough. This can be used when the
* EditPage lives inside of a Special page rather than a custom page action.
- *
+ *
* @param $title Title object for which is being edited (where we go to for &action= links)
* @return string
*/
* posted form to be placed in $this->textbox1, if using customized input
* this method should be overrided and return the page text that will be used
* for saving, preview parsing and so on...
- *
+ *
* @param $request WebRequest
*/
protected function importContentFormData( &$request ) {
* @return one of the constants describing the result
*/
function internalAttemptSave( &$result, $bot = false ) {
- global $wgFilterCallback, $wgUser, $wgOut, $wgParser;
+ global $wgFilterCallback, $wgUser, $wgParser;
global $wgMaxArticleSize;
wfProfileIn( __METHOD__ );
return self::AS_TEXTBOX_EMPTY;
}
if ( $this->summary != '' ) {
- $sectionanchor = $wgParser->guessSectionNameFromWikiText( $this->summary );
+ $sectionanchor = $wgParser->guessLegacySectionNameFromWikiText( $this->summary );
# This is a new section, so create a link to the new section
# in the revision summary.
$cleanSummary = $wgParser->stripSectionName( $this->summary );
# 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 ) {
- $sectionanchor = $wgParser->guessSectionNameFromWikiText( $matches[2] );
+ $sectionanchor = $wgParser->guessLegacySectionNameFromWikiText( $matches[2] );
}
}
wfProfileOut( __METHOD__ . '-sectionanchor' );
# Already watched
$this->watchthis = true;
}
- if ( $wgUser->getOption( 'minordefault' ) ) $this->minoredit = true;
if ( $this->textbox1 === false ) return false;
wfProxyCheck();
return true;
}
$wgOut->addHTML( $this->editFormTextBeforeContent );
-
+
if ( $this->isConflict ) {
// In an edit conflict bypass the overrideable content form method
// and fallback to the raw wpTextbox1 since editconflicts can't be
if ( $this->isConflict )
$this->showConflict();
-
+
$wgOut->addHTML( $this->editFormTextBottom );
$wgOut->addHTML( "</form>\n" );
if ( !$wgUser->getOption( 'previewontop' ) ) {
wfProfileOut( __METHOD__ );
}
-
+
protected function showHeader() {
global $wgOut, $wgUser, $wgTitle, $wgMaxArticleSize, $wgLang;
if ( $this->isConflict ) {
* Note that you do not need to worry about the label's for=, it will be
* inferred by the id given to the input. You can remove them both by
* passing array( 'id' => false ) to $userInputAttrs.
- *
+ *
* @param $summary The value of the summary input
* @param $labelText The html to place inside the label
* @param $inputAttrs An array of attrs to use on the input
* @param $spanLabelAttrs An array of attrs to use on the span inside the label
- *
+ *
* @return array An array in the format array( $label, $input )
*/
function getSummaryInput($summary = "", $labelText = null, $inputAttrs = null, $spanLabelAttrs = null) {
protected function getSummaryPreview( $isSubjectPreview, $summary = "" ) {
if ( !$summary || ( !$this->preview && !$this->diff ) )
return "";
-
+
global $wgParser, $wgUser;
$sk = $wgUser->getSkin();
-
+
if ( $isSubjectPreview )
$summary = wfMsgForContent( 'newsectionsummary', $wgParser->stripSectionName( $summary ) );
if ( !$this->checkUnicodeCompliantBrowser() )
$wgOut->addHTML(Xml::hidden( 'safemode', '1' ));
}
-
+
protected function showFormAfterText() {
global $wgOut, $wgUser;
/**
* be it a form, or simply wpTextbox1 with a modified content that will be
* reverse modified when extracted from the post data.
* Note that this is basically the inverse for importContentFormData
- *
+ *
* @param $request WebRequest
*/
protected function showContentForm() {
* Method to output wpTextbox1
* The $textoverride method can be used by subclasses overriding showContentForm
* to pass back to this method.
- *
+ *
* @param $customAttribs An array of html attributes to use in the textarea
* @param $textoverride String: optional text to override $this->textarea1 with
*/
$classes[] = $attribs['class'];
$attribs['class'] = implode( ' ', $classes );
}
-
+
$this->showTextbox( isset($textoverride) ? $textoverride : $this->textbox1, 'wpTextbox1', $attribs );
}
$attribs = $customAttribs + array(
'accesskey' => ',',
'id' => $name,
- 'cols' => $wgUser->getIntOption( 'cols' ),
+ 'cols' => $wgUser->getIntOption( 'cols' ),
'rows' => $wgUser->getIntOption( 'rows' ),
'style' => '' // avoid php notices when appending preferences (appending allows customAttribs['style'] to still work
);
* Give a chance for site and per-namespace customizations of
* terms of service summary link that might exist separately
* from the copyright notice.
- *
+ *
* This will display between the save button and the edit tools,
* so should remain short!
*/
$wgOut->addWikiMsgArray( 'edittools', array(), array( 'content' ) );
$wgOut->addHTML( '</div>' );
}
-
+
protected function getCopywarn() {
global $wgRightsText;
if ( $wgRightsText ) {
}
// Allow for site and per-namespace customization of contribution/copyright notice.
wfRunHooks( 'EditPageCopyrightWarning', array( $this->mTitle, &$copywarnMsg ) );
-
+
return "<div id=\"editpage-copywarn\">\n" . call_user_func_array("wfMsgNoTrans", $copywarnMsg) . "\n</div>";
}
-
+
protected function showStandardInputs( &$tabindex = 2 ) {
global $wgOut, $wgUser;
$wgOut->addHTML( "<div class='editOptions'>\n" );
* @return string
*/
function getPreviewText() {
- global $wgOut, $wgUser, $wgTitle, $wgParser, $wgLang, $wgContLang, $wgMessageCache;
+ global $wgOut, $wgUser, $wgParser, $wgMessageCache;
wfProfileIn( __METHOD__ );
*
* @param $match Text which triggered one or more filters
*/
- function spamPage( $match = false ) {
+ static function spamPage( $match = false ) {
global $wgOut, $wgTitle;
$wgOut->setPageTitle( wfMsg( 'spamprotectiontitle' ) );
$wgOut->addHTML( '<div id="spamprotected">' );
$wgOut->addWikiMsg( 'spamprotectiontext' );
- if ( $match )
+ if ( $match ) {
$wgOut->addWikiMsg( 'spamprotectionmatch', wfEscapeWikiText( $match ) );
+ }
$wgOut->addHTML( '</div>' );
$wgOut->returnToMain( false, $wgTitle );
);
$checkboxes['minor'] =
Xml::check( 'wpMinoredit', $checked['minor'], $attribs ) .
- " <label for='wpMinoredit'" . $skin->tooltip( 'minoredit', 'withaccess' ) . ">{$minorLabel}</label>";
+ " <label for='wpMinoredit' id='mw-editpage-minoredit'" . $skin->tooltip( 'minoredit', 'withaccess' ) . ">{$minorLabel}</label>";
}
$watchLabel = wfMsgExt( 'watchthis', array( 'parseinline' ) );
);
$checkboxes['watch'] =
Xml::check( 'wpWatchthis', $checked['watch'], $attribs ) .
- " <label for='wpWatchthis'" . $skin->tooltip( 'watch', 'withaccess' ) . ">{$watchLabel}</label>";
+ " <label for='wpWatchthis' id='mw-editpage-watch'" . $skin->tooltip( 'watch', 'withaccess' ) . ">{$watchLabel}</label>";
}
wfRunHooks( 'EditPageBeforeEditChecks', array( &$this, &$checkboxes, &$tabindex ) );
return $checkboxes;
return false;
case self::AS_SPAM_ERROR:
- $this->spamPage( $resultDetails['spam'] );
+ self::spamPage( $resultDetails['spam'] );
return false;
case self::AS_BLOCKED_PAGE_FOR_USER:
} else {
return $this->mBaseRevision;
}
- }
+ }
}