Вопросы по макету

#
Вопросы по макету
Здравствуйте. Не могу разобраться, на каком этапе обработки запроса, система определяет макет. Хотелось бы узнать последовательность действий системы при обработке запроса. Как я понимаю, последовательность такая:

  • Определяется узел структуры и вместе с ним шаблон страницы
  • Если узел - статическая страница, отображается она + макет, назначенный для неё
  • Если динамическая страница, то отображается её содержимое и макет (назначенный для узла)


Не понятно, почему макет в одном случае назначается странице (это я вообще не могу понять, какое связь страницы и макета), в другом - узлу. Возможно ли вывести содержимое страницы одной в разные макеты (и как)?

Ещё хотелось бы разобраться с выводом таких элементов, как меню, список статей и т.п. Посмотрев в готовые примеры, увидел код наподобие такого:
   // Вывод строки навигации
   $InformationSystem = & singleton('InformationSystem');
   
   // Определяем информацию об информационной системе, связанной с текущим узлом
   $InformationSystem_id = $InformationSystem->GetInformationSystemByStructureId(CURRENT_STRUCTURE_ID);


и так далее. Где можно было бы почитать, как вызвать к примеру список статей, или надо перечитать всю документацию по API?
#
Re: Вопросы по макету
sasha1133 писал(а):
Как я понимаю, последовательность такая...
- не совсем. Содержимое страницы(ВНЕ зависимости от ее типа: статичная страница, динамическая или типовая динамическая страница) помещается внутрь шаблона страниц, а вместе они помещаются внутрь макета(как матрешка).
sasha1133 писал(а):
почему макет в одном случае назначается странице (это я вообще не могу понять, какое связь страницы и макета), в другом — узлу
- выбор макета в форме добавления/редактирования страницы необходим, т.к. именно из CSS-а конкретного макета подгружаются стили в визуальный редактор(см. список "Стиль". А т.к. узел структуры нужен в случае публикации страницы как отдельного раздела сайта(статичные страницы в разделе "Страницы и документы" могут существовать сами по себе, вообще без привязки к узлам структуры), то убрать указание макета из формы добавления/редактирования статичной страницы нельзя(иначе стили будет брать неоткуда).
sasha1133 писал(а):
Где можно было бы почитать, как вызвать к примеру список статей
- см. наше API. Все методы разбиты по классам. Если нужен вывод статей, то скорее всего вы организовали их на базе информационной системы. Поэтому ищите среди методов класса InformationSystem подходящий в соответствии с его описанием(в вашем случае понадобится метод ShowInformationSystem).
Также ознакомьтесь с нашим руководством по интеграции(скачать: http://www.hostcms.ru/download/5/HostCMS_v_5_ModuleDevelopersGuide.pdf ). Там это описано.
#
Re: Вопросы по макету
Спасибо за ответ, но у меня ещё осталось несколько вопросов:

одна и та же статичная страница не может отображаться на 2-х разных макетах, но при этом может на разных шаблонах?

потом, например, можно создать раздел (узел) со статической страницей и шаблоном, а в шаблоне можно и не отображать эту страницу (не вызывать в шаблоне $kernel->show_current_page(); )?

может ли узел сайта обходится без шаблона (только макет)?

и ещё, например, я хочу создать сайт с 2-мя макетами, но часть страниц (например это будет контактная информация) будет общей для одного и второго макета? Что делать в таком случае?
#
Re: Вопросы по макету
можно создать узел типа "Динамическая страница", выбрать макет и вставить:
<?php
$documents = new documents();
$documents->ShowDocument(ID документа);
?>

так можно сделать 2 одинаковые страницы с разными макетами

а show_current_page можно перенести прямо в макет, тогда шаблоны не будут использоваться
#
Re: Вопросы по макету
Спасибо. Появился ещё вопрос - при создании информационной системы есть возможность выбрать узел структуры. Это означает, что информационная система будет доступна только на указанном узле?
#
Re: Вопросы по макету
Не совсем.
Вызвать отображение элементов или групп этой инфосистемы с помощью api вы сможете в любом узле структуры - так, например, на главной выводятся несколько последних новостей, хотя сама инфосистема с новостями привязана к разделу структуры "Новости".
А вот полные url ко всем отображаемым группам и элементам инфосистемы будут высчитываться системой исходя из url того узла, к которому эта инфосистема привязана.
То есть когда вы кликаете по ссылке "подробнее" в новостях на главной (а ссылка ведет на элемент инфосистемы Новости), то вы переходите в тот раздел структуры, к которому привязана инфосистема.
Заказов не беру. Консультирую редко.
#
Re: Вопросы по макету
Понятно. Спасибо всем за помощь
#
Re: Вопросы по макету
У меня предложение для разработчиков. На мой взгляд было бы не плохо для шаблонов страниц иметь возможность добавлять CSS, как и для макета. А выводились бы стили всё той же функцией $kernel->show_CSS(), добавленной в макет.

Модератор
#
Re: Вопросы по макету
Мы рассматриваем такой вариант. Спасибо за предложение.
Авторизация