xandeadx.ru Блог музицирующего веб-девелопера

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

Опубликовано в

Чтобы заменить определённый текст во всех материалах, нужно в 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
Похожие записи

Комментарии RSS

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

Rules, VBO

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

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

А хотелось бы так:
<b>Ремонт ванной комнаты</b> под ключ

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

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании