X-Git-Url: http://git.cyclocoop.org/%28?a=blobdiff_plain;f=includes%2FTitle.php;h=849707e38b91bb11191bddc4941d9843d41a1994;hb=0a08a3144b46d6f1217eb792bd7b464711c71a22;hp=f5904e2a05982c80fd8dfa5f5c04a01f9887068d;hpb=51ef9b4337bbfdcadb960ffe4c1bff286208d188;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/Title.php b/includes/Title.php index f5904e2a05..849707e38b 100644 --- a/includes/Title.php +++ b/includes/Title.php @@ -38,7 +38,7 @@ use MediaWiki\MediaWikiServices; */ class Title implements LinkTarget, IDBAccessObject { /** @var MapCacheLRU */ - static private $titleCache = null; + private static $titleCache = null; /** * Title::newFromText maintains a cache to avoid expensive re-normalization of @@ -205,7 +205,7 @@ class Title implements LinkTarget, IDBAccessObject { } /** - * @access protected + * @protected */ function __construct() { } @@ -767,23 +767,6 @@ class Title implements LinkTarget, IDBAccessObject { return $name; } - /** - * Escape a text fragment, say from a link, for a URL - * - * @deprecated since 1.30, use Sanitizer::escapeIdForLink() or escapeIdForExternalInterwiki() - * - * @param string $fragment Containing a URL or link fragment (after the "#") - * @return string Escaped string - */ - static function escapeFragmentForURL( $fragment ) { - wfDeprecated( __METHOD__, '1.30' ); - # Note that we don't urlencode the fragment. urlencoded Unicode - # fragments appear not to work in IE (at least up to 7) or in at least - # one version of Opera 9.x. The W3C validator, for one, doesn't seem - # to care if they aren't encoded. - return Sanitizer::escapeId( $fragment, 'noninitial' ); - } - /** * Callback for usort() to do title sorts by (namespace, title) * @@ -1071,17 +1054,6 @@ class Title implements LinkTarget, IDBAccessObject { getNsText( MWNamespace::getTalk( $this->mNamespace ) ); } - /** - * Can this title have a corresponding talk page? - * - * @deprecated since 1.30, use canHaveTalkPage() instead. - * - * @return bool True if this title either is a talk page or can have a talk page associated. - */ - public function canTalk() { - return $this->canHaveTalkPage(); - } - /** * Can this title have a corresponding talk page? * @@ -1308,17 +1280,6 @@ class Title implements LinkTarget, IDBAccessObject { ); } - /** - * @return bool - * @deprecated Since 1.31; use ::isSiteConfigPage() instead (which also checks for JSON pages) - */ - public function isCssOrJsPage() { - wfDeprecated( __METHOD__, '1.31' ); - return ( NS_MEDIAWIKI == $this->mNamespace - && ( $this->hasContentModel( CONTENT_MODEL_CSS ) - || $this->hasContentModel( CONTENT_MODEL_JAVASCRIPT ) ) ); - } - /** * Is this a "config" (.css, .json, or .js) sub-page of a user page? * @@ -1333,17 +1294,6 @@ class Title implements LinkTarget, IDBAccessObject { ); } - /** - * @return bool - * @deprecated Since 1.31; use ::isUserConfigPage() instead (which also checks for JSON pages) - */ - public function isCssJsSubpage() { - wfDeprecated( __METHOD__, '1.31' ); - return ( NS_USER == $this->mNamespace && $this->isSubpage() - && ( $this->hasContentModel( CONTENT_MODEL_CSS ) - || $this->hasContentModel( CONTENT_MODEL_JAVASCRIPT ) ) ); - } - /** * Trim down a .css, .json, or .js subpage title to get the corresponding skin name * @@ -1360,15 +1310,6 @@ class Title implements LinkTarget, IDBAccessObject { return substr( $subpage, 0, $lastdot ); } - /** - * @deprecated Since 1.31; use ::getSkinFromConfigSubpage() instead - * @return string Containing skin name from .css, .json, or .js subpage title - */ - public function getSkinFromCssJsSubpage() { - wfDeprecated( __METHOD__, '1.31' ); - return $this->getSkinFromConfigSubpage(); - } - /** * Is this a CSS "config" sub-page of a user page? * @@ -1383,15 +1324,6 @@ class Title implements LinkTarget, IDBAccessObject { ); } - /** - * @deprecated Since 1.31; use ::isUserCssConfigPage() - * @return bool - */ - public function isCssSubpage() { - wfDeprecated( __METHOD__, '1.31' ); - return $this->isUserCssConfigPage(); - } - /** * Is this a JSON "config" sub-page of a user page? * @@ -1420,15 +1352,6 @@ class Title implements LinkTarget, IDBAccessObject { ); } - /** - * @deprecated Since 1.31; use ::isUserJsConfigPage() - * @return bool - */ - public function isJsSubpage() { - wfDeprecated( __METHOD__, '1.31' ); - return $this->isUserJsConfigPage(); - } - /** * Is this a sitewide CSS "config" page? * @@ -2703,10 +2626,11 @@ class Title implements LinkTarget, IDBAccessObject { } // Determine if the user is blocked from this action on this page. - // What gets passed into this method is a user right, not an action nmae. + // What gets passed into this method is a user right, not an action name. // There is no way to instantiate an action by restriction. However, this // will get the action where the restriction is the same. This may result // in actions being blocked that shouldn't be. + $actionObj = null; if ( Action::exists( $action ) ) { // Clone the title to prevent mutations to this object which is done // by Title::loadFromRow() in WikiPage::loadFromRow(). @@ -2714,14 +2638,16 @@ class Title implements LinkTarget, IDBAccessObject { // Creating an action will perform several database queries to ensure that // the action has not been overridden by the content type. // @todo FIXME: Pass the relevant context into this function. - $action = Action::factory( $action, $page, RequestContext::getMain() ); - } else { - $action = null; + $actionObj = Action::factory( $action, $page, RequestContext::getMain() ); + // Ensure that the retrieved action matches the restriction. + if ( $actionObj && $actionObj->getRestriction() !== $action ) { + $actionObj = null; + } } // If no action object is returned, assume that the action requires unblock // which is the default. - if ( !$action || $action->requiresUnblock() ) { + if ( !$actionObj || $actionObj->requiresUnblock() ) { if ( $user->isBlockedFrom( $this, $useReplica ) ) { // @todo FIXME: Pass the relevant context into this function. $errors[] = $block @@ -4017,13 +3943,6 @@ class Title implements LinkTarget, IDBAccessObject { return $urls; } - /** - * @deprecated since 1.27 use getCdnUrls() - */ - public function getSquidURLs() { - return $this->getCdnUrls(); - } - /** * Purge all applicable CDN URLs */