node_delete无法正常工作

时间:2011-02-16 05:12:17

标签: php drupal drupal-6

我尝试使用独立的PHP脚本删除Drupal中的一些CCK节点,同时以匿名用户身份登录

if(empty($total_deals_for_this_pl)){
$node_nid = $single_result['nid'];
global $user;
$original_user = $user;
$user = user_load(1);
print $node_nid."<br>";
node_delete($node_nid);
$user = $original_user;
}

我能够成功检索所有nid,但节点没有被删除。我正在加载Drupal如下

chdir('C:\wamp\www\mysite\platform'); //my drupal resides here
require_once './includes/bootstrap.inc';
include_once './includes/common.inc';

2 个答案:

答案 0 :(得分:3)

Node_delete()对其中的删除权限进行了访问检查。

再次使用匿名用户进行测试,获得删除节点的权限。

还尝试添加

drupal_bootstrap(DRUPAL_BOOTSTRAP_DATABASE);

如果这不起作用,您可以尝试进入会话阶段:

drupal_bootstrap(DRUPAL_BOOTSTRAP_SESSION);

最后是完整的故事:

drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);

答案 1 :(得分:2)

三个选项:

  1. 一般来说,我建议使用VBO来做这类事情。它是一个比自定义脚本更强大的解决方案。它很容易设置,一旦你使用它,你可能会想到其他几种使用它的方法。
  2. 如果做不到这一点,请创建自己的模块并将自定义脚本粘贴到正确的钩子中。您自己的自定义脚本可能无法与其他模块一起使用。
  3. 如果您仍然希望拥有自己独立的脚本,我怀疑它是失败的引导代码。查看drupal_bootstrap了解您可以使用的选项。