如何调整hook_profile2_presave中的某些字段

时间:2014-03-13 17:07:21

标签: drupal drupal-7 drupal-modules

我要做的是阻止hook_profile2_presave更新用户配置文件,或者能够在保存之前调整某些字段。我知道我可以使用验证功能,但我试图达到与email_confirm模块中使用的效果相同的效果。

有人知道为什么以下代码无效。

function mymodule_profile2_presave($profile) {
    $account = user_load($profile->uid);

    if (isset($_SESSION['switch_with_the_old_profile'])) {
        $profile_old = profile2_load_by_user($account, 'my_profile');
        $profile = $profile_old;
    }
}

1 个答案:

答案 0 :(得分:0)

我不得不为$ profile中的每个字段手动设置一个值,现在它正在工作。我做了这样的事情:

function mymodule_profile2_presave($profile) {
    $account = user_load($profile->uid);

    if (isset($_SESSION['switch_with_the_old_profile'])) {
        $profile->field_test[LANGUAGE_NONE][0]['value'] = $profile_old->field_test[LANGUAGE_NONE][0]['value'];

    }
}