Merge "fix diff against archived revision deleted version"
[lhc/web/wiklou.git] / includes / SkinLegacy.php
index 53273fb..6385250 100644 (file)
@@ -1,12 +1,25 @@
 <?php
 /**
- * @defgroup Skins Skins
+ * Base class for legacy skins.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
  */
 
-if ( !defined( 'MEDIAWIKI' ) ) {
-       die( 1 );
-}
-
 class SkinLegacy extends SkinTemplate {
        var $useHeadElement = true;
        protected $mWatchLinkNum = 0; // Appended to end of watch link id's
@@ -82,8 +95,9 @@ class LegacyTemplate extends BaseTemplate {
        }
 
        /**
-        * This will be called immediately after the <body> tag.  Split into
+        * This will be called immediately after the "<body>" tag.  Split into
         * two functions to make it easier to subclass.
+        * @return string
         */
        function beforeContent() {
                return $this->doBeforeContent();
@@ -145,14 +159,16 @@ class LegacyTemplate extends BaseTemplate {
        }
 
        /**
-        * This gets called shortly before the </body> tag.
-        * @return String HTML to be put before </body>
+        * This gets called shortly before the "</body>" tag.
+        * @return String HTML to be put before "</body>"
         */
        function afterContent() {
                return $this->doAfterContent();
        }
 
-       /** overloaded by derived classes */
+       /** overloaded by derived classes
+        * @return string
+        */
        function doAfterContent() {
                return '</div></div>';
        }
@@ -238,7 +254,7 @@ class LegacyTemplate extends BaseTemplate {
                $variants = $lang->getVariants();
 
                if ( !$wgDisableLangConversion && sizeof( $variants ) > 1
-                       && $title->getNamespace() != NS_SPECIAL ) {
+                       && !$title->isSpecialPage() ) {
                        foreach ( $variants as $code ) {
                                $varname = $lang->getVariantname( $code );
 
@@ -247,7 +263,7 @@ class LegacyTemplate extends BaseTemplate {
                                }
                                $s = $wgLang->pipeList( array(
                                        $s,
-                                       '<a href="' . $title->escapeLocalURL( 'variant=' . $code ) . '">' . htmlspecialchars( $varname ) . '</a>'
+                                       '<a href="' . htmlspecialchars( $title->getLocalURL( 'variant=' . $code ) ) . '" lang="' . $code . '" hreflang="' . $code .  '">' . htmlspecialchars( $varname ) . '</a>'
                                ) );
                        }
                }
@@ -284,7 +300,7 @@ class LegacyTemplate extends BaseTemplate {
        }
 
        function bottomLinks() {
-               global $wgOut, $wgUser, $wgUseTrackbacks;
+               global $wgOut, $wgUser;
                $sep = wfMsgExt( 'pipe-separator', 'escapenoentities' ) . "\n";
 
                $s = '';
@@ -300,10 +316,6 @@ class LegacyTemplate extends BaseTemplate {
                        $element[] = $this->whatLinksHere();
                        $element[] = $this->watchPageLinksLink();
 
-                       if ( $wgUseTrackbacks ) {
-                               $element[] = $this->trackbackLink();
-                       }
-
                        $title = $this->getSkin()->getTitle();
 
                        if (
@@ -325,7 +337,7 @@ class LegacyTemplate extends BaseTemplate {
 
                        $s = implode( $element, $sep );
 
-                       if ( $title->getArticleId() ) {
+                       if ( $title->getArticleID() ) {
                                $s .= "\n<br />";
 
                                // Delete/protect/move links for privileged users
@@ -349,7 +361,7 @@ class LegacyTemplate extends BaseTemplate {
        }
 
        function otherLanguages() {
-               global $wgOut, $wgContLang, $wgHideInterlanguageLinks;
+               global $wgOut, $wgLang, $wgHideInterlanguageLinks;
 
                if ( $wgHideInterlanguageLinks ) {
                        return '';
@@ -364,8 +376,8 @@ class LegacyTemplate extends BaseTemplate {
                $s = wfMsg( 'otherlanguages' ) . wfMsg( 'colon-separator' );
                $first = true;
 
-               if ( $wgContLang->isRTL() ) {
-                       $s .= '<span dir="LTR">';
+               if ( $wgLang->isRTL() ) {
+                       $s .= '<span dir="ltr">';
                }
 
                foreach ( $a as $l ) {
@@ -376,14 +388,14 @@ class LegacyTemplate extends BaseTemplate {
                        $first = false;
 
                        $nt = Title::newFromText( $l );
-                       $text = $wgContLang->getLanguageName( $nt->getInterwiki() );
+                       $text = Language::fetchLanguageName( $nt->getInterwiki() );
 
                        $s .= Html::element( 'a',
                                array( 'href' => $nt->getFullURL(), 'title' => $nt->getText(), 'class' => "external" ),
                                $text == '' ? $l : $text );
                }
 
-               if ( $wgContLang->isRTL() ) {
+               if ( $wgLang->isRTL() ) {
                        $s .= '</span>';
                }
 
@@ -392,6 +404,7 @@ class LegacyTemplate extends BaseTemplate {
 
        /**
         * Show a drop-down box of special pages
+        * @return string
         */
        function specialPagesList() {
                global $wgScript;
@@ -490,7 +503,7 @@ class LegacyTemplate extends BaseTemplate {
         */
        function pageTitle() {
                global $wgOut;
-               $s = '<h1 class="pagetitle">' . $wgOut->getPageTitle() . '</h1>';
+               $s = '<h1 class="pagetitle"><span dir="auto">' . $wgOut->getPageTitle() . '</span></h1>';
                return $s;
        }
 
@@ -534,8 +547,10 @@ class LegacyTemplate extends BaseTemplate {
 
        /**
         * @deprecated in 1.19
+        * @return string
         */
        function getQuickbarCompensator( $rows = 1 ) {
+               wfDeprecated( __METHOD__, '1.19' );
                return "<td width='152' rowspan='{$rows}'>&#160;</td>";
        }
 
@@ -571,7 +586,7 @@ class LegacyTemplate extends BaseTemplate {
                $diff = $wgRequest->getVal( 'diff' );
                $title = $this->getSkin()->getTitle();
 
-               if ( $title->getArticleId() && ( !$diff ) && $wgUser->isAllowed( 'delete' ) ) {
+               if ( $title->getArticleID() && ( !$diff ) && $wgUser->isAllowed( 'delete' ) ) {
                        $t = wfMsg( 'deletethispage' );
 
                        $s = Linker::linkKnown(
@@ -593,7 +608,7 @@ class LegacyTemplate extends BaseTemplate {
                $diff = $wgRequest->getVal( 'diff' );
                $title = $this->getSkin()->getTitle();
 
-               if ( $title->getArticleId() && ( ! $diff ) && $wgUser->isAllowed( 'protect' ) ) {
+               if ( $title->getArticleID() && ( ! $diff ) && $wgUser->isAllowed( 'protect' ) ) {
                        if ( $title->isProtected() ) {
                                $text = wfMsg( 'unprotectthispage' );
                                $query = array( 'action' => 'unprotect' );
@@ -623,7 +638,7 @@ class LegacyTemplate extends BaseTemplate {
                $title = $this->getSkin()->getTitle();
 
                if ( $wgOut->isArticleRelated() ) {
-                       if ( $title->userIsWatching() ) {
+                       if ( $wgUser->isWatched( $title ) ) {
                                $text = wfMsg( 'unwatchthispage' );
                                $query = array(
                                        'action' => 'unwatch',
@@ -700,7 +715,7 @@ class LegacyTemplate extends BaseTemplate {
                global $wgOut;
 
                if ( !$wgOut->isArticleRelated() ) {
-                       return '(' . wfMsg( 'notanarticle' ) . ')';
+                       return wfMessage( 'parentheses', wfMessage( 'notanarticle' )->text() )->escaped();
                } else {
                        return Linker::linkKnown(
                                SpecialPage::getTitleFor( 'Recentchangeslinked', $this->getSkin()->getTitle()->getPrefixedDBkey() ),
@@ -709,11 +724,6 @@ class LegacyTemplate extends BaseTemplate {
                }
        }
 
-       function trackbackLink() {
-               return '<a href="' . $this->getSkin()->getTitle()->trackbackURL() . '">'
-                       . wfMsg( 'trackbacklink' ) . '</a>';
-       }
-
        function talkLink() {
                $title = $this->getSkin()->getTitle();
                if ( NS_SPECIAL == $title->getNamespace() ) {
@@ -770,7 +780,7 @@ class LegacyTemplate extends BaseTemplate {
                global $wgOut;
 
                $title = $this->getSkin()->getTitle();
-               if ( $title->getNamespace() == NS_SPECIAL ) {
+               if ( $title->isSpecialPage() ) {
                        return '';
                }
 
@@ -818,8 +828,9 @@ class LegacyTemplate extends BaseTemplate {
 
                                $talkLink = Linker::link( $wgUser->getTalkPage(),
                                        $wgLang->getNsText( NS_TALK ) );
+                               $talkLink = wfMessage( 'parentheses' )->rawParams( $talkLink )->escaped();
 
-                               $ret .= "$name ($talkLink)";
+                               $ret .= "$name $talkLink";
                        } else {
                                $ret .= wfMsg( 'notloggedin' );
                        }
@@ -840,10 +851,11 @@ class LegacyTemplate extends BaseTemplate {
                } else {
                        $talkLink = Linker::link( $wgUser->getTalkPage(),
                                $wgLang->getNsText( NS_TALK ) );
+                       $talkLink = wfMessage( 'parentheses' )->rawParams( $talkLink )->escaped();
 
                        $ret .= Linker::link( $wgUser->getUserPage(),
                                htmlspecialchars( $wgUser->getName() ) );
-                       $ret .= " ($talkLink)<br />";
+                       $ret .= " $talkLink<br />";
                        $ret .= $wgLang->pipeList( array(
                                Linker::link(
                                        SpecialPage::getTitleFor( 'Userlogout' ), wfMsg( 'logout' ),
@@ -863,6 +875,4 @@ class LegacyTemplate extends BaseTemplate {
 
                return $ret;
        }
-
 }
-