RE : [Spip] Afficher un article sur plusieurs pages...

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>&nbsp;<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>&nbsp;<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.

Dans recherche

RECHERCHE SUR :<?php echo $recherche; ?>

ne donne aussi réponse.
Une idée ?

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.

heu ... c'est peut-etre bête mais il faut parfois faire simple. pourquoi pas 2 articles ?
pasque là j'ai l'impression que tu tourne en rond en cherchant une idée compliquée !

sinon j'ai entendu parlé d'un code <intro> que l'on met dans l'article pour délimiter l'intro, tu pourrait donc :
- 1ère partie = #INTRO
- 2ème partie = #TEXTE - #INTRO

avoir ... mais ta réflexion est intéressant : )

--
         Sylvain
------------------------
http://titeuf.lautre.net

heu ... c'est peut-etre bête mais il faut parfois faire simple.

pourquoi

pas 2 articles ?

Parce que je ne veux pas que les rédacteurs prennent en compte la mise
en page, ils font leur article et ensuite c'est mis automatiquement sur
plusieurs pages.

pasque là j'ai l'impression que tu tourne en rond en cherchant une

idée

compliquée !

Oui c'est un peu souvent mon problème de chercher des trucs compliqués.

Enfin j'ai trouvé une solution qui ne me satisfait pas car c'est de la
bidouille mais elle fonctionne.

Donc j'ai un squelette article.html ou j'affiche les cinq premiers
paragraphes du texte et un lien page suivante (si il y a).

La page suivante appelle le squelette article-P2.html qui affiche les
cinq paragraphes suivants et un lien page précédent et page suivante (si
il y a) et ainsi de suite.

J'ai donc du prévoir 5 pages de ce type en espérant que mes articles ne
seront pas plus long.

Enfin je pense qu'il y aurait plus simple si je pouvais indiquer à la
fonction qui tronque mon texte dans mes_fonctions.php3 quelle partie je
veux faire afficher du texte mais je ne sais pas comment faire passer ce
paramètre. Quelqu'un s'est t'il faire ?

Car là pour le moment je n'ai pas une fonction mais autant de fonctions
qu'il y a de pages.

Ce qui me permettrait de n'avoir qu'une fonction et qu'un squelette.

Merci pour votre aide si vous avez une idée.

Éric

Éric [taplanete.net] wrote:
  > comment faire passer ce
  > paramètre. Quelqu'un s'est t'il faire ?
  >
  > Ce qui me permettrait de n'avoir qu'une fonction et qu'un squelette.

Utilise le principe du moteur de recherche avec plusieurs pages de
résultats. (http://rezo.net/spip-dev/contrib/Adrien/)

a+
Fabrice

PS je suis intéressé (d'autres le sont peu être) par cette
fonctionnalité de découpage d'article. Si tu résous ton dealem, pense à
faire un post pour expliquer ta réalisation. Ça serait super cool !!!

----------------------
www.drop-zone-city.com

(Attachment fichier_vide.txt is missing)