Недавно нашел где-то на drupal.ru старую тему, в которой была ссылка на файл update-teaser.php следующего содержания:
// $Id: update-teaser.php,v 1.2 2004/03/04 22:58:04 killes Exp $
include "includes/bootstrap.inc";
include "includes/common.inc";
$result = db_query("SELECT nid,body,teaser FROM node");
while ($node = db_fetch_object($result)) {
$teaser = node_teaser($node->body);
db_query("UPDATE node SET teaser = '%s' WHERE nid = %d", $teaser, $node->nid);
}
?>
попробовал в 5.7 - не работает: Fatal error: Call to undefined function: db_query()
Искал обновленный код на drupal.org и drupal.ru - не нашел.
Помогите, нужно перестроить все тизеры на сайте.
Комментарии
перед $result = db_query("SELECT nid,body,teaser FROM node");
вставь
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
и будет тебе щастье
вставил, теперь при открытии update-teaser.php ничего не пишет, а если сразу после этого открыть страницу сайта, выскакивает
тизеры остались прежними
<?php
// $Id: update-teaser.php,v 1.2 2004/03/04 22:58:04 killes Exp $
include "includes/bootstrap.inc";
include "includes/common.inc";
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
$result = db_query("SELECT nid,body,teaser FROM {node_revisions}");
while ($node = db_fetch_object($result)) {
$teaser = node_teaser($node['body']);
db_query("UPDATE {node_revisions} SET teaser = '%s' WHERE nid = %d", $teaser, $node['nid']);
}
?>
так работает?
нет, тизеры те же
но тем не менее код выполнился? значит всё нормально
ну да, код без ошибок, но тизеры не обновляются - в чем может быть причина? может еще что-то сделать нужно?
для теста поставь в настройках длину тизера 10 символов и запусти скрипт. если тизеры уменьшились-значит всё работает
а что за задача-то?
хорошо, буду пробовать еще
Задача - уже существующие тизеры определенной длины сделать необрезанными копиями полных материалов.
Мда, только сегодня нашел работающий код: http://setegnom.com/node/574