pdoPage, подскажите, где ошибка
        Добрый день, друзья
Перед тем, как задавать вопрос, прочёл форум. Там писали, что, используя fenom вызов сниппета с pdoPage или pdoCalendar2, надо вначале формирования документа запустить их и результат присвоить переменной, а после уже выборку ресурсов запускать через pdoResource. Вообщем, сделал я так:
Когда запускаю этот же pdoPage сразу вместо переменной {$ipages} и использую getPlaceholders('page.nav'), или же запускаю через оригинальный синтаксис вызова сниппетов modx [[!pdoPage]], то получаю просто массив каждого ресурса полученного pdoPage, типа Array = [id=...]
    
    
                                                                                
            Перед тем, как задавать вопрос, прочёл форум. Там писали, что, используя fenom вызов сниппета с pdoPage или pdoCalendar2, надо вначале формирования документа запустить их и результат присвоить переменной, а после уже выборку ресурсов запускать через pdoResource. Вообщем, сделал я так:
<тут_код_заголовка>
{set $parents = $_modx->resource.id}
{if $parents == 9}
    {add $parents = '9,18'}
{/if}
{set $ipages = $_modx->runSnippet('!pdoPage', [
    'element' => 'pdoResources',
    'parents' => $parents,
    'depth' => 3,
    'where' => ['content_type' => 9],
    'limit' => 12,
    'resources' => '-101',
    'sortdir' => 'ASC',
    'pageLimit' => 5,
    'pageLinkScheme' => '/{$pageVarKey}-{$page}',
    'tplWrapper' => '@INLINE {$output}',
    'tplPageWrapper' => '@INLINE {$prev}{$pages}{$next}',
    'tplPage' => '@INLINE <a href={$href}>{$pageNo}</a>',
    'tplPageActive' => '@INLINE <a href={$href} class="active">{$pageNo}</a>'
])}
<немного_вёрстки>
	{* Это приходится делать, потому что после первого использования в pdoPage переменная, видимо, изменяется и ресурсы не выводятся. *}
	{add $parents = $_modx->resource.id} 
        {if $parents == 9}
            {add $parents = '9,18'}
        {/if}
        {$_modx->runSnippet('!pdoResources', [
           'parents' => $parents,
            'resources' => '-101',
            'where' => ['content_type' => 9],
            'sortdir' => 'ASC',
            'tvPrefix' => '',
            'limit' => '1000',
            'includeTVs' => 'tv_preview_image,tv_price_start',
            'tplWrapper' => '@INLINE {$output}',
            'tpl' => '@FILE chunks_product/products_list_preview.tpl'
          ])}
<немного_вёрстки>
<div class=paginaton>
{$ipages}
</div>получаю ничего.Когда запускаю этот же pdoPage сразу вместо переменной {$ipages} и использую getPlaceholders('page.nav'), или же запускаю через оригинальный синтаксис вызова сниппетов modx [[!pdoPage]], то получаю просто массив каждого ресурса полученного pdoPage, типа Array = [id=...]
Комментарии: 4
                Не вижу tpl для pdoResources в вызове сниппета с $ipages, предполагаю что из-за этого.            
                    
                Алексей, спасибо за ответ!
Получилось сделать так, что ссылки выводятся, но урл генерируется не по схеме, и выводятся ссылки списком, чанки введённые к ним не применяются.
По ссылкам
                    'tplPage' => '@INLINE <a href={$href}>{$pageNo}</a>Вот это ведь отвечает за вывод обычной ссылки на страницу.Получилось сделать так, что ссылки выводятся, но урл генерируется не по схеме, и выводятся ссылки списком, чанки введённые к ним не применяются.
По ссылкам
web.site/katalog/{$pageVarKey}-{$page}а получаетсяweb.site/katalog/katalog/{$pageVarKey}-{$page}Также на месте самого сниппета остаётся вывод этого массива со всеми элементами и подэлементами, данными, которые получил сниппет.            
                Вообщем, так:
Также добавил этот плагин: Ссылка на документацию
После вызова сниппета, использование заработало для:
У меня система не понимает переменную {$uri}, и ничего не выводит.
Но я не пойму, почему у меня переключение страниц не согласуется с предыдущим вызовом на странице pdoResources? То есть ресурсы как выводились до 1000, так и выводятся. Или меняю на 10, так только 10 первых и выводится. а вот при переключении по страницам — остаются те же первые 10 результатов, или все.
                    'pageLinkScheme' => '/[[+pageVarKey]]-[[+page]]',В вызове сниппета через феном в схеме ссылки использовать только классические теги модх. У меня иначе не заработало.Также добавил этот плагин: Ссылка на документацию
После вызова сниппета, использование заработало для:
{$_modx->getPlaceholder('page.nav')}Чтобы не выводился ненужный массив, пришлось оставить set{set $ipages = $_modx->runSnippet('!pdoPage', [Иначе даже при запуске сниппета сразу через $_модх — у меня ничего не работало.У меня система не понимает переменную {$uri}, и ничего не выводит.
Но я не пойму, почему у меня переключение страниц не согласуется с предыдущим вызовом на странице pdoResources? То есть ресурсы как выводились до 1000, так и выводятся. Или меняю на 10, так только 10 первых и выводится. а вот при переключении по страницам — остаются те же первые 10 результатов, или все.
                Решён вопрос.
Я сначала не понял, и вроде чётко не написано в документации, что надо вместо pdoResources использовать pdoPage, если нужна постраничность.
                    Я сначала не понял, и вроде чётко не написано в документации, что надо вместо pdoResources использовать pdoPage, если нужна постраничность.
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.