pdoPage, подскажите, где ошибка

Добрый день, друзья

Перед тем, как задавать вопрос, прочёл форум. Там писали, что, используя 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=...]
Paul B.
09 июня 2016, 09:17
modx.pro
1
3 828
0

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

Алексей
09 июня 2016, 12:57
+1
Не вижу tpl для pdoResources в вызове сниппета с $ipages, предполагаю что из-за этого.
    Paul B.
    09 июня 2016, 19:46
    +1
    Алексей, спасибо за ответ!
    'tplPage' => '@INLINE <a href={$href}>{$pageNo}</a>
    Вот это ведь отвечает за вывод обычной ссылки на страницу.

    Получилось сделать так, что ссылки выводятся, но урл генерируется не по схеме, и выводятся ссылки списком, чанки введённые к ним не применяются.
    По ссылкам
    web.site/katalog/{$pageVarKey}-{$page}
    а получается
    web.site/katalog/katalog/{$pageVarKey}-{$page}
    Также на месте самого сниппета остаётся вывод этого массива со всеми элементами и подэлементами, данными, которые получил сниппет.
    Paul B.
    10 июня 2016, 03:05
    +1
    Вообщем, так:
    'pageLinkScheme' => '/[[+pageVarKey]]-[[+page]]',
    В вызове сниппета через феном в схеме ссылки использовать только классические теги модх. У меня иначе не заработало.
    Также добавил этот плагин: Ссылка на документацию

    После вызова сниппета, использование заработало для:
    {$_modx->getPlaceholder('page.nav')}
    Чтобы не выводился ненужный массив, пришлось оставить set
    {set $ipages = $_modx->runSnippet('!pdoPage', [
    Иначе даже при запуске сниппета сразу через $_модх — у меня ничего не работало.

    У меня система не понимает переменную {$uri}, и ничего не выводит.

    Но я не пойму, почему у меня переключение страниц не согласуется с предыдущим вызовом на странице pdoResources? То есть ресурсы как выводились до 1000, так и выводятся. Или меняю на 10, так только 10 первых и выводится. а вот при переключении по страницам — остаются те же первые 10 результатов, или все.
      Paul B.
      12 июня 2016, 18:59
      0
      Решён вопрос.
      Я сначала не понял, и вроде чётко не написано в документации, что надо вместо pdoResources использовать pdoPage, если нужна постраничность.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      4