Drupal → Как заменить определённый текст во всех нодах

01.03.2011

Чтобы заменить определённый текст во всех материалах, нужно в phpMyAdmin выполнить следующий запрос:

Drupal 7:

SET @from_str = 'то что меняем', @to_str = 'то на что меняем';
UPDATE `field_data_body` SET
  `body_value`   = REPLACE(`body_value`,   @from_str, @to_str),
  `body_summary` = REPLACE(`body_summary`, @from_str, @to_str);
UPDATE `field_revision_body` SET
  `body_value`   = REPLACE(`body_value`,   @from_str, @to_str),
  `body_summary` = REPLACE(`body_summary`, @from_str, @to_str);

Drupal 6:

SET @from_str = 'то что меняем', @to_str = 'то на что меняем';
UPDATE `node_revisions` SET
  `body`   = REPLACE(`body`,   @from_str, @to_str),
  `teaser` = REPLACE(`teaser`, @from_str, @to_str);

Замена происходит без учёта регистра.

После выполнения запроса нужно не забыть сбросить кэш друпала.

Написанное актуально для
Drupal 6, Drupal 7
Похожие записи

Комментарии

Гость
28.10.2011, 11:06

Удивлён что нет модуля, который делал бы такую работу по передёргиванию cron с заранее подготовленными паттернами.

Игорь
01.12.2012, 01:55

Не совсем по теме, но очень близко. Вопрос: как заменить несколько одинаковых тегов на один? Например в тексте:

<b>Ремонт</b> <b>ванной</b> <b>комнаты</b> под ключ

А хотелось бы так:

<b>Ремонт ванной комнаты</b> под ключ

Либо с помощью php или javascript

Добавить комментарий