Bonsoir,
Un site comporte un article contenant uniquement des citations, chacune contenue dans un paragraphe.
Est-il possible d’avoir une boucle ARTICLES permettant d’afficher aléatoirement une citation ( un paragraphe ) ?
Merci
Salut,
Oui en théorie. Tu peux passer le #TEXTE
dans la fonction |extraire_balises (avec un s), stocker le résultat dans un tableau et interroger ce tableau dans une boucle DATA avec comme critère {par hasard} et {0,1}
avec un mot clé (voir squelettes escal)
!-- citations →
<BOUCLE_citations(ARTICLES){titre_mot=citations}{0,1}>
Attention, cela ne suffit pas
Il faut aussi la fonction à placer dans mes_fonctions.php :
function citations($txt){
$BDDArray = $txt;// Lecture de l'article
$BDDArray = explode('<p>', $BDDArray); // couper à la rencontre un p
$BDDArray = array_map('rtrim', $BDDArray); // Suppression des fins de lignes de chaque élément
$BDDArray = array_filter($BDDArray); // Suppression de TOUTES les entrées vides
$citation = $BDDArray[array_rand($BDDArray)]; // une phrase au hasard dans le tableau
if(strlen($citation)<200) //on ne veut pas dépasser 200 caractères
return strip_tags($citation); //on vire les tags html
else citations($txt);
}
Oui enfin s’il faut installer escal et des mots clés techniques pour extraire des citations d’un article… bon.
La méthode expliquée est relativement simple, ne nécessite rien de particulier excepté être rigoureux dans le texte de l’article, cad : 1 citation = 1 paragraphe. Mais pour un peu plus de souplesse je suggérerais d’utiliser plutôt des blockquotes : 1 blockquote = 1 citation, ainsi une citation de plusieurs paragraphes devient possible.
Non pas besoin d’Esca!
Juste une fonction et une boucle et éventuellement un mot-clé selon la boucle utilisée. Rien de plus.
Merci,
La boucle fonctionne très bien avec le fichier « mes_fonctions.php » et le mot clef « citations »
Pourquoi faire un truc compliqué qui vaudrait la peine si le nombre de
citations est nettement au dessus de la centaine?
En transformant les citations en glossaire (ou tout objet SPIP de base)
on peut utiliser le critére de classement {par hasard}
Ceci pourrait servir aussi en créant un array en mémoire qu’on
interrogerait par la suite dans une boucle, non ?
On a réalisé un truc comparable avec le plugin Glossaire
(pour SPIP <= 3.2)
En utilisant ce plugin on avait en plus une interface de gestion sympa
pour les rédacteurs.
:-)k++
On 5/25/25 21:28, Horetol via Discuter de SPIP wrote:
Bonsoir,
Un site comporte un article contenant uniquement des citations, chacune contenue dans un paragraphe.
Est-il possible d’avoir une boucle ARTICLES permettant d’afficher aléatoirement une citation ( un paragraphe ) ?
Merci
Voir le sujet ou répondre à cet e-mail pour répondre.
Pour vous désabonner de ces e-mails, cliquez ici.