我想添加一個div到我的邊欄,我只想讓這個塊顯示給管理員。如何檢查用戶是否是php中的管理員?我試圖將這添加到myskin.php文件,並不知道如何去做。我一直在使用這樣的事情來檢查,如果用戶登錄,如何在Mediawiki中使用Php檢查用戶是否是Sysop?
<?php if($this->data['loggedin']) { ?>
有什麼類似的檢查,如果用戶是爲操作員?
我想添加一個div到我的邊欄,我只想讓這個塊顯示給管理員。如何檢查用戶是否是php中的管理員?我試圖將這添加到myskin.php文件,並不知道如何去做。我一直在使用這樣的事情來檢查,如果用戶登錄,如何在Mediawiki中使用Php檢查用戶是否是Sysop?
<?php if($this->data['loggedin']) { ?>
有什麼類似的檢查,如果用戶是爲操作員?
* blackops_programmer *的答案中的代碼檢查用戶是否可以保護頁面。默認情況下,這將是sysops,但可以從任何組中分配或刪除權限。
如果你想做的事情取決於保護頁面的權利,那麼檢查權限是正確的方法(除非你使用$ this-> getUser(),而不是$ wgUser)。 但是,如果您確實想要檢查sysop組,請使用以下命令:
if (in_array('sysop', $this->getUser()->getEffectiveGroups()) {
echo 'Hello People';
}
我想我明白了。我增加了以下我的皮膚模板,以增加對sysops和非sysops特殊條件:
<?php
global $wgUser;
if($wgUser->isAllowed('protect')) {
// if sysop
echo 'Hello People';
}
else {
echo 'Yo';
}
?>
我上心從這裏:Check if user is sysop
如果有更好的方式來做到這一點,請不要讓我知道。但到目前爲止,上面似乎工作時,我將代碼添加到我的皮膚的基板。
這並不真正檢查用戶組。如果您想要用戶組,請參閱我剛剛添加的答案。 – brightbyte
+1。無論您希望允許系統管理員執行什麼操作,將這個權限分配給sysop組,然後使用$ this-> getUser() - > isAllowed()檢查它,也可以組成新的用戶權限。 '。 –
嗨brightbyte,多數民衆贊成在完善和它更有意義使用你的方法對我來說。我試圖在我的基本模板中添加,我得到這個錯誤:致命錯誤:調用未定義的方法MyCustomTemplate :: getUser()在本地\維基\皮膚\ muycustomtemplate \ MyCustomTemplate.skin.php行331 – Neel
它的工作原理當我有$ wgUser而不是getUser()在我的基本模板中,但顯示「致命錯誤:調用未定義的方法」,當我使用getUser()。爲什麼你建議不要使用$ wgUser?此外,我相信getUser()isint工作在我的基本模板的HTML部分也許我可能需要定義getUser()的方法工作,並不知道如何做到這一點... – Neel