Наверх

Разбивка страниц по категориям (родителям)

<div id="pdopage">
    <div class="rows">
    [[!pdoPage?
        &parents=`0`
        &level=`0`
        &limit=`6`
        &where=`{"modResource.parent:!=":0}`
        &sortby=`{"p_menuindex":"ASC", "publishedon":"DESC"}`
        &ajaxMode=`default`
        &leftJoin=`{
            "Parent":{"class":"modResource", "on":"Parent.id = modResource.parent"}
        }`
        &select=`{
            "modResource":"*",
            "Parent":"Parent.id as pid, Parent.pagetitle as parent_pagetitle, Parent.uri as p_uri, Parent.menuindex as p_menuindex"
        }`
        &tpl=`@INLINE <h3 class="parent-title parent-{$pid}" data-pid="{$pid}">{$parent_pagetitle}</h3>
        <p>{$pagetitle}</p>`
    ]]
    </div>
    [[!+page.nav]]
</div>
<script>
    function hideTitles() {
        $('.parent-title').hide();
        $('.parent-title').each(function(){
            $('.parent-' + $(this).data('pid')).first().show();
        });
    }
    hideTitles()
    $(document).on('pdopage_load', function(e, config, response) {
        hideTitles()
    });
</script>

Результат




4 комментария

  1. Роман 31 марта 2021, 08:56 # 0
    Илья, решить данную задачу, без JS, вообще возможно?
    1. Илья Уткин 31 марта 2021, 09:26 # 0
      Наверное, можно, но готового решения у меня нет. Если найдёте решение, поделитесь, пожалуйста, здесь в комментариях.
      1. Вячеслав 18 октября 2022, 16:40(Комментарий был изменён) # 0
        Можно через pdoMenu. Вызов на fenom:
        <div id="pdocolors2">
            {$_modx->getPlaceholder('page.nav')}
            <div class="rows">
            {'!pdoPage' | snippet : [
                'parents' => 2,
                'element' => 'pdoMenu',
                'showUnpublished' => 1,
                'level' => 0,
                'ajaxElemWrapper' => '#pdocolors2',
                'ajaxElemRows' => '#pdocolors2 .rows',
                'ajaxElemMore' => '#pdocolors2 .btn-more',
                'ajaxElemPagination' => '#pdocolors2 .pagination',
                'limit' => '18',
                'ajaxMode' => 'default'
            ]}
            </div>
        </div>
        
      2. Вячеслав 19 октября 2022, 23:02(Комментарий был изменён) # 0
        комментарий удален

        Авторизация

        через сервис Loginza:


        Шаблоны MODX

        1 2 Дальше »

        Объектная
        модель
        MODX