Всем ку. У меня сайт, котоырй будет работать как хелпдеск. Пишу модуль, который по запуску крона обрабатывает все записи в базе, проверяет условия и меняет значения полей.
Нода - это заявка, у нее есть название (не стандартное, а сск поле), статус и время создания. (Есть и другие поля, но они не нужны покашт) Я делаю выборку по двум таблицам: таблице node (где указаны nid, vid ноды и created) и таблице content_type_onemorerequest, где указаны title ноды и status. связаны между собой по vid.
нужно проверить, если у выбранной ноды определенный статус и время жизни больше, например, недели, изменить название ноды на [ПРОСРОЧЕНО!]<Название ноды>
в пхп разбираюсь в первый раз жизни, с бд знакома побольше... в итоге вышел следующий текст:
<?php
function time_marker_cron() {
$query = db_query('SELECT * FROM {node} a INNER JOIN {content_type_onemorerequest} b
ON a.vid = b.vid
WHERE b.field_ctatus_value=23 or b.field_ctatus_value=24');
while ($item = db_fetch_object($query)) {
if ((time() - $item->created) > 7*24*3600) {
$node = content_type_onemorerequest_load($item->nid);
$node->title = '[ПРОСРОЧЕНО!]' + $item->title;
node_save($node);}
}
}
?>
Знающие люди скажут "ОМГ УЖС кто писал это ...", как я понимаю... Сначала была строчка
<?php
$node = node_load($item->nid);
?>
взятая из мануала, как изменить титл ноды. но мне надо менять титл не в таблице базы данных node, а в content_type_onemorerequest.
При запуске крон долго думал и выдал, что не может _load эту ересь. при строке node_load модуль обошел все записи все таки и обновил их title в самой node. но там у меня идет автогенерация заголовка, так что, думаю, код просто перекрывается...
Подскажите, что таки написать в теле модуля, чтобы заработало?
Комментарии
Может, лучше так?
а функция node_save отработает с не своими таблицами только через хуки, что ОМГ УЖС
да, еще одно поле deadlined нужно, чтобы исключить из запроса уже просроченные.
Я не знаю, чего я тупила так.. все же делается проще - создается вьюс, фильтр - Post date > недели (оператор is less на самом деле), фильтр статус (выбираются 2 нужных). Оо все, ссылка на заявки готова без вмешательства в их текст.