Не работает Fenom при вызове плейсхолдера Total

Приветствую сообщество!

В общем вопрос наверное простенький, но все же.
У меня почему не выводиться плейсходел page.total при помощи Фенома
Пытался выводить так:
{$_modx->getPlaceholder('page.total')}
и так:
{'page.total' | placeholder}
и так:
{$_modx->getPlaceholder('!page.total')}
И так:
{'!page.total' | placeholder}
Собственно никак не хочет!
А вот так:
[[!+page.total]]
В легкую!
При этом вот это:
{'page.nav' | placeholder}
Работает как за милу душу!

Подскажите в чем может быть беда!

UPD!
В общем я балбес…
РЕШЕНО!
Нужно было всего то поместить вызов плейсхолдера после вызова самого сниппета а мне нужно было расположить до!
В общем запихнул всю работу сниппета в переменную и вызвал плейсхолдел TOTAL раньше чем плейсхолдер работы самого сниппета!
За наводку спасибо комментарию (Василия Наумкина, который я нашел случайно и догадался что я что то делаю не так):
Комментарий Василия.
Andrey
25 августа 2018, 04:56
modx.pro
1 814
0

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

Кирилл Киселев
25 августа 2018, 07:52
0
Так пробовал?
{$total = $_modx->getPlaceholder('page.total')}

А вообще, покажи полностью шаблон, что выводишь.
    Andrey
    25 августа 2018, 13:32
    0
    тю, так какая разника как вывожу, он нигде не работает :D
    Протестил на другом проекте, так же!
    Собственно вот так вывожу сниппет:
    {$_modx->runSnippet('!pdoPage', [ 
    'class' => 'Ticket',
     'element' => 'getTickets',
     'parents' => 21,
     'showUnpublished' => 1,
    'nestedChunkPrefix' => 'tickets_',
    'includeContent' => 1,
    'where' =>  [
    'published' => 0,
          'moderation' => 2,
          'createdby' => 'user.id' | placeholder,
          ] | json_encode,
    'limit' => 10,
    'includeTVs' => 'rid,moderation,dat,rname,city',
    'tvPrefix' => '' ,
    'prepareTVs' => 1 ,
    'processTVs' => 1 ,
    'ajaxMode' => 'button' ,
    'tpl' => 'rid.feedback.tpl' ,
    ])?: '<div class="alert alert-warning" role="alert">
           <strong>Пусто!</strong> Пока отзывов об этом ресторане нет!
    </div>'}
    П.С.
    {$total = $_modx->getPlaceholder('page.total')}
    Тоже не работает!
      Кирилл Киселев
      26 августа 2018, 12:18
      0
      А почему не подходит вариант как [[!+page.total]]?
        Денис Мижеревич
        02 мая 2021, 12:17
        0
        Доброго времени.
        Ищу ответ на вопрос. Наткнулся на эту давнюю переписку.
        Вопрос связан с [[!+page.total]]
        У меня на странице есть три есть разных вывода pdoPage — выводят результаты из разных родителей.

        И мне нужно для каждого вывода pdoPage вывести [[!+page.total]]
        Соответственно, если пишу [[!+page.total]] под каждым выводом снипета pdoPage, то выводит одинаковый результат [[!+page.total]] под всеми тремя pdoPage.
        Полагаю, что нужно как-то определить родителя для [[!+page.total]], но не могу понять, как это прописать.
        Здорово, если сможете подсказать.
      Кирилл Киселев
      26 августа 2018, 12:24
      0
      Ну, а вообще, как ниже предлагали:
      {set $pdoPage = $_modx->runSnippet('!pdoPage', [...])}
    terlim
    25 августа 2018, 15:08
    0
    в документации написано
    Имя плейсхолдера для вывода количества страниц.- pageCount
      Andrey
      25 августа 2018, 18:45
      0
      это вывод количества страниц!
      А мне нужен TOTAL — Имя плейсхолдера для сохранения общего количества результатов.
      Andrey
      25 августа 2018, 18:47
      0
      Я ж написал, что без фенома выводит! А через феном не хочет работать, вопрос почему и как исправить?
        Баха Волков
        26 августа 2018, 06:53
        +1
        Помести сам вызов pdoPage в переменную и тогда будет выводится
          Andrey
          26 августа 2018, 16:08
          0
          Например?
          (Пока я честно сказать смутно представляю как это должно работать)

          Просто с учетом, что в официально документации есть:
          {$_modx->runSnippet('!pdoPage@PropertySet', [
              'parents' => 0,
              'element' => 'pdoResources',
              'where' => ['isfolder' => 1],
              'showLog' => 1,
          ])}
          {$_modx->getPlaceholder('page.total')}
          {$_modx->getPlaceholder('page.nav')}
          Я полагал, что лишних манипуляций быть не должно!
            Кирилл Киселев
            27 августа 2018, 11:57
            0
            Вызов сниппета сохранить в переменную, но вызывать это в самом начале чанка/шаблона, а потом уже использовать getPlaceholder(), а потом вставлять в нужное место сам сниппет.
            {set $pdoPage = $_modx->runSnippet('!pdoPage@PropertySet', [
                'parents' => 0,
                'element' => 'pdoResources',
                'where' => ['isfolder' => 1],
                'showLog' => 1,
            ])}

            И выводишь где надо
            {pdoPage}

            А плейсхолдеры выводишь как обычно.
            {$_modx->getPlaceholder('page.total')}
            {$_modx->getPlaceholder('page.nav')}
        Сергей Водолагин
        27 августа 2018, 00:46
        1
        +1
        Привет может это с этим связанно.
        Начиная с версии [pdoTools] 2.11.0 — отключение выборки total по умолчанию
        В новой версии добавлена опция setTotal прямо в класс pdoFetch, и она отключена по умолчанию.

        То есть, теперь все выборки pdoTools не делают эту ненужную работу. Но, так как плейхолдер [[+total]] необходим для постраничной навигации, сниппет pdoPage включает его всегда. При вызове любого сниппета через pdoPage, этот плейхолдер будет выставлен.

        Я очень надеюсь, что вы не заметите никаких проблем при обновлении сайта, но теоретически они могут быть, если этот плейсхолдер вам нужен не для пагинации, а для чего-то еще.

        Если так, то просто включите его:
        [[!pdoResources?
        &parents=`0`
        &…
        &setTotal=`1`
        ]]

        Василий Наумкин
          Andrey
          27 августа 2018, 02:01
          0
          та я уже решил!
          надо было всего то расположить вызов сниппета до того, как я вызываю прейсхолдер
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          15