X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=includes%2FTitle.php;h=ce0b9595c5d8bf72540ab8b4eda7612538e8a2e2;hb=a7bf7f5b293755044c1ede43537f5c393dba09c1;hp=d8aeb6293ce9c771e23522502686656f4a9438fb;hpb=ccf25d8f1ea6794ca7dead4f94a0194a5f7f6024;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/Title.php b/includes/Title.php index d8aeb6293c..ce0b9595c5 100644 --- a/includes/Title.php +++ b/includes/Title.php @@ -1702,16 +1702,18 @@ class Title implements LinkTarget, IDBAccessObject { * @return string Base name */ public function getBaseText() { + $text = $this->getText(); if ( !MWNamespace::hasSubpages( $this->mNamespace ) ) { - return $this->getText(); + return $text; } - $parts = explode( '/', $this->getText() ); - # Don't discard the real title if there's no subpage involved - if ( count( $parts ) > 1 ) { - unset( $parts[count( $parts ) - 1] ); + $lastSlashPos = strrpos( $text, '/' ); + // Don't discard the real title if there's no subpage involved + if ( $lastSlashPos === false ) { + return $text; } - return implode( '/', $parts ); + + return substr( $text, 0, $lastSlashPos ); } /** @@ -3727,6 +3729,7 @@ class Title implements LinkTarget, IDBAccessObject { // @todo: get rid of secureAndSplit, refactor parsing code. // @note: getTitleParser() returns a TitleParser implementation which does not have a // splitTitleString method, but the only implementation (MediaWikiTitleCodec) does + /** @var MediaWikiTitleCodec $titleCodec */ $titleCodec = MediaWikiServices::getInstance()->getTitleParser(); // MalformedTitleException can be thrown here $parts = $titleCodec->splitTitleString( $this->mDbkeyform, $this->mDefaultNamespace );