Пересохранить все ноды определённого типа


домашнее порно
Версия Drupal:

Задача
Нужно програмно пересохранить документы определённого типа (или все), чтобы:

  • после изменения количества символов в анонсе обновить анонс (teaser), который был сформирован автоматически.
  • после установки модуля CCK Computed Field заново сгенерировать все значения вычисляемых полей CCK для всех документов.

Решение

Код нужно выполнить через блок Execute PHP модуля Devel.
Также код можно вставить в блок или страницу и установить формат ввода PHP. Блок или страницу нужно сразу удалить после использования.

<?php
//Change type here
$type = 'book';
$query = "SELECT nid FROM node where type='$type'";

$result = array();
$result = db_query($query);

$count = 0;
while (
$current_node = db_fetch_array($result)){
 
//set_time_limit(999);
 
$current_node_id = node_load($current_node["nid"]);
 
node_save($current_node_id);
 
$count++;
}
echo
'Done... ',$count,' nodes were refreshed.';
?>

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

Creative Commons: ­Attribution-Share Alike 2.5

Данные материалы выложены под лицензией Creative Commons: ­Attribution-Share Alike 2.5. Это значит, что вы можете распространять, копировать и модифицировать эти произведения при условии упоминания авторства оригинала, и при условии, что они также будут распространяться на условиях этой лицензии (то есть, изменённую работу нельзя защитить копирайтом). Подробнее смотри: http://ru.wikipedia.org/wiki/Creative_Commons