Technologie de l'information et de la communication
Un peu geek mais surtout un dinosaure, de ceux qui ont soudé les composants de leur première machine, flashé la mémoire et publié dans Hebdogiciel.
La citation du jour
Pas d'harmonie sans l'ordre, pas d'ordre sans la paix, pas de paix sans la liberté, pas de liberté sans la justice.  (Léon Bourgeois)
La réflexion du jour
Quel calme pourtant plein de sons ! Redécouvrir les bruits de mon enfance : ceux de la ferme avec ses moutons et ses chiens. Oublier les bruits de la vie citadine : ceux des trains, ceux des camions et ceux des autos mais aussi ceux des voisins et ceux des gamins qui se défoulent dans le jardin public après leur studieuse journée…
Activités
bénévole - geek - cycliste (cyclotouriste) - généalogiste - photographe - collectionneur - écrivain - enseignant - Diverses informations
Les mots clés
doc TIC * courriels * réseaux sociaux * chats * navigateurs * web & internet * informatique * Formation à distance * Chatons * E-learning * Logiciel libre * vidéoconférence * Sécurité * courrielleurs * fil d’informations * messagerie instantanée
Lorand

Site personnel de Roland Bouat. Pour les curieux : Lorand est un anagramme de Roland.

Noisette pour SPIP : affichage d’images au hasard

Mots clés : geek , SPIP

jeudi 14 janvier 2016 , par Roland


J’ai créé d’après des articles de la galaxie SPIP SPIP Système de Publication Pour l’Internet (CMS utilisé pour le présent site). Voir Wiipedia SPIP (entre autres Afficher une image aléatoire d’une rubrique) , un fichier à inclure pour afficher en vignette des images choisies aléatoirement sur le site. Cela fonctionne bizarrement. Ce fichier est inclus plusieurs fois sur les pages. Mais... une fois sur deux (à peu près), c’est la même image qui s’affiche sur toute la page.

Voici ma boucle

[(#REM) image au hasard 
    accepte les paramètres 
    - nb_photos pour afficher plusieurs photos l'une au-dessus de l'autre;
    - taille pour... la taille (par défaut = 100)
   ]
    <BOUCLE_docuImg(documents_liens)
             {objet = article}
             {documents.extension IN jpg,png,gif}
             {par hasard}
             {0, #ENV{nb_photos,1}}
    		 >
    	[<a href="#URL_ARTICLE{#ID_OBJET}">
    			(#LOGO_DOCUMENT||image_reduire{#ENV{taille,100}}|inserer_attribut{class,photo})
    	</a>]
    </BOUCLE_docuImg>

Note 1 : au passage j’ai découvert que les balises html HTML HyperText Markup Language (langage de balisage qui permet d’écrire de l’hypertexte) alt et title [1] étaient vides (je les ai donc supprimées dans le code ci-dessus). Il faudra que je reprenne ça, en créant une boucle ARTICLE pour récupérer le titre de l’article.

Note 2 : Et puis, c’est pas sérieux de commenter encore avec "<!--", il faut revenir à [(@REM)].

Je n’ai pas compris ni quand ni pourquoi le comportement n’est normal que de temps à autre. J’ai l’impression que lorsque je demande le re-calcul de la page, cela fonctionne correctement.


J’ai lancé un appel sur SPIP SPIP Système de Publication Pour l’Internet (CMS utilisé pour le présent site). Voir Wiipedia SPIP -forum dans le forum "Création de squelettes" et j’ai continué mes recherches en attendant une hypothétique réponse [2].


La boucle citée plus haut fonctionne bien et ce n’est pas elle qui dysfonctionne.

J’ai donc relu les docs sur la gestion du cache, le critère doublons, les balises inclure... Par exemple : <INCLURE> d’autres squelettes

La syntaxe <INCLURE{fond=..}> provoque l’inclusion des pages à chaque visite d’un internaute, que celle-ci concerne une page déjà en cache ou non.

Avec la nouvelle balise [(#INCLURE{fond=...})], l’inclusion est réalisée lors du calcul du squelette, et son résultat est stocké dans le cache de la page appelante.

Parce que j’appelais ma noisette depuis une autre noisette (ouais, je sais, c’est de l’imbrication qui complexifie le système). La page "sommaire" appelle les fichiers à inclure "colonnedroite" et "colonnegauche".

L’utilisation de doublons dans l’appel de l’inclure ne suffit pas à cause de l’inclure utilisé (celui qui commence par <inclure...). Il faut utiliser la balise #INCLURE et le critère doublons en même temps.

[(#INCLURE{fond=inc/bdimages, doublons})]

[1code utilisé : inserer_attribut{alt,#TITRE} et inserer_attribut{title,#URL_ARTICLE}.

[2Réponse qui n’est jamais venue si ce n’est de ma part.