Модуль позволяет настроить замену слов в названии элемента, что позволяет получить нужную плотность по слову на листинге. Настройка осуществляется для конкретного раздела, поэтому один и тот же элемент, привязанный к нескольким разделам, может иметь разное наименование в листингах разных разделов. Можно использовать как с компонентами типа список элементов каталога, так и со списком новостей и другими.
Модуль предназначен для работы с инфоблоками, в которых есть разделы. Замены задаются для разделов, если в будущем у раздела поменяется адрес, то настройка останется актуальной.
Для удобства поиска есть фильтр по инфоблокам, разделам, словам, заменам.
После установки в разделе "Контент" административной панели появится пункт "Замена слов в названиях".
1. Выберите инфоблок, выберите раздел.
2. Добавьте искомые слова, замену и количество замен. Регистр учитывается.
3. Пагинация не учитывается. Если Вы задали заменить "слово" на "замена" пять раз, то и на первой странице списка элементов будет произведена замена, и на второй странице снова будет замена, аналогично первой странице.
4. Модуль обрабатывает название элемента и, если задан, заголовок элемента, заданный в seo-шаблонах ($arItem["NAME"] и $arItem["IPROPERTY_VALUES"]["ELEMENT_PAGE_TITLE"]). Если в качестве заголовка элемента выводятся какие-то свои свойства (например, ["PROPERTIES"]["NAME_ENGLISH"]["VALUE"]), то они обработаны не будут и в них замена произведена не будет.
5. В коде шаблона компонента, выводящего список элементов, нужно добавить функцию:if(\Bitrix\Main\Loader::includeModule("kemplox.replacewords"))
\kemplox\modules\replacewords\Controller::updateTitles($arItems, $sectionID);
где $arItems - массив с выводимыми элементами, в которых есть поле ["NAME"] и/или ["IPROPERTY_VALUES"]["ELEMENT_PAGE_TITLE"], $sectionID - ID текущего раздела.
Например, можно в конец файла result_modifier.php или в начале файла template.php шаблона компонента catalog.section добавить этот код:if(\Bitrix\Main\Loader::includeModule("kemplox.replacewords"))
\kemplox\modules\replacewords\Controller::updateTitles($arResult["ITEMS"], $arResult["ID"]);
Выше представлены лишь образцы кода, они не универсальны и могут отличаться на разных проектах. Перед модификацией кода шаблона рекомендуем сделать его резервную копию. Модификацию кода рекомендуем производить посредством FTP-доступа.
6. Рекомендуем после обработки сбросить кеш.
Модуль тестировался на Битриксе версии от 18.0.6 и старше, php от 5.6 и старше. Но должен работать с версиями Битрикса от 15 и старше, хотя это не тестировалось.
Кроме замены слов в названиях может потребоваться добавление слов к названию. Для этого можете воспользоваться модулем Контролируемая плотность слов (медиана).