我创建了一个模块,如果添加了用户,它会添加一个新节点(带有用户信息)。现在我想实现一个user_delete钩子,如果用户被删除,它会删除节点。我不知道如何实现这一点。
此代码为新用户添加了一个新节点:
function user_profile_user_insert(&$edit, $account, $category) {
$node = new stdClass();
$node->type = 'members';
node_object_prepare($node);
//dvm($account);
$node->title = $account->name;
$user_info = user_load($account->uid);
$node->field_user["und"][0]["uid"] = $account->uid;
$path = $account->name;
$node->path = array('alias' => $path);
node_save($node);
}
尝试这个
function node_delete($nid) {
node_delete_multiple(array($nid));
}
对于用户,您可以使用
user_delete,其中传递$uid
作为参数
对于有node_delete的节点,您传递$nid
作为参数。
同样删除基于用户id的节点还有这个函数node_user_delete
在我用stop_spam_reg模块解决用户注册垃圾邮件问题之前,我会定期清除垃圾邮件帐户,如下所示:
/devel/php-
$query = db_select('users', 'u') ->fields('u', array('uid'));
$result = $query->execute();
foreach ($result as $record) {
if( $record->uid>1){ //replace 1 with the latest valid uid you want to keep
user_delete($record->uid);
}
}
小心离开用户1,否则您将面临比垃圾邮件用户更大的问题:)