База знаний

📑 Динамические страницы

Рассмотрим механизм, который при помощи интеграций Collabza позволяет динамически загружать из Airtable различный контент в один шаблон страницы за счёт фильтров в параметрах URL.


Предположим, что для каждого из преподавателей онлайн-школы нам нужна страница с информацией о нём и расписанием занятий, куда можно записаться.


Вместо того, чтобы создавать отдельную страницу под каждого преподавателя, мы создадим общий шаблон, куда при помощи интеграций будем подтягивать из Airtable данные по тому или иному преподавателю в зависимости от параметров в адресе страницы.

Про сам процесс настройки интеграций можно предварительно посмотреть:

Структура данных в Airtable

Для нашего проекта мы создали в Airtable базу "Онлайн-школа". Данные о преподавателях хранятся в таблице "Преподаватели", а данные о занятиях - в таблице "Занятия".



Для таблицы "Занятия" создан вид "Свободные", в котором отфильтрованы занятия, куда ещё никто не записался. Занятия в этом виде упорядочены по времени.

Шаблон страницы на Тильде

Создаём на Тильде шаблон страницы преподавателя из следующих блоков:
  1. AB605 - информация о преподавателе
  2. ST310N - доступное время для занятий с возможностью записи



Настраиваем интеграции Collabza, которые будут подтягивать данные из Airtable:
  1. AB605 - подтягиваем данные из таблицы "Преподаватели"
  2. ST310N - подтягиваем данные из вида "Свободные" таблицы "Занятия"

Параметры URL для фильтрации данных

Чтобы в настроенных интеграциях отфильтровать данные по конкретному преподавателю, можно использовать параметры URL.


https://collabza.ru/docs/tutor
?filters258503648=id__eq__recWrwz2dOWsodeto
&filters258503651=tutor_id__eq__recWrwz2dOWsodeto

  • Для блока AB605 (#rec258503648) первая интеграция находит нужную запись из таблицы "Преподаватели" по полю id.
  • Для блока ST310N (#rec258503651) вторая интеграция фильтрует записи из таблицы "Занятия" по полю tutor_id.

Общий формат параметров в адресе страницы следующий:
?filters<id блока>=<название поля>__eq__<значение>
Например (до и после eq идут по два подчеркивания):
?filters123456789=Магазин__eq__Перекрёсток

При помощи __and__ можно делать фильтр для одного блока сразу по нескольким полям. Например:
?filters123456789=Город__eq__Москва__and__Магазин__eq__Перекрёсток

Можно делать фильтры для нескольких блоков на одной странице, разделяя их символом &. Например: 
?filters123456789=Город__eq__Москва&filters333555777=Город__eq__Москва

Каталог преподавателей

Каталог преподавателей представляет собой блок ST305N с настроенной интеграцией, которая подтягивает данные из таблицы "Преподаватели".


Ссылка на страницу преподавателя формируется в Airtable по формуле:
"http://collabza.ru/docs/tutor?filters258503648=id__eq__" & id & "&filters258503651=tutor_id__eq__" & id


В итоге один и тот же шаблон страницы преподавателя переиспользуется для всех преподавателей.


Проверка наличия фильтров

Если попытаться открыть страницу без фильтров в параметрах URL, то Collabza может загрузить в блоки данные сразу по нескольким преподавателям. Чтобы этого избежать, можно добавить на страницу блок "T123: HTML-код", который будет производить редирект на страницу /page_not_found в случае отсутствия нужных параметров.


Тот же код текстом можно скачать по ссылке.

При возникновении вопросов - добавляйтесь в чат сообщества https://t.me/collabza_chat, - там всегда рады помочь!

Шаблоны

Для упрощения настройки теперь доступны шаблоны из этой инструкции.
1) Airtable: https://airtable.com/appO49BcU4nYMOFk3/shrNJMNSkVpFTY4La (внимание, в формулах для ссылок используется url нашего сайта и id блоков Tilda нашего шаблона - их нужно поменять на свои)
2) Tilda id шаблона: 48950945 (внимание, код сверху содержит id блоков Tilda нашего шаблона - их нужно поменять на свои)
3) Collabza интеграция 1 (преподаватель ab605): https://collabza.ru/tools-creator?template_id=960673d8-ff6f-4b58-81a3-2c2624f8ce61
4) Collabza интеграция 2 (расписание st310n): https://collabza.ru/tools-creator?template_id=8a239aa3-92ef-4e82-bb81-165e3ec84758

Инструкция по работе с шаблонами в Collabza.
Сборка фич