Подскажите направление решения задачи!

Всем привет!
Возникла задача, ни когда с такой не сталкивался, даже не пойму с чего начать.
В общем есть сайт на котором следующая структура:
Услуги
	Категория-1
	Категория-2
	Категория-3
Публикации
	Раздел (Категория-1 услуг)
		Тикет-1
	Раздел (Категория-2 услуг)
		Тикет-1
		Тикет-2
	Раздел (Категория-3 услуг)
		Тикет-1
		Тикет-2
		Тикет-3
Примеры
	Категория (Категория-1 услуг)
		Ресурс-1
		Ресурс-2
		Ресурс-3
	Категория (Категория-2 услуг)
		Ресурс-1
	Категория (Категория-3 услуг)
		Ресурс-1
		Ресурс-2
Необходимо что бы:
1) на станице ресурса Категории-1, так же выводился блок с «публикациями» и блок «примеры работ» относящиеся к «Категории-1»

С чего начать, где копать, какие компоненты использовать, даже представить не могу…
Сергей
22 мая 2018, 15:57
modx.pro
1
1 176
0

Комментарии: 12

Баха Волков
22 мая 2018, 19:04
0
Вариант с тв-шками не подойдёт?
    Сергей
    22 мая 2018, 19:43
    0
    Не рассматривал такой вариант, спасибо буду смотреть!
    А подскажите пожалуйста компонент tickets так же можно фильтровать по тв?
      eflit
      22 мая 2018, 20:12
      0
      Да можно для фильтра можно использовать прекрасное дополнение mSearch2
        Сергей
        22 мая 2018, 20:40
        0
        А без mSearch2 твшками можно реализовать в Tickets?
          eflit
          22 мая 2018, 20:42
          0
          mSearch2 — для фильтрации но можно делать и без него.
            Сергей
            22 мая 2018, 21:00
            0
            Спасибо, буду изучать!
    Сергей
    22 мая 2018, 21:02
    0
    Раз уж топик открыт, пока не закрыл!
    Подскажите почему не срабатывает данная конструкция?
    {if $id == 3}
                        {$_modx->resource.content}
                    {else}
                        {'!pdoMenu' | snippet : [
                            'parents' => $_modx->resource.id,
                            'level' => '1',
                            'tplOuter' => '@INLINE  <div style="padding: 15px; text-align: center!Important;">{$wrapper}</div>',
                            'tpl' => '@INLINE   <h2 style="padding: 15px; margin:0; display: inline-block;" class="text_bold text_size_h2">
                                                    <a href="{$link}">{$menutitle}</a>
                                                </h2>{$wrapper}'
                        ]}
                        {$_modx->resource.content}
                    {/if}
    Нужно что бы на странице с id == 3 выводился только [[+content]], а на другой странице выводилось меню с parent=id
    Но почему то на ресурсе с id == 3, все равно выводится меню, ведь должно все работать?

    А и еще добавлю, данный код находится в
    {extends 'file:templates/base.tpl'}
    {block 'main'}
    Тут код
    {/block}
      Максим Кузнецов
      22 мая 2018, 21:14
      0
      Заместо $id:
      $_modx->resource.id
        Сергей
        22 мая 2018, 21:14
        0
        Сам решил!
        {if $_modx->resource.id == 3}
                            {$_modx->resource.content}
                        {else}
                            {'!pdoMenu' | snippet : [
                                'parents' => $_modx->resource.id,
                                'level' => '1',
                                'tplOuter' => '@INLINE  <div style="padding: 15px; text-align: center!Important;">{$wrapper}</div>',
                                'tpl' => '@INLINE   <h2 style="padding: 15px; margin:0; display: inline-block;" class="text_bold text_size_h2">
                                                        <a href="{$link}">{$menutitle}</a>
                                                    </h2>{$wrapper}'
                            ]}
                            {$_modx->resource.content}
                        {/if}
          Максим Кузнецов
          22 мая 2018, 21:23
          0
          Да, к слову, чтобы не плодить сущности, правильнее сделать так:
          {if $_modx->resource.id == 3}
          	{'pdoMenu' | snippet : [
          		'parents' => $_modx->resource.id,
          		'level' => 1,
          		'tplOuter' => '@INLINE  <div style="padding: 15px; text-align: center!Important;">{$wrapper}</div>',
          		'tpl' => '@INLINE   <h2 style="padding: 15px; margin:0; display: inline-block;" class="text_bold text_size_h2">
          			<a href="{$link}">{$menutitle}</a>
          		</h2>{$wrapper}'
          	]}
          {/if}
          
          {$_modx->resource.content}
        Максим Кузнецов
        22 мая 2018, 21:21
        +1
        По поводу вашей задачи, я бы прибегнул к такому способу: если у вас прослеживается прямая зависимость от услуги к публикации/примеру, то можно, условно, создать 3 контекста (услуги, публикации, примеры).
        При создании ресурсов определенных шаблонов (категория услуги и страница услуги) в первом контексте, на событие OnDocFormSave и $mode == 'new', создавать аналогичные ресурсы с тем же названием в двух остальных контекстах. Код плагина будет примерно похож на данный.

        Таким образом, можно или в автоматическом режиме в том же плагине проставлять id связанных ресурсов в тв-поля «основного», или ограничиться полным соответствием поля pagetitle для сопоставимых рубрик, и выводить «сопутствующие» рубрики уже по нему.
          Сергей
          22 мая 2018, 22:39
          1
          0
          Спасибо Максим, добавил в закладки, обязательно изучу!
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          12