https://bugzilla.wikimedia.org/show_bug.cgi?id=35388

Max <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED

--- Comment #1 from Max <[email protected]> 2012-04-23 13:37:51 UTC ---
See here the solution I found:

http://www.mediawiki.org/wiki/Extension_talk:DisableSpecialPages


I found out what's causing the infinite loop:
<code>SpecialPage::resolveAlias</code> has been deprecated since 1.18 Instead
you should use <code>SpecialPageFactory::resolveAlias</code>. Problem is this
has the following stack:
<pre>SpecialPageFactory::resolveAlias --> SpecialPageFactory::getAliasList -->
SpecialPageFactory::getList --> wfRunHooks( 'SpecialPage_initList', array(
&self::$mList ) );</pre> 

So it's pretty obvious what the problem is. I don't see why we need the
canonical name, because if you look
[[Manual:Special_pages#Disabling_Special:UserLogin_and_Special:UserLogout_pages|here]]
it's pretty clear how to disable built-in special pages.
I made the following changes in order to make it work with 1.18.2:
* removed this function, not needed: <code>efDspMakeTitle()</code>
* new version of <code>efDspHook()</code>:
<pre>
function efDspHook( &$aSpecialPages ) {
    global $wgDisabledSpecialPages;
  if ( !empty ( $wgDisabledSpecialPages ) ) {
    foreach( $wgDisabledSpecialPages as $page ) {
      if( !efDspWhitelisted( $page ) && isset( $aSpecialPages[$page] ) )
        unset( $aSpecialPages[$page] );
    }
  }
    return true;
}
</pre>

-- 
Configure bugmail: https://bugzilla.wikimedia.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
You are on the CC list for the bug.

_______________________________________________
Wikibugs-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikibugs-l

Reply via email to