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

Concrete5 5.6/7 programaticly adding user and enriching attributes

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

我有非 C5 table 用户信息此信息是在旧 cms(非 c5)上创建的,我现在正在使用 c5 构建新站点想知道迁移用户的最佳方法。

使用 SQL 查询是个好主意还是我应该使用 php 脚本来丰富,我已经在 c5 中创建了用户并为 "anchor point" 手动添加了电子邮件地址供以后使用充实.

如果有人能告诉我或可能会引出一些例子,我们将非常高兴。

终于自己搞定了,比较简单: 我将外部用户导出到 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)