如何通过提供用户ID获取用户组名称

时间:2012-10-18 05:42:03

标签: joomla2.5

我正在使用joomla 2.5。

我希望通过提供用户ID来获取用户组名称。是否有任何核心功能来完成此任务?

3 个答案:

答案 0 :(得分: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)); 将输出一个类似于此的数组: 数组([0] =>注册[1] =>作者)

答案 1 :(得分: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]);

答案 2 :(得分:0)

我认为此代码可以帮助您。

如果你需要通过函数params传递值,你可以改变代码。我列出了查询和结果。

<?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;
?>