Проблемы с постраничной навигацией при выводе в pdoPage

Здравствуйте. Столкнулся со следующей проблемой — выводится блок-обертка постраничной навигации, когда ссылок на страницы нет, т.е. раздел ещё пустой.
Код вывода:
[[!+page.nav]]
[[!pdoPage?
&parents=`[[*id]]`
&where=`["isfolder=0"]`
&resources=`-6`
&limit=`16`
&maxLimit=`16`
&pageLimit=`7`
&tplPageWrapper=`@INLINE <ul class="pagination clearfix">[[+prev]][[+pages]][[+next]]</ul>`
&tplPagePrev=`@INLINE <li class="control" title="Предыдущая"><a href="[[+href]]"><i class="icon-left-open"></i></a></li>`
&tplPagePrevEmpty=`@INLINE <li class="control disabled"><span><i class="icon-left-open"></i></span></li>`
&tplPageNext=`@INLINE <li class="control" title="Следующая"><a href="[[+href]]"><i class="icon-right-open"></i></a></li>`
&tplPageNextEmpty=`@INLINE <li class="control disabled"><span><i class="icon-right-open"></i></span></li>`
&tplPageSkip=`@INLINE <li class="disabled"><span><i class="icon-ellipsis"></i></span></li>`
&tplPageActive=`@INLINE <li class="active"><a href="[[+href]]">[[+pageNo]]</a></li>`
&sortdir=`DESC`
&sortby=`publishedon`
&tpl=`conferenceItemTpl`
&setMeta=`0`
&tplWrapper=`@INLINE <div id="list-conferences">[[+output]]</div>`
&includeContent=`1`
]]
[[!+page.nav]]
В html-разметке присутствует:
<ul class="pagination"></ul>
По идее, если нет ссылок, то и этой обёртки в html-разметке на сайте не должно быть. Установлен pdoTools 2.10.3-pl на MODX Revolution 2.5.8-pl. Есть рабочий сайт более поздней версии — MODX Revolution 2.5.7-pl, там такой проблемы не наблюдается.
Алексей
13 ноября 2017, 09:10
modx.pro
1 924
0

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

Алексей
17 ноября 2017, 19:01
0
ещё периодически вместо сайта показывается чистая страница с ошибкой: Parse error: syntax error, unexpected '<' in C:\OSPanel\domains\demo.site\core\cache\includes\elements\modplugin\5.include.cache.php on line 25
код этого файла:
<?php
/** @var modX $modx */
switch ($modx->event->name) {

    case 'OnMODXInit':
        $fqn = $modx->getOption('pdoTools.class', null, 'pdotools.pdotools', true);
        $path = $modx->getOption('pdotools_class_path', null, MODX_CORE_PATH . 'components/pdotools/model/', true);
        $modx->loadClass($fqn, $path, false, true);

        $fqn = $modx->getOption('pdoFetch.class', null, 'pdotools.pdofetch', true);
        $path = $modx->getOption('pdofetch_class_path', null, MODX_CORE_PATH . 'components/pdotools/model/', true);
        $modx->loadClass($fqn, $path, false, true);
        break;

    case 'OnSiteRefresh':
        /** @var pdoTools $pdoTools */
        if ($pdoTools = $modx->getService('pdoTools')) {
            if ($pdoTools->clearFileCache()) {
                $modx->log(modX::LOG_LEVEL_INFO, $modx->lexicon('refresh_default') . ': pdoTools');
            }
        }
        break;
}
return;
<?php
/** @var modX $modx */
switch ($modx->event->name) {

    case 'OnMODXInit':
        $fqn = $modx->getOption('pdoTools.class', null, 'pdotools.pdotools', true);
        $path = $modx->getOption('pdotools_class_path', null, MODX_CORE_PATH . 'components/pdotools/model/', true);
        $modx->loadClass($fqn, $path, false, true);

        $fqn = $modx->getOption('pdoFetch.class', null, 'pdotools.pdofetch', true);
        $path = $modx->getOption('pdofetch_class_path', null, MODX_CORE_PATH . 'components/pdotools/model/', true);
        $modx->loadClass($fqn, $path, false, true);
        break;

    case 'OnSiteRefresh':
        /** @var pdoTools $pdoTools */
        if ($pdoTools = $modx->getService('pdoTools')) {
            if ($pdoTools->clearFileCache()) {
                $modx->log(modX::LOG_LEVEL_INFO, $modx->lexicon('refresh_default') . ': pdoTools');
            }
        }
        break;
}
return;
На 25 строке "<?php". Чищу вручную кеш, ошибка исчезает, но через некоторое время снова появляется.
    Алексей
    21 ноября 2017, 12:32
    0
    В общем pdoTools 2.10.3-pl на MODX Revolution 2.5.7-pl точно также навигация работает, а в версии pdoTools 2.8.2-pl1 проблем с постраничной навигации не наблюдается,

    Пришёл к мнению, что дополнение pdoTools 2.10.3-pl работает некорректно.
      Алексей
      21 ноября 2017, 15:37
      0
      в сниппете pdoPage часть кода:
      if (!empty($pageCount) && $pageCount > 1) {
              $pagination = array(
                  'first' => $page > 1 && !empty($tplPageFirst)
                      ? $pdoPage->makePageLink($url, 1, $tplPageFirst)
                      : '',
                  'prev' => $page > 1 && !empty($tplPagePrev)
                      ? $pdoPage->makePageLink($url, $page - 1, $tplPagePrev)
                      : '',
                  'pages' => $pageLimit >= 7 && empty($disableModernPagination)
                      ? $pdoPage->buildModernPagination($page, $pageCount, $url)
                      : $pdoPage->buildClassicPagination($page, $pageCount, $url),
                  'next' => $page < $pageCount && !empty($tplPageNext)
                      ? $pdoPage->makePageLink($url, $page + 1, $tplPageNext)
                      : '',
                  'last' => $page < $pageCount && !empty($tplPageLast)
                      ? $pdoPage->makePageLink($url, $pageCount, $tplPageLast)
                      : '',
              );
      
              if (!empty($pageCount)) {
                  foreach (array('first', 'prev', 'next', 'last') as $v) {
                      $tpl = 'tplPage' . ucfirst($v) . 'Empty';
                      if (!empty(${$tpl}) && empty($pagination[$v])) {
                          $pagination[$v] = $pdoPage->pdoTools->getChunk(${$tpl});
                      }
                  }
              }
          } else {
              $pagination = array(
                  'first' => '',
                  'prev' => '',
                  'pages' => '',
                  'next' => '',
                  'last' => ''
              );
          }
      
          $data = array(
              'output' => $output,
              $pageVarKey => $page,
              $pageCountVar => $pageCount,
              $pageNavVar => !empty($tplPageWrapper)
                  ? $pdoPage->pdoTools->getChunk($tplPageWrapper, $pagination)
                  : $pdoPage->pdoTools->parseChunk('', $pagination),
              $totalVar => $total,
          );
      заменил на:
      if (!empty($pageCount) && $pageCount > 1) {
              $pagination = array(
                  'first' => $page > 1 && !empty($tplPageFirst)
                      ? $pdoPage->makePageLink($url, 1, $tplPageFirst)
                      : '',
                  'prev' => $page > 1 && !empty($tplPagePrev)
                      ? $pdoPage->makePageLink($url, $page - 1, $tplPagePrev)
                      : '',
                  'pages' => $pageLimit >= 7 && empty($disableModernPagination)
                      ? $pdoPage->buildModernPagination($page, $pageCount, $url)
                      : $pdoPage->buildClassicPagination($page, $pageCount, $url),
                  'next' => $page < $pageCount && !empty($tplPageNext)
                      ? $pdoPage->makePageLink($url, $page + 1, $tplPageNext)
                      : '',
                  'last' => $page < $pageCount && !empty($tplPageLast)
                      ? $pdoPage->makePageLink($url, $pageCount, $tplPageLast)
                      : '',
              );
      
              if (!empty($pageCount)) {
                  foreach (array('first', 'prev', 'next', 'last') as $v) {
                      $tpl = 'tplPage' . ucfirst($v) . 'Empty';
                      if (!empty(${$tpl}) && empty($pagination[$v])) {
                          $pagination[$v] = $pdoPage->pdoTools->getChunk(${$tpl});
                      }
                  }
              }
      
              $pagination = !empty($tplPageWrapper)
                  ? $pdoPage->pdoTools->getChunk($tplPageWrapper, $pagination)
                  : $pdoPage->pdoTools->parseChunk('', $pagination);
          }
      
          $data = array(
              'output' => $output,
              $pageVarKey => $page,
              $pageCountVar => $pageCount,
              $pageNavVar => $pagination,
              $totalVar => $total,
          );
      стало работать, как мне нужно, вроде никаких ошибок нет
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        3