Мы сделали плагин, который позволяет публиковать на сайте все, что сделано на Tilda. Простыми словами: главная страница, постоянные элементы и элементы управления используется с вашего сайта, а зона контента из Tilda.
GitHub - https://github.com/uplab-dev/uplab.tilda
Composer - https://packagist.org/packages/uplabteam/uplab.tilda
Список изменений:
- Исправлена пустая страница при первом открытии незакэшированной страницы Tilda или после очистки её кэша. Кэш ответов теперь работает без ненужной буферизации вывода и корректно заполняется прямо при обработке тега [UPLABTILDA ...]. Проблему нашёл и предложил исправление @ilyaoleynikov.
Список изменений:
- Добавлены автоматические повторные запросы при временных обрывах соединения с Tilda. Все попытки укладываются в общий таймаут, поэтому сбой внешнего сервиса не увеличивает время ожидания страницы.
- Добавлен детектор зависшей передачи: если Tilda начала отдавать страницу, но поток остановился, запрос прерывается раньше и повторяется.
- Появилась отключённая по умолчанию настройка показа последней успешной копии страницы при транспортном сбое Tilda. Сотрудники видят предупреждение, посетители — сохранённую страницу без служебной плашки.
- Резервная копия не используется, если Tilda сообщает об удалении, недоступности или пустом содержимом страницы, поэтому снятый с публикации материал не остаётся на сайте.
- В списке кэша добавлено фактическое состояние резервной копии; кэш корректно очищается при сбросе и удалении модуля.
Список изменений:
- Журнал работы модуля больше не разрастается: вместо отдельного файла на каждый день ведётся один файл и одна резервная копия, а занимаемое место ограничено сверху и не зависит от того, сколько времени включено логирование.
- Файлы журналов, накопленные прежними версиями, удаляются автоматически при первой записи после обновления.
- Сообщение о сбое загрузки из Tilda в панели администратора показывается как ошибка — красным. Раньше оно выводилось зелёной плашкой с галкой и выглядело как сообщение об успешном действии.
Список изменений:
- Страница, созданная в Tilda, появляется в списке выбора в редакторе через несколько минут — раньше список обновлялся раз в неделю или только после ручной очистки кэша. Срок обновления списка настраивается.
- Окно выбора страницы открывается быстро: страницы запрашиваются только для выбранного проекта, а не сразу для всех проектов аккаунта.
- В окне выбора теперь видна разница между «в проекте нет страниц» и «список не удалось загрузить»: во втором случае выводится сообщение и кнопка повтора, а не пустой список.
- Вставить блок, не выбрав страницу, больше нельзя.
- Исправлено: при сбое Tilda страница сайта больше не отдаётся пустой — остаются шапка, меню и подвал, а служебная пометка блока посетителям не показывается.
- Исправлено: ответ Tilda без содержимого страницы больше не сохраняется в кэш на неделю — как только связь восстановится, материал появится на сайте сам.
- Исправлено: флажок «Не выводить шаблон сайта» в окне выбора страницы не срабатывал.
- В журнале событий по сбою видно, какая именно страница Tilda не загрузилась, сколько длился запрос и сколько данных успело прийти; сообщения журнала переведены на язык административного раздела.
- Усилено экранирование текста, который приходит от Tilda и выводится в административном разделе.
Список изменений:
- Добавлено логирование обращений к Tilda: включается в настройках модуля и помогает быстро понять, почему страница не загрузилась.
- Каталог для логов можно указать свой; он закрыт от обращений извне, а посторонние файлы в нём показываются в настройках.
- В настройках появилась кнопка проверки подключения к Tilda с текущими ключами.
- При удалении модуля можно выбрать, что удалять: файлы кэша, таблицу, логи и настройки.
- Сообщения модуля переписаны: видно, что они относятся к интеграции с Tilda, и они не выглядят как поломка сайта.
- Обращения к Tilda выполняются только по HTTPS, без переходов по перенаправлениям и с проверкой сертификата; при неверном адресе API модуль сообщает об этом и работает с адресом по умолчанию.
- Страница настроек модуля учитывает права группы: изменение настроек доступно только при праве на запись.
- Исправлено: при сбое Tilda в списке страниц больше не появляются пустые записи; устранены предупреждения на PHP 8.
- Совместимость с PostgreSQL: создание таблиц переведено на ORM, убран СУБД-специфичный SQL.
- Базовый адрес Tilda API вынесен в настройки модуля (опция «Базовый URL Tilda API»).
- Безопасность: устранён XSS в списке закэшированных страниц, добавлена валидация идентификаторов, AJAX-эндпоинт очистки кэша переведён на JSON-ответ ядра.
- Новый интерфейс списка закэшированных страниц: фильтр, сортировка и постраничная навигация; добавлены колонки «ID страницы» и «ID проекта» Tilda.
- Очистка кэша: подтверждение и уведомления через BX.UI.Dialogs.MessageBox, индикатор ожидания и блокировка пунктов меню на время запроса.
- Технические улучшения: проверка версии ядра через version_compare, отказ от прямых SQL-запросов в пользу ORM и D7-соединения.
- Исправлены ошибки совместимости с php 8
- CURLOPT_TIMEOUT и CURLOPT_CONNECTTIMEOUT увеличено с 7 до 15 секунд
- Настройка CURLOPT_TIMEOUT и CURLOPT_CONNECTTIMEOUT выведена в настройки модуля
- Исправлен баг множественного вывода компонентов uplab:tilda на странице.
- Расширенный вывод ошибок получения данных
- Расширенный вывод ошибок получения данных
- Обработка ресурсов Zero-block
- Обновили компонент
- Добавлена ссылка на системный журнал сообщений в сообщение об ошибке
- Переработано кеширование. Теперь очистка кеша сайта через Настройки кеширования -> Очистка файлов кеша не затрагивает кеш Тильды
- Расширено меню Контент -> Интеграция Tilda.cc
- При ошибке получения данных от Тильды в Журнал событий производится запись
- Внутренний рефакторинг
- Добавлен обрабочтчик события "onBeforeContentReplace". С его помощью можно модифицировать контент, который приходит из Tilda. Пример: // файл /bitrix/php_interface/init.php // регистрируем обработчик \Bitrix\Main\EventManager::getInstance()->addEventHandler( 'uplab.tilda', 'onBeforeContentReplace', ['MyClass', 'onBeforeContentReplace'] ); class MyClass { // создаем обработчик события 'onBeforeContentReplace' function onBeforeContentReplace(&$content) { $content = preg_replace_callback( '/<script.+api-maps\.yandex\.ru/', function ($matches) { return str_replace('<script', '<script data-skip-moving="true" ', $matches[0]); }, $content ); } }
- Убраны warnings
- Удалены неиспользуемые файлы из прошлых версий
- Изменен способ получения данных
- Добавлена возможность не загружать jQuery с серверов Tilda
- Исправлена работа с поисковым индексом
- Небольшие изменения
- Небольшие изменения
- Исправлена логика работы комментариев UTILDA
- Код переписан под D7
- Новые пункты в административном меню. Раздел Контент
- Исправлены ошибки в работе с визуальным редактором
Использовать модуль возможно только на тарифном плане Tilda Business - API доступно только на нём.
Установка и настройка модуля- Скачайте и установите модуль.
- Перейдите в настройки модуля: Настройки → Настройки продукта → Настройки модулей → Интеграция с Tilda.
- Введите публичный (public) и секретный (secret) ключи, сгенерированные в Tilda.
- Нажмите Сохранить.
- Нажмите Проверить подключение - модуль обратится к Tilda и покажет число найденных проектов либо текст ошибки.
Дополнительные настройки:
- Настройки соединения с Tilda - базовый URL API, общий предел времени запроса, таймаут соединения и срок кэширования списков проектов и страниц (по умолчанию 10 минут; определяет, через сколько новая страница Tilda появится в редакторе).
- Поведение при сбоях Tilda - число попыток запроса, детектор зависшей передачи и опция «При сбое Tilda отдавать устаревшую копию страницы». Опция выключена по умолчанию; при включении на транспортном сбое отдаётся последняя успешно загруженная версия страницы (копия хранится 30 дней), сотрудники видят пометку об устаревшей версии, посетители - сохранённую страницу без служебной плашки. Содержательный ответ API (ошибка, страница не найдена или пуста) копией не подменяется, поэтому снятая с публикации страница на сайте не остаётся.
- На вкладке Логирование включается журнал работы модуля, выбирается минимальный уровень записи и каталог для лог-файлов. Удалить логи можно кнопкой «Очистить логи».
- PHP 7.4 и выше.
- 1С-Битрикс с ядром D7, модуль main версии 21.900.0 и выше.
- Расширение cURL либо включённая директива PHP allow_url_fopen. Модуль работает через cURL, а file_get_contents использует только как запасной вариант, если расширение cURL на сервере недоступно.
- Разрешённые исходящие HTTPS-соединения к api.tildacdn.info: модуль обращается к API только по HTTPS, обычный HTTP блокируется.
Перед установкой модуля создайте в Tilda как минимум один проект и одну страницу и опубликуйте её.
- API-ключи генерируются в настройках сайта: Экспорт → API Integration → Ключи.
- Если в аккаунте Tilda несколько проектов, включите опцию Мастер-ключ, чтобы модуль имел доступ ко всем проектам.
- В специальных настройках экспорта пути для ресурсов должны остаться пустыми.
- На сайт попадает только опубликованная в Tilda версия страницы. Неопубликованная страница видна в списке выбора, но контента с неё модуль не получит — на сайте она не отобразится.
Настройка шаблонов страниц и компонентов
Рекомендуется использовать шаблоны, в которых активная область контента занимает всю ширину экрана.
Если нужно скрывать часть элементов шаблона сайта или компонента при показе страницы из Tilda, оберните их следующей конструкцией:
<!--UTilda-->...Скрываемый контент...<!--EndUTilda--> |
Публикация
Чтобы на сайте отображался контент Tilda, на странице нужно разместить специальный тег вида
[UPLABTILDA PROJECT=12345 PAGE=12345678] |
Сделать это можно тремя способами.
1. Через визуальный редактор Битрикс- В визуальном редакторе нажмите значок Tilda.
- В открывшемся окне выберите нужный проект, страницу и опции подключения.
- Нажмите Сохранить.
- Проверьте, что тег Tilda вставился.
- Сохраните изменения.
- В списке компонентов Битрикс раскройте раздел Uplab.
- Выберите компонент Интеграция с Tilda (uplab:tilda).
- В настройках компонента выберите нужный проект, страницу и опции подключения.
- Нажмите Сохранить.
Впишите тег в контент текстом, указав идентификаторы проекта и страницы, например:
[UPLABTILDA PROJECT=12345 PAGE=12345678 HIDEPAGETEMPLATE=Y] |
- Не выводить шаблон сайта - страница отобразится на сайте точно так же, как в Tilda, без «шапки» и «подвала» шаблона сайта.
- Перемещать стили и скрипты Tilda - не перемещать, в конец области head или в конец области body.
Управление кэшем
Модуль кэширует информацию, получаемую из Tilda, чтобы не запрашивать её на каждом хите. Контент страниц хранится в кэше неделю, списки проектов и страниц - 10 минут (срок настраивается).
Если страница в Tilda изменилась, опубликуйте её в Tilda, а затем сбросьте кэш этой страницы в административном интерфейсе Битрикс: Контент → Uplab → Интеграция Tilda → Страницы, в меню строки - Сбросить кэш. В списке для каждой страницы показано состояние кэша: актуален, истёк, есть ли сохранённая копия.
В том же разделе меню доступны действия Обновить список страниц (сбрасывает кэш списков проектов и страниц - нужно, если новая страница Tilda ещё не появилась в редакторе) и Полностью очистить кэш.
Решение проблемВ некоторых случаях стили или скрипты Tilda конфликтуют с ресурсами шаблона сайта - тогда контент на сайте отображается и работает не так, как в Tilda.
ℹ️ Решение в каждом случае индивидуально; попробуйте разные варианты опции Перемещать стили и скрипты Tilda при подключении контента.
Если страница не загружается или загружается через раз, включите логирование на вкладке Логирование и посмотрите записи об обращениях к Tilda. Для проблем с ключами или доступом к API используйте кнопку Проверить подключение в настройках модуля.
Для покупки товара в нашем интернет-магазине выберите понравившийся товар и добавьте его в корзину. Далее перейдите в Корзину и нажмите на «Оформить заказ» или «Быстрый заказ».
Если оформляете быстрый заказ: напишите ФИО, телефон и e-mail. Вам перезвонит менеджер и уточнит условия заказа. По результатам разговора вам придет подтверждение оформления товара на почту или через СМС. Теперь останется только ждать доставки и радоваться новой покупке.
Оформление заказа в стандартном режиме выглядит следующим образом. Заполняете полностью форму по последовательным этапам: адрес, способ доставки, оплаты, данные о себе. Советуем в комментарии к заказу написать информацию, которая поможет курьеру вас найти. Нажмите кнопку «Оформить заказ».
Оплачивайте покупки удобным способом. В интернет-магазине доступно 3 варианта оплаты:
- Наличные при самовывозе или доставке курьером. Специалист свяжется с вами в день доставки, чтобы уточнить время и заранее подготовить сдачу с любой купюры. Вы подписываете товаросопроводительные документы, вносите денежные средства, получаете товар и чек.
- Безналичный расчет при самовывозе или оформлении в интернет-магазине: карты МИР. Чтобы оплатить покупку на сайте, система перенаправит вас на сервер платежной системы. Здесь нужно ввести номер карты, срок действия и имя держателя.
- Электронные системы при онлайн-заказе: ЮMoney. Для совершения покупки система перенаправит вас на страницу платежного сервиса. Здесь необходимо заполнить форму по инструкции.
- Безналичная оплата на наш расчетный счет по выставленному счету.
Экономьте время на получении заказа. В интернет-магазине доступно 4 варианта доставки:
- Электронная поставка - все необходимые сведения о лицензии, праве пользования, кодах, ключах и др. высылаются покупателю на его e-mail.
- Курьерская доставка. Когда товар будет отправлен с нашего склада, Вам придет уведомление. В день доставки с Вами заблаговременно свяжется курьер для уточнения времени и деталей доставки. Доставка производится "до двери". Осмотрите упаковку на целостность и соответствие указанной комплектации.
- Постамат. Когда заказ поступит на точку, на Ваш телефон или e-mail придет уникальный код. Заказ нужно оплатить в терминале постамата. Срок хранения — 3 дня.
- Доставка Почтой России. Когда заказ придет в отделение, на Ваш адрес придет извещение о посылке. Перед оплатой Вы можете оценить состояние коробки: вес, целостность. Вскрывать коробку самостоятельно Вы можете только после оплаты заказа. Один заказ может содержать не больше 10 позиций и его стоимость не должна превышать 100 000 р.
Дополнительная информация.
Изучите полный алгоритм продления лицензий на модули 1С-Битрикс: Маркетплейс, включая активацию льготных купонов. Мы детально разбираем все условия: обязательный 30-дневный срок для сохранения максимальной выгоды, пропорциональное ценообразование (12,5%, 25%, 50% от цены модуля) и ограничение по минимальной сумме в 500 рублей. Этот гайд поможет вам эффективно планировать бюджет и гарантировать актуальность вашего проекта.