Fixing bug 30973. Strip off subpages when determining the username who the current...
[lhc/web/wiklou.git] / includes / Skin.php
index da19a6b..76a913b 100644 (file)
@@ -156,7 +156,7 @@ abstract class Skin extends ContextSource {
                                }
                        }
                }
-               $skin = new $className;
+               $skin = new $className( $key );
                return $skin;
        }
 
@@ -414,7 +414,7 @@ abstract class Skin extends ContextSource {
                        $t = $embed . implode( "{$pop}{$embed}" , $allCats['normal'] ) . $pop;
 
                        $msg = wfMsgExt( 'pagecategories', array( 'parsemag', 'escapenoentities' ), count( $allCats['normal'] ) );
-                       $s .= '<div id="mw-normal-catlinks">' .
+                       $s .= '<div id="mw-normal-catlinks" class="mw-normal-catlinks">' .
                                Linker::link( Title::newFromText( wfMsgForContent( 'pagecategorieslink' ) ), $msg )
                                . $colon . '<ul>' . $t . '</ul>' . '</div>';
                }
@@ -422,14 +422,14 @@ abstract class Skin extends ContextSource {
                # Hidden categories
                if ( isset( $allCats['hidden'] ) ) {
                        if ( $this->getUser()->getBoolOption( 'showhiddencats' ) ) {
-                               $class = 'mw-hidden-cats-user-shown';
+                               $class = ' mw-hidden-cats-user-shown';
                        } elseif ( $this->getTitle()->getNamespace() == NS_CATEGORY ) {
-                               $class = 'mw-hidden-cats-ns-shown';
+                               $class = ' mw-hidden-cats-ns-shown';
                        } else {
-                               $class = 'mw-hidden-cats-hidden';
+                               $class = ' mw-hidden-cats-hidden';
                        }
 
-                       $s .= "<div id=\"mw-hidden-catlinks\" class=\"$class\">" .
+                       $s .= "<div id=\"mw-hidden-catlinks\" class=\"mw-hidden-catlinks$class\">" .
                                wfMsgExt( 'hidden-categories', array( 'parsemag', 'escapenoentities' ), count( $allCats['hidden'] ) ) .
                                $colon . '<ul>' . $embed . implode( "{$pop}{$embed}" , $allCats['hidden'] ) . $pop . '</ul>' .
                                '</div>';
@@ -624,7 +624,12 @@ abstract class Skin extends ContextSource {
         */
        function printSource() {
                $oldid = $this->getRevisionId();
-               $url = htmlspecialchars( $this->getTitle()->getFullURL( 'oldid=' . $oldid ) );
+               if ( $oldid ) {
+                       $url = htmlspecialchars( $this->getTitle()->getCanonicalURL( 'oldid=' . $oldid ) );
+               } else {
+                       // oldid not available for non existing pages
+                       $url = htmlspecialchars( $this->getTitle()->getCanonicalURL() );
+               }
                return wfMsg( 'retrievedfrom', '<a href="' . $url . '">' . $url . '</a>' );
        }
 
@@ -633,9 +638,8 @@ abstract class Skin extends ContextSource {
 
                if ( $this->getUser()->isAllowed( 'deletedhistory' ) && !$this->getUser()->isBlocked() &&
                        ( $this->getTitle()->getArticleId() == 0 || $action == 'history' ) ) {
+                       $n = $this->getTitle()->isDeleted();
 
-                       $includeSuppressed = $this->getUser()->isAllowed( 'suppressrevision' );
-                       $n = $this->getTitle()->isDeleted( $includeSuppressed );
 
                        if ( $n ) {
                                if ( $this->getUser()->isAllowed( 'undelete' ) ) {