特定用户组的Joomla错误消息

时间:2016-10-10 13:57:10

标签: joomla usergroups

我正在尝试为Joomla 3.6中的不同用户组设置客户错误消息。我们已经在我们网站的前端锁定了内容,目前有一条通用消息告诉用户登录查看它,但是我们最近调整了我们的用户组以创建多个访问级别,所以即使在登录后仍有可能是用户看不到的内容。在这些情况下,我需要能够显示特定于该用户组的消息,而不是通用的“请登录”。

之前我使用过语言覆盖自定义消息,但我发现没有选项让它显示给特定的群组。我对代码了解不多,谷歌也没有透露任何答案。

3 个答案:

答案 0 :(得分: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';

}

答案 1 :(得分:0)

如果没有一些编程,你就不容易实现。但简而言之,您可以创建一个非常简单的插件,它将捕获某些Joomla事件。

例如,Joomla具有onUserLogin even,当用户登录时,它允许您执行不同的操作。您的自定义插件可以捕获此甚至,检查一些参数,然后将特定于组的消息添加到队列中。此外,您可以获取当前消息队列,解析或清空它,然后添加特定于组的消息。

您可以对任何其他Joomla事件执行相同操作,例如onUserLogout,onUserLoginFailure等。有很多活动可供选择。

对于特定于消息的组,您可以添加类似于此的通用消息:

  

COM_USERS_ERROR_LOGIN_GUEST

     

COM_USERS_ERROR_LOGIN_REGISTERED

     

COM_USERS_ERROR_LOGIN_ADMIN

然后你只需要" COM_USERS_ERROR_LOGIN _"字符串并向其添加组名(或ID,当语言为非英语时)。那就是它。

这项任务看起来并不复杂,但你仍然需要知道一些编码来创建一个插件,它将捕获Joomla事件。没有其他办法可以做到这一点。

答案 2 :(得分:0)

尝试将文章用于邮件,并使用用户组的权限对其进行过滤。