[英]Creating usergroup while user registration in joomla
I would like to create new usergroup in joomla with customized registration form(juser plugin of fabrik) and assign user to this group(this part is missed, really don`t know how to add it). 我想在joomla中使用自定义的注册表单(fabrik的juser插件)创建新用户组,并将用户分配给该组(这部分丢失了,真的不知道如何添加)。 I have wrote some script which was included in the php plugin of form. 我写了一些脚本,该脚本已包含在表单的php插件中。 but not sure where is a error. 但不确定哪里有错误。 It would be helpful to get some info where is a error. 获取一些错误信息将很有帮助。
// Get a db connection.
$db = JFactory::getDbo();
// Create a new query object.
$query = $db->getQuery(true);
// Insert columns.
$columns = array('parentid','lft','rgt','title');
$title = '{user_registration_form___companyid}';
$child_query1 = "SELECT max('id') FROM '#__usergroups'";
$newgroupid = $child_query1+1;
$parent_id = '2';
$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 values.
$values = array($parent_id, $new_lft, $new_rgt, $title );
// Prepare the insert query.
$query
->insert($db->quoteName('usergroups'))
->columns($db->quoteName($columns))
->values(implode(',', $db->quote($values)));
// Reset the query using our newly populated query object.
$db->setQuery($query);
try {
// Execute the query
$result = $db->execute();
//use $db->query() in Joomla2.5
} catch (Exception $e) {
// catch any database errors.
}
$newid = (int)$db->insertid(); //get new record id
in your way of coding , each user having different usergroup. 以您的编码方式,每个用户都有不同的用户组。 eg. 例如。 10 user in your site 10 usergroup will create ? 您的站点中的10个用户10个用户组将创建? or you already created user group(10 user group ) ,based on some setting you have to assign user to user group. 或者您已经创建了用户组(10个用户组),则必须根据某些设置将用户分配给用户组。
eg: you have 10 user group , based on list field(subscriper,developer,...) you can add to user group using JUserHelper. 例如:您有10个用户组,可以基于列表字段(subscriper,developer ...)使用JUserHelper添加到用户组。
JUserHelper::setUserGroups(integer $userId, array $groups) : boolean
JUserHelper::addUserToGroup(integer $userId, integer $groupId) : boolean
JUserHelper::removeUserFromGroup(integer $userId, integer $groupId) : boolean
JUserHelper https://api.joomla.org/cms-3/classes/JUserHelper.html JUserHelper https://api.joomla.org/cms-3/classes/JUserHelper.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.