Здравствуйте.
Не удаляются ноды с помощью API из под крона.
Есть некий файл, часть кода приведена ниже. Он при получении GET запроса удаляет записи. Get запрос можно отправить в ручную со страницы сайта (из под админа работает, из под гостя нет). Мне сейчас необходимо добиться, чтобы эта процедура осуществлялась автоматически через крон.
PS В файле также есть функция добавления! При этом она работает даже из под гостя! Есть какие-то предположения?
Процедура удаления:
<?php
$delquery = "SELECT node.nid AS nid
FROM node node
WHERE node.type in ('tovar')";
$deldata = db_query($delquery);
while ($delitem=db_fetch_object($deldata)) {
node_delete($delitem->nid);
echo ". ";
}}
?>
API подключаю в отдельном php файле следующим образом:
<?php
//require the bootstrap include
require_once $_SERVER["DOCUMENT_ROOT"].'/includes/bootstrap.inc';
//Load Drupal
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
?>
Комментарии
А почему не реализуете модулем через hook_cron ?
Используйте отладку наконец, девел насколько мне известно позволяет писать вашу отладочную информацию и в базу, и в файл, и банально в HTML.
С Drupal в плане разработки столкнулся только недавно, да и опыт работы с CMS небольшой. За советы спасибо.
На всякий случай (вдруг пригодится) сообщаю: node_delete() проверяет, есть ли у пользователя, от чьего имени запущен скрипт, права на удаление данной ноды. Если нет - удалять не будет.
Похоже именно это и происходит. А возможно ли передавать в скрипт логин и пароль админа, чтобы скрипт сам авторизовывался и тем самым получал права?
Есть спец. техника подмены юзера, ща покажу
$original_user = $user;
$user = user_load(1);
node_delete($nid);
$user = $original_user;