Bonsoir,
Alors j'ai essayé ce que tu m'as dit ça marche pas trop mal enfin j'ai
du faire quelques corrections mais je me suis rendu compte que mon
problème était un peu plus compliqué que ça.
Techniquement c'est très bien mais au niveau de la présentation ça ne le
fait pas couper un texte en plein mot... Alors j'ai modifié en faisant
une coupure au bout de tant de mots... Ca marche pas mal du tout non
plus mais j'ai un peu de mal car en réalité il faudrait exploser
l'article sur plusieurs pages et ce que j'aimerai c'est faire passer un
indice du genre part=1 puis part=2 et je ne sais pas du tout comment
faire pour l'envoyer aux fonction que j'ai mis dans mes fonctions.php3
quand j'appelle :
[(#TEXTE|debutTexte)]
Et puis après réflexion l'idéal serait peut être de couper tous les x
paragraphes (en disant aux rédacteurs de faire des paragraphes de la
même taille environs) mais là je ne sais pas comment faire pour
reconnaître la fin d'un paragraphe en php...
Voila si vous avez des idées je suis preneur.
Éric
PS : voici le code modifié du fichier mes_fonctions.php3 pour faire en
fonction du nombre de mots :
--debut_code
function debutTexte($texte) {
return disp_xwords($texte,0,200);
};
function disp_xwords($MyString,$dwords,$xwords)
{
$StringTab=explode(" ",$MyString);
for($i=$dwords;$i<$xwords;$i++)
{
$NewString.=" "."$StringTab[$i]";
}
return $NewString;
}
--fin code
-----Message d'origine-----
De : Revues et Magazines [mailto:revues.magazines@editionsducerf.fr]
Envoyé : jeudi 22 août 2002 21:01
À : 'Éric [taplanete.net]'; spip@rezo.net
Objet : RE: [Spip] Afficher un article sur plusieurs pages...
Bonjour,
on peut tenter ce qui suit dans le squelette d'affichage de l'article
(article.html) :
-- début du code
[(#TEXTE|debutTexte)]
[<i> <a href="suite.php3?id_article=#ID_ARTICLE>lire la
suite...</a></i>
<table width="0"><tr><td>(#TEXTE|finTexte)</td></tr></table>]
-- fin du code
(normalement, le contenu du deuxième crochet ne s'affiche que si
(#TEXTE|finTexte) n'est pas vide, si j'ai bien compris le mode d'emploi
- ce
qui me permet de n'offrir le lien vers la suite que si ce n'est pas vide
;
le seul problème, c'est de ne rien afficher du tout, même si ce n'est
pas
vide : je le mets dans une table de largeur 0 - mais là, je ne suis pas
sûr
que les navigateurs HTML s'abstiennent de rien afficher)
et tu crées un squelette suite.html lié à un suite.php3 avec à
l'intérieur
[<i> <a href="article.php3?id_article=#ID_ARTICLE>lire le
début...</a></i>(#TEXTE|finTexte)]
en ayant créé deux filtres, debutTexte et finTexte, à mettre dans le
fichier
mes_fonctions.php3, qui pourraient ressembler à ceci (je suppose que tu
coupes au bout de 2000 caractères) :
-- début du code
function debutTexte($texte) {
return substr($texte,0,2000);
};
function finTexte($texte) {
$longueur = strlen($texte);
if ($longueur > 2000) {
return substr($texte,2000 - $longueur);
} else {
return "";
};
};
-- fin du code
Je n'ai pas essayé, mais cela devrait marcher, non ?
Tu essaies et tu me dis ? Merci !
Rémi.