我正在尝试为Joomla 3.6中的不同用户组设置客户错误消息。我们已经在我们网站的前端锁定了内容,目前有一条通用消息告诉用户登录查看它,但是我们最近调整了我们的用户组以创建多个访问级别,所以即使在登录后仍有可能是用户看不到的内容。在这些情况下,我需要能够显示特定于该用户组的消息,而不是通用的“请登录”。
之前我使用过语言覆盖自定义消息,但我发现没有选项让它显示给特定的群组。我对代码了解不多,谷歌也没有透露任何答案。
答案 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)
尝试将文章用于邮件,并使用用户组的权限对其进行过滤。