Куда идем?

Случалось ли вам узнавать, что слово, которое, казалось бы, вы всегда писали правильно, на самом деле пишется по-другому? Узнав такое, вы чувствуйте себя неловко, а затем понимаете, что тысячу раз употребляли его в материалах вашего сайта. Таким образом, это слово содержится в большом количестве материалов. Исправление ошибок в этом случае становится достаточно сложной задачей, ведь нужно открыть каждую статью, найти слово с ошибкой, исправить, сохранить. Если на сайте много материалов, то подобное занятие может растянуться на дни, недели и даже месяцы.

А что если я скажу, что подобные исправления можно внести во все статьи за минуту, не обладая при этом навыками программирования? Невероятно? Реально!

О быстрой замене текста в базе данных Joomla, а также о некоторых перспективных применениях этого приема пойдет речь в этой статье.

О формах хранения текста

Прежде, чем рассказывать про быстрые замены, нужно сделать вступительное слово для тех, кто только знакомится с Joomla.

В Joomla все данные, которые вносит пользователь, хранятся в базе данных. База данных представляет собой набор таблиц. Каждый материал, пункт меню, категория, товар, словом, новая добавленная единица Joomla, записывается в строку одной (нескольких) таблиц базы данных. Все эти данные можно изменить легко и быстро, используя метод, о котором пойдет речь ниже.

Но есть еще и другие данные – то что, пользователь не вносил – названия кнопок, ссылок, опций и других элементов управления. Эти данные хранятся не в базе данных, а в языковых файлах. Языковые файлы представляют собой обычные текстовые файлы. В них тексты также можно заменять быстро, но стандартными средствами, например, через Notepad++. Изменить же их с помощью метода, описанного ниже, не получится. Например, не пытайтесь изменить название кнопки «Submit» на «Отправить». Не выйдет, поскольку этот текст хранится не в базе данных, а в языковых файлах.

DB Replacer – быстрая замена текста

Joomla богата на дополнительные расширения. Есть расширение и для быстрой замены текста. Оно называется DB Replacer. Оно бесплатно. Принцип работы расширения аналогичен поиску и замене в любом текстовом редакторе, разница лишь в том, что поиск и замена производится по базе данных Joomla. DB Replacer позволяет выбрать таблицу и столбец таблицы для поиска и замены, а также показывает результаты. Настроек минимум, пользы максимум. Ниже небольшой пример работы

У нас есть чистый сайт с предустановленными демо-данными. Вот как он выглядит:

DB Replacer

Предположим, мы решили схитрить и представить демо-данные так, как будто речь идет не о Joomla, а о Wordpress. Для этого нам нужно заменить все слова «Joomla» и «Joomla!» (разработчики, похоже, сами забывают ставить этот восклицательный знак :-) ) в тексте сайта на «Wordpress». Если делать это вручную, будет потрачен минимум день. Мы же используем DB Replacer.

Заходим в компонент, выбираем таблицу контента Joomla, вводим текст для поиска и для замены, жмем «Заменить»:

DB Replacer

Операцию повторяем несколько раз для:

  1. « Joomla» и « Wordpress» – пробел впереди для того, чтобы не производить замену в ссылках, которые есть в тексте, а только в словах.
  2. «Joomla » и «Wordpress » – пробел после для того, чтобы заменить слово, если оно первое в предложении.
  3. «Joomla!»  и «Wordpress» – пробелы не нужны, т.к. восклицательные знак в ссылках не употребляется.

Смотрим результат:

DB Replacer

Прекрасно, материалы стали о Wordpress, но пункты меню все равно выдают Joomla. Изменим и их. Для этого нужно просто выбрать соответствующую таблицу базы данных:

DB Replacer

Заменяем и вуаля:

DB Replacer

Да, остались еще ссылки и прочие мелочи, но суть должна быть понятна.

DB Replacer. Примеры использования

Давайте поговорим о том, как можно использовать этот замечательный компонент.

  1. Прежде всего, это исправление ошибок, допущенных в ранее созданных материалах. Очень быстро и удобно: вводим слово с ошибкой в поле для поиска, вводим слово без ошибки в поле для замены, жмем заменить. Всё, ошибка исправлена!
  2. Вставка во все материалы произвольного html-кода. Предположим, вы хотите добавить CSS-класс ко всем тегам <p> в материале. Это может понадобиться для дополнительного оформления. Или вы решили вставить код баннера сразу после тега «Подробнее». Все это очень быстро поможет сделать DB Replacer.
  3. Синонимайзинг текстов. Наворовали чужих текстов с помощью граббера, разместили на своем сайте. Чтобы сделать их хотя бы немного уникальными, заменили некоторые слова синонимами. Надеюсь, что делать так не будете, поскольку поисковые системы давно научились распознавать синонимизированные тексты. За такое можно легко попасть в бан поисковиков.

Эти примеры – первое, что пришло мне в голову. Надеюсь, есть и другие, не менее полезные. Делитесь, пожалуйста, ими в комментариях к статье.

DB Replacer. Предупреждение

DB Replacer – инструмент, который напрямую работает с базой данных Joomla, а потому сломать сайт при неправильном использовании очень легко.

Всегда делайте резервную копию базы данных перед заменой!

Всегда думайте и проверяйте что, где и чем вы заменяете!

Не производите замен в таблицах, содержимое которых вам незнакомо!

Следуйте этим правилам, и ваш сайт не будет потерян из-за глупой ошибки.

DB Replacer. Ограничения

Разработчик DB Replacer – NoNumber (по этой ссылке можно скачать DB Replacer). Он делает отличные расширения и заслужил ссылку на свой сайт. Но нужно понимать, что разработчики тоже люди им тоже нужны деньги для существования. DB Replacer выпускается в двух версиях: бесплатной и PRO. Pro версия стоит 30 евро и отличается от бесплатной:

  • Возможностью использования регулярных выражений при поиске и замене
  • Ограничением поиска с помощью дополнительного поля WHERE
  • Заменой текста в 1000 строках единовременно(в бесплатной версии всего 50 строк)

Кроме того, имеется PRO форум, поддержка и прочие мелкие плюшки.

Из всего вышеперечисленного нормально использовать бесплатную версию мешает только ограничение замены в 50 строках за раз. Если на сайте 1000 статей, то заменять придется 20 раз подряд, что, согласитесь, совсем неудобно. Благо, код компонента открытый и распространяется по лицензии GPLv2. Этот лимит снимается достаточно легко, а именно правкой числа 50 в файле:

administrator\components\com_dbreplacer\dbreplacer.inc.php

Надеюсь, вам придется по душе этот компонент. Удачных замен!

Об авторе
Wedal
(Виталий). Веб-разработчик полного цикла (Full Stack). Создатель и автор сайта Wedal.ru.
Основной профиль – создание сайтов и расширений на CMS Joomla.
Добавить комментарий

Комментарии  
3
Wedal, я думаю, тебе надо писать подобные "вещи" по всем расширениям от NoNumber. Всем будет очень полезно, потому как его расширения используются на на любом сайте на Joomla!

Оно того стоит ;-)
0
Еще как один из вариантов применения: клиент переехал на новый адрес и/или сменил телефон, который был так же указан в статьях.
Хотя я лично всегда скачивал дамп БД и в дримвивере все заменял сразу во всех таблицах. :)
0
titaniMOZG, я и сам иногда пользовался вариантом поиска и замены в дампе. Но он не подходит, когда нужно производить замену не во всех таблицах БД, а только в некоторых.
0
Большое спасибо за ткую полезную плюшку. А как дело обстоит с русским языком?
0
slovoblud, нормально. Правда не Денвере почему-то возникают проблемы с кодировкой русскоязычного контента, подгружаемого через AJAX. Но на нормальных хостингах такого не происходит.
1
C русским языком в AJAX решил проблему, правда с другим компонентом, правкой файла php.ini - в папке usr\local\php5 правим файл php.ini в строке default_charset указываем "UTF-8"
(default_charset = "UTF-8")
0
Скажите, а можно в БД заменить в статьях все теги strong к примеру на h3
0
soulfly, да.
1
Как вариант можно экспортировать базу и текстовым редактором заменить что-угодно сколько угодно раз и импортировать её обратно. Единственный минус что либо сайт нужно будет останавливать на это время, либо смириться с потерей данных добавленных после экспорта :)