Чат для Joomla: шаблон или модуль
В Joomla код чата можно вставить в шаблон или через модуль HTML. Главная грабля — встроенный редактор, который молча вырезает скрипты. Разбираем оба пути.
В Joomla нет отдельного поля «код для виджетов», как в некоторых конструкторах, — код чата нужно вставить руками в одно из двух мест: в файл шаблона или в модуль с произвольным HTML. Оба способа рабочие, у каждого свои грабли — разбираем по порядку.

Способ 1: вставка в index.php шаблона
Быстрее всего поставить чат так же, как счётчик метрики, — вписать код в шаблон сайта. В админке это «Расширения» → «Шаблоны» → «Шаблоны сайта», где нужно открыть активный шаблон (с пометкой «По умолчанию») и найти в списке файлов index.php. Внутри редактора ищем строку с закрывающим тегом body и вставляем код чата прямо перед ней.
Такой способ подключает виджет сразу ко всем страницам, потому что index.php — общий каркас, через который Joomla собирает каждую страницу сайта. Менять содержимое статей и пунктов меню не нужно. Минус в том, что при обновлении шаблона правки в index.php могут слететь: если тема куплена в магазине и получает апдейты, разумнее сразу сделать переопределение (override) или хотя бы выписать вставленный код отдельно, чтобы вернуть его после апдейта. В WordPress эта проблема стоит не так остро — там код обычно ставит плагин без правки файлов темы, мы отдельно писали про подключение чата на WordPress.
Способ 2: модуль HTML-кода без фильтров
Кто не хочет лезть в файлы шаблона, может обойтись стандартным модулем. В «Расширения» → «Модули» создаётся новый модуль типа «Пользовательский» (Custom), и в поле содержимого вставляется тот же код чата. Модулю нужно назначить позицию, которая выводится на каждой странице шаблона — обычно это футер или технический блок под основным текстом; какие позиции есть у конкретной темы, видно на странице «Позиции шаблона» в том же разделе меню. В настройках показа («Назначение по меню») выбирается «На всех страницах» — иначе виджет появится только там, где стоит нужный пункт меню.
Плюс в том, что модуль хранится отдельно от файлов темы и переживает обновление шаблона. А привязать его нужно к позиции, которая физически есть на каждой странице, — и вот тут может не повезти: если футер темы зашит прямо в код, а не собран из модульных позиций, подходящего места просто не найдётся, и тогда без правки index.php не обойтись.
Почему редактор вырезает script: настройка фильтрации
Здесь чаще всего и спотыкаются: код вставили, сохранили, а после обновления страницы поле пустое. Причина в текстовых фильтрах Joomla. В «Настройки» → «Глобальные настройки» на вкладке «Текстовые фильтры» для каждой группы пользователей задано, какие HTML-теги разрешено сохранять; по умолчанию тег script вырезают у всех групп, кроме Super Users, у которой фильтрация выключена целиком.
Тут два выхода. Можно сохранять код учёткой с ролью Super User — для правки index.php это не так важно, а для модуля HTML критично, потому что фильтр редактора срабатывает при каждом сохранении. Или в тех же «Текстовых фильтрах» поставить для нужной группы значение «Нет фильтрации», но точечно, для узкой группы редакторов, а не для всех авторов сайта: полное снятие фильтра открывает возможность вставить произвольный код через любую форму с этим же редактором.
Кэш Joomla: очистить и проверить
Код сохранился, а на сайте по-прежнему пусто — вторая частая причина в кэше. У Joomla он многослойный: кэш страниц (если включён плагин System - Page Cache), кэш отдельных модулей и общий системный кэш. Очистить всё разом можно в «Система» → «Обслуживание» → «Очистить кэш» — там пункты выбираются списком и удаляются за один клик. Если у изменённого модуля отдельно включено кэширование, стоит зайти в его настройки, на вкладке «Дополнительно» временно выключить кэш модуля, проверить результат и включить обратно.
После очистки кэша Joomla стоит отдельно сбросить кэш браузера или открыть сайт в приватном окне — иначе легко проверять то, что браузер показывает из своей памяти, а не то, что реально отдаёт сервер.
Проверяем виджет: тестовый вопрос и ответ ИИ
Прежде чем менять боевой шаблон, поведение виджета можно посмотреть на демо-странице: так понятнее, чего ждать от диалога. На своём сайте кнопка чата должна появиться в углу экрана на любой странице, включая те, что собраны через конструктор меню, а не только на главной. Дальше стоит открыть виджет и задать вопрос, который реально относится к сайту (про доставку, стоимость или график работы), и посмотреть, ответит ли он по делу, а не общей фразой. AGENT 604 сам обходит сайт и собирает базу знаний примерно за минуту, около 40 страниц, поэтому сразу после установки скрипта виджет уже готов отвечать по содержимому сайта, а не только здороваться.
Где будет сложно: старые версии и нестандартные шаблоны
Joomla 1.5 и 2.5 официально не поддерживаются разработчиком с 2012 и 2014 года — там другой редактор и другая логика текстовых фильтров, и инструкция выше рассчитана на актуальные версии начиная с третьей. Если сайт всё ещё на старой ветке, разумнее сначала обновиться, а не подгонять код под устаревшую систему.
Отдельная сложность — шаблоны на конструкторах вроде YOOtheme Pro, SP Page Builder или Quix. Они рисуют часть страницы собственным движком поверх index.php, и обычная вставка перед закрывающим body работает не везде: например, не срабатывает во всплывающих окнах конструктора, которые подгружаются отдельным запросом. У таких тем обычно есть свой блок для произвольного кода в настройках самого конструктора — им и удобнее пользоваться вместо правки файла шаблона.
Joomla заметно чаще встречается не в интернет-магазинах, а на сайтах с большим объёмом материалов и разным уровнем доступа к ним — у образовательных проектов, НКО, ведомственных порталов: система разграничения прав по группам пользователей в ней сильнее, чем у многих конкурентов. Похожую задачу для образовательного сайта мы разбирали в статье про чат для онлайн-школы. А если Joomla используется просто для одностраничного сайта без раздела с материалами, быстрее решить задачу конструктором лендингов — об этом статья про чат для лендинга.
Частые вопросы
Вставил код, а он исчез после сохранения — почему?
Редактор по умолчанию вычищает теги script; отключите фильтрацию для своей группы пользователей или вставляйте код прямо в шаблон.
Подойдёт ли способ для Joomla 3 и Joomla 5?
Да, вставка в шаблон перед закрывающим body работает в любой версии.
Читайте дальше
- Чат для OpenCart: установка без правки движкаКуда вставить код чата в OpenCart — через поле аналитики или footer.twig, что делать с кэш…
- Как подключить чат на сайтЧто нужно сделать, чтобы на сайте появился рабочий чат: одна строка кода, обучение по стра…
- Чат для InSales: куда вставить код и что проверитьКак добавить чат на магазин InSales: вставка кода в бэк-офисе, работа с темами на Liquid, …
- Чат на лендинге: зачем нужен, как установить и не терять трафикКлик из рекламы стоит денег, а посетитель уходит с вопросом о цене. Зачем лендингу чат, ку…