Обновление тизеров

Главные вкладки

Аватар пользователя T-34 T-34 27 мая 2008 в 15:27

Недавно нашел где-то на drupal.ru старую тему, в которой была ссылка на файл 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";

$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 - не нашел.
Помогите, нужно перестроить все тизеры на сайте.

Комментарии

Аватар пользователя T-34 T-34 27 мая 2008 в 17:00

вставил, теперь при открытии update-teaser.php ничего не пишет, а если сразу после этого открыть страницу сайта, выскакивает

user warning: Unknown column 'body' in 'field list' query: SELECT nid,body,teaser FROM node in \includes\database.mysql.inc on line 172.

тизеры остались прежними

Аватар пользователя Stalker-g2 Stalker-g2 27 мая 2008 в 18:51

<?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']);
}
?>

так работает?

Аватар пользователя T-34 T-34 28 мая 2008 в 11:11

ну да, код без ошибок, но тизеры не обновляются - в чем может быть причина? может еще что-то сделать нужно?

Аватар пользователя Stalker-g2 Stalker-g2 28 мая 2008 в 16:32

для теста поставь в настройках длину тизера 10 символов и запусти скрипт. если тизеры уменьшились-значит всё работает
а что за задача-то?

Аватар пользователя T-34 T-34 28 мая 2008 в 18:16

хорошо, буду пробовать еще
Задача - уже существующие тизеры определенной длины сделать необрезанными копиями полных материалов.