[PHP] Pagination et rewirte url
Résolu
coccoweb
Messages postés
141
Date d'inscription
Statut
Membre
Dernière intervention
-
avion-f16 Messages postés 19252 Date d'inscription Statut Contributeur Dernière intervention -
avion-f16 Messages postés 19252 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
je me réfère a vous a cause d'une impasse.
J'ai écris cette fonction pour faire une pagination
Celle-ci renvois
PRECEDENT 1 ... 22 23 24 25 26 [27] 28 29 ... 30 SUIVANT
Tout fonctionne très bien.
Venons en au problème :
J'aimerai que le lien de sortie soit ou une URL réécrite (comme maintenant) ou l'URL logique
index.php?action=messagerie/consulter&msgid=1&page=29
J'ai pensé a un preg_replace mais je ne suis pas encore au point pour ça
Un grand merci a ceux et celles qui pourront m'aider
je me réfère a vous a cause d'une impasse.
J'ai écris cette fonction pour faire une pagination
Celle-ci renvois
PRECEDENT 1 ... 22 23 24 25 26 [27] 28 29 ... 30 SUIVANT
Tout fonctionne très bien.
Venons en au problème :
J'aimerai que le lien de sortie soit ou une URL réécrite (comme maintenant) ou l'URL logique
index.php?action=messagerie/consulter&msgid=1&page=29
J'ai pensé a un preg_replace mais je ne suis pas encore au point pour ça
<?php /* Pagination simple */ /* $page => (int) numero de page */ /* $nb_total => (int) nombre d'article */ /* $limit => Nombre d'article par page */ /* $msgid => ID du message */ /* $align => Choix de l'alignement */ function Pagination ($page, $nb_total, $limit, $msgid, $align) { $page = (int) $page; $nb_total = (int) $nb_total; $limit = (int) $limit; $msgid = (int) $msgid; $nb_page=ceil($nb_total/$limit); // Nombre de page $echo = "<p align=".$align.">"; // Affiche la premiere page if ($page-1 >= 0 AND $page-1 <$nb_page) {$echo.=' <a href="messagerie-consulter-'.$msgid.'-'.($page-1).'">PRECEDENT</a> ';} if($page > $limit AND $page <$nb_page) {$echo.='<a href="messagerie-consulter-'.$msgid.'-0">1</a> ... ';} // Page avant la page if ($page-5 >= 0 AND $page-5 <$nb_page) {$echo.=' <a href="messagerie-consulter-'.$msgid.'-'.($page-5).'">'.($page-4).'</a> ';} if ($page-4 >= 0 AND $page-4 <$nb_page) {$echo.=' <a href="messagerie-consulter-'.$msgid.'-'.($page-4).'">'.($page-3).'</a> ';} if ($page-3 >= 0 AND $page-3 <$nb_page) {$echo.=' <a href="messagerie-consulter-'.$msgid.'-'.($page-3).'">'.($page-2).'</a> ';} if ($page-2 >= 0 AND $page-2 <$nb_page) {$echo.=' <a href="messagerie-consulter-'.$msgid.'-'.($page-2).'">'.($page-1).'</a> ';} if ($page-1 >= 0 AND $page-1 <$nb_page) {$echo.=' <a href="messagerie-consulter-'.$msgid.'-'.($page-1).'">'.($page).'</a> ';} // Page en cours $echo.=' ['.($page+1).'] '; // Page après la page if ($page+1 <= $nb_page AND $page+1 <$nb_page) {$echo.=' <a href="messagerie-consulter-'.$msgid.'-'.($page+1).'">'.($page+2).'</a> ';} //if ($page+2 <= $nb_page AND $page+2 <$nb_page) {$echo.=' <a href="messagerie-consulter-'.$msgid.'-'.($page+1).'">'.($page+2).'</a> ';} if ($page+3 <= $nb_page AND $page+3 <$nb_page) {$echo.=' <a href="messagerie-consulter-'.$msgid.'-'.($page+2).'">'.($page+3).'</a> ';} if ($page+4 <= $nb_page AND $page+4 <$nb_page) {$echo.=' <a href="messagerie-consulter-'.$msgid.'-'.($page+3).'">'.($page+4).'</a> ';} if ($page+5 <= $nb_page AND $page+5 <$nb_page) {$echo.=' <a href="messagerie-consulter-'.$msgid.'-'.($page+4).'">'.($page+5).'</a> ';} if ($page+6 <= $nb_page AND $page+6 <$nb_page) {$echo.=' <a href="messagerie-consulter-'.$msgid.'-'.($page+5).'">'.($page+6).'</a> ';} // Affiche les options textuel if ($page+3 <= $nb_page){ $echo.=' ... <a href="messagerie-consulter-'.$msgid.'-'.($nb_page-1).'">'.($nb_page).'</a>';} if($page+1 < $nb_page) {$echo.=' <a href="messagerie-consulter-'.$msgid.'-'.($page+1).'">SUIVANT</a>';} $echo.="</p>"; return $echo; } ?>
Un grand merci a ceux et celles qui pourront m'aider
A voir également:
- [PHP] Pagination et rewirte url
- Url - Guide
- Pagination powerpoint - Guide
- Easy php - Télécharger - Divers Web & Internet
- Comment changer url iptv - Forum Créer un site
- Atlas pro url serveur invalide - Forum TV & Vidéo
2 réponses
Tu as plusieurs solutions :
- Créer une fonction pour chaque cas
- Créer une fonction qui se charge de retourner l'URL générée en fonction des paramètres (comme je l'ai fait dans mon script).
- T'amuser à faire des if/else pour chaque lien dans ta fonction
- Créer une fonction pour chaque cas
- Créer une fonction qui se charge de retourner l'URL générée en fonction des paramètres (comme je l'ai fait dans mon script).
- T'amuser à faire des if/else pour chaque lien dans ta fonction
Salut.
« J'aimerai que le lien de sortie soit ou une URL réécrite (comme maintenant) ou l'URL logique »
Désolé mais je ne comprends pas ce que tu cherches à faire.
Tu veux que le lien pointe vers l'URL réécrite ou sur l'URL par défaut ?
Parce qu'on ne peut pas faire les deux en même temps ...
Au passage, voilà une fonction que j'ai codé :
https://www.commentcamarche.net/faq/20420-php-pagination
Tu peux facilement modifier l'URL générée.
« J'aimerai que le lien de sortie soit ou une URL réécrite (comme maintenant) ou l'URL logique »
Désolé mais je ne comprends pas ce que tu cherches à faire.
Tu veux que le lien pointe vers l'URL réécrite ou sur l'URL par défaut ?
Parce qu'on ne peut pas faire les deux en même temps ...
Au passage, voilà une fonction que j'ai codé :
https://www.commentcamarche.net/faq/20420-php-pagination
Tu peux facilement modifier l'URL générée.
Dans URL son possible
une logique "index.php?action=messagerie/consulter&msgid=1&page=29"
une réécrite "messagerie-consulter-1-29"
Dans l'admin, il est possible de choisir l'une ou l'autre.
Je pensai a un système qui ferai un truc du genre
index.php?action=messagerie/consulter&msgid=$1&page=$2"
messagerie-consulter-$1-$2"
une logique "index.php?action=messagerie/consulter&msgid=1&page=29"
une réécrite "messagerie-consulter-1-29"
Dans l'admin, il est possible de choisir l'une ou l'autre.
Je pensai a un système qui ferai un truc du genre
index.php?action=messagerie/consulter&msgid=$1&page=$2"
messagerie-consulter-$1-$2"