2010-03-16 2 views
2

После импорта содержимого с устаревшего веб-сайта с помощью модуля «Фиды» я остался с телами узлов, которые содержат ссылки на старый веб-сайт.Модуль Drupal для управления телом каждого узла

Есть ли модуль Drupal, который будет выполнять одноразовый процесс для итерации по каждому узлу, манипулируя содержимым узлов, используя какой-то пользовательский код?

ответ

2

Вы можете легко написать PHP-скрипт, чтобы пройти через таблицу node_revisions и выполнить свою обработку там. Если вам нравится настраиваемый код, это, вероятно, самый быстрый способ.

0

Вы можете написать свой собственный модуль с намерением запустить его один раз. Существует Drupal hook_init(), который вы можете использовать для защиты кода, когда модуль включен, и страница загружена. Внутри этой функции вы можете запросить все узлы в таблице узлов с помощью db_query, выполнить итерацию по каждому узлу и выполнить preg_replace по ссылке, которую вы хотите изменить. После изменения объекта $ node используйте node_save ($ node) в конце цикла, чтобы сохранить изменения узла.

В качестве альтернативы вы можете использовать модуль, такой как Link Checker, Path Redirect и/или Global Redirect, чтобы связать старые пути с новыми и искать перегруженные ссылки.

0

Поздний ответ, но тем не менее. Модуль pathologic, который может использоваться для фиксации ссылок в узлах. Например, чтобы сделать их абсолютными или переписать хост-часть.

Смежные вопросы