Здравствуйте, уважаемые форумчане! Перед созданием темы потрудился покопаться в движке самостоятельно и погуглить в поисках готовых ответов или толковых мануалов. Копался долго, гуглил тоже, но не очень успешно. Пытаюсь разобраться в работе Hostcms и модуля интернет-магазин, в частности. Не могу понять несколько ключевых вещей. Возможно ответ на этот вопрос будет своеобразным мини-гайдом по теме, который я искал, но не нашел.
1) не могу найти в движке, каким образом реализован матрешечный принцип в макетах! Как банально поместить один макет в другой, или типовую динамическую в макет. Если это можно сделать через админку, то как там это делается?
Сам я докопался до того, что существует некий объект Core_Page, который получает пачку шаблонов через метод addTemplates(), а затем, выполняется execute(), (в этом хитром методе я понимаю и кроется вся рекурсия, так как там происходит удаление из массива _children объекта шаблона, а возвращается сам объект Core_Page). До того как происходит все это оматрешивание, запускается запись в буфер, чтобы собрав весь контент затем выгрузить его уже во фронтенд.
Непонятным остался момент, как же все-таки формируется этот контент, и как дальше крутится эта рекурсия, чтобы перебрать все дочерние элементы Core_Page. Я застопорился в совем анализе на Template_Model, а именно на строках файла \modules\core\command\controller\default.php
$oCore_Page
->addTemplates($oTemplate)//this is CorePage object
->execute();// here we have ready content to paste it into buffer
В процессе отладки я увидел, что в поле _children объекта Core_Page есть два объекта Template_Model, очевидно они представляют два макета, один из которых вложен в другой. Но по моей логике после первого оборота все глохнет - то есть этой строкой мы просто возвращаем в пустоту Core_Page только без первого дочернего элемента . (Хотя интуиция подсказывает, что execute() вертится пока есть хоть один _children и где-то происходит эта загрузка контента в буфер)
2) неясно где взять тот самый xml который получается в результате запросов или вычислений, который затем нужно отформовать xsl-шаблонами. Есть ли способ отладки, когда можно получить тот самый xml, который нужен, для того чтобы суметь правильно написать xsl-шаблон, по данному xml-образцу?
3)Можно как то попроще растолковать, что происходит в цепочке Core_Response=> Core_Router_Route=>Core_Route=>Core_Command_Controller итд и каким образом, хотя бы образно из этого всего мы получаем обработку макетов и ТДС? (пробовал проследить происходяее с index.php и получилось это)
Помогите, пожалуйста! нужна путеводная ниточка! ключ к пониманию! Все кажется довольно запутанным и неочевидным и я выбиваюсь из сил.)) Хотя на самом деле может оказаться простым!
1) Зайдите в центр администрирования,в раздел "Структура сайта" -"Макеты сайта", в данном разделе находятся,создаются и редактируются все макеты сайта. Для создания подмакета,нажмите на название макета,откроются макеты уровнем ниже.Что бы применить конкретный макет к узлу необходимо зайти в "Структура сайта"-"Структура сайта",нажать редактировать,нужный Вам узел. В редактировании узла структуры будет выбор типа раздела страница,типовая динамическая страница,динамическая страница. К первому типу применяется только статическая страница. Ко вторым двум разные типы динамических страниц вместе с выше упомянутыми макетами.
Ниже ссылки на упомянутые темы в документации:
2) Описание как просмотреть xml далее по ссылке
3) Рекомендуем,в данный момент,не смотреть столь глубоко. Вернуться к данному вопросу после усвоения базовых принципов работы CMS.