2

我正在使用 joomla 2.5。

我想通过提供用户 ID 来获取用户组名称。有什么核心功能可以完成这个任务吗?

4

3 回答 3

2

使用以下函数获取给定用户 ID 的用户组标题。

        function getGroupTitles($id)
        {
            $db = JFactory::getDbo();
            $query = $db->getQuery(true);
            $query
            ->select('title')->from('#__usergroups')
            ->where('id IN (' . implode(',', array_values(JFactory::getUser($id)->groups)) . ')');
            $db->setQuery($query);
            return $db->loadColumn();
        }

示例:print_r(getGroupTitles(427)); 将输出一个类似这样的数组: Array ( [0] => Registered [1] => Author )

于 2015-01-15T03:28:21.110 回答
0

您可以通过以下自定义函数找到用户组名称。

function getUserGroups($gid)
    {
        // Initialise variables.
        $db     = JFactory::getDBO();
        $query  = $db->getQuery(true)
            ->select('a.title AS text')
            ->from('#__usergroups AS a')
            ->where('a.id='.$gid)
            ->group('a.id')
            ->order('a.lft ASC');

        $db->setQuery($query);
        $options = $db->loadObjectList();

        return $options;
    }

只需调用此函数并groups在函数中传递例如

$user =& JFactory::getUser(48);
$usergroupname = getUserGroups($user->groups[8]);
于 2012-10-18T09:18:44.030 回答
0

我认为这段代码会对你有所帮助。

如果您需要通过函数参数方式传递值,您可以更改代码。我列出了查询和结果。

<?php

    $user = JFactory::getUser();

    $db     = JFactory::getDBO();
    $query  = $db->getQuery(true);
    $query->select('s.title AS group_name');
    $query->from('#__user_usergroup_map AS c');
    $query->join('LEFT', '#__usergroups AS s ON s.id = c.group_id' );
    $query->where('c.user_id = '.$user->id);
    $db->setQuery($query);
    $group_name = $db->loadResult();

    echo $group_name;
?>
于 2012-10-18T09:46:06.017 回答