我正在使用joomla 2.5中的組件,我需要通過我的代碼動態創建用戶組。如何在joomla 2.5中創建joomla用戶組2.5
正如我所知在2.5 joomla是使用嵌套集維護層次結構,所以當我們插入任何新的條目時,它可能會影響整個表。
joomla是否提供可直接用於創建用戶組的任何功能? 我們可以在其中指定父組,並在其下創建新組。
我正在使用joomla 2.5中的組件,我需要通過我的代碼動態創建用戶組。如何在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);
* 如果組比id
新創建的應該是0
。在保存後可以使用數據庫查詢訪問新的ID,因爲人知道這個組的名稱/標題
刪除:
$groupModel->delete($groupIds);
整個上面的代碼包含在一個save(), delete()
方法我的組件的模型。 由於Joomla在單獨的Map表中存儲用戶和組之間的連接,因此刪除組時不會損壞用戶數據。請注意,delete()
方法將一個ID數組作爲參數。
你可以用'$ id = $ groupModel-> getState('group.id')獲得組ID;'保存後 – G3z
幫了很多忙 - 謝謝 –