2016-10-10 50 views
0

我正在嘗試爲Joomla 3.6中的不同用戶組設置客戶錯誤消息。我們在我們網站的前端鎖定了內容,目前有一條通知消息告訴用戶登錄查看它,但是我們最近調整了我們的用戶組以創建多個訪問級別,因此即使登錄後仍然可能仍然存在被用戶無法看到的內容。在這些情況下,我需要能夠顯示特定於該用戶組的消息,而不是通用的「請登錄」。針對特定用戶組的Joomla錯誤消息

我之前使用過語言覆蓋來定製消息,但沒有選擇,我發現它已經顯示給特定的組。我對代碼並不瞭解,Google也沒有透露現有的答案。

回答

0

這可能是一個讓你去:

$groups = JUserHelper::getUserGroups((int) $user->user_id); 

if(in_array(8, $groups)) 
{ 

    $level = 'admin'; 

} elseif (in_array(4, $groups)) { 

    $level = 'globalmoderator'; 

} elseif (in_array(3, $groups)) { 

    $level = 'moderator'; 

} elseif (in_array(2, $groups)) { 

    $level = 'user'; 

} else { 

    $level = 'guest'; 

} 
+0

謝謝!我會在哪裏申請這個? –

+0

你可以在你的模板覆蓋文件中使用它 –

0

沒有一些規劃,它會不會容易爲你實現。但簡而言之,您可以創建一個非常簡單的插件,它將捕獲某些Joomla事件。

例如,Joomla甚至擁有onUserLogin,當用戶登錄時,它允許您執行不同的操作。您的自定義插件甚至可以捕獲這些內容,檢查某些參數,然後將特定組的消息添加到隊列中。更重要的是,您可以獲取當前的消息隊列,解析或清空它,然後添加組特定的消息。

對於任何其他Joomla事件,如onUserLogout,onUserLoginFailure等,您都可以做同樣的事情。有很多活動可供選擇。

至於消息特定羣體,你能不能加入自己的泛型消息是:

COM_USERS_ERROR_LOGIN_GUEST

COM_USERS_ERROR_LOGIN_REGISTERED

COM_USERS_ERROR_LOGIN_ADMIN

然後你只需要「COM_USERS_ERROR_LOGIN_ 「字符串並添加一個組名(或ID,當語言是非英語)。而已。

這個任務似乎不太複雜,但你仍然需要知道一些編碼來創建一個插件,它將捕獲Joomla事件。沒有其他辦法可以做到這一點。

0

嘗試將文章用於消息並使用用戶組的權限進行過濾。

+0

在這一點上,這看起來是我要做的。我會將他當前顯示的消息更改爲通用,然後通過模塊提供用戶用戶組權限,以提示特定組採取特定操作。 –