9

Joomla 1.7 で開発していた Joomla 2.5 コンポーネントを作成しています。私は次のようなコードを使用しています:

$user = JFactory::getUser();
$groups = $user->get('groups');

$groups 配列には、インデックスとしてグループ名を持つ ID のリストが含まれます。Joomla 2.5 では、この機能が廃止されたようです。データベースに直接クエリを実行せずにグループ名を取得する方法を見つけることができませんでした。データベースにクエリを実行することなく、ユーザーがメンバーであるグループのリストを取得する方法はありますか?

4

4 に答える 4

8

以下に生成したコードは、ユーザーが属するすべてのグループの名前を取得し、変数$groupNamesに改行で区切って格納します。

foreach ($user->groups as $groupId => $value){
    $db = JFactory::getDbo();
    $db->setQuery(
        'SELECT `title`' .
        ' FROM `#__usergroups`' .
        ' WHERE `id` = '. (int) $groupId
    );
    $groupNames .= $db->loadResult();
    $groupNames .= '<br/>';
}
print $groupNames;

技術的にはデータベースにクエリを実行しますが、Joomla API を介して実行されます。これは、Joomla 2.5でうまく機能しています。

于 2012-11-10T19:17:44.127 に答える
4

はい、これは変わりました。

ただし、代わりに使用する必要があるのは次のとおりです。

JFactory::getUser()->getAuthorisedGroups();

あるいは単にgetUserGroups

于 2012-05-06T23:31:16.507 に答える
0

ここにあります:

<?php

    $user =& JFactory::getUser();

    foreach ($user->groups as $key => $value){
        echo $key.'<br>';
    }

?>

これにより、すべてのユーザー グループ名が画面に出力されます。ユーザー グループ名は、配列 $user->groups の「キー」です。

于 2012-09-11T13:15:29.203 に答える