Где можно посмотреть, как связываются между собой шаблон, макет, XSL-шаблон
Вам для какой версии? Если для 6й то в ней нет шаблонов страниц, есть только макеты и XSL.
Если для 5й то вы неправильно разместили тему.
Вкратце суть такая.
Макет и XSL-шаблон между собой по сути никак не связаны, это совершенно отдельные сущности.
Связи задаете вы сами, редактируя разделы структуры.
Для каждого раздела вы можете указать его макет и Типовую Динамическую Страницу (ТДС), а уже в параметрах ТДС задается набор XSL-шаблонов, необходимых для отображения результатов ее работы.
(Важно, если у вас тип раздела структры = документ, а не ТДС, то макет задается в редакторе документа)
Между макетом и XSL никаких данных не передается.
XSL-шаблон обрабатывает данные из XML-документа, который готовится в ТДС. Точнее даже, в вызываемых на ней контроллерах показов.
Сам процесс подготовки XML-документа скрыт "под капотом" системы, в папке /modules/, код там открытый, но судя по уровню ваших вопросов лезть вам туда еще рано. (Строго говоря, в этой папке лучше вообще ничего лишний раз не трогать, независимо от уровня знания системы).
Добавляя В ТДС какой-либо свой код, вы можете передавать в XML свои дополнительные данные, или влиять на передачу в XML стандартных блоков данных. Например, если в отображении списка товаров вам не нужно доп.свойства, то можно отключить их передачу в XML, чтобы сократить число запросов к БД и увеличить скорость генерации страницы.
Вот примерно такого описания не хватало в самом начале )
А, когда мы используем вывод из макета, с помощью задания параметров и show(), код ТДС тоже задействуется? И если "да" то в каком порядке? Т.е. если одни и те же параметры заданы и в макете и в ТДС - кто "победит"?
А, когда мы используем вывод из макета, с помощью задания параметров и show(),
Нет, если вы просто вставляете код вызова контроллера в макет, то ТДС _для_этого_кода_ и _в_этом_месте_ не используется.
Хотя это все формально.
У ТДС же две части - настройки и код.
Настройки выполняются _до_ вывода макета (точнее, до вывода HTTP-заголовков), результат их выполнение доступен во всем макете и в коде ТДС.
Т.е., например, в настройках ТДС инфосистемы определяется, в какой группе ИС мы находится, находимся ли мы при этом в элементе ИС, если да то в каком.
И эти данные потом используются в коде ТДС.
Точно так же, вы можете использовать эти же данные и в любом месте макета.
Вообще, что такое ТДС? Ее можно представить как два куска php-кода. Первый кусок (настройки) можно вставить перед макетом (перед тегом <html> а второй кусок - в середине макета, там где основной контент. И будет то же самое, но без всякой ТДС. Она выделена в отдельную сущность просто для удобства организации кода.
Stepan0v писал(а):
Т.е. если одни и те же параметры заданы и в макете и в ТДС — кто «победит»?
Тут нет общего случая.
Смотря как вы эти параметры задаете и используете.
Можно сделать так, что они окажутся изолированными друг от друга.
А вообще, актуальное значение - это то, которое задано последним, перед вызовом действия.
Stepan0v,в вашем гипотетическом какая-то извращенная логика Обычно после таких вот допущений потом на форуме появляются темы типа этой http://hostcms.ru/forums/20/7960/