Ignore:
Timestamp:
Mar 5, 2009, 10:08:04 PM (15 years ago)
Author:
patdenice
Message:

Create navigation_bar.tpl file.
Move create_navigation_bar function from functions_html.inc.php to functions.inc.php.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/functions.inc.php

    r3145 r3172  
    14941494    );
    14951495}
     1496
     1497/**
     1498 * return an array which will be sent to template to display navigation bar
     1499 */
     1500function create_navigation_bar($url, $nb_element, $start, $nb_element_page, $clean_url = false)
     1501{
     1502  global $conf;
     1503
     1504  $pages_around = $conf['paginate_pages_around'];
     1505  $start_str = $clean_url ? '/start-' : (strpos($url, '?')===false ? '?':'&').'start=';
     1506
     1507  if (!isset($start) or !is_numeric($start) or (is_numeric($start) and $start < 0))
     1508  {
     1509    $start = 0;
     1510  }
     1511
     1512  $navbar = array();
     1513
     1514  // navigation bar useful only if more than one page to display !
     1515  if ($nb_element > $nb_element_page)
     1516  {
     1517    // current page and last page
     1518    $cur_page = ceil($start / $nb_element_page) + 1;
     1519    $maximum = ceil($nb_element / $nb_element_page);
     1520
     1521    $navbar['CURRENT_PAGE'] = $cur_page;
     1522
     1523    // link to first page ?
     1524    if ($cur_page != 1)
     1525    {
     1526      $navbar['URL_FIRST'] = $url;
     1527    }
     1528    // link on previous page ?
     1529    if ($start != 0)
     1530    {
     1531      $previous = $start - $nb_element_page;
     1532      $navbar['URL_PREV'] = $url.($previous > 0 ? $start_str.$previous : '');
     1533    }
     1534    // link on next page ?
     1535    if ($nb_element > $nb_element_page and $start + $nb_element_page < $nb_element)
     1536    {
     1537      $next = $start + $nb_element_page;
     1538      $navbar['URL_NEXT'] = $url.$start_str.$next;
     1539    }
     1540    // link to last page ?
     1541    if ($cur_page != $maximum)
     1542    {
     1543      $temp_start = ($maximum - 1) * $nb_element_page;
     1544      $navbar['URL_LAST'] = $url.$start_str.$temp_start;
     1545    }
     1546
     1547    // pages to display
     1548    $navbar['pages'] = array();
     1549
     1550    $navbar['pages'][1] = $url;
     1551    $navbar['pages'][$maximum] = $url.$start_str. ($maximum - 1) * $nb_element_page;
     1552
     1553    for ($i = $cur_page - $pages_around, $stop = $cur_page + $pages_around + 1; $i < $stop; $i++)
     1554    {
     1555      if ($i < 2 or $i > $maximum - 1)
     1556      {
     1557        continue;
     1558      }
     1559      $navbar['pages'][$i] = $url.$start_str. ($i - 1) * $nb_element_page;
     1560    }
     1561    ksort($navbar['pages']);
     1562  }
     1563  return $navbar;
     1564}
    14961565?>
Note: See TracChangeset for help on using the changeset viewer.