2016-09-15 8 views
0

カスタマイズされた登録フォーム(fabrikのjuserプラグイン)を使用してjoomlaで新しいユーザーグループを作成し、このグループにユーザーを割り当てたいとします(この部分は欠落しています。 )。 私はフォームのPHPプラグインに含まれていたスクリプトを書いています。どこでエラーが発生しているのかはわかりません。 エラーが発生した場所を知ることは役に立ちます。joomlaでのユーザー登録中のユーザーグループの作成

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

答えて

0

あなたのコーディング方法では、各ユーザーには異なるユーザーグループがあります。例えば。あなたのサイトで10人のユーザーが10人のユーザーグループを作成しますか?またはユーザーグループ(10ユーザーグループ)をすでに作成している場合、ユーザーグループにユーザーを割り当てる必要があります。

例:JUserHelperを使用してユーザーグループに追加できるリストフィールド(subscriper、developer、...)に基づいて、10個のユーザーグループがあります。

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

関連する問題