Tweak to r28390:
[lhc/web/wiklou.git] / includes / SkinTemplate.php
index 65370af..c0e2007 100644 (file)
@@ -226,9 +226,14 @@ class SkinTemplate extends Skin {
                                } else if ( $format == "rss" ) {
                                        $linktext = wfMsg( 'feed-rss' );
                                }
+                               if( is_string( $wgOut->getFeedAppendQuery() ) ) {
+                                       $appendQuery = "&" . $wgOut->getFeedAppendQuery();
+                               } else {
+                                       $appendQuery = "";
+                               }
                                $feeds[$format] = array(
                                        'text' => $linktext,
-                                       'href' => $wgRequest->appendQuery( "feed=$format" )
+                                       'href' => $wgRequest->appendQuery( "feed={$format}{$appendQuery}" )
                                );
                        }
                        $tpl->setRef( 'feeds', $feeds );
@@ -285,11 +290,11 @@ class SkinTemplate extends Skin {
                $tpl->setRef( 'userjsprev', $this->userjsprev);
                global $wgUseSiteJs;
                if ($wgUseSiteJs) {
-                       if($this->loggedin) {
-                               $tpl->set( 'jsvarurl', self::makeUrl('-','action=raw&smaxage=0&gen=js') );
-                       } else {
-                               $tpl->set( 'jsvarurl', self::makeUrl('-','action=raw&gen=js') );
-                       }
+                       $jsCache = $this->loggedin ? '&smaxage=0' : '';
+                       $tpl->set( 'jsvarurl',
+                               self::makeUrl('-',
+                                       "action=raw$jsCache&gen=js&useskin=" .
+                                               urlencode( $this->getSkinName() ) ) );
                } else {
                        $tpl->set('jsvarurl', false);
                }
@@ -357,7 +362,10 @@ class SkinTemplate extends Skin {
                                $x = $dbr->fetchObject( $res );
                                $numberofwatchingusers = $x->n;
                                if ($numberofwatchingusers > 0) {
-                                       $tpl->set('numberofwatchingusers', wfMsg('number_of_watching_users_pageview', $numberofwatchingusers));
+                                       $tpl->set('numberofwatchingusers',
+                                               wfMsgExt('number_of_watching_users_pageview', array('parseinline'),
+                                               $wgLang->formatNum($numberofwatchingusers))
+                                       );
                                } else {
                                        $tpl->set('numberofwatchingusers', false);
                                }
@@ -602,6 +610,13 @@ class SkinTemplate extends Skin {
                        global $wgContLang;
                        $text = $wgContLang->getFormattedNsText( Namespace::getSubject( $title->getNamespace() ) );
                }
+               
+               $result = array();
+               if( !wfRunHooks('SkinTemplateTabAction', array(&$this,
+                               $title, $message, $selected, $checkEdit,
+                               &$classes, &$query, &$text, &$result)) ) {
+                       return $result;
+               }
 
                return array(
                        'class' => implode( ' ', $classes ),
@@ -638,7 +653,7 @@ class SkinTemplate extends Skin {
         * @private
         */
        function buildContentActionUrls () {
-               global $wgContLang, $wgOut;
+               global $wgContLang, $wgLang, $wgOut;
                $fname = 'SkinTemplate::buildContentActionUrls';
                wfProfileIn( $fname );
 
@@ -685,7 +700,7 @@ class SkinTemplate extends Skin {
                                                'href' => $this->mTitle->getLocalUrl( 'action=edit&section=new' )
                                        );
                                }
-                       } else {
+                       } elseif ( $this->mTitle->exists() || $this->mTitle->isAlwaysKnown() ) {
                                $content_actions['viewsource'] = array(
                                        'class' => ($action == 'edit') ? 'selected' : false,
                                        'text' => wfMsg('viewsource'),
@@ -703,6 +718,22 @@ class SkinTemplate extends Skin {
                                        'href' => $this->mTitle->getLocalUrl( 'action=history')
                                );
 
+                               if($wgUser->isAllowed('delete')){
+                                       $content_actions['delete'] = array(
+                                               'class' => ($action == 'delete') ? 'selected' : false,
+                                               'text' => wfMsg('delete'),
+                                               'href' => $this->mTitle->getLocalUrl( 'action=delete' )
+                                       );
+                               }
+                               if ( $this->mTitle->quickUserCan( 'move' ) ) {
+                                       $moveTitle = SpecialPage::getTitleFor( 'Movepage', $this->thispage );
+                                       $content_actions['move'] = array(
+                                               'class' => $this->mTitle->isSpecial( 'Movepage' ) ? 'selected' : false,
+                                               'text' => wfMsg('move'),
+                                               'href' => $moveTitle->getLocalUrl()
+                                       );
+                               }
+
                                if ( $this->mTitle->getNamespace() !== NS_MEDIAWIKI && $wgUser->isAllowed( 'protect' ) ) {
                                        if(!$this->mTitle->isProtected()){
                                                $content_actions['protect'] = array(
@@ -719,21 +750,6 @@ class SkinTemplate extends Skin {
                                                );
                                        }
                                }
-                               if($wgUser->isAllowed('delete')){
-                                       $content_actions['delete'] = array(
-                                               'class' => ($action == 'delete') ? 'selected' : false,
-                                               'text' => wfMsg('delete'),
-                                               'href' => $this->mTitle->getLocalUrl( 'action=delete' )
-                                       );
-                               }
-                               if ( $this->mTitle->quickUserCan( 'move' ) ) {
-                                       $moveTitle = SpecialPage::getTitleFor( 'Movepage', $this->thispage );
-                                       $content_actions['move'] = array(
-                                               'class' => $this->mTitle->isSpecial( 'Movepage' ) ? 'selected' : false,
-                                               'text' => wfMsg('move'),
-                                               'href' => $moveTitle->getLocalUrl()
-                                       );
-                               }
                        } else {
                                //article doesn't exist or is deleted
                                if( $wgUser->isAllowed( 'delete' ) ) {
@@ -741,13 +757,31 @@ class SkinTemplate extends Skin {
                                                $undelTitle = SpecialPage::getTitleFor( 'Undelete' );
                                                $content_actions['undelete'] = array(
                                                        'class' => false,
-                                                       'text' => wfMsgExt( 'undelete_short', array( 'parsemag' ), $n ),
+                                                       'text' => wfMsgExt( 'undelete_short', array( 'parsemag' ), $wgLang->formatNum($n) ),
                                                        'href' => $undelTitle->getLocalUrl( 'target=' . urlencode( $this->thispage ) )
                                                        #'href' => self::makeSpecialUrl( "Undelete/$this->thispage" )
                                                );
                                        }
                                }
+
+                               if ( $this->mTitle->getNamespace() !== NS_MEDIAWIKI && $wgUser->isAllowed( 'protect' ) ) {
+                                       if(!is_array($this->mTitle->getTitleProtection())){
+                                               $content_actions['protect'] = array(
+                                                       'class' => ($action == 'protect') ? 'selected' : false,
+                                                       'text' => wfMsg('protect'),
+                                                       'href' => $this->mTitle->getLocalUrl( 'action=protect' )
+                                               );
+
+                                       } else {
+                                               $content_actions['unprotect'] = array(
+                                                       'class' => ($action == 'unprotect') ? 'selected' : false,
+                                                       'text' => wfMsg('unprotect'),
+                                                       'href' => $this->mTitle->getLocalUrl( 'action=unprotect' )
+                                               );
+                                       }
+                               }
                        }
+
                        wfProfileOut( "$fname-live" );
 
                        if( $this->loggedin ) {
@@ -891,10 +925,19 @@ class SkinTemplate extends Skin {
                        $ip = false;
                }
 
-               if($id || $ip) { # both anons and non-anons have contri list
+               if($id || $ip) { # both anons and non-anons have contribs list
                        $nav_urls['contributions'] = array(
                                'href' => self::makeSpecialUrlSubpage( 'Contributions', $this->mTitle->getText() )
                        );
+                       
+                       if( $id ) {
+                               $logPage = SpecialPage::getTitleFor( 'Log' );
+                               $nav_urls['log'] = array( 'href' => $logPage->getLocalUrl( 'user='
+                                       . $this->mTitle->getPartialUrl() ) );
+                       } else {
+                               $nav_urls['log'] = false;
+                       }
+
                        if ( $wgUser->isAllowed( 'block' ) ) {
                                $nav_urls['blockip'] = array(
                                        'href' => self::makeSpecialUrlSubpage( 'Blockip', $this->mTitle->getText() )
@@ -904,6 +947,7 @@ class SkinTemplate extends Skin {
                        }
                } else {
                        $nav_urls['contributions'] = false;
+                       $nav_urls['log'] = false;
                        $nav_urls['blockip'] = false;
                }
                $nav_urls['emailuser'] = false;
@@ -1175,4 +1219,7 @@ class QuickTemplate {
                return ($msg != '-') && ($msg != ''); # ????
        }
 }
-?>
+
+
+
+