[ar] [ca] [cpf] [de] [en] [es] [fr] [it]

Ce forum d’entraide est recommandé pour les utilisateurs et utilisatrices occasionnels de SPIP (Système de publication pour l’Internet). Avant de poser une question, faites une recherche sur ce site, consultez les liens utiles. Si vous ne trouvez pas de réponse, postez votre message dans la rubrique appropriée, avec un titre explicite.

Sujets : 24108 Sujets résolus :  39 %

62 visiteurs en ce moment


Accueil > Forums de discussion >  Création de squelettes > Exécution de #SET dans une boucle

Exécution de #SET dans une boucle Résolu

par Z_spip - 24 juin 17:53 - Réponse(s) : 4

Bonjour les gens,

Je sais, c’est crétin.... mais je me demande ce qui peut coincer dans mes vaines tentatives d’exécuter un #SET dans une boucle, pour changer la valeur d’une variable à chaque tour....
A part initialiser #SET en dehors, et surtout pas dans la partie optionnelle de la boucle, je ne vois pas. Là, ma valeur reste la même à chaque tour.

Plus globalement, ce que je cherche à faire, c’est récupérer la valeur aléatoire d’une petite balise que je me suis faite dans une variable à l’intérieure de cette boucle. Celle-ci déterminera des éléments CSS à chaque tour. La raison pour laquelle je ne peux pas utiliser la balise directement est que j’ai plusieurs éléments à styler en CSS pour un tour donné. Or l’appel à la balise à chaque fois, pour le coup, me génère bien un aléa différent, à chaque appel. D’où passage par set / get...

Donc s’il y a mieux et plus simple (rêvons, rêvons....) ça m’intéresse, sinon, la stratégie d’usage pour exécuter ce #SET dans la boucle, autant de fois qu’il y a de tour, ça m’irait très bien.

Merci bien !


  • Hello

    Aucun problème n’est crétin ... Peux tu nous donner ton bout de code pour mieux comprendre ton problème ... est ce un problème de GET/SET ou simplement un problème de cache ?

    A tout de suite


  • < #2 > Exécution de #SET dans une boucle ˆ
    par Z_spip - 25 juin 21:27

    Bonjour Erational, merci.
    Je ne sais pas trop pour le cache, je le recalcule à chaque fois, et quand j’y pense, le désactive temporairement. Je penche plutôt pour une histoire de fonctionnement de SET/GET qui fonctionne d’une certaine manière avec la compilation des boucles que je n’ai pas bien saisie.

    On a donc un squelette rubrique de base tiré de la dist, qui va contenir le SET d’une variable à laquelle j’affecte le retour de ma balise #ALEATOIRE, que j’ai essayé de placer à plusieurs endroits, puis le #GET dans la boucle, qui n’est pas recalculé à chaque tour, malgré un SET qui se trouve bien dans ma boucle. L’un de mes essais ressemble à ça :

    1. <body>
    2. #SET{h,#ALEATOIRE}
    3. <INCLURE{fond=inclure/header,env} />
    4. [(#LOGO_RUBRIQUE)]
    5. (...)
    6. <B_articles>
    7. <div class="menu menu_articles">
    8. #ANCRE_PAGINATION
    9. <ul>
    10. <BOUCLE_articles(ARTICLES) {id_rubrique} {!par date} {pagination}>
    11. <li dir="#LANG_DIR" class="hentry clearfix text-#LANG_LEFT">
    12. <a href="#URL_ARTICLE"><strong>#TITRE</strong></a>
    13. #GET{h}
    14. <div class="#EDIT{intro} introduction entry-content">#INTRODUCTION</div>
    15. </li>
    16. #SET{h,#ALEATOIRE}
    17. </BOUCLE_articles>
    18. </ul>
    19. [<p class="pagination">(#PAGINATION)</p>]
    20. </div>
    21. </B_articles>
    22. (...)

    Télécharger

    Je précise que si je colle plusieurs appels de la balise à la suite, sans stockage en SET, je récupère bien quelques valeurs aléatoires différentes.
    Voilà voilà...


  • Bonsoir bonsoir,

    Si ça pet aider à comprendre le souci, mes essais sont là :
    http://www.routedesstages.lautre.net/cn/spip.php?rubrique3

    La couleur de la puce et de la flèche "lire la suite" de chaque élément de liste peut être de manière aléatoire soit rouge, soit bleu-vert. Ici, la liste entière reste de la même couleur, le SET censé changer la variable aléatoirement ne se change plus après la 1ère affectation.

    A suivre...


  • < #4 Exécution de #SET dans une boucle ˆ
    par Z_spip - 1er juillet 11:09

    Un petit mot pour pour vous livrer les résultats de mes recherches. Une demi-solution a été trouvée en passant par une astuce publiée sur contrib. Il s’agissait de produire un argument bidon généré aléatoirement au filtre |unique utilisé dans une boucle. La syntaxe assez simple fonctionne bien, je récupère un numéro aléatoire dans ma boucle, sans même avoir besoin de créer de balise. Je peux paramétrer la fonction php rand() comme je veux, MAIS.... même en l’utilisant dans une balise style qui tourne dans la boucle, et malgré un code source qui modifie la css en conséquence à chaque tour, il n’y a rien à faire, le rendu spip utilise la dernière valeur de la boucle pour l’appliquer à l’ensemble des données remontées....
    Donc là....

    Il me restait encore à voir si ce pouvait être le cache dont Erational parlait. J’ai donc noisetté cette boucle pour forcer #CACHE0. Pas de changement. J’ai aussi esssayé le modèle, peut-être plus adapté aux appels "dynamiques" (et donc gérés différemment par le compilateur). Mais toujours pas de résultat probant. De plus, en inclusion, la noisette posait un problème de communication avec le squelette appelant, que je pouvais contourner en utilisant une astuce qui consistait à sérialiser le tableau env (publié dans les astuces courtes), avec un syntaxe un peu lourde comparée au besoin initial....Bref, tout ceci m’emmenait beaucoup trop loin, pour un besoin au départ plutôt simple, il a fallu abandonner.

    Conclusion : Pour des raisons de compilation / cache ou je ne sais trop quoi, il est IMPOSSIBLE d’utiliser une valeur qui change à chaque tour dans une boucle à des fins de style. J’ai donc mis en place un ordre itératif avec les psudo classes ciblées par ordre d’apparition (nth-child). Mais ça me satisfait moyen. Voilà voilà...

    Je classe ce ticket dans les "résolus" mais ce n’est pas tout à fait exact, un statut "abandon" serait plus approprié.




Répondre à la question

« Exécution de #SET dans une boucle »

Mots-clés

Vous pouvez étiqueter cette page de forum avec les mots-clés qui vous semblent les plus appropriés ; ils permettront aux prochains visiteurs du site de mieux se repérer :


Installation, mise à jour

Utilisation de l’espace privé

Administration, gestion, configuration du site

Créer ses squelettes

Qui êtes-vous ?

  • creer ou bien modifier son article côté public via un modèle

    par Laëtitia
    22 juillet 18:16

    Résolu - Réponse(s) : 4

    Je remarque une chose, si il y a 1 document dans le portfolio du rédacteur il peut en charger d’autres sur sa page publique, mais c’est quand il n’y en a pas encore que le chargement ne se fait pas (...)

  • afficher valeurs par ordre croissant

    par Didine
    20 juillet 08:47

    Pas de réponse

    Bonjour, j’utilise le plugin champs supplémentaires. Je récupère dans une liste le contenu de certains champs pour faire un formulaire de tri. Tout fonctionne correctement, cependant dans le select (...)

  • pb spip/spipr et test robots google

    par Didine
    19 juillet 20:07

    Résolu - Réponse(s) : 7

    Bonjour, je suis désolée mais le problème est de retour sur ce site alors que ça fonctionnait après notre échange. Le problème se pose sur plusieurs sites SPIP... peut-être est-ce dû aux modifications (...)

  • Probleme avec mediabox spip3.1.6

    par b_b
    18 juillet 15:28

    Réponse(s) : 6

    Voilà pourquoi je demandais un lien à chti47 :) Sans quoi on va tous passer du temps à jouer aux devinettes, alors que ça pourrait être réglé en 5 minutes (ce qui ferait gagner du temps aux personnes (...)

  • Appeler squelette

    par Mickael
    17 juillet 19:26

    Résolu - Réponse(s) : 2

    Ok, effectivement j’ai des articles qui ont perdu leur affectation :s, du coup je me retrouve avec une rubrique vide... Merci beaucoup

  • Update de la table auteurs

    par Luc
    17 juillet 11:25

    Réponse(s) : 3

    Merci, mais en fait je n’ai aucun problème à afficher les auteurs connectés en récupérant les infos de la table auteurs ; ce que je cherche, c’est faire en sorte que les auteurs connectés updatent la (...)

  • Galerie d'image lightbox slider adaptable

    par Jhessy
    12 juillet 09:57

    Réponse(s) : 2

    Bonjour Philivert, Je sais que le portfolio le fait déjà mais je dois faire cela de cette manière la car c’est dans le cahier des charges de mon stage. Et comme mon problème (en générale) c’est (...)

  • plugin SAISIES & messages d'erreur

    par Keny972
    7 juillet 14:57

    Pas de réponse

    Bonjour, J’utilise en local le plugin SAISIES pour gérer un formulaire de création d’objet éditorial. Je cherche comment ajouter à un champ SAISIES une span message_erreur ? Pas le message (...)

  • INCLUDE et cache

    par Erka
    6 juillet 18:23

    Résolu - Réponse(s) : 4

    Problème résolu : https://www.mail-archive.com/spip@rezo.net/msg72338.html

  • Problème recuperation site en ligne en local

    par Pathé
    6 juillet 17:07

    Résolu - Réponse(s) : 13

    Problème résolu merci !

  • Messages : 29323
  • 8200 43 %
  • Poser une nouvelle question