繁体   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