我正在使用joomla 2.5。
我希望通过提供用户ID来获取用户组名称。是否有任何核心功能来完成此任务?
答案 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;
?>