Source for file func.pagination.php

Documentation is available at func.pagination.php

  1. <?
  2.  
  3. /**
  4.  * AVE.cms
  5.  *
  6.  * @package AVE.cms
  7.  * @filesource
  8.  */
  9.  
  10. /**
  11.  * Текущая страница
  12.  *
  13.  * @param string $type    тип постраничной навигации,
  14.  *                          допустимые значения: page, apage, artpage
  15.  * @return int            номер текущей страницы
  16.  */
  17. function get_current_page($type 'page')
  18. {
  19.     if (!in_array($typearray('page''apage''artpage'))) return 1;
  20.  
  21.     $page (isset($_REQUEST[$type]&& is_numeric($_REQUEST[$type])) $_REQUEST[$type1;
  22.  
  23.     return (int)$page;
  24. }
  25.  
  26. /**
  27.  * Постраничная навигация для запросов и модулей
  28.  *
  29.  * @param int $total_pages            количество страниц в документе
  30.  * @param string $type                тип постраничной навигации,
  31.  *                                      допустимые значения: page, apage, artpage
  32.  * @param string $template_label    шаблон метки навигации
  33.  * @param string $navi_box            контейнер постраничной навигации
  34.  * @return string                    HTML-код постраничной навигации
  35.  */
  36. function get_pagination($total_pages$type$template_label$navi_box '')
  37. {
  38.     $nav '';
  39.  
  40.     if (!in_array($typearray('page''apage''artpage'))) $type 'page';
  41.  
  42.     $curent_page get_current_page($type);
  43.  
  44.     if     ($curent_page   == 1)            $seiten array ($curent_page,   $curent_page+1$curent_page+2$curent_page+3$curent_page+4);
  45.     elseif ($curent_page   == 2)            $seiten array ($curent_page-1$curent_page,   $curent_page+1$curent_page+2$curent_page+3);
  46.     elseif ($curent_page+== $total_pages)    $seiten array ($curent_page-3$curent_page-2$curent_page-1$curent_page,   $curent_page+1);
  47.     elseif ($curent_page   == $total_pages)    $seiten array ($curent_page-4$curent_page-3$curent_page-2$curent_page-1$curent_page);
  48.     else                                    $seiten array ($curent_page-2$curent_page-1$curent_page,   $curent_page+1$curent_page+2);
  49.  
  50.     $seiten array_unique($seiten);
  51.  
  52.     $total_label     trim(get_settings('total_label'));
  53.     $start_label     trim(get_settings('start_label'));
  54.     $end_label       trim(get_settings('end_label'));
  55.     $separator_label trim(get_settings('separator_label'));
  56.     $next_label      trim(get_settings('next_label'));
  57.     $prev_label      trim(get_settings('prev_label'));
  58.  
  59.     if ($total_pages && $curent_page 3)
  60.     {
  61.         $nav .= str_replace('{t}'$start_labelstr_replace(array('&amp;'.$type.'={s}','&'.$type.'={s}')''$template_label));
  62.         if ($separator_label != ''$nav .= '<span>' $separator_label '</span>';
  63.     }
  64.  
  65.     if ($curent_page 1)
  66.     {
  67.         if ($curent_page == 2)
  68.         {
  69.             $nav .= str_replace('{t}'$prev_labelstr_replace(array('&amp;'.$type.'={s}','&'.$type.'={s}')''$template_label));
  70.         }
  71.         else
  72.         {
  73.             $nav .= str_replace('{t}'$prev_labelstr_replace('{s}'($curent_page 1)$template_label));
  74.         }
  75.     }
  76.  
  77. //    while (list(,$val) = each($seiten))
  78.     foreach($seiten as $val)
  79.     {
  80.         if ($val >= && $val <= $total_pages)
  81.         {
  82.             if ($curent_page == $val)
  83.             {
  84.                 $nav .= str_replace(array('{s}''{t}')$val'<span class="curent_page">' $curent_page '</span>');
  85.             }
  86.             else
  87.             {
  88.                 if ($val == 1)
  89.                 {
  90.                     $nav .= str_replace('{t}'$valstr_replace(array('&amp;'.$type.'={s}','&'.$type.'={s}')''$template_label));
  91.                 }
  92.                 else
  93.                 {
  94.                     $nav .= str_replace(array('{s}''{t}')$val$template_label);
  95.                 }
  96.             }
  97.         }
  98.     }
  99.  
  100.     if ($curent_page $total_pages)
  101.     {
  102.         $nav .= str_replace('{t}'$next_labelstr_replace('{s}'($curent_page 1)$template_label));
  103.     }
  104.  
  105.     if ($total_pages && ($curent_page $total_pages-2))
  106.     {
  107.         if ($separator_label != ''$nav .= '<span>' $separator_label '</span>';
  108.         $nav .= str_replace('{t}'$end_labelstr_replace('{s}'$total_pages$template_label));
  109.     }
  110.  
  111.     if ($nav != '')
  112.     {
  113.         if ($total_label != ''$nav '<span class="pages">' sprintf($total_label$curent_page$total_pages'</span> ' $nav;
  114.         if ($navi_box != ''$nav sprintf($navi_box$nav);
  115.     }
  116.  
  117.     return $nav;
  118. }
  119.  
  120. ?>

Documentation generated on Fri, 04 Jun 2010 18:02:28 +0400 by phpDocumentor 1.4.3