Назад к панели управления

Документация

Узнайте, как использовать Asyntai

Как добавить ИИ-чат-бот 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/. Самый простой подход — добавить код встраивания непосредственно в главный файл шаблона:

  1. Откройте файлы установки ProcessWire через FTP, SSH или файловый менеджер
  2. Перейдите в site/templates/
  3. Откройте главный файл шаблона — как правило, это _main.php или basic-page.php в зависимости от профиля вашего сайта
  4. Если вы используете стратегию отложенного вывода (по умолчанию для большинства профилей сайта), откройте _main.php
  5. Найдите закрывающий тег </body>
  6. Вставьте код встраивания 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 использует подход с файлом добавления (распространён во многих профилях сайта), вы можете добавить код встраивания в общий файл включения подвала:

  1. Перейдите в site/templates/
  2. Откройте _foot.inc (или аналогичный файл включения футера)
  3. Вставьте код встраивания Asyntai непосредственно перед закрывающим тегом </body>
  4. Сохраните файл

Стратегия отложенного вывода 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. Также убедитесь, что ваш файл шаблона действительно используется на просматриваемых страницах.