Sylvain 48
| Posté : 29-11-2015 20:29
OK, j'ai bûché tes fichiers ils sont très proches de ce qu'on peut trouver ici:
http://www.petit-kiwi.com/php-creation-pagination-avancee#more-172
Ils donnent un résultat très pro et esthétiquement agréable mais ils imposent une indexation numérique des pages ce qui est déjà nettement mieux que ce qu'il y a par défaut dans NPDS mais nettement moins bien que ma technique qui donne un nom à chaque page.
Ma manière attribue une zone texte à chaque nom de page ce qui permet des "Préambule", "Introduction", "Page 214","Conclusion" ou "Index XXVI"...
Et aussi de construire automatiquement la table des matières (que j'affiche à droite).
Les autres codes partent du principe que les pages sont stockées une par une dans une BdD. Il est donc facile de les compter et de les numéroter. Ensuite quand on a la page courante on fait '-1' pour trouver la précédente et '+1' pour trouver la suivante. Trop facile!
Ici on a un texte unique dont les pages sont marquées par la balise [page ]. En décidant que le nom de la page est ce qu'il y a entre '[page' et ']' on s'ouvre énormément d'horizons mais au prix d'un travail au niveau texte assez fastidieux. Par exemple si on connais l'emplacement du '[' de la page courante pour trouver la page précédente il faut reculer pour trouver la première occurrence de '[page' puis avancer jusqu'au ']' suivant, on en déduit la longueur du nom de la page et on extrait ce nom soit en avançant à partir de '[page' soit en reculant à partir de ']'. C'est autre chose que de faire '-1'!
Mais c'est le prix pour avoir une solution beaucoup plus souple. En fin de compte, la manipulation de chaînes étant très concise en php, on a très peu de ligne de code.
$Xcontentprec=sub str($Xcontent,0,$locpage);
$locpageprec=strr pos($Xcontentprec,"[page");
$locfinprec=strpo s($Xcontent,"]",$locpageprec)+1;
$pageprec=substr( $Xcontentprec,$locpageprec,$locfinprec-$locpageprec);
C'est assez abstrus. On peux tout regrouper en une seule ligne mais c'est encore pire!
J'espère ne pas vous ennuyer avec mes histoires. |