node_delete не работает - PullRequest
       1

node_delete не работает

0 голосов
/ 16 февраля 2011

Я пытаюсь удалить некоторые узлы CCK в Drupal, используя автономный скрипт PHP, когда вошел в систему как анонимный пользователь.

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 ]

3 голосов
/ 16 февраля 2011

Node_delete() имеет проверку доступа для разрешения на удаление внутри него.

Попробуйте снова с анонимными пользователями, которым разрешено удалять узлы.

Также попробуйте добавить

drupal_bootstrap(DRUPAL_BOOTSTRAP_DATABASE);

Если это не сработает, вы можете попробовать перейти к фазе сеанса:

drupal_bootstrap(DRUPAL_BOOTSTRAP_SESSION);

и, наконец, полная версия:

drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
2 голосов
/ 16 февраля 2011

Три варианта:

  1. Как правило, я бы рекомендовал использовать VBO для такого рода вещей. Это более надежное решение, чем собственный скрипт. Его довольно легко настроить, и, как только вы его используете, вы, вероятно, подумаете о дюжине других способов его использования.
  2. Если это не удастся, создайте свой собственный модуль и вставьте свой собственный скрипт в соответствующий хук. Ваш собственный скрипт может не совпадать с тем, что ожидают другие модули.
  3. Если вы все еще хотите иметь свой собственный отдельный скрипт, я подозреваю, что это загрузочный код, который терпит неудачу. Проверьте drupal_bootstrap для доступных вам вариантов.
...