Drupal модуль для управления телом каждого узла - PullRequest
2 голосов
/ 16 марта 2010

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

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

Ответы [ 4 ]

2 голосов
/ 16 марта 2010

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

0 голосов
/ 09 марта 2011

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

0 голосов
/ 17 марта 2010

Я обычно запускаю SQL-запрос в phpMyAdmin. Смотрите мой пост на http://drupal.org/node/718700#comment-2616682.

0 голосов
/ 16 марта 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...