Nou Generator de prompt AI — scrie prompturi mai bune pentru ChatGPT, Claude și Gemini →

Dezvoltare PHP: funcție modulară și flexibilă pentru generarea paginării numerice pe site-uri web

Dezvoltare PHP: funcție modulară și flexibilă pentru generarea paginării numerice pe site-uri web

Noua versiune de funcție se găsește aici

Am dezvoltat acum ceva timp o funcție în limbajul PHP pentru generarea paginării numerice pe site-uri web, adaptabilă în funcție de volumul de pagini.

Parametrii utilizați de această funcție sunt:

  • $total_page – numărul total de pagini disponibile;
  • $curr_page – numărul paginii curente active;
  • $url – șablonul de URL în formatul index.php?pagina=[page] (unde marcatorul [page] este înlocuit automat cu numărul paginii corespunzătoare).

Codul sursă al funcției make_pages

<?php
function make_pages($total_page, $curr_page, $url) {
    $da = "";
    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;
}
?>

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. 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’

Lasă un comentariu