Для iblock-компонентов: список → детальная → разделы, фильтр/таблица/календарь
В типовом сценарии вокруг инфоблоков строят «цепочку страниц»: список элементов → детальная карточка → (при необходимости) страницы разделов. В SF4 эти задачи закрывают компоненты семейства simai:sf.iblock.*. Практически во всех из них заложена одинаковая идея: инфоблок и элементы можно идентифицировать по ID или по коду, но в проектах SF4 обычно опираются на коды (устойчивее при миграциях и переносах).
На практике начинайте с simai:sf.iblock.list (вывод списка) и simai:sf.iblock.detail (детальная). Для списка ключевыми являются параметры источника (IBLOCK_TYPE, IDENTIFICATION_TYPE, далее IBLOCK_ID/IBLOCK_CODE, а для раздела — SECTION_ID/SECTION_CODE), параметры количества (COUNT) и сортировки (SORT_BY1, SORT_ORDER1). Если нужно фильтровать выдачу — используйте параметр FILTER_NAME и договоритесь о едином имени фильтра между фильтром и списком/таблицей/календарём.
Пример (упрощённый) связки «фильтр → список» с идентификацией по коду:
<?php
// 1) Фильтр формирует условия в $GLOBALS['newsFilter'] (имя передаём в FILTER_NAME)
$APPLICATION->IncludeComponent(
"simai:sf.iblock.filter",
".default",
[
"IDENTIFICATION_TYPE" => "code",
"IBLOCK_TYPE" => "news",
"IBLOCK_CODE" => "news",
"FILTER_NAME" => "newsFilter",
// ...прочие параметры фильтра (зависят от шаблона/полей)
]
);
// 2) Список использует тот же FILTER_NAME
$APPLICATION->IncludeComponent(
"simai:sf.iblock.list",
"sf-news-card",
[
"IDENTIFICATION_TYPE" => "code",
"IBLOCK_TYPE" => "news",
"IBLOCK_CODE" => "news",
"FILTER_NAME" => "newsFilter",
"COUNT" => "12",
"SORT_BY1" => "ACTIVE_FROM",
"SORT_ORDER1" => "DESC",
// ...параметры вывода/шаблона
]
);
Для grid/block: сборка страницы, условия показа, фон/анимации, связка с блоками
Сценарий грида в SF4 — это сборка страницы (или области страницы) из представления (view) и набора блоков (block). Важно: view в SF4 — это не «просто шаблон», а сохранённая конфигурация, которую можно загрузить и получить нужную настройку сущности (область/страница/блок). Визуальный редактор сохраняет изменения в simai.data/grid/view/.../template.php, а выбор активного представления фиксируется в настройках (через .site.property.php / .property.php для соответствующего уровня).
Компонент simai:sf.grid имеет параметры, влияющие на режимы и набор доступных опций. Например, BLOCK_SECTION определяет «секцию» (область), из которой берутся блоки (вроде header, footer, sidebar, main и т.д.), а EXPERT_MODE включает расширенные настройки (по сути — «показать дополнительные поля»).
Пример подключения области грида (идея — выбрать секцию блоков для области):
<?php
$APPLICATION->IncludeComponent(
"simai:sf.grid",
".default",
[
"BLOCK_SECTION" => "header",
// "EXPERT_MODE" => "Y", // при необходимости расширенных настроек
]
);
Для feedback/forms: формы обратной связи/опросов/обращений
Формы в SF4 решают сразу несколько задач: собрать поля, провалидировать, при необходимости сохранить/обработать данные и отправить уведомления. В simai:sf.feedback явно заложены настройки «как подтверждать отправку» и «куда отправлять»: параметр CONFIRMATION предлагает варианты подтверждения (капча/почта/без подтверждения), а блок почтовых параметров включает хотя бы EMAIL (адрес администратора), темы (EMAIL_ADMIN_SUBJ, EMAIL_SUBJ) и текст сообщения (EMAIL_MESSAGE).
Отдельно предусмотрен сценарий событийной отправки: USE_POST_EVENT и POST_EVENT — когда форму нужно связать с почтовым событием (и, при включённых свойствах, прокинуть значения в параметры события).
Минимальный пример:
<?php
$APPLICATION->IncludeComponent(
"simai:sf.feedback",
".default",
[
"CONFIRMATION" => "1", // 1 = captcha (варианты задаются в параметрах компонента)
"EMAIL" => "admin@example.com", // куда уведомлять
"EMAIL_ADMIN_SUBJ" => "Новая заявка",
"EMAIL_SUBJ" => "Спасибо! Мы получили ваше сообщение",
"EMAIL_MESSAGE" => "Ваше сообщение принято.",
// "USE_POST_EVENT" => "Y",
// "POST_EVENT" => "SF_FEEDBACK_FORM",
]
);
Для navigation/content/ui: меню, хлебные крошки, share, cookie, weather/rss, promo/banner
В навигации обычно комбинируют: меню (структура разделов/страниц), «хлебные крошки», а также небольшие UI-виджеты, которые подключаются там, где они нужны (в шапке/подвале/сайдбаре/внутри блоков). Важно держать в голове, что часть этих компонентов — «визуальные», а часть тянет данные (RSS, погода), поэтому у них почти всегда есть параметры источника и кеширования.
Два показательных примера параметров:
simai:sf.rss.showиспользуетURL(откуда читать RSS) иNUM_NEWS(сколько вывести).simai:sf.pdf.viewerиспользуетPDF_URL— путь/URL к PDF для отображения.
Пример для RSS:
<?php
$APPLICATION->IncludeComponent(
"simai:sf.rss.show",
".default",
[
"URL" => "https://example.com/feed.xml",
"NUM_NEWS" => "10",
]
);
Пример для PDF viewer:
<?php
$APPLICATION->IncludeComponent(
"simai:sf.pdf.viewer",
".default",
[
"PDF_URL" => "/upload/docs/manual.pdf",
]
);
Для media/forms: загрузка фото/видео, списки пользователей, редактор свойств
Эта группа закрывает «прикладные» задачи админки/публичных форм: загрузить медиа, показать списки, дать редактор для настроек. Здесь ключевой принцип такой же: параметры определяют источник данных и сценарий, а внешний вид задаётся шаблоном компонента (и/или блоком, который его использует).
По именам компонентов видно назначение:
simai:sf.photo.add,simai:sf.video.add— добавление медиа.simai:sf.user.list— вывод пользователей.simai:sf.property.edit— интерфейс редактирования настроек/свойств (часто используется как служебный компонент для панели/редакторов).
Если для конкретного проекта важно зафиксировать «какие поля обязательны», «куда сохраняется», «какие права нужны» — это требует уточнения по сценарию использования (в разных решениях набор полей и политика доступа могут отличаться).
Для wizard: последовательные шаги sf.wizard/sf.wizard.stage с actions
Мастер в SF4 — это сценарий, который выполняется шагами (stage), а каждый шаг вызывает одно или несколько действий (actions), работающих с общим массивом данных мастера: действие берёт данные из подмассива, выполняет операцию и сохраняет результат обратно (в этот же или другой подмассив). За счёт этого мастер можно собирать как «конвейер»: проверка окружения → подготовка директорий → распаковка пакетов → импорт инфоблоков → настройка сайта → финальные сообщения.
На уровне компонентов:
simai:sf.wizardсодержит скрытый параметрWIZARD_DIRи управляет выполнением (в т.ч. в AJAX-режиме, где важныAJAX_TIME_STEPиAJAX_TIME_INTERVAL).simai:sf.wizard.stageиспользуетWIZARD_CODE(скрытый) и служит «ступенькой» внутри мастера.
Минимальный пример (идея — подключить мастер в нужной директории):
<?php
$APPLICATION->IncludeComponent(
"simai:sf.wizard",
".default",
[
"WIZARD_DIR" => "/simai/wizard/master/simai.sf4university/",
"AJAX_TIME_STEP" => "10",
"AJAX_TIME_INTERVAL" => "5",
]
);
Где смотреть параметры: .parameters.php компонента и шаблонов
Самый надёжный способ понимать «что можно настроить» — смотреть определения параметров:
- глобальные параметры компонента:
/bitrix/components/simai/<component>/.parameters.php - параметры конкретного шаблона:
/bitrix/components/simai/<component>/templates/<template>/.parameters.php
Это особенно полезно для компонентов, где параметры зависят от режима (например, в iblock-компонентах переключение IDENTIFICATION_TYPE меняет набор доступных полей, а у sf.grid часть параметров появляется в EXPERT_MODE).
Примеры использования в проекте
Если в проекте есть демонстрационные страницы/разделы документации, используйте их как «живую витрину» настроек: там обычно уже подобраны шаблоны, параметры и связки (например, «фильтр → список», «грид → блоки», «виджеты в шапке/подвале»). В самой документации SF4 это удобно оформлять как: «что делает компонент» → «какие параметры обязательны» → «типовой пример подключения» → «типовые ошибки (кеш/права/не тот код инфоблока)».