Как добавить ИИ-чат-бот Asyntai в ProcessWire
Пошаговое руководство для сайтов на ProcessWire CMS
Шаг 1: Получите код встраивания
Сначала перейдите на Панель управления Asyntai и прокрутите вниз до раздела «Код для встраивания». Скопируйте уникальный код, который выглядит так:
<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>
Примечание: Код выше — всего лишь пример. Вы должны скопировать свой уникальный код для встраивания с вашей Панели управления, так как он содержит ваш персональный идентификатор виджета.
Шаг 2: Добавьте в файл шаблона (рекомендуется)
ProcessWire использует PHP-файлы шаблонов, расположенные в директории site/templates/. Самый простой подход — добавить код встраивания непосредственно в главный файл шаблона:
- Откройте файлы установки ProcessWire через FTP, SSH или файловый менеджер
- Перейдите в
site/templates/ - Откройте главный файл шаблона — как правило, это _main.php или basic-page.php в зависимости от профиля вашего сайта
- Если вы используете стратегию отложенного вывода (по умолчанию для большинства профилей сайта), откройте _main.php
- Найдите закрывающий тег
</body> - Вставьте код встраивания Asyntai непосредственно перед ним:
<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>
</body>
Совет: Размещение скрипта непосредственно перед закрывающим тегом </body> гарантирует, что чат-бот загружается после содержимого страницы, что рекомендуется для оптимальной производительности и не замедлит рендеринг страницы.
Альтернативный метод 1: использование файла добавления _foot.inc или _main.php
Если ваш сайт ProcessWire использует подход с файлом добавления (распространён во многих профилях сайта), вы можете добавить код встраивания в общий файл включения подвала:
- Перейдите в
site/templates/ - Откройте _foot.inc (или аналогичный файл включения футера)
- Вставьте код встраивания Asyntai непосредственно перед закрывающим тегом
</body> - Сохраните файл
Стратегия отложенного вывода ProcessWire обычно работает с тремя ключевыми файлами:
- _init.php — выполняется перед каждым шаблоном, инициализирует переменные
- Ваш файл шаблона (например,
basic-page.php) — заполняет переменные контента - _main.php — выводит итоговую HTML-разметку с использованием этих переменных
Если ваш сайт использует этот подход, добавление скрипта в _main.php перед </body> обеспечит его появление на каждой странице.
Примечание: Имена файлов _init.php и _main.php настраиваются в вашем site/config.php через параметры $config->prependTemplateFile и $config->appendTemplateFile. Проверьте конфиг, если ваши файлы названы иначе.
Альтернативный метод 2: использование массива $config->scripts
ProcessWire предоставляет FilenameArray $config->scripts, который можно использовать для управления JavaScript-файлами. В файле _init.php или отдельном файле шаблона добавьте:
<?php
$config->scripts->add('https://asyntai.com/static/js/chat-widget.js');
?>
Затем в вашем _main.php (или включении футера) пройдитесь циклом по массиву скриптов для их вывода:
<?php foreach($config->scripts as $file): ?>
<script src="<?php echo $file; ?>"></script>
<?php endforeach; ?>
Важно: Подход с $config->scripts обрабатывает атрибут src скрипта, однако атрибут data-asyntai-id нужно добавлять отдельно. Вы можете либо добавить атрибут вручную в цикле вывода, либо воспользоваться методом прямого тега скрипта из шага 2 — это наиболее простой вариант.
Альтернативный способ 3: Через хук (ready.php)
Для более продвинутого подхода можно использовать систему хуков ProcessWire для автоматической вставки скрипта чат-бота на каждую страницу. Добавьте следующее в файл site/ready.php:
<?php
$wire->addHookAfter('Page::render', function(HookEvent $event) {
$html = $event->return;
$script = '<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>';
$html = str_replace('</body>', $script . '</body>', $html);
$event->return = $html;
});
?>
Этот хук перехватывает отображаемый HTML-вывод каждой страницы и автоматически вставляет скрипт Asyntai непосредственно перед закрывающим тегом </body>.
Совет: Подход с хуком ready.php идеально подходит, если вы хотите добавить чат-бот на каждую страницу без изменения файлов шаблонов. Этот метод сохраняется при смене шаблонов и обновлениях темы, так как находится за пределами файлов шаблонов.
Шаг 3: Проверка установки
После сохранения изменений откройте сайт ProcessWire в новой вкладке браузера или в режиме инкогнито. Вы должны увидеть кнопку виджета чата в правом нижнем углу. Нажмите на неё, чтобы убедиться, что всё работает.
Виджет не отображается? Убедитесь, что вы сохранили все изменённые файлы. Попробуйте очистить кэш браузера или открыть сайт в режиме инкогнито. Если кэш шаблонов ProcessWire включён, может потребоваться его очистка через Модули → Core → Template Engine Cache или путём добавления ?nocache=1 к URL. Также убедитесь, что ваш файл шаблона действительно используется на просматриваемых страницах.
Weebly