https://www.mediawiki.org/wiki/Special:Code/MediaWiki/111831

Revision: 111831
Author:   ialex
Date:     2012-02-18 15:29:01 +0000 (Sat, 18 Feb 2012)
Log Message:
-----------
Per request on my talk page: make this extension work with current versions of 
MediaWiki.

It now uses the RequestContextCreateSkin hook so it requires MW 1.19 to work.

Modified Paths:
--------------
    trunk/extensions/SkinPerNamespace/SkinPerNamespace.php

Modified: trunk/extensions/SkinPerNamespace/SkinPerNamespace.php
===================================================================
--- trunk/extensions/SkinPerNamespace/SkinPerNamespace.php      2012-02-18 
15:11:49 UTC (rev 111830)
+++ trunk/extensions/SkinPerNamespace/SkinPerNamespace.php      2012-02-18 
15:29:01 UTC (rev 111831)
@@ -2,21 +2,21 @@
 /**
  * Extension based on SkinPerPage to allow a customized skin per namespace
  *
- * Require MediaWiki 1.15.0 or greater.
+ * Require MediaWiki 1.19.0 or greater.
  *
  * @file
  * @author Alexandre Emsenhuber
  * @license GPLv2
  */
 
-$wgHooks['BeforePageDisplay'][] = 'efSkinPerPageBeforePageDisplayHook';
+$wgHooks['RequestContextCreateSkin'][] = 
'efSkinPerPageRequestContextCreateSkin';
 
 // Add credits :)
 $wgExtensionCredits['other'][] = array(
        'path'        => __FILE__,
        'name'        => 'SkinPerNamespace',
        'url'         => 
'https://www.mediawiki.org/wiki/Extension:SkinPerNamespace',
-       'version'     => '2011-01-10',
+       'version'     => '2012-02-18',
        'description' => 'Allow a per-namespace skin',
        'author'      => 'Alexandre Emsenhuber',
        
@@ -46,33 +46,33 @@
 // Implementation
 
 /**
- * Hook function for BeforePageDisplay
+ * Hook function for RequestContextCreateSkin
  */
-function efSkinPerPageBeforePageDisplayHook( &$out, &$skin ){
+function efSkinPerPageRequestContextCreateSkin( $context, &$skin ) {
        global $wgSkinPerNamespace, $wgSkinPerSpecialPage,
-               $wgSkinPerNamespaceOverrideLoggedIn, $wgUser;
+               $wgSkinPerNamespaceOverrideLoggedIn;
 
-       if( !$wgSkinPerNamespaceOverrideLoggedIn && $wgUser->isLoggedIn() )
+       if ( !$wgSkinPerNamespaceOverrideLoggedIn && 
$context->getUser()->isLoggedIn() ) {
                return true;
+       }
 
-       $title = $out->getTitle();
+       $title = $context->getTitle();
        $ns = $title->getNamespace();
        $skinName = null;
 
-       if( $ns == NS_SPECIAL ) {
+       if ( $ns == NS_SPECIAL ) {
                list( $canonical, /* $subpage */ ) = 
SpecialPage::resolveAliasWithSubpage( $title->getDBkey() );
-               if( isset( $wgSkinPerSpecialPage[$canonical] ) ) {
+               if ( isset( $wgSkinPerSpecialPage[$canonical] ) ) {
                        $skinName = $wgSkinPerSpecialPage[$canonical];
                }
        }
 
-       if( $skinName === null && isset( $wgSkinPerNamespace[$ns] ) ) {
+       if ( $skinName === null && isset( $wgSkinPerNamespace[$ns] ) ) {
                $skinName = $wgSkinPerNamespace[$ns];
        }
        
-       if( $skinName !== null ) {
-               $skin = Skin::newFromKey( $skinName );
-               $skin->setTitle( $out->getTitle() );
+       if ( $skinName !== null ) {
+               $skin = $skinName;
        }
 
        return true;


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to