1

ユーザーが特定のグループに属している場合は非表示を含め、ユーザーがグループのカスタムセットに属しているかどうかに応じてモジュールを表示したいだけです。たとえば、広告は公開および登録済みで表示されますが、カスタムの「プレミアム」グループには表示されません。シャウトボックスは、登録済みおよびプレミアム用に表示されますが、「ログインしていない」場合は表示されません。したがって、「ゲスト」グループと「特別」グループは、私が知る限り、かなり役に立たない。私は本当に単純なものが欠けていますか?

これを実現するためにサードパーティのコンポーネント/モジュールを使用する必要がある場合は、無料または安価なものが最も有益です。

ありがとう。

4

2 に答える 2

1

これを実現する1つの方法は、新しいアクセスレベルを編集および作成することです。あなたが質問で与えた例をカバーするために、以下はうまくいくかもしれません:

Publicというルートの親グループからゲストを削除する必要があります。これは、次の3つの手順で実行できます。

  1. User Managerを使用して、Publicを親として「Guest」という新しいグループを作成します。
  2. ユーザーマネージャオプションを開きます。
  3. GuestUserGroupを新しいグループGuestに変更します。

今後、サイトのゲストはゲストグループに入れられます。これで、広告のアクセスレベルを作成できます。したがって、新しいアクセスレベルを作成し、 「非プレミアムユーザー」のような名前を付けて、GuestRegisteredを追加します。次に、このアクセスレベルをモジュールに適用すると、機能するはずです。プレミアムグループは親として登録することはできません。

次は、シャウトボックスのアクセスレベルです。このアクセスレベルには2つのオプションがあります。それらの1つは、新しいアクセスレベルを作成し、それにRegisteredPremiumを追加することです。ただし、より簡単なアプローチは、PremiumグループをRegisteredと呼ばれる既存のアクセスレベルに追加することです。

役立つACLリンク:

于 2012-09-25T22:34:12.497 に答える
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 = '' ; ;
    }
?>
于 2013-06-11T05:24:02.660 に答える