Forum de l’article

À découvrir

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Rappel de la discussion
Un article au hasard
baumstark - le 5 septembre 2021

Bonjour,

Je cherche un moyen pour afficher dans un espace donné une citation pris au hasard dans un listing. Je ne suis pas sûr de trouver cela tout préparé avec un plugin. Sur le net on trouve de vieux articles mais sans doute obsolètes.

Je me suis dit que si on arrivait à le faire pour "quelques photos au hasard" on pourrait le faire pour un article. Et si on peut le faire pour un article... je suis sauvé puisqu’il suffit alors de faire un article par citation qu’on mettrait dans une rubrique dédiée....Rubrique qu’on rendrait invisible par ailleurs pour qu’elle n’alourdisse pas le site.
Avant de me lancer dans la bidouille, je voulais savoir s’il n’y avait pas une méthode plus simple... Je mets mon poste ici (j’aurais pu le mettre aussi sur la page consacrée à "quelques photos au hasard") car sauf, si je n’ai pas bien compris, cette noisette qui aurait pu m’aider est strictement liée à l’affichage d’une rubrique... et moi j’aurais bien voulu avoir un espace sur la page d’accueil... Si quelqu’un peu m’orienter. Merci.

Citations
Jean Christophe Villeneuve - le 5 septembre 2021

Hello

Escal a déjà prévu d’afficher des citations mais dans le pied de page. Je te laisse regarder la page de configuration du pied de page pour voir si ça peut te convenir.

Les citations
baumstark - le 5 septembre 2021

Génial,
(en rentrant hasard dans le moteur de recherche d’Escal, je n’étais pas tombé sur cette proposition dans le pied de page). L’article d’ailleurs évoque citation, mais ne décrit pas le point, mais c’est effectivement trés clair dans le paramétrage d’escal dans l’espace privé de SPIP).

Effectivement cela conviendrait totalement (en tous les cas pour ce que j’ai en tête). Le seul souci c’est qu’il est dans le pied de page !!!

En réfléchissant plusieurs options me viennent à l’esprit :
 mettre le code correspondant dans inc-perso pour le récupérer dans un espace gérable sur les pages ?
 pour le mettre autrement en défilement sur la page d’accueil (puis-je copier simplement le code du pied de page vers un inc-article_libreX ?

Je partage la solution que j’avais repéré d’un internaut : https://www.lorand.org/spip.php?article2493 qui propose

[(#REM) <!-- Début citation_modele_unalea -->
        Auteur : Roland Bouat
        Date de création : 08/05/2020
]
#SET{fichier_citations,citations.csv}
[(#REM) Pour changer de fichier remplacer ci-dessus "citations" par le nom du fichier.]
<div class="titrecitation">La citation du jour</div>
<div class="textecitation">
        <B_csv_reflexions>
        <BOUCLE_csv_citations(DATA){source csv,#CHEMIN{csv/#GET{fichier_citations}}}{par hasard}{0,1}> 
                #VALEUR{0} - (#VALEUR{1})<br />
        </BOUCLE_csv_citations>
</div>
[(#REM) <!-- Fin citation_modele_unalea --> ]

L’ensemble apparaît plus complexe à gérer et surtout je ne sais pas trop où mettre ce fichu fichier csv... Gérer en interne dans un article les citations c’est évidemment beaucoup mieux.

Luc

Activation du mot clef citations et crash
baumstark - le 5 septembre 2021

Comme proposé :
J’ai écrit un article, mis le mot clef et validé dans la config escal la présence de la citation dans le pied de page.

J’ai alors en me connectant sur le site un crash complet :

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at postmaster chez diaconie.fr to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.

Instabilité
baumstark - le 5 septembre 2021

Ma précédente réponse... n’a pas été validée. Je disais que cela correspondait effectivement à ce que je souhaitais faire sauf que c’est dans le pied de page et je m’interrogeais pour savoir si je pouvais utiliser la partie du code pour l’intégrer dans inc-perso ou inc-article_libre... de manière à pouvoir récupérer cette procédure dans un noisette utilisable ailleurs dans le site. (notamment les articles défilants en haut de la page d’accueil)
Sinon pour le crash, c’est visiblement lié à une citation trop longue ? le non respect d’une ligne vide ?
Mais ce qui est rassurant c’est que j’ai réussi à faire fonctionner l’ensemble. Le seul hic c’est qu’il met dans la boucle une ligne vide et cela explique aussipourquoi parfois on a le sentiment que cela ne marche pas... il affiche simplement rien. Peut-on gérer ce point ? Peut-on dépasser les 200 caractères ? Merci pour tout. Si cela marche c’est super.

Citations
Jean Christophe Villeneuve - le 6 septembre 2021

Ok alors on peut mettre ça dans un bloc latéral en passant par un modèle.
Pour ça, tu vas :

  • créer un dossier /squelettes (s’il n’existe pas) à la racine de ton spip
  • dans ce dossier créer un dossier /modeles
  • dans ce dossier /modeles, créer un fichier citations.html avec ce code :
    <BOUCLE_citations(ARTICLES){titre_mot=citations}{0,1}>
    [(#TEXTE|citations2)]
    </BOUCLE_citations>
  • créer un fichier mes_fonctions.php à la racine de /squelettes avec ce code :
    <?php
     
    function citations2($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);
    }
  • modifier la limite de 200 caractères selon ton souhait
  • créer un article avec juste ce texte
    <citations|>
  • attribuer le mot-clé "article-libre1" à cet article (ou un autre article-libreX si tu utilises déjà celui-ci). Celui-ci va donc afficher le modèle qui ira chercher une citation dans l’article où tu as écrit tes citations et qui a donc le mot-clé "citation"
  • activer le bloc "Article libre 1" où tu le souhaites.
Des citations aux hasards affichables sur la page d’accueil
baumstark luc - le 8 septembre 2021

Excellentissime... j’ai suivi à la lettre la proposition et cela a marché du premier coup.... Génial. Merci Beaucoup. Je pense que ce petit plugin peut vraiment en intéresser plus d’un... Je vais les utiliser je pense dans le bloc annonce sur la page d’accueil et aussi dans un bloc latéral sur l’une ou l’autre page du site. C’est vraiment bien et je pense que le principe peut vraiment se décliner pour d’autres usages.
Bien évidemment sans ton aide (codes pour extraire les données dans un tableau...) c’était pour moi impossible. Je ne maîtrise pas ce langage. J’en suis resté à une formation de base en informatique beaucoup plus simpliste....
En tous les cas merci beaucoup.
PS : je vais essayer de mettre du code SPIP dans le texte des citations pour éventuellement renvoyer à un article (idée similaire à celle qui consiste à accrocher sur une image un lien hypertext pour aiguiller sur un autre espace du site...)
Luc

Citations
Jean Christophe Villeneuve - le 8 septembre 2021

Essaye mais, à mon avis, les liens ne fonctionneront pas.

Test du lien dans les citations
baumstark - le 11 septembre 2021

Effectivement, pas le résultat escompté... mais j’en demandais un peu trop je crois. Cela produit même des effets chaotiques sur le fonctionnement de l’ensemble.