Здравствуйте, товарищи!
У меня имеется скрипт, который должен выводить содержимое xml-файлов из каталога, но только тех, у кого в узле указан определённый id этой самой категории.
Ссылки должны быть вида:
http://site.org/category.php?catid=6?page=2
где catid — id категории, а page — страница с выводом заголовков статей.
Скрипт в настоящее время таки-выводит заданное количество заголовков статей (узлов xml-файлов, содержащих заголовки), но сам пагинатор не работает. Ссылки «1, 2, 3…» выводятся, но при переходе по ним, вывод остаётся тот же, как буд-то мы находимся на всё той же первой странице. Подскажите пожалуйста, где может быть недочёт и как его исправить.
Сам скрипт:
$perPage = 2;
$catid = (isset($_GET['catid'])) ? (int)$_GET['catid'] : 1;
$files = scandir($fileDir);
foreach($files as $num => $file) {
$full = $fileDir . '/' . $file;
if(is_file($full)) {
if (!is_dir($fileDir . $file) && !preg_match('/^article.*\.xml$/i', $file)) continue;
$files[$file] = filemtime($full);
}
unset($files[$num]);
}
arsort($files);
$total = count($files);
$pages = (int) ceil($total / $perPage);
if($total > 0) {
$page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1;
if($page > $pages or $page < 1)
exit('Нет такой страницы');
$start = ($page - 1) * $perPage;
$out = array_slice($files, $start, $perPage);
foreach($out as $file => $date) {
$articleFile = simplexml_load_file($fileDir . $file);
if ((string)$articleFile->categoryid == $catid) {
echo '<li><a href="' . $articleFile['id'] . '">' . $articleFile->headline . '</a></li>';
}
}
if($pages > 1) {
echo '<div>';
for($pr = '', $i = 1; $i <= $pages; $i++) {
echo $pr = (($i == 1 || $i == $pages || abs($i - $page) < 2) ? ($i == $page ? " $i " : '<a href="/category.php?catid=' . $catid . '?page='. $i .'">' . $i . '</a> ') : (($pr == ' ... ' || $pr == '') ? '' : ' ... '));
}
echo '</div>';
}
}
else {
echo '<p>Нет файлов для отображения на этой странице</p>';
}
Опечатался или ошибка в ссылке? Должно быть http://site.org/category.php?catid=6&page=2 т.е. значок & вместо ? между параметрами в URL. ? ставиться только перед первым параметром, таким образом отделяя адрес страницы от параметров.
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Добрый деньЯ пытаюсь подключить composer к сайту на modx revolution на хостинге beget