2024年1月31日更新

User::isLoggedIn()函数已经被官方弃用,取而代之的是User::isAnon(),所以方法更新如下:

function efAddSkinStylesAnon( OutputPage &$out, Skin &$skin ) {    
      if ( $skin->getUser()->isAnon() ) { 
              // Hide history tab    
              if ( $skin->getSkinName() == 'timeless' ) {    
                      $out->addInlineStyle( '#my-link { display:none; }' );    
              }    
      }    
      return true;    
}    
$wgHooks['BeforePageDisplay'][] = 'efAddSkinStylesAnon';

除替换函数外,也应该避免使用全局$wgUser

2022年5月29日原文

这次的问题很简单,就是希望针对匿名用户能够禁用某些链接,就像下面这样:
book-review-button.png
hide-book-review-button.png
创建笔记的功能只针对注册用户开放,而匿名用户就不必显示了(因为权限设置,就算是显示了也没办法使用,还不如不要出现该按钮)。实现代码如下:

function efAddSkinStylesAnon( OutputPage &$out, Skin &$skin ) {    
   global $wgUser;    
      if( !$wgUser->isLoggedIn() )    
     {    
              // Hide history tab    
              if ( $skin->getSkinName() == 'timeless' ) {    
                      $out->addInlineStyle( '#my-link { display:none; }' );    
              }    
      }    
      return true;    
}    
$wgHooks['BeforePageDisplay'][] = 'efAddSkinStylesAnon';

因为对匿名用户,默认皮肤是timeless,而#my-link则是链接(按钮)的id。

其他相关文章

如何让匿名用户显示不同的MediaWiki的侧边栏(Sidebar)菜单
MediaWiki匿名用户导航栏设置

最后修改:2024 年 01 月 31 日
如果觉得我的文章对你有用,请随意赞赏