Проблемы с постраничной навигацией при выводе в 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, там такой проблемы не наблюдается. Комментарии: 3
ещё периодически вместо сайта показывается чистая страница с ошибкой: 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". Чищу вручную кеш, ошибка исчезает, но через некоторое время снова появляется.
В общем pdoTools 2.10.3-pl на MODX Revolution 2.5.7-pl точно также навигация работает, а в версии pdoTools 2.8.2-pl1 проблем с постраничной навигации не наблюдается,
Пришёл к мнению, что дополнение pdoTools 2.10.3-pl работает некорректно.
Пришёл к мнению, что дополнение pdoTools 2.10.3-pl работает некорректно.
в сниппете 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,
);
стало работать, как мне нужно, вроде никаких ошибок нет
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.