За последние 24 часа нас посетили 20776 программистов и 1125 роботов. Сейчас ищут 377 программистов ...

Каким образом прикрутить пагинацию?

Тема в разделе "Сделайте за меня", создана пользователем Linne, 26 апр 2017.

  1. Linne

    Linne Активный пользователь

    С нами с:
    19 июл 2014
    Сообщения:
    44
    Симпатии:
    0
    Здравствуйте, уважаемые товарищи!

    У меня некоторая проблема. Есть код, который выводит из каталога xml-файлы, точнее, их узлы и мне удалось «методом научного тыка» прикрутить туда постраничный вывод, найденный на просторах интернета. Собственно, вот он:
    PHP:
    1. <?php
    2.             $perPage = 1;
    3.             $dir = 'xml';
    4.             $files = scandir($dir);
    5.             foreach($files as $num => $file) {
    6.                 $full = $dir . DIRECTORY_SEPARATOR . $file;
    7.                 if(is_file($full)) {
    8.                     if (!is_dir($fileDir . $file) && eregi('^article.*\.xml$', $file))
    9.                     $files[$file] = filemtime($full);
    10.                 }
    11.                 unset($files[$num]);
    12.             }
    13.             arsort($files);
    14.             $total = count($files);
    15.             $pages = (int) ceil($total / $perPage);
    16.             if($total > 0) {
    17.                 $page=(isset($_GET['page'])) ? (int)$_GET['page'] : 1;
    18.                 if($page > $pages or $page < 1)
    19.                     exit('Нет такой страницы');
    20.                 $start = ($page - 1) * $perPage;
    21.                 $out = array_slice($files, $start, $perPage);
    22.                 foreach($out as $file => $date){
    23.                     $articleFile = simplexml_load_file($fileDir . $file);
    24.                     $id = htmlentities($articleFile['id']);
    25.                     echo '<div class="section">
    26.                                                <h1>' . $articleFile->headline . '</h1>
    27.                                                <p class="date">' . $articleFile->pubdate . '</p>
    28.                                                <div class="abstract">' . $articleFile->description . '</div>
    29.                                                <a class="more" href="' . $articleFile['id'] . '" title="Читать статью «' . $articleFile->headline . '»">Читать статью</a>
    30.                                            </div>';
    31.                 }
    32.             }
    33.                 else
    34.                 echo '<p>Нет файлов для отображения на этой странице</p>';
    35.             if($pages > 1) {
    36.                 echo '<div>';
    37.                 for($pr = '', $i =1; $i <= $pages; $i++) {
    38.                     echo $pr=(($i == 1 || $i == $pages || abs($i-$page) < 2) ? ($i == $page ? " $i " : ' <a href="' . $_SERVER['SCRIPT_NAME'] . '?page='. $i .'" title="Страница ' . $i . '">' . $i . '</a> ') : (($pr == ' ... ' || $pr == '')? '' : ' ... '));
    39.                 }
    40.                 echo '</div>';
    41.             }
    42.         ?>
    Есть также скрипт, который выводит список xml-файлов, которые относятся к той или иной категории, вот он:
    PHP:
    1. <h1>
    2.         <?php
    3.                    $cats = simplexml_load_file($fileDir . 'categories.xml');
    4.                    foreach ($cats->category as $cat) {
    5.                   if ((string)$cat['id'] == $_GET['catid']) {
    6.                      echo 'Категория: ' . $cat['label'];
    7.                   }
    8.                    }
    9.                 ?>
    10.             </h1>
    11.                     <?php
    12.                     echo '<ul>';
    13.                         if (isset($_GET['catid'])) {
    14.                             $handle = opendir($fileDir);
    15.                                 while (($file = readdir($handle)) !== FALSE) {
    16.                                     if (is_dir($fileDir . $file)) continue;
    17.                                     if (!eregi('^(article).*\.xml$', $file)) continue;
    18.                                    
    19.                                     $xml = simplexml_load_file($fileDir . $file);
    20.                                     if ((string)$xml->categoryid == $_GET['catid'] &&
    21.                                                 (string)$xml->status == 'live') {
    22.                                         $id = htmlentities($xml['id']);
    23.                                         $label = htmlentities($xml->headline);
    24.                                         echo '<li><a href="' . $id . '">' . $label . '</a></li>';
    25.                                     }
    26.                                 }
    27.                         }
    28.                         echo '</ul>';
    29.                     ?>
    По-скольку, список явно будет длинным, то, здесь необходим такой же постраничный вывод, как и в предыдущем скрипте. Как прикрутить пагинатор из того скрипта к этому? В php я весьма слаб, пробовал конечно, но, итог предсказуем. Помогите, друзья!
     
  2. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Не тот раздел.
     
  3. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    @Linne могу перенести тему в раздел "сделайте за меня", может там помогут
     
    Linne нравится это.
  4. Linne

    Linne Активный пользователь

    С нами с:
    19 июл 2014
    Сообщения:
    44
    Симпатии:
    0
    @denis01 перенесите, что же поделаешь, действительно, выглядит как «сделайте за меня»