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

标签 php mysql concrete5 concrete concrete5-5.7

丰富c5用户属性的最佳途径是什么。

我有包含用户信息的非 C5 表,该信息是在旧的 cms(非 c5)上创建的,我现在使用 c5 构建新网站,想知道迁移用户的最佳方法。

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

如果有人可以告诉或者可以举一些例子,我会非常高兴。

最佳答案

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

关于php - Concrete5 5.6/7 以编程方式添加用户和丰富属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31229513/

相关文章:

php - 仅 PHP 的 "cache engine"值得吗?

java - Java 和 PHP 中的 XOR 密码 : different results

php - 执行查询时出现问题(不在 GROUP BY 中)

css - 移动中的阴影丢失

php - block 未从数据库中删除

php - 将请求保存到数据库

php - CodeIgniter "The page you requested was not found."错误?

mysql无密码本地备份/远程恢复

MySQL 仅在存在外键约束时才删除外键约束

mysql - 这个 MySQL 错误与时区相关吗? `value` 日期时间默认 '0000-00-00 00:00:00' ,