Данные
Логика компонента смешана с его представлением
Связанные компоненты сложно настраивать
Разбросанность по файловой структуре
Компонент
(логика)
Шаблон 3
. . .
Шаблон 1
Шаблон 2
Предопределенные переменные
$componentName – полное название компонента
$componentTemplate - шаблон, с которым вызывается компонент
$arParams – входные параметры компонента (т.е. параметры, с которыми вызывается компонент). Параметры так же доступны по из именам
$componentPath – путь к компоненту относительно корня сайта
$arParentComponent – ассоциативный массив некоторых параметров родительского компонента (многостраничного)
Логика компонента
Поиск шаблона
Определение шаблонизатора
PHP
Smarty
…
HTML
$arResult
Преобразование параметров, стили
Компонент
$arResult
Шаблон
result_modifier.php
1
2
Ошибка
При подключении компонента на публичной странице указываются:
полное имя компонента
название шаблона компонента (если не указано, то подразумевается .default)
для шаблона, находящегося в папке, можно передавать название в виде «папка» или «папка/index.ext»
для шаблона без папки (один файл) название нужно передавать в виде «имя_файла.ext»
Массив входных параметров компонента
Controller
View
Model
Код многостраничного компонента содержит логику определения запрашиваемой страницы, а так же возможно инициализацию переменных, которые затем передаются в качестве входных параметров в дочерние компоненты
В отличие от обычного компонента метод подключения шаблона принимает кроме имени шаблона еще и имя страницы, которую необходимо показать
Для каждой страницы многостраничного компонента свой файл шаблона имя_страницы.ext
Файл шаблона может содержать подключение одного или нескольких дочерних (обычных) компонентов
Во входящие параметры дочерних компонентов могут передаваться входящие параметры многостраничного компонента, данные из массива результатов работы многостраничного компонента, фиксированные значения и т.д.
В дочерний компонент передается название родительского компонента, его шаблон и путь к шаблону через параметр $arComponentParams (этот массив уже определен на входе в шаблон)
Шаблон дочернего компонента сначала ищется в шаблонах многостраничного компонента, а потом – среди своих собственных шаблонов
1
2
3
Решение: во входящих параметрах компонента должны быть установлены следующие параметры
"SEF_MODE" => "Y",
"SEF_FOLDER" => "/catalog/",
"SEF_URL_TEMPLATES" => array(
"list" => "index.php",
"section" => "section/#SECTION_ID#.php?ID=#IBLOCK_ID#",
"element" => "element/#ELEMENT_ID#.php?ID=#SECTION_ID#"
),
"VARIABLE_ALIASES" => array(
"list" => array(),
"section" => array(
"IBLOCK_ID" => "ID"
),
"element" => array(
"SECTION_ID" => "ID",
),
),
Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть