Changeset 3172 for trunk/include/functions.inc.php
- Timestamp:
- Mar 5, 2009, 10:08:04 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/functions.inc.php
r3145 r3172 1494 1494 ); 1495 1495 } 1496 1497 /** 1498 * return an array which will be sent to template to display navigation bar 1499 */ 1500 function 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 } 1496 1565 ?>
Note: See TracChangeset
for help on using the changeset viewer.