functie de generat paginatie

Noua versiune de functie se gaseste aici

Am facut acuma ceva timp o functie de generat paginatie in php
in care:

  • $total_page = numar de pagini
  • $curr_page – numarul curent de pagini
  • $url = url-ul in format index.php?pagina=[page] ([page] este inlocuit cu numarul paginii)

[php]<?php
function make_pages($total_page, $curr_page, $url) {
if ($total_page < 1) {
$da .= "<a href=’" . str_replace ( "[page]", 1, $url ) . "’>1</a> | ";
}
if ($total_page < 15) {
for($i = 1; $i < ($total_page + 1); $i ++) {
if ($i == $curr_page) {
$da .= "<b>" . $i . "</b> | ";
} else {
$da .= "" . $i . " | ";
}
}
} else {
if ($curr_page < 8 ) {
for($i = 1; $i < 11; $i ++) {
if ($i == $curr_page) {
$da .= "<b>" . $i . "</b> | ";
} else {
$da .= "" . $i . " | ";
}
}
$da .= " …. | ";
for($i = ($total_page – 5); $i < ($total_page + 1); $i ++) {
$da .= "" . $i . " | ";
}
}
if (($curr_page > 7) && ($curr_page < ($total_page – 4))) {
for($i = 1; $i < 4; $i ++) {
if ($i == $curr_page) {
$da .= "<b>" . $i . "</b> | ";
} else {
$da .= "" . $i . " | ";
}
}
$da .= " …. | ";
for($i = ($curr_page – 4); $i < ($curr_page + 5); $i ++) {
if ($i == $curr_page) {
$da .= "<b>" . $i . "</b> | ";
} else {
$da .= "" . $i . " | ";
}
}
$da .= " …. | ";
for($i = ($total_page – 3); $i < ($total_page + 1); $i ++) {
$da .= "" . $i . " | ";
}
} elseif (($curr_page > 7)) {
for($i = 1; $i < 4; $i ++) {
$da .= "" . $i . " | ";
}
$da .= " …. | ";
for($i = ($total_page – 7); $i < ($total_page + 1); $i ++) {
if ($i == $curr_page) {
$da .= "<b>" . $i . "</b> | ";
} else {
$da .= "" . $i . " | ";
}
}
}

}
return $da;
}
?>
[/php]

5 comentarii

  1. Buna functia
    Si eu mi-am facut ceva de genu’, numa ca am preferat sa fac o clasa ca sa pot folosi mai multe optiuni si sa am si o metoda care sa imi modifica automat query-ul.
    Un lucru ce l-ai putea adauga ar fi un link separat pentru prima pagina, pentru cei care folosesc mod rewrite, ca sa nu fie doua pagini cu acelasi continut (/poze/pag1.html si /poze/)
    O iti mai urmaresc blog-ul, sper sa mai adaugi chestii de genu
    Toate cele bune
    .-= Adi Ulici a mai scris si urmatorul articol: Peisaje de toamna =-.

  2. Author

    Acum am vazut comentariul si am uitat sa iti raspund.
    Poti pune orice tip de link.
    Poti pune si blablabla/balblabla-[page].html
    el doar modifica page cu numarul:)



  3. Ca de obicei, gasec informatii utile pe blogul tau. Functia asta a fost o surpriza foarte placuta si vreau sa o folosesc. Multam’

Spune si tu parerea...