# tents of 'pagetitle-view-mainpage' instead of the default (if
# that's not empty).
# This message always exists because it is in the i18n files
- if ( $this->mTitle->equals( Title::newMainPage() )
- && ( $m = wfMsgForContent( 'pagetitle-view-mainpage' ) ) !== '' )
- {
- $wgOut->setHTMLTitle( $m );
+ if ( $this->mTitle->equals( Title::newMainPage() ) ) {
+ $msg = wfMessage( 'pagetitle-view-mainpage' )->inContentLanguage();
+ if ( !$msg->isDisabled() ) {
+ $wgOut->setHTMLTitle( $msg->title( $this->mTitle )->text() );
+ }
}
# Now that we've filled $this->mParserOutput, we know whether
$nextRedirect = $wgStylePath . '/common/images/nextredirect' . $imageDir . '.png';
$alt = $wgContLang->isRTL() ? '←' : '→';
// Automatically append redirect=no to each link, since most of them are redirect pages themselves.
- // FIXME: where this happens?
foreach ( $target as $rt ) {
$link .= Html::element( 'img', array( 'src' => $nextRedirect, 'alt' => $alt ) );
if ( $forceKnown ) {
- $link .= $sk->linkKnown( $rt, htmlspecialchars( $rt->getFullText() ) );
+ $link .= $sk->linkKnown( $rt, htmlspecialchars( $rt->getFullText(), array(), array( 'redirect' => 'no' ) ) );
} else {
- $link .= $sk->link( $rt, htmlspecialchars( $rt->getFullText() ) );
+ $link .= $sk->link( $rt, htmlspecialchars( $rt->getFullText() ), array(), array( 'redirect' => 'no' ) );
}
}
if ( $affected ) {
$newid = $dbw->insertId();
- $this->mTitle->resetArticleId( $newid );
+ $this->mTitle->resetArticleID( $newid );
}
wfProfileOut( __METHOD__ );
*
* @param $dbw DatabaseBase: object
* @param $revision Revision: For ID number, and text used to set
- length and redirect status fields
+ length and redirect status fields
* @param $lastRevision Integer: if given, will not overwrite the page field
* when different from the currently set value.
* Giving 0 indicates the new page flag should be set
// Delete if changing from redirect to non-redirect
$isRedirect = !is_null( $redirectTitle );
- if ( $isRedirect || is_null( $lastRevIsRedirect ) || $lastRevIsRedirect !== $isRedirect ) {
- wfProfileIn( __METHOD__ );
- if ( $isRedirect ) {
- $this->insertRedirectEntry( $redirectTitle );
- } else {
- // This is not a redirect, remove row from redirect table
- $where = array( 'rd_from' => $this->getId() );
- $dbw->delete( 'redirect', $where, __METHOD__ );
- }
-
- if ( $this->getTitle()->getNamespace() == NS_FILE ) {
- RepoGroup::singleton()->getLocalRepo()->invalidateImageRedirect( $this->getTitle() );
- }
- wfProfileOut( __METHOD__ );
+ if ( !$isRedirect && !is_null( $lastRevIsRedirect ) && $lastRevIsRedirect === $isRedirect ) {
+ return true;
+ }
+
+ wfProfileIn( __METHOD__ );
+ if ( $isRedirect ) {
+ $this->insertRedirectEntry( $redirectTitle );
+ } else {
+ // This is not a redirect, remove row from redirect table
+ $where = array( 'rd_from' => $this->getId() );
+ $dbw->delete( 'redirect', $where, __METHOD__ );
+ }
- return ( $dbw->affectedRows() != 0 );
+ if ( $this->getTitle()->getNamespace() == NS_FILE ) {
+ RepoGroup::singleton()->getLocalRepo()->invalidateImageRedirect( $this->getTitle() );
}
+ wfProfileOut( __METHOD__ );
- return true;
+ return ( $dbw->affectedRows() != 0 );
}
/**
if ( !$rev ) {
wfDebug( "Article::replaceSection asked for bogus section (page: " .
$this->getId() . "; section: $section; edittime: $edittime)\n" );
+ wfProfileOut( __METHOD__ );
return null;
}
$flags & EDIT_MINOR, null, null, &$flags, &$status ) ) )
{
wfDebug( __METHOD__ . ": ArticleSave hook aborted save!\n" );
- wfProfileOut( __METHOD__ );
if ( $status->isOK() ) {
$status->fatal( 'edit-hook-aborted' );
}
+ wfProfileOut( __METHOD__ );
return $status;
}
$revisionId = $revision->insertOn( $dbw );
$this->mTitle->resetArticleID( $newid );
+ # Update the LinkCache. Resetting the Title ArticleID means it will rely on having that already cached (FIXME?)
+ LinkCache::singleton()->addGoodLinkObj( $newid, $this->mTitle, strlen( $text ), (bool)Title::newFromRedirect( $text ), $revisionId );
# Update the page record with revision data
$this->updateRevisionOn( $dbw, $revision, 0 );
/**
* Add this page to $wgUser's watchlist
+ *
+ * This is safe to be called multiple times
+ *
* @return bool true on successful watch operation
*/
public function doWatch() {
$parserOptions = new ParserOptions( $user );
$parserOptions->setTidy( true );
$parserOptions->enableLimitReport();
-
+
if ( $canonical ) {
$parserOptions->setUserLang( $wgLanguageCode ); # Must be set explicitely
return $parserOptions;
* @since 1.16 (r52326) for LiquidThreads
*
* @param $oldid mixed integer Revision ID or null
- * @return ParserOutput
+ * @return ParserOutput or false if the given revsion ID is not found
*/
public function getParserOutput( $oldid = null ) {
global $wgEnableParserCache, $wgUser;
wfIncrStats( 'pcache_miss_stub' );
}
- $parserOutput = false;
if ( $useParserCache ) {
$parserOutput = ParserCache::singleton()->get( $this, $this->getParserOptions() );
+ if ( $parserOutput !== false ) {
+ return $parserOutput;
+ }
}
- if ( $parserOutput === false ) {
- // Cache miss; parse and output it.
- $rev = Revision::newFromTitle( $this->getTitle(), $oldid );
-
- return $this->getOutputFromWikitext( $rev->getText(), $useParserCache );
+ // Cache miss; parse and output it.
+ if ( $oldid === null ) {
+ $text = $this->getRawText();
} else {
- return $parserOutput;
+ $rev = Revision::newFromTitle( $this->getTitle(), $oldid );
+ if ( $rev === null ) {
+ return false;
+ }
+ $text = $rev->getText();
}
+
+ return $this->getOutputFromWikitext( $text, $useParserCache );
}
}