每当用户更新其个人资料时,我都需要使用Drupal 6的“hook_user”来更新第三方API。
因此我使用'更新'操作。我面临的问题是,如果第三方API更新失败,我就无法看到如何停止执行。
即。用户更新其用户名,但如果API失败,请阻止Drupal更新本地记录。
function myhooks_user($op, &$edit, &$account, $category) {
switch ( $op )
{
case 'update':
if ( FALSE === updateAPI($data) )
{
drupal_set_message("Cannot update user information", "error", false);
return false;
}
break;
}
}
目前,return false不会停止执行。
答案 0 :(得分:2)
没有办法停止执行。
您应该可以使用db中的内容覆盖$edit
。这样就不会有任何改变。我没有试过这个,但它应该可以正常工作。
为什么你要这样做呢?您可以在数据库中添加一行,然后使用cron在以后更新配置文件,以避免需要反复进行相同编辑的受挫用户。