我已经结束了使用挂钩来实现用户是普通的授权用户还是完整的用户。有人可以检查下面的钩子是否正确? Im新的Drupal所以不知道添加/删除角色时是否有其他表受到影响。
function module_user_update(&$edit, $account, $category) {
$dob = field_get_items('user', $account, 'field_dob');
$address1 = field_get_items('user', $account, 'field_address1');
$address2 = field_get_items('user', $account, 'field_address2');
$address3 = field_get_items('user', $account, 'field_address3');
$city = field_get_items('user', $account, 'field_city');
$postcode = field_get_items('user', $account, 'field_postcode');
$county = field_get_items('user', $account, 'field_county');
$telephone = field_get_items('user', $account, 'field_telephone');
if(empty($dob[0]['value']) || empty($address1[0]['value']) || empty($address2[0]['value']) || empty($address3[0]['value']) || empty($city[0]['value']) || empty($postcode[0]['value']) || empty($county[0][$
{
$userid = $account->uid;
//remove full role from db so user is only an authorised user
db_query("DELETE FROM {users_roles} WHERE uid = '".$userid."' && rid = '5'");
} else {
$userid = $account->uid;
//delete full role if it already exists so it doesnt go in twice
db_query("DELETE FROM {users_roles} WHERE uid = '".$userid."' && rid = '5'");
//insert full role
db_query("INSERT INTO {users_roles} (rid, uid) VALUES ('5',$userid)");
}
}
我一直在寻找这在今天,似乎是能够做到这一点,当一个用户注册,但没有更新他们的帐户时。我目前正在使用'帐户'字段,例如帐户:字段名,帐户:字段姓等。这是否意味着我将不得不有一个单独的规则更新帐户,并使用'site:current-user:field- forename','site:current-user:field-surname'等等呢? – 2012-02-02 11:24:51
其实,我很确定它可以与'帐户'一起使用,因为如果'数据值为空',参数 - 帐户:field-address1 AND'数据值为空',参数 - 帐户:field-address2,这似乎工作。但是,如果我用OR替换AND,它不起作用,有什么想法? – 2012-02-02 12:13:06
没有什么比我的头脑更好的了,在规则中我从来没有像AND/OR那样的问题。也许尝试使用2个不同的领域,并尝试? – Laxman13 2012-02-02 14:00:10