簡體   English   中英

如何在joomla 2.5中創建joomla用戶組

[英]How to create joomla user group in joomla 2.5

我正在joomla 2.5中處理我的組件,我需要通過代碼動態創建用戶組。

正如我在2.5中所知道的,joomla使用嵌套集來維護層次結構,因此當我們插入任何新條目時,它可能會影響整個表。

joomla是否提供任何可直接用於創建用戶組的功能? 我們可以在其中指定父組,然后在其下創建新組。

我自己解決了

就我而言,我需要將子組插入特定組的下面(在下面的代碼中稱為$ parent_id)

// get max right from all the child under parent id
    $child_query = "SELECT max(`rgt`) FROM `#__usergroups` WHERE `id` = ".$parent_id;
$db->setQuery($child_query);
$max_rgt = $db->loadResult();


// calculate left and rgt for new entry
$new_lft = $max_rgt;
$new_rgt = $max_rgt + 1;

// update lft and rgt of all entries having lft , rgt greater than max_rgt
$upd1 = "UPDATE `#__usergroups` SET `lft` = `lft` + 2 WHERE `lft` > ".$max_rgt;
$upd2 = "UPDATE `#__usergroups` SET `rgt` = `rgt` + 2 WHERE `rgt` >= ".$max_rgt;


// insert new  child
$insert = "INSERT INTO `#__usergroups`(`parent_id`,`lft`,`rgt`,`title`) VALUES(".$matrix_parent.",".$new_lft.",".$new_rgt.",'".$title."')";

即使問題是一種古老且已經被接受的問題,我也使用此代碼在自定義組件中添加/更新/刪除組

為了獲得所需的com_users模型,需要執行以下操作:

JModelLegacy::addIncludePath( JPATH_ADMINISTRATOR . 
                '/components/com_users/models/', 'UsersModel' );

$groupModel = JModelLegacy::getInstance( 'Group', 'UsersModel' );

才能顯示以下代碼。

添加* /更新:

$groupData = array(
    'title' => <new/old name of group here>,
    'parent_id' => <new/old id of parent group here>,
    'id' => <group id here> );

$groupModel->save( $groupData );

*

刪除:

$groupModel->delete( $groupIds );

上面的整個代碼包含在我的組件模型之一的save(), delete()方法中。 由於Joomla將用戶和組之間的連接存儲在單獨的Map表中,因此刪除組時不會破壞任何用戶數據。 請注意, delete()方法將id數組作為參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM