Шаблоны в модуле 1С-Битрикс
В модуле ParrotPoster для 1С-Битрикс (vettich.sp3) автоматическая публикация настраивается через шаблоны. Один шаблон привязан к одному инфоблоку и умеет два вида автоматики:
| Вид | Что делает | Аналог в новой автоматизации |
|---|---|---|
| Автопубликация | Новые элементы инфоблока сразу уходят в выбранные соцсети | режим «Мгновенно» |
| Автоматическая выгрузка | Уже существующие элементы по одному публикуются по расписанию | режим «Архив» |
Оба вида включаются независимо в одном шаблоне. Новая автоматизация (источники, режимы «Гибрид» и «Дайджест», журнал запусков) в модуле для Битрикс пока недоступна — используйте шаблоны.
Подготовка
Перед созданием шаблона установите модуль и войдите в сервис и подключите хотя бы один аккаунт: без аккаунтов шаблон сохранить нельзя.
Где найти шаблоны
В админке Битрикс: Сервисы → Автопубликации в соц. сети → Шаблоны. В списке показаны ID, имя, тип и ID инфоблока; для каждого шаблона доступны действия «Редактировать», «Копировать» и «Удалить» (у пользователей без права записи в модуль — только просмотр). Новый шаблон создаётся кнопкой добавления над списком.
Создать шаблон
Форма шаблона состоит из трёх вкладок. Вкладки «Данные поста» и «Выгрузка» появляются после того, как на первой вкладке выбран инфоблок.
Вкладка «Основное»
| Поле | Что делает |
|---|---|
| Имя | Название шаблона (обязательное). После выбора инфоблока подставляется его название — можно изменить. |
| Активность | Общий флаг активности шаблона. В текущей версии из-за известной ошибки он не останавливает автопубликацию и выгрузку: чтобы временно отключить автоматику, снимите «Автопубликацию» и «Автоматическую выгрузку». |
| Автопубликация | Если включено, новые элементы выбранного инфоблока обрабатываются этим шаблоном автоматически. |
| Тип инфоблока → Инфоблок | Откуда брать элементы. Сначала выберите тип, затем сам инфоблок — форма обновится. |
| Выбрать разделы → Разделы инфоблока | Появляется, если в инфоблоке есть разделы. Включите, чтобы публиковать только элементы выбранных разделов (вместе с вложенными). |
| Домен | Адрес сайта для формирования ссылок. По умолчанию подставляется домен, с которого вы открыли админку. |
| UTM метки | Если включено, к ссылке добавляются метки: «Источник трафика» (utm_source, по умолчанию макрос #SOCIAL_CODE# — код соцсети), «Вид трафика» (utm_medium, по умолчанию social), «Название компании» (utm_campaign, по умолчанию #IBLOCK_CODE#), «Ключевое слово» (utm_term) и «Вид контента» (utm_content). |
| Только активные | Публиковать только активные элементы. |
| Условия | Дополнительные условия отбора элементов: поле инфоблока или каталога, оператор и значение. Операторы: «Равно», «Не равно», «Больше или равно», «Меньше или равно», «Содержит», «НЕ содержит». Элемент публикуется, только если выполнены все условия. Даты вводите в формате, принятом на сайте, например 31.12.2031. |
| Аккаунты соц. сетей | Аккаунты, куда публиковать. Нужен хотя бы один. |
Известная ошибка
Поле «Активность» пока не отключает шаблон целиком. Это планируется исправить в одной из следующих версий модуля.
Блок «Привязка к инфоблоку» (настройки очереди):
| Поле | Что делает |
|---|---|
| Обновлять элемент | При изменении элемента обновлять уже созданные посты в соцсетях, если это возможно. По умолчанию включено. |
| Удалять элемент | При удалении элемента удалять его посты в соцсетях, если это возможно. По умолчанию включено. |
| Исключать дубликаты | Если в очереди уже есть такой элемент, второй раз он опубликован не будет. По умолчанию выключено. |
Вкладка «Данные поста»
| Поле | Что делает |
|---|---|
| Текст для публикации | Текст поста. Подставляйте данные элемента макросами — подсказка со всеми макросами выводится под формой. По умолчанию: #NAME#, перенос строки, #PREVIEW_TEXT#. |
| Теги | Поле элемента, из которого берутся теги (по умолчанию TAGS); они ставятся в конце поста. |
| Ссылка (на детальную страницу) | Поле со ссылкой (по умолчанию DETAIL_PAGE_URL). Ссылка прикрепляется к посту или встраивается в текст — зависит от возможностей соцсети. |
| Главная картинка | Поле с основной картинкой (по умолчанию DETAIL_PICTURE). Обязательна для Instagram и Pinterest. |
| Дополнительные картинки и Дополнительные картинки 2 | Ещё два поля с картинками (по умолчанию PROPERTY_MORE_PICTURES и пусто), если соцсеть позволяет. |
| Время публикации | Поле с датой, в которую нужно опубликовать пост (по умолчанию DATE_ACTIVE_FROM). Если дата в прошлом или пустая, пост публикуется сразу. |
| Опубликовать пост от имени группы, Добавить подпись к посту | Опции только для ВКонтакте. |
Картинки: в пост попадает не больше 10 изображений; локальные файлы проверяются на формат и размер, неподходящие пропускаются. Если в папке модуля watemarks лежат файлы водяных знаков, они накладываются на картинки (формат имён файлов описан в коде модуля).
Макросы в тексте
Подсказка под формой описывает синтаксис:
#NAME#— подставляет значение поля или свойства элемента, например#PREVIEW_TEXT#,#PROPERTY_COLOR#.#BR#— перенос строки.- Индикатор
{Цвет: #PROPERTY_COLOR#}— всё внутри фигурных скобок показывается, только если значение макроса не пустое. - Блоки для торговых предложений и множественных свойств:
[LIST #SKU#] … [/LIST]— шаблон для каждой строки списка;[TABLE #SKU#] … [/TABLE]— таблица: первая строка — заголовки, вторая — поля, колонки разделяются|. Внутри блока имена полей начинаются с точки:#.PROPERTY_COLOR#. - Ссылочные свойства:
#PROPERTY_GIFT.REF.NAME#— поле элемента, привязанного к свойству.
Доступны поля элемента (ID, CODE, NAME, PREVIEW_TEXT, DETAIL_TEXT, DATE_ACTIVE_FROM, DETAIL_PAGE_URL и др.), свойства инфоблока (PROPERTY_*) и поля каталога (CATALOG_QUANTITY, CATALOG_PRICE_<ID типа цены>, CATALOG_CURRENCY_<ID> и др.). Полный список виден в выпадающих полях формы.
Вкладка «Выгрузка»
| Поле | Что делает |
|---|---|
| Автоматическая выгрузка | Включает публикацию существующих элементов по расписанию. |
| Соблюдать интервал выгрузки в 30 мин. | Между публикациями по этому шаблону проходит не меньше 30 минут. Работает только для выгрузки. Включено по умолчанию. |
| Выберите время для выгрузки | Расписание: строка «Все дни» и отдельные строки для дней недели; время выбирается с шагом 30 минут, на каждый день можно добавить несколько значений (кнопка «+»). По умолчанию «Все дни» — 9:00 и 12:00. |
| Часовой пояс | В этом часовом поясе работает расписание. |
| Поле инфоблока для сортировки и Направление сортировки | По какому полю и в каком порядке выбирать следующий элемент: «По возрастанию», «По убыванию» или «Рандомно». По умолчанию — ID по убыванию. |
Сохраните шаблон кнопкой «Сохранить» или «Применить». Без имени, инфоблока и хотя бы одного аккаунта шаблон не сохранится: форма покажет ошибку.
Как работает автопубликация
- При сохранении нового элемента модуль добавляет задание в локальную очередь сайта. Сам пост в этот момент ещё не создаётся.
- После сохранения модуль сообщает ParrotPoster, что в очереди появилась работа. ParrotPoster отдельным запросом обращается к сайту и запускает обработку очереди. Благодаря этому выбор шаблонов, подготовка данных и создание постов не задерживают сохранение элемента в Битрикс.
- Получив запрос, модуль выбирает шаблоны этого инфоблока с включённой «Автопубликацией», проверяет разделы, условия и настройку «Только активные». Для каждого подходящего шаблона модуль формирует публикацию и создаёт пост в ParrotPoster — его статус отображается в разделе Посты.
- Если обработать задание не удалось, модуль повторяет попытку: всего предусмотрено четыре попытки с нарастающей паузой (2, 4 и 8 минут). После этого задача помечается как неудачная и через месяц удаляется.
Другие события тоже идут через очередь:
- Изменение элемента — обновляются уже созданные посты (если у шаблона включено «Обновлять элемент»). Посты обновляются, если они ещё не вышли или с момента публикации прошло не больше суток. Если элемент был неактивным, стал активным и постов по нему ещё нет — он публикуется.
- Удаление элемента — посты удаляются (если у шаблона включено «Удалять элемент»).
Агенты Битрикс и BX_CRONTAB_SUPPORT
Модуль регистрирует два агента Битрикс с периодом 60 секунд: повторное уведомление ParrotPoster, если первая попытка не удалась, и служебное обновление списка доменов сервиса. Сразу после сохранения элемента модуль самостоятельно уведомляет ParrotPoster о новом задании — запуск агентов для этого не требуется. Агент нужен, если первое уведомление не удалось: он повторяет попытку и не даёт заданию остаться в локальной очереди. Агенты Битрикс по умолчанию запускаются на хитах сайта; на сайтах с малой посещаемостью их лучше запускать по cron (в /bitrix/php_interface/dbconn.php добавляется define("BX_CRONTAB_SUPPORT", true); и настраивается системный cron), иначе повторное уведомление может задержаться.
Как работает автовыгрузка
Автовыгрузка нужна, чтобы постепенно опубликовать накопленный каталог или архив новостей.
- Сервис ParrotPoster периодически обращается к вашему сайту. При каждом обращении модуль проверяет шаблоны с включённой «Автоматической выгрузкой».
- Расписание проверяется в часовом поясе шаблона. Учитываются времена из строки «Все дни» и строки текущего дня недели. Если время обращения отличается от времени в расписании менее чем на 5 минут, модуль может начать выгрузку.
- Если включена настройка «Соблюдать интервал выгрузки в 30 мин.», модуль также проверяет время предыдущей публикации по этому шаблону. Когда с неё прошло меньше 25 минут, текущая выгрузка пропускается.
- За одно срабатывание публикуется один элемент. Он выбирается так: берутся элементы инфоблока (с учётом разделов, «Только активные» и условий), для которых по этому шаблону ещё нет поста, сортируются по выбранному полю, и берётся первый.
- Когда подходящие элементы закончатся, выгрузка перестаёт публиковать.
Совет
Чтобы скорее выгрузить нужные элементы, выберите осмысленную сортировку: например, «ID по возрастанию» — от старых к новым. Рандомная сортировка берёт случайный необработанный элемент.
Опубликовать элементы вручную
В списках элементов и разделов инфоблока (контекстное меню строки и групповые действия) есть пункт Создать пост в соц. сеть. Он открывает окно, где можно выбрать шаблон из подходящих для этого инфоблока или опубликовать без шаблона. При публикации через шаблон условия шаблона не проверяются. Это удобно, чтобы отправить в соцсети конкретные элементы без ожидания автоматики.
Страница «Посты» и локальная очередь
В модуле нет отдельных страниц «Очередь» и «Журнал». Состояние публикаций смотрите в разделе Посты (список постов и их статусы, см. Посты). Если в локальной очереди есть задачи, над списком показывается строка «В локальной очереди элементов: N» с пояснением: это временный список заданий на сайте, которые модуль ещё передаёт в ParrotPoster. Пока очередь не обработана, посты в списке могут не появиться.
Частые проблемы
| Что происходит | Что проверить |
|---|---|
| Новый элемент не публикуется | Включена ли «Автопубликация» у шаблона; верный ли инфоблок и раздел; выполняются ли условия и «Только активные»; выбраны ли аккаунты. |
| Элементов в «В локальной очереди» много и они не уходят | Доступен ли ваш сайт из интернета для сервиса ParrotPoster (обращение идёт на файл /bitrix/tools/vettich.sp3.ajax.php), не закрыт ли он авторизацией или фаерволом; работают ли агенты Битрикс. |
| Пост в Instagram или Pinterest не создаётся | Для них обязательна главная картинка — проверьте поле «Главная картинка» и что файл существует. |
| Автовыгрузка не публикует | Включена ли «Автоматическая выгрузка»; задано ли расписание; верный ли часовой пояс; остались ли элементы без постов по этому шаблону; не мешает ли интервал 30 минут. |
| Пост не обновился после правки элемента | Включено ли «Обновлять элемент»; пост ещё должен быть не старше суток с момента публикации. |
| Нужно разобраться глубже | Включите запись отладочного лога в /bitrix/php_interface/dbconn.php: define('VETTICH_SP3_LOG_ENABLED', true);. Файл лога создаётся в папке модуля с датой в имени. Приложите его при обращении в поддержку. |
