logo

NPDS : Gestion de contenu et de communauté


Content & Community Management System (CCMS) robuste, sécurisé, complet, performant, parlant vraiment français, libre (Open-Source) et gratuit.
21 visiteur(s) et 1 membre(s) en ligne.
Activité du Site

Pages vues depuis 25/05/2001 : 108 449 186

  • Nb. de membres 8 693
  • Nb. d'articles 1 695
  • Nb. de forums 26
  • Nb. de sujets 8
  • Nb. de critiques 92

Top 10  Statistiques

Index du forum »»  Bugs, Probs ... »» Balise [pageX]

Nouveau sujet
 Balise [pageX]#26304Répondre

6Contributeur(s)
SylvainAnonymePascalJireckB-Magjpb
3 Modérateur(s)
developpeurjpbJireck
B-Mag B-Magicon_post
pour ceux qui ont acces au post

http://www.npds.org/viewtopic.php?topic=22712&forum=42&ancre=1&start=0#4222712181773
jpb jpbicon_post
oui c'était bien e qu'il avait fait bien qu'on est pas besoin de faire de req sql ...

ceci dit c'est inapplicable pour rubrique ou les balise de pages sont noyées dans du texte donc c'est plus complexe ...

quand aux classes on les a dans le framework ..
Sylvain Sylvainicon_post
> dommage de ne pas voir le nb de page qui compose l'article
Dans mon code le nombre total de pages est dans la variable globale $ndepages. Donc il n'y a aucun problème pour l'afficher.

Je rappelle que dans ce code le champ de la balise est un champ texte.
Si dans la rubrique on trouve:
[pageIntroduction]...[pagePage 1]...[pagePage 2]...[pagePage 3]...[pageConclusion]...[pageRemerciements]...[pageIndex]...[pagePage I]...[pagePage IV]...
Le listage des nom de pages donne:
Introduction
Page 1
Page 2
Page 3
Conclusion
Remerciements
Index
Page I
Page IV

Et le code fournit
le nombre totale de pages $ndepages,
la page courante $numpage, qu'il faudrait renommer en $nompagecourante
la page précédente $pageprec,
la page suivante $pageS.
Je pense qu'avec ça on doit pouvoir tout faire.

Attention quand j'ai commencé ce code je n'avais pas tout ça en tête alors il y a des parties qui sont inadaptées à un usage généralisé. Par exemple la première page est appellée "0" ([page0]) alors qu'elle doit être définie par la lecture de la première occurrence de la balise [page], mais c'est très facile à corriger.

Il y a encore le problème du texte avant la première balise qui n'est pas réglé. J'avais détourné le problème en n'en mettant pas. Si on veut un code "idiot proof" il faudra le régler.

Il faudrait tendre vers l'esprit Linux: chaque partie de code = un fonction précise.
Ici on devrait avoir en sortie:
-Nom de chaque page
-première page
-page courante
-page précédente
-nombre totale de pages.

Ya plus qu'à!...

La dernière version se trouve ici:
http://busmuli.chez.com/travail/sections-viewarticle.txt


Message édité par : Sylvain / 26-12-2015 20:10

jpb jpbicon_post
oui pour le nombre de page

ce qui est inquiétant c'est le mb_strpos
sur un site en utf8 cela ne fonctionne pas meme en rajoutant l'encoding en cours il me reste des problème de comptage ...... :-? :-?
jpb jpbicon_post

         $longueur=mb_strpos($Xcontent,']',$pos_page,'iso-8859-1')-$pos_page+1; 



avec ca le comptage semble correcte et ca fonctionne meme si le site est en utf8 MAIS cela ne tolère aucun caractères utf-8 dans le text .....sinon ca déraille
Sylvain Sylvainicon_post
Je suis étonné car il est bien dit «tenant compte des caractères multi-octets» dans les caractéristiques:
http://php.net/manual/fr/function.mb-strpos.php

Ou alors à l'inverse ils veulent dire qu'un caractère en deux octets compte pour 2.

Mais ça m'étonnerais car je suis en utf8 et tout marche bien. Dans le doute il faut essayer avec strpos.

Ça doit être ça car je vois qu'aux autres endroits j'utilise strpos.

J'ai fait la modification et ça marche pareil.
Peux-tu tester?

Message édité par : Sylvain / 26-12-2015 22:30

jpb jpbicon_post
tu n'es pas en utf-8 ....
jpb jpbicon_post
oui j'ai fait les test ... et ca marche pour les deux type d'encodage à condition qu'il n'y ai pas de caractères utf-8 dans le content .... c'est normal que pour toi ce soit transparent ... ton site est en iso
sur le labo des que tu réédite et que tu rentre un caractère
non ascii ça plante et c'est normal ...

Message édité par : jpb / 26-12-2015 22:36

Sylvain Sylvainicon_post
Ah ben mince, c'est vrai, je suis en iso.
Je n'ai pas fait gaffe. Ça doit être par défaut en iso.
D'un autre côté ce n'est pas grave vu que je n'utilise que le français et l'anglais.
C'est étonnant qu'un CCMS qui se veut internationalisable le défaut ne soit pas utf8.

Alors pour résoudre le problème je dois mettre mb_strpos ou strpos?
Car après la dernière correction j'ai mis strpos partout. Si tu me dis que ça ne marche pas je vais mettre mb_strpos partout.

Le problème risque d'apparaître dans les autres fonctions de manipulation de chaînes de caractères. Tiens moi au courant.
Sylvain Sylvainicon_post
OK, je vais utiliser les version multi-bytes partout où j'interviens mais il semble que partout ailleurs dans NPDS ce soit la version iso qui est utilisée...
Je ne sais pas à quel point les deux peuvent être mélangés... (je vous avais prévenu je ne connais rien à php. :-) ).

Voilà j'ai tout changé. Est-ce que ça va mieux?
Sylvain Sylvainicon_post
Bon j'ai essayé tout seul comme un grand: ça ne marche pas
Tiny_mce a l'air de bien gérer l'utf8, mon code est tout en mb c'est donc dans le reste de NPDS que ça ne passe pas.

Il faudra réessayer avec une version Complètement utf8 de NPDS.