Joomla 2.5模块权限

时间:2012-09-25 21:50:47

标签: joomla joomla2.5

我只想根据用户是否属于一组自定义组来显示一个模块 - 包括如果他属于特定组则不可见。例如,广告显示为公共和已注册但不是自定义“高级”组。应该显示已注册和高级的shoutbox,但不会“未登录”。因此,据我所知,“客人”和“特殊”群体毫无用处。我错过了一些非常简单的东西吗?

如果我 使用第三方组件/模块来实现这一目标,那么免费或廉价的组件/模块将是最有益的。

感谢。

2 个答案:

答案 0 :(得分:1)

实现此目标的一种方法是编辑和创建新的访问级别。为了掩盖您在问题中提供的示例,以下内容可以起作用:

您需要让访客离开名为 Public 的根父组。您可以通过以下三个步骤执行此操作:

  1. 使用用户管理器,创建一个名为“Guest”的新组,其中 Public 为父级。
  2. 打开用户管理器选项
  3. 访客用户组更改为新群组访客
  4. 从现在开始,您网站上的访客将被放入 Guest 组。现在,您可以为广告创建访问级别。因此,请创建一个新的访问级别,将其命名为“非高级用户”,然后添加访客已注册。现在将此访问级别应用于模块,它应该工作。请注意,高级组不能将已注册作为父级。

    接下来是shoutbox的访问级别。我看到这个访问级别有两个选项。其中之一是创建新的访问级别并向其添加已注册 Premium 。但更简单的方法是将 Premium 组添加到名为 Registered 的现有访问级别。

    有用的ACL链接:

答案 1 :(得分:0)

对于我来说,没有一个ACL级别可以100%工作,我不得不破解我正在使用的模板并添加一些代码......

<?php  

// make sure user is an accepted user group 
jimport( 'joomla.user.helper' );
$user =& JFactory::getUser();
$userId = $user->get( 'id' );
$groups = JUserHelper::getUserGroups($userId);

// print_r($groups); 
/* 
3 Author
4 Editor
5 Publisher
6 Manager
7 Administrator
8 Super Users
*/ 

$menu = '' ;
if (in_array("3", $groups)) {
       // echo "<!-- Author Group Found! -->";
        // echo '<!-- USER ID: ' . $userId . ' -->';
        $menu .= "
        <a href='http://yourdomain.com/authors-area'>Authors Area</a> 
        " ;
} elseif(in_array("4", $groups)) { 
$menu .= "
        <a href='http://yourdomain.com/editors-area'>Editors Area</a> 
        " ;
} elseif(in_array("5", $groups)) { 
$menu .= "
        <a href='http://yourdomain.com/publishers-area'>Publishers Area</a> 
        " ;
} elseif(in_array("6", $groups)) { 
$menu .= "
        <a href='http://yourdomain.com/managers-area'>Managers Area</a> 
        " ;
} elseif(in_array("7", $groups)) { 
$menu .= "
        <a href='http://yourdomain.com/administrators-area'>Administrators Area</a> 
        " ;
} elseif(in_array("8", $groups)) { 
$menu .= "
        <a href='http://yourdomain.com/superusers-area'>Super Users Area</a> 
        " ;
} else {
    $null = '' ; ;
    }
?>