* Remove manual query building in search mysql
[lhc/web/wiklou.git] / includes / Skin.php
index f1f0cde..08b238a 100644 (file)
@@ -303,6 +303,7 @@ abstract class Skin {
         * Special:Contributions mark the user which they are relevant to so that
         * things like the toolbox can display the information they usually are only
         * able to display on a user's userpage and talkpage.
+        * @return User
         */
        public function getRelevantUser() {
                if ( isset($this->mRelevantUser) ) {
@@ -474,13 +475,18 @@ abstract class Skin {
         */
        abstract function setupSkinUserCss( OutputPage $out );
 
+       /**
+        * TODO: document
+        * @param $title Title
+        * @return String
+        */
        function getPageClasses( $title ) {
                $numeric = 'ns-' . $title->getNamespace();
 
                if ( $title->getNamespace() == NS_SPECIAL ) {
                        $type = 'ns-special';
                        // bug 23315: provide a class based on the canonical special page name without subpages
-                       list( $canonicalName ) = SpecialPage::resolveAliasWithSubpage( $title->getDBkey() );
+                       list( $canonicalName ) = SpecialPageFactory::resolveAlias( $title->getDBkey() );
                        if ( $canonicalName ) {
                                $type .= ' ' . Sanitizer::escapeClass( "mw-special-$canonicalName" );
                        } else {
@@ -520,6 +526,10 @@ abstract class Skin {
        function getCategoryLinks( OutputPage $out=null ) {
                global $wgUseCategoryBrowser, $wgContLang;
 
+               if( $out === null ){
+                       $out = $this->getContext()->output;
+               }
+
                if ( count( $out->mCategoryLinks ) == 0 ) {
                        return '';
                }
@@ -542,7 +552,7 @@ abstract class Skin {
 
                        $msg = wfMsgExt( 'pagecategories', array( 'parsemag', 'escapenoentities' ), count( $allCats['normal'] ) );
                        $s .= '<div id="mw-normal-catlinks">' .
-                               $this->link( Title::newFromText( wfMsgForContent( 'pagecategorieslink' ) ), $msg )
+                               Linker::link( Title::newFromText( wfMsgForContent( 'pagecategorieslink' ) ), $msg )
                                . $colon . $t . '</div>';
                }
 
@@ -585,10 +595,9 @@ abstract class Skin {
        /**
         * Render the array as a serie of links.
         * @param $tree Array: categories tree returned by Title::getParentCategoryTree
-        * @param &skin Object: skin passed by reference
         * @return String separated by &gt;, terminate with "\n"
         */
-       function drawCategoryBrowser( $tree, &$skin ) {
+       function drawCategoryBrowser( $tree ) {
                $return = '';
 
                foreach ( $tree as $element => $parent ) {
@@ -597,12 +606,12 @@ abstract class Skin {
                                $return .= "\n";
                        } else {
                                # grab the others elements
-                               $return .= $this->drawCategoryBrowser( $parent, $skin ) . ' &gt; ';
+                               $return .= $this->drawCategoryBrowser( $parent ) . ' &gt; ';
                        }
 
                        # add our current element to the list
                        $eltitle = Title::newFromText( $element );
-                       $return .=  $skin->link( $eltitle, $eltitle->getText() );
+                       $return .=  Linker::link( $eltitle, $eltitle->getText() );
                }
 
                return $return;
@@ -738,7 +747,10 @@ abstract class Skin {
         * @return String HTML-wrapped JS code to be put before </body>
         */
        function bottomScripts( $out ) {
-               $bottomScriptText = "\n" . $out->getHeadScripts( $this );
+               // TODO and the suckage continues. This function is really just a wrapper around
+               // OutputPage::getBottomScripts() which takes a Skin param. This should be cleaned
+               // up at some point
+               $bottomScriptText = $out->getBottomScripts( $this );
                wfRunHooks( 'SkinAfterBottomScripts', array( $this, &$bottomScriptText ) );
 
                return $bottomScriptText;
@@ -766,7 +778,7 @@ abstract class Skin {
 
                                return wfMsg(
                                        $msg,
-                                       $this->link(
+                                       Linker::link(
                                                SpecialPage::getTitleFor( 'Undelete', $this->getTitle()->getPrefixedDBkey() ),
                                                wfMsgExt( 'restorelink', array( 'parsemag', 'escape' ), $this->getContext()->getLang()->formatNum( $n ) ),
                                                array(),
@@ -875,9 +887,9 @@ abstract class Skin {
 
                if ( $wgRightsPage ) {
                        $title = Title::newFromText( $wgRightsPage );
-                       $link = $this->linkKnown( $title, $wgRightsText );
+                       $link = Linker::linkKnown( $title, $wgRightsText );
                } elseif ( $wgRightsUrl ) {
-                       $link = $this->makeExternalLink( $wgRightsUrl, $wgRightsText );
+                       $link = Linker::makeExternalLink( $wgRightsUrl, $wgRightsText );
                } elseif ( $wgRightsText ) {
                        $link = $wgRightsText;
                } else {
@@ -1011,7 +1023,7 @@ abstract class Skin {
         * @return string
         */
        function mainPageLink() {
-               $s = $this->link(
+               $s = Linker::link(
                        Title::newMainPage(),
                        wfMsg( 'mainpage' ),
                        array(),
@@ -1033,7 +1045,7 @@ abstract class Skin {
                        // but we make the link target be the one site-wide page.
                        $title = Title::newFromText( wfMsgForContent( $page ) );
 
-                       return $this->linkKnown(
+                       return Linker::linkKnown(
                                $title,
                                wfMsgExt( $desc, array( 'parsemag', 'escapenoentities' ) )
                        );
@@ -1117,7 +1129,7 @@ abstract class Skin {
        }
 
        static function makeSpecialUrl( $name, $urlaction = '' ) {
-               $title = SpecialPage::getTitleFor( $name );
+               $title = SpecialPage::getSafeTitleFor( $name );
                return $title->getLocalURL( $urlaction );
        }