Concrete5 5.6 / 7以编程方式添加用户和丰富的属性

时间:2015-07-05 10:41:47

标签: php mysql concrete5 concrete concrete5-5.7

丰富c5用户属性的最佳方法是什么。

我有非C5表和用户信息这个信息是在旧的cms(非c5)上创建的,而我现在用c5构建新站点想知道迁移用户的最佳方法。

使用SQL查询是否是个好主意,或者我应该使用php脚本进行丰富,我已经在c5中创建了用户并且手动添加了#34;锚点"为了以后的浓缩。

如果有人能说出来或maby可能会导致一些例子,那真的很高兴。

1 个答案:

答案 0 :(得分:0)

最后由我自己管理,相当简单: 我将外部用户导出到php数组并使用c5用户函数添加用户,并在丰富他们的例子之后:

$external_users = array({
array('id'=>'1', 'name'='JON', 'email'=>'blank@blank.blank', 'last_name'=>'DOE', 'attr1'=>'smthing', 'attr2'=>'123'),
array(...), ...
});

foreach($external_users as $singleUser_data){
$email = $singleUser_data['email'];
$ui = UserInfo::getByEmail($email);

    if (!is_null($ui)) {
        // Email is already in use, so let's not create the user
        return;
    }

    $userData['uName'] = $singleUser_data['name']." ".$singleUser_data['lastname'];

//users later need to reset password
        $userData['uPassword'] = 'asd52465465456454asd';
        $userData['uPasswordConfirm'] = 'asd52465465456454asd';


     //user registererd
    $ui = UserInfo::register($userData);

    set_new_user_group($ui);
enrichAtributes($ui, $singleUser_data);
        }

function set_new_user_group($ui){
   // assign the new user to a group
    $g = Group::getByName('GroupName');
    $u = $ui->getUserObject();
    $u->enterGroup($g);
}

function enrichAtributes($ui, $singleUser_data){

$ui->setAttribute('atr_handler1', $singleUser_data['attr1']);
    $ui->setAttribute('atr_handler2', $singleUser_data['attr2']);
}

资源: User registration programaticly and seting group

User information documentation (setting attributes)