Выдана 116081 лицензия

Вся структура сайта на одной странице

Вся структура сайта на одной странице
#
nikolajgromkov
Здравствуйте. Как правильно вывести содержимое всех корневых узлов структуры сайта на одной странице, например, магазин, под ним новости, а под ним контакты?

Я взял Structure_Controller_Show и вывел со всеми доступными свойствами, а дальше уже просто поиграться в XSL или TPL. Верное ли это решение, или есть более эффективное?

<?php
// Верхнее меню
$Structure_Controller_Show = new Structure_Controller_Show(
    Core_Entity::factory('Site', CURRENT_SITE));

$Structure_Controller_Show->xsl(
        Core_Entity::factory('Xsl')->getByName('ВерхнееМеню')
    )
    ->menu(3)
      ->showProperties(TRUE)
      ->showInformationsystemGroups(TRUE)
      ->showInformationsystemItems(TRUE)
      ->showShopGroups(TRUE)
      ->showShopItems(TRUE)
      ->showInformationsystemGroupProperties(TRUE)
      ->showInformationsystemItemProperties(TRUE)
      ->showShopGroupProperties(TRUE)
      ->showShopItemProperties(TRUE)
    ->show();
?>


И еще вопрос. В XML попадают товары и информационные элементы из динамических страниц — это офигенно, но обычные страницы нет. Т.е в узле хотелось бы увидеть текст документа О компании

<structure_menu_id>3</structure_menu_id>
      <template_id>20</template_id>
      <data_template_id>0</data_template_id>
      <site_id>2</site_id>
      <document_id>23</document_id>
      <lib_id>0</lib_id>
      <parent_id>0</parent_id>
      <name>О компании</name>
      <seo_title></seo_title>
      <seo_description></seo_description>
      <seo_keywords></seo_keywords>
      <show>1</show>
      <sorting>0</sorting>
      <path>about</path>
      <type>0</type>
      <siteuser_group_id>0</siteuser_group_id>
      <https>0</https>
      <active>1</active>
      <indexing>1</indexing>
      <changefreq>2</changefreq>
      <priority>0.5</priority>
      <link>/about/</link>
      <dir>/upload/structure_2/1/4/2/structure_142/</dir>


Понимаю, что это разные сущности. Как выход вижу — проверять на тип узла структуры, и если тип выпадает на страницу, то как-то дополнительно получать данные уже из документа по document_id, верно?
Уроки по HostCMS youtube.com/c/NivaksStudio | nivaks-studio.ru

ПрофильЦитировать выделенное08.05.2018 02:04:00 • Сообщений: 30
Re: Вся структура сайта на одной странице
#
llirik
Модератор
Если у вас будет большое количество групп/товаров то возникнут проблемы с производительностью при выводите всего этого на одной странице. Так же возможно оптимальнее будет выводить все отдельными контроллерами для более гибкой настройки.

В контроллере Structure_Controller_Show стандартно не выводит содержание документов. Можете добавить документы через хук или унаследовать контроллер и внести изменения.
«Не выходи из комнаты, не совершай ошибку…»

ПрофильЦитировать выделенное08.05.2018 09:17:15 • Сообщений: 316
Re: Вся структура сайта на одной странице
#
nikolajgromkov
Понял вас! Спасибо.
Уроки по HostCMS youtube.com/c/NivaksStudio | nivaks-studio.ru

ПрофильЦитировать выделенное08.05.2018 09:26:38 • Сообщений: 30
Re: Вся структура сайта на одной странице
#
Puma
строчку
->menu(3)

можете убрать, чтоб выводилось из всех меню
а не из одного
Email: golden-puma@yandex.ru, Skype: golden_puma

ПрофильЦитировать выделенное14.05.2018 20:20:33 • Сообщений: 496
Re: Вся структура сайта на одной странице
#
nikolajgromkov
Puma писал(а):

строчку ->menu(3)
можете убрать, чтоб выводилось из всех меню
а не из одного

Спасибо , она действительно в данном случае не нужна. Там и параметры будут использоваться не все, лишь самые необходимые.
Уроки по HostCMS youtube.com/c/NivaksStudio | nivaks-studio.ru

ПрофильЦитировать выделенное15.05.2018 05:24:20 • Сообщений: 30
Авторизация