X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FTitle.php;h=b64144855eb74b544013b1978d874f215e911219;hb=64281b6c524f54863174768c025dfe698948fc3f;hp=8c5bbdc221f3f853f7874b04f48b45f85a8e19bb;hpb=5264862bc1224fbb2eec487155aa0253af1fa777;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/Title.php b/includes/Title.php index 8c5bbdc221..b64144855e 100644 --- a/includes/Title.php +++ b/includes/Title.php @@ -178,8 +178,8 @@ class Title implements LinkTarget, IDBAccessObject { /** @var bool Whether a page has any subpages */ private $mHasSubpages; - /** @var bool The (string) language code of the page's language and content code. */ - private $mPageLanguage = false; + /** @var array|null The (string) language code of the page's language and content code. */ + private $mPageLanguage; /** @var string|bool|null The page language code from the database, null if not saved in * the database or false if not loaded, yet. @@ -2068,16 +2068,18 @@ class Title implements LinkTarget, IDBAccessObject { $url = false; $matches = []; - if ( !empty( $wgActionPaths ) + $articlePaths = PathRouter::getActionPaths( $wgActionPaths, $wgArticlePath ); + + if ( $articlePaths && preg_match( '/^(.*&|)action=([^&]*)(&(.*)|)$/', $query, $matches ) ) { $action = urldecode( $matches[2] ); - if ( isset( $wgActionPaths[$action] ) ) { + if ( isset( $articlePaths[$action] ) ) { $query = $matches[1]; if ( isset( $matches[4] ) ) { $query .= $matches[4]; } - $url = str_replace( '$1', $dbkey, $wgActionPaths[$action] ); + $url = str_replace( '$1', $dbkey, $articlePaths[$action] ); if ( $query != '' ) { $url = wfAppendQuery( $url, $query ); } @@ -2955,7 +2957,7 @@ class Title implements LinkTarget, IDBAccessObject { } $dbr = wfGetDB( DB_REPLICA ); - $conds['page_namespace'] = $this->mNamespace; + $conds = [ 'page_namespace' => $this->mNamespace ]; $conds[] = 'page_title ' . $dbr->buildLike( $this->mDbkeyform . '/', $dbr->anyString() ); $options = []; if ( $limit > -1 ) { @@ -3163,7 +3165,7 @@ class Title implements LinkTarget, IDBAccessObject { $this->mLatestID = false; $this->mContentModel = false; $this->mEstimateRevisions = null; - $this->mPageLanguage = false; + $this->mPageLanguage = null; $this->mDbPageLanguage = false; $this->mIsBigDeletion = null; } @@ -3212,6 +3214,7 @@ class Title implements LinkTarget, IDBAccessObject { // splitTitleString method, but the only implementation (MediaWikiTitleCodec) does /** @var MediaWikiTitleCodec $titleCodec */ $titleCodec = MediaWikiServices::getInstance()->getTitleParser(); + '@phan-var MediaWikiTitleCodec $titleCodec'; // MalformedTitleException can be thrown here $parts = $titleCodec->splitTitleString( $this->mDbkeyform, $this->mDefaultNamespace ); @@ -3532,7 +3535,7 @@ class Title implements LinkTarget, IDBAccessObject { $method = $auth ? 'moveSubpagesIfAllowed' : 'moveSubpages'; $result = $mp->$method( $wgUser, $reason, $createRedirect, $changeTags ); - if ( !$result->isOk() ) { + if ( !$result->isOK() ) { return $result->getErrorsArray(); }