2012-10-18 51 views

回答

2

使用以下函數獲取給定用戶標識的用戶組標題。

 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)

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]); 
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; 
?> 
+0

這幾乎可行 - 但只有echo是第一組,而不是全部 – RozzA

相關問題