return null;
}
- /**
- * Get the text of the current revision. No side-effects...
- *
- * @param int $audience One of:
- * Revision::FOR_PUBLIC to be displayed to all users
- * Revision::FOR_THIS_USER to be displayed to the given user
- * Revision::RAW get the text regardless of permissions
- * @param User $user User object to check for, only if FOR_THIS_USER is passed
- * to the $audience parameter
- * @return string|bool The text of the current revision
- * @deprecated since 1.21, getContent() should be used instead.
- */
- public function getText( $audience = Revision::FOR_PUBLIC, User $user = null ) {
- wfDeprecated( __METHOD__, '1.21' );
-
- $this->loadLastEdit();
- if ( $this->mLastRevision ) {
- return $this->mLastRevision->getText( $audience, $user );
- }
- return false;
- }
-
/**
* @return string MW timestamp of last article revision
*/
}
if ( $this->mTitle->getNamespace() == NS_MEDIAWIKI ) {
- $messageCache = MessageCache::singleton();
- $messageCache->updateMessageOverride( $this->mTitle, $this->getContent() );
+ // @todo move this logic to MessageCache
+ if ( $this->exists() ) {
+ // NOTE: use transclusion text for messages.
+ // This is consistent with MessageCache::getMsgFromNamespace()
+
+ $content = $this->getContent();
+ $text = $content === null ? null : $content->getWikitextForTransclusion();
+
+ if ( $text === null ) {
+ $text = false;
+ }
+ } else {
+ $text = false;
+ }
+
+ MessageCache::singleton()->replace( $this->mTitle->getDBkey(), $text );
}
return true;
return $options;
}
- /**
- * Prepare text which is about to be saved.
- * Returns a stdClass with source, pst and output members
- *
- * @param string $text
- * @param int|null $revid
- * @param User|null $user
- * @deprecated since 1.21: use prepareContentForEdit instead.
- * @return object
- */
- public function prepareTextForEdit( $text, $revid = null, User $user = null ) {
- wfDeprecated( __METHOD__, '1.21' );
- $content = ContentHandler::makeContent( $text, $this->getTitle() );
- return $this->prepareContentForEdit( $content, $revid, $user );
- }
-
/**
* Prepare content which is about to be saved.
* Returns a stdClass with source, pst and output members
* - 'no-change': don't update the article count, ever
*/
public function doEditUpdates( Revision $revision, User $user, array $options = [] ) {
- global $wgRCWatchCategoryMembership;
+ global $wgRCWatchCategoryMembership, $wgContLang;
$options += [
'changed' => true,
}
if ( $this->mTitle->getNamespace() == NS_MEDIAWIKI ) {
- MessageCache::singleton()->updateMessageOverride( $this->mTitle, $content );
+ // XXX: could skip pseudo-messages like js/css here, based on content model.
+ $msgtext = $content ? $content->getWikitextForTransclusion() : null;
+ if ( $msgtext === false || $msgtext === null ) {
+ $msgtext = '';
+ }
+
+ MessageCache::singleton()->replace( $shortTitle, $msgtext );
+
+ if ( $wgContLang->hasVariants() ) {
+ $wgContLang->updateConversionTable( $this->mTitle );
+ }
}
if ( $options['created'] ) {
* @param Title $title
*/
public static function onArticleDelete( Title $title ) {
+ global $wgContLang;
+
// Update existence markers on article/talk tabs...
$other = $title->getOtherPage();
// Messages
if ( $title->getNamespace() == NS_MEDIAWIKI ) {
- MessageCache::singleton()->updateMessageOverride( $title, null );
+ MessageCache::singleton()->replace( $title->getDBkey(), false );
+
+ if ( $wgContLang->hasVariants() ) {
+ $wgContLang->updateConversionTable( $title );
+ }
}
// Images
return $result;
}
- /**
- * Return an applicable autosummary if one exists for the given edit.
- * @param string|null $oldtext The previous text of the page.
- * @param string|null $newtext The submitted text of the page.
- * @param int $flags Bitmask: a bitmask of flags submitted for the edit.
- * @return string An appropriate autosummary, or an empty string.
- *
- * @deprecated since 1.21, use ContentHandler::getAutosummary() instead
- */
- public static function getAutosummary( $oldtext, $newtext, $flags ) {
- // NOTE: stub for backwards-compatibility. assumes the given text is
- // wikitext. will break horribly if it isn't.
-
- wfDeprecated( __METHOD__, '1.21' );
-
- $handler = ContentHandler::getForModelID( CONTENT_MODEL_WIKITEXT );
- $oldContent = is_null( $oldtext ) ? null : $handler->unserializeContent( $oldtext );
- $newContent = is_null( $newtext ) ? null : $handler->unserializeContent( $newtext );
-
- return $handler->getAutosummary( $oldContent, $newContent, $flags );
- }
-
/**
* Auto-generates a deletion reason
*
public function isLocal() {
return true;
}
+
+ /**
+ * The display name for the site this content
+ * come from. If a subclass overrides isLocal(),
+ * this could return something other than the
+ * current site name
+ *
+ * @since 1.28
+ * @return string
+ */
+ public function getWikiDisplayName() {
+ global $wgSitename;
+ return $wgSitename;
+ }
+
+ /**
+ * Get the source URL for the content on this page,
+ * typically the canonical URL, but may be a remote
+ * link if the content comes from another site
+ *
+ * @since 1.28
+ * @return string
+ */
+ public function getSourceURL() {
+ return $this->getTitle()->getCanonicalURL();
+ }
}