簡體   English   中英

在joomla中注冊用戶時創建用戶組

[英]Creating usergroup while user registration in joomla

我想在joomla中使用自定義的注冊表單(fabrik的juser插件)創建新用戶組,並將用戶分配給該組(這部分丟失了,真的不知道如何添加)。 我寫了一些腳本,該腳本已包含在表單的php插件中。 但不確定哪里有錯誤。 獲取一些錯誤信息將很有幫助。

// 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

以您的編碼方式,每個用戶都有不同的用戶組。 例如。 您的站點中的10個用戶10個用戶組將創建? 或者您已經創建了用戶組(10個用戶組),則必須根據某些設置將用戶分配給用戶組。

例如:您有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

暫無
暫無

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

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