IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

[Spip 3.013] problème de boucle [Spip]


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre habitué Avatar de rsuinux
    Homme Profil pro
    Infirmier Formateur pour logiciel de Dossiers de Soins Informatisés
    Inscrit en
    Août 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Infirmier Formateur pour logiciel de Dossiers de Soins Informatisés
    Secteur : Santé

    Informations forums :
    Inscription : Août 2007
    Messages : 128
    Points : 170
    Points
    170
    Par défaut [Spip 3.013] problème de boucle
    Bonjour

    Je cherche à faire une (des) boucle(s) afin de récupérer tous les articles d'un jour donné. Par exemple, ceux du 29/10/2013

    Voila mon passage de paramètres:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    spip.php?page=jour&date=2013-10-29
    et mon premier bloc de code, qui affiche le nombre d'itération de la boucle et 'articles' ou sinon, 'article' (sans s)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <Bcompte>
    <BOUCLEcompte(articles){date=#ENV{date}}> </BOUCLEcompte>
    		<h1>(#TOTAL_BOUCLE) Articles
    </Bcompte>
    		<h1>Aucun article.
    <//Bcompte>
    Le problème c'est qu'il ne me sort que la seconde ligne : 'Aucun article',
    et il faudrait que pour 1, ça donne ' 1 article' pour 2 ou plus 'X articles' et sinon, 'Aucun article'.
    le débug a l'air de me dire quela boule fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT count(*)
    FROM spip_articles AS `articles`
    WHERE (articles.statut = 'publie')
    	AND (articles.date = '2013-10-29 00:00:00')
     
    1 sur 1
    Ce doit être au niveau des conditions que ça bloque, mais je n'arrive pas à trouver, même sur spip.contrib.

    Si quelqu'un a une idée, je suis preneur.
    Merci.
    Si tu ne sais pas: demande, si tu sais, partage.

  2. #2
    Membre habitué Avatar de rsuinux
    Homme Profil pro
    Infirmier Formateur pour logiciel de Dossiers de Soins Informatisés
    Inscrit en
    Août 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Infirmier Formateur pour logiciel de Dossiers de Soins Informatisés
    Secteur : Santé

    Informations forums :
    Inscription : Août 2007
    Messages : 128
    Points : 170
    Points
    170
    Par défaut
    j'ai un peu avancé dans mes recherches.
    D'abord, j'ai une date, le 24/10/2013 ou il y a deux articles de publié. Donc, pour les tests je vais me fixer dessus. Ensuite, j'ai trouvé comment utiliser le compteur #TOTAL_BOUCLE:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <BOUCLE_1(ARTICLES){date=#ENV{date}}> </BOUCLE_1>
    [(#TOTAL_BOUCLE|=={0}|oui)
    		<h1>Aucun article cejour.
    ]
    [(#TOTAL_BOUCLE|=={1}|oui)
    		<h1> Un article cejour.
    ]
    [(#TOTAL_BOUCLE|>={0}|oui)
    		<h1>#TOTAL_BOUCLE articles cejour.
    ]
    <//B_1>
    d’après le mode debug de spip, la variable d’environnement #ENV{date} contient bien la date passée dans l'adresse sous la forme 2013-10-24
    Mais comme retour à la sortie de boucle: zéro!
    Je pense que c'est un problème au niveau de la date, mais je ne trouve pas ou.
    Si tu ne sais pas: demande, si tu sais, partage.

  3. #3
    Membre habitué Avatar de rsuinux
    Homme Profil pro
    Infirmier Formateur pour logiciel de Dossiers de Soins Informatisés
    Inscrit en
    Août 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Infirmier Formateur pour logiciel de Dossiers de Soins Informatisés
    Secteur : Santé

    Informations forums :
    Inscription : Août 2007
    Messages : 128
    Points : 170
    Points
    170
    Par défaut
    je cherche toujours pourquoi ma boucle ne renvois rien, et j'ai une bonne piste!

    Si je laisse la date dans la boucle sous le format "2013-10-24 00:00:00"
    je n'ai comme retour: rien
    Mais si je mets "2013-10-24" , j'ai bien mon nombre d'articles.

    c'est donc spip qui me donne une 'mauvaise' date, ou au moins un mauvais format.

    Quelqu'un a déjà eu la même erreur?
    Si tu ne sais pas: demande, si tu sais, partage.

  4. #4
    Membre habitué Avatar de rsuinux
    Homme Profil pro
    Infirmier Formateur pour logiciel de Dossiers de Soins Informatisés
    Inscrit en
    Août 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Infirmier Formateur pour logiciel de Dossiers de Soins Informatisés
    Secteur : Santé

    Informations forums :
    Inscription : Août 2007
    Messages : 128
    Points : 170
    Points
    170
    Par défaut
    j'ai trouvé!

    il fallait bien changer le format de date. Je donne la solution, si cela peut aider. Tout est dans la formulation "|affdate{'Y-m-d'}" qui formate la date.
    Premier exemple, trouver et afficher le nombre d'articles édités et publiés e 24/10/2013:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
     
    <BOUCLE_1(ARTICLES){date==(#ENV{date}|affdate{'Y-m-d'})}{par date}></BOUCLE_1>
    [(#TOTAL_BOUCLE|=={0}|oui)
                    <h1>Aucun article pour le  
    ]
    [(#TOTAL_BOUCLE|=={1}|oui)
                    <h1> Un article le  
    ]
    [(#TOTAL_BOUCLE|>={2}|oui)
                    <h1>#TOTAL_BOUCLE articles le  
    ]
    <//B_1>
    <small>[(#ENV{date}|affdate{'Y-m-d'})]</small>
    </h1>
    Et pour voir les articles du jour, s'il y en a, voila comment j'ai fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
                    <BOUCLE_art(ARTICLES){date==(#ENV{date}|affdate{'Y-m-d'})}{par date}>
                                    [(#LOGO_ARTICLE_RUBRIQUE{#URL_ARTICLE}|image_reduire{40,*})]
                                    <h3 class="h2 entry-title"><a href="#URL_ARTICLE" rel="bookmark">#TITRE</a></h3>
                                    <small>
                                            [(#DATE|affdate{'d m Y h:m:s'})]
                                            [, <:par_auteur:> (#LESAUTEURS|supprimer_tags)]
                                    </small>
                                    [<div class="#EDIT{intro} introduction entry-content">
                                            (#INTRODUCTION|couper{150})
                                    </div>]
                    </BOUCLE_art>
    Et voila!
    Si tu ne sais pas: demande, si tu sais, partage.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de boucles imbriquées
    Par Gnux dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 09/12/2005, 20h26
  2. [Tableaux] Problème avec boucle
    Par MYster dans le forum Langage
    Réponses: 6
    Dernier message: 11/11/2005, 18h39
  3. Problème de boucle
    Par TheUltimaSephiroth dans le forum C
    Réponses: 8
    Dernier message: 10/10/2005, 13h58
  4. Problème de boucle
    Par Louis-Guillaume Morand dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/09/2005, 09h10
  5. Problème de boucle
    Par basclln dans le forum C++
    Réponses: 19
    Dernier message: 02/04/2005, 09h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo