expressions régulières

Bonjour,

j’aimerais tester si mon sous-titre est compris entre 2 variables (nb_pièces_min et nb_pièces_max) passées en paramètre dans l’url grâce à un formulaire (méthode POST). Le code suivant fonctionne :

<BOUCLE_ville1(RUBRIQUES){id_parent=5}{titre=#ENV{ville}}>
<BOUCLE_immo1(ARTICLES) {id_rubrique} {surtitre=#ENV{recherche}} {titre=#ENV{type}} {soustitre>=#ENV{nb_pièces_min}} {1/2}>

  • #SURTITRE
    #TEXTE
    #TITRE de #DESCRIPTIF m²[
    (#SOUSTITRE)[(#SOUSTITRE|>{1}|?{' pièces',' pièce'})]]
    #CHAPO FCFA

  • mais dès que j’essaie de faire :

    <BOUCLE_ville1(RUBRIQUES){id_parent=5}{titre=#ENV{ville}}>
    <BOUCLE_immo1(ARTICLES) {id_rubrique} {surtitre=#ENV{recherche}} {titre=#ENV{type}} {soustitre>=#ENV{nb_pièces_min}} {soustitre<=#ENV{nb_pièces_max}} {1/2}>

  • #SURTITRE
    #TEXTE
    #TITRE de #DESCRIPTIF m²[
    (#SOUSTITRE)[(#SOUSTITRE|>{1}|?{' pièces',' pièce'})]]
    #CHAPO FCFA

  • ça n’affiche plus rien du tout sur ma page. Une idée ?

    Merci
    Nine


    Yahoo! Mail réinvente le mail ! Découvrez le nouveau Yahoo! Mail et son interface révolutionnaire.

    spip-bounces@rezo.net wrote:

    Bonjour,

    j'aimerais tester si mon sous-titre est compris entre 2
    variables (nb_pièces_min et nb_pièces_max) passées en
    paramètre dans l'url grâce à un formulaire (méthode POST). Le code
    suivant fonctionne :

    <BOUCLE_ville1(RUBRIQUES){id_parent=5}{titre=#ENV{ville}}>
    <BOUCLE_immo1(ARTICLES) {id_rubrique}
    {surtitre=#ENV{recherche}} {titre=#ENV{type}}
    {soustitre>=#ENV{nb_pièces_min}} {1/2}>
    </BOUCLE_immo1>
    </BOUCLE_ville1>

    mais dès que j'essaie de faire :

    <BOUCLE_ville1(RUBRIQUES){id_parent=5}{titre=#ENV{ville}}>
    <BOUCLE_immo1(ARTICLES) {id_rubrique}
    {surtitre=#ENV{recherche}} {titre=#ENV{type}}
    {soustitre>=#ENV{nb_pièces_min}}
    {soustitre<=#ENV{nb_pièces_max}} {1/2}>
    </BOUCLE_immo1>
    </BOUCLE_ville1>

    ça n'affiche plus rien du tout sur ma page. Une idée ?

    Merci
    Nine

    Et si tu essaie avec {soustitre IN [#ENV{nb_pièces_min},
    #ENV{nb_pièces_max}]} (je ne suis même pas sûr que ça fonctionne).

    Ca ne fonctionne pas parce que je viens de m’apercevoir que les #ENV{…} sont vides ! Depuis le début je teste $_POST[‹ … ›] pour savoir s’ils ne sont pas vides et en fait ce sont les #ENV{…} qui sont vides. On ne peut donc pas récupérer les valeurs des variables dans les boucles ?

    Olivier GENDRIN o.gendrin@novactive.com a écrit :

    spip-bounces@rezo.net wrote:

    Bonjour,

    j’aimerais tester si mon sous-titre est compris entre 2
    variables (nb_pièces_min et nb_pièces_max) passées en
    paramètre dans l’url grâce à un formulaire (méthode POST). Le code
    suivant fonctionne :

    mais dès que j’essaie de faire :

    ça n’affiche plus rien du tout sur ma page. Une idée ?

    Merci
    Nine

    Et si tu essaie avec {soustitre IN [#ENV{nb_pièces_min},
    #ENV{nb_pièces_max}]} (je ne suis même pas sûr que ça fonctionne).


    Découvrez un nouveau moyen de poser toutes vos questions quelque soit le sujet ! Yahoo! Questions/Réponses pour partager vos connaissances, vos opinions et vos expériences. Cliquez ici.

    spip-bounces@rezo.net wrote:

    Ca ne fonctionne pas parce que je viens de m'apercevoir que
    les #ENV{...} sont vides ! Depuis le début je teste
    $_POST['...'] pour savoir s'ils ne sont pas vides et en fait
    ce sont les #ENV{...} qui sont vides. On ne peut donc pas
    récupérer les valeurs des variables dans les boucles ?

    Si tu affiche dans ton squelette juste #ENV (sans rien d'autres, pas
    d'accolades, rien), qu'est ce qu'il affiche ?

    si j’écris ça :

      #ENV

    le résultat est :
    a:11:{s:9:« recherche »;s:8:« Location »;s:5:« ville »;s:6:« Douala »;s:4:« type »;s:6:« Maison »;s:13:« nb_pieces_min »;s:0:«  »;s:13:« nb_pieces_max »;s:0:«  »;s:11:« surface_min »;s:0:«  »;s:11:« surface_max »;s:0:«  »;s:8:« prix_min »;s:0:«  »;s:8:« prix_max »;s:0:«  »;s:10:« date_redac »;s:19:« 2006-07-19 15:46:49 »;s:4:« date »;s:19:« 2006-07-19 15:46:49 »;}

    Olivier GENDRIN o.gendrin@novactive.com a écrit :

    spip-bounces@rezo.net wrote:

    Ca ne fonctionne pas parce que je viens de m’apercevoir que
    les #ENV{…} sont vides ! Depuis le début je teste
    $_POST[‹ … ›] pour savoir s’ils ne sont pas vides et en fait
    ce sont les #ENV{…} qui sont vides. On ne peut donc pas
    récupérer les valeurs des variables dans les boucles ?

    Si tu affiche dans ton squelette juste #ENV (sans rien d’autres, pas
    d’accolades, rien), qu’est ce qu’il affiche ?


    Découvrez un nouveau moyen de poser toutes vos questions quelque soit le sujet ! Yahoo! Questions/Réponses pour partager vos connaissances, vos opinions et vos expériences. Cliquez ici.

    j’ai enfin compris quel est mon réel problème. En fait c’est facultatif de donner des valeurs aux champs nb_pieces_min et nb_pieces_max et évidemment lorsque je n’en donne pas dans le formulaire, ma boucle ne fonctionne pas.
    Comment alors donner des valeurs par défaut à ces champs pour que le #ENV puisse fonctionner ?

    Je sais le faire en php :
    if (!(isset($_POST[‹ nb_pieces_min ›]))) {$_POST[‹ nb_pieces_min ›]=0;}
    mais ça ne sert à rien avec les boucles.
    Ca m’ennuie un peu de faire des tas de if imbriqués pour tester ou non si les valeurs des champs sont bien remplis (il y en a 6 en tout qui sont facultatifs !)…

    Qui peut m’aider ?
    Merci Olivier GENDRIN pour l’aide précieuse


    Cordialement,
    Heilani Penanhoat
    Douala CAMEROUN

    Heilani Penanhoat heilanip@yahoo.fr a écrit :

    si j’écris ça :

      #ENV

    le résultat est :
    a:11:{s:9:« recherche »;s:8:« Location »;s:5:« ville »;s:6:« Douala »;s:4:« type »;s:6:« Maison »;s:13:« nb_pieces_min »;s:0:«  »;s:13:« nb_pieces_max »;s:0:«  »;s:11:« surface_min »;s:0:«  »;s:11:« surface_max »;s:0:«  »;s:8:« prix_min »;s:0:«  »;s:8:« prix_max »;s:0:«  »;s:10:« date_redac »;s:19:« 2006-07-19 15:46:49 »;s:4:« date »;s:19:« 2006-07-19 15:46:49 »;}

    Olivier GENDRIN o.gendrin@novactive.com a écrit :

    spip-bounces@rezo.net wrote:

    Ca ne fonctionne pas parce que je viens de m’apercevoir que
    les #ENV{…} sont vides ! Depuis le début je teste
    $_POST[‹ … ›] pour savoir s’ils ne sont pas vides et en fait
    ce sont les #ENV{…} qui sont vides. On ne peut donc pas
    récupérer les valeurs des variables dans les boucles ?

    Si tu affiche dans ton squelette juste #ENV (sans rien d’autres, pas
    d’accolades, rien), qu’est ce qu’il affiche ?


    Découvrez un nouveau moyen de poser toutes vos questions quelque soit le sujet ! Yahoo! Questions/Réponses pour partager vos connaissances, vos opinions et vos expériences. Cliquez ici. _______________________________________________
    liste spip
    spip@rezo.net - désabonnement : spip-off@rezo.net
    Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
    Documentation de SPIP : http://www.spip.net/
    irc://irc.freenode.net/spip
    FAQ : http://www.spip-contrib.net/spikini/FaQ


    Découvrez un nouveau moyen de poser toutes vos questions quelque soit le sujet ! Yahoo! Questions/Réponses pour partager vos connaissances, vos opinions et vos expériences. Cliquez ici.

    spip-bounces@rezo.net wrote:

    si j'écris ça :
    <ul>
       <BOUCLE_ville1(RUBRIQUES){id_parent=5}{titre=#ENV{ville}}>
           <BOUCLE_immo1(ARTICLES) {id_rubrique}
    {surtitre=#ENV{recherche}} {titre=#ENV{type}} {1/2}>#ENV
       </BOUCLE_immo1> </BOUCLE_ville1>
    </ul>

    le résultat est :
    a:11:{s:9:"recherche";s:8:"Location";s:5:"ville";s:6:"Douala";
    s:4:"type";s:6:"Maison";s:13:"nb_pieces_min";s:0:"";s:13:"nb_p
    ieces_max";s:0:"";s:11:"surface_min";s:0:"";s:11:"surface_max"
    ;s:0:"";s:8:"prix_min";s:0:"";s:8:"prix_max";s:0:"";s:10:"date
    _redac";s:19:"2006-07-19 15:46:49";s:4:"date";s:19:"2006-07-19
    15:46:49";}

    Donc on voit que #ENV{nb_pieces_min} devrait rentourner 0...

    Olivier GENDRIN <o.gendrin@novactive.com> a écrit :
      Si tu affiche dans ton squelette juste #ENV (sans rien d'autres, pas
      d'accolades, rien), qu'est ce qu'il affiche ?

    spip-bounces@rezo.net wrote:

    j'ai enfin compris quel est mon réel problème. En fait c'est
    facultatif de donner des valeurs aux champs nb_pieces_min et
    nb_pieces_max et évidemment lorsque je n'en donne pas dans le
    formulaire, ma boucle ne fonctionne pas.
    Comment alors donner des valeurs par défaut à ces champs pour
    que le #ENV puisse fonctionner ?

    Je sais le faire en php :
                 if (!(isset($_POST['nb_pieces_min'])))
    {$_POST['nb_pieces_min']=0;} mais ça ne sert à rien avec les boucles.
    Ca m'ennuie un peu de faire des tas de if imbriqués pour
    tester ou non si les valeurs des champs sont bien remplis (il
    y en a 6 en tout qui sont facultatifs !)..

    Qui peut m'aider ?

    Avec '?' Peut-être ? {surtitre < #ENV{toto} ?} mais je ne suis pas sûr que
    ça fonctionnera...

    Sinon, tu utilise les valeurs par défaut de #ENV : #ENV{toto, valeur par
    défaut}.

    Enfin, tu pourrais faire le test dans l'affichage de la boucle, mais c'est
    moins performant puisque tu remontera tous tes enregistrements avant de
    faire le test.

    Par exemple :
    [(#SURTITRE|<#ENV{toto}|?{' ',''})affichage si vrai]
    [(#SURTITRE|<#ENV{toto}|?{'',' '})affichage si faux]

    (toute l'astuce est dans la position de l'espace dans le test '|?'...

    Merci Olivier GENDRIN pour l'aide précieuse

    9a aurai pu être quel autre personne de la liste, je ne suis pas favorable à
    la personnalisation des remerciements (par contre, si tu veux m'offrir une
    bière lorsqu'on se croisera,pas de problèmes ^^).

    pour la bière, ce ne sera pas possible, à moins que tu viennes faire un tour au Cameroun, alors dans ce cas je me ferai un plaisir :slight_smile:

    Olivier GENDRIN o.gendrin@novactive.com a écrit :

    spip-bounces@rezo.net wrote:

    j’ai enfin compris quel est mon réel problème. En fait c’est
    facultatif de donner des valeurs aux champs nb_pieces_min et
    nb_pieces_max et évidemment lorsque je n’en donne pas dans le
    formulaire, ma boucle ne fonctionne pas.
    Comment alors donner des valeurs par défaut à ces champs pour
    que le #ENV puisse fonctionner ?

    Je sais le faire en php :
    if (!(isset($_POST[‹ nb_pieces_min ›])))
    {$_POST[‹ nb_pieces_min ›]=0;} mais ça ne sert à rien avec les boucles.
    Ca m’ennuie un peu de faire des tas de if imbriqués pour
    tester ou non si les valeurs des champs sont bien remplis (il
    y en a 6 en tout qui sont facultatifs !)…

    Qui peut m’aider ?

    Avec ‹ ? › Peut-être ? {surtitre < #ENV{toto} ?} mais je ne suis pas sûr que
    ça fonctionnera…

    Sinon, tu utilise les valeurs par défaut de #ENV : #ENV{toto, valeur par
    défaut}.

    Enfin, tu pourrais faire le test dans l’affichage de la boucle, mais c’est
    moins performant puisque tu remontera tous tes enregistrements avant de
    faire le test.

    Par exemple :
    [(#SURTITRE|<#ENV{toto}|?{’ ‹ , ›‹ })affichage si vrai]
    [(#SURTITRE|<#ENV{toto}|?{ ›‹ , › '})affichage si faux]

    (toute l’astuce est dans la position de l’espace dans le test ‹ |? ›…

    Merci Olivier GENDRIN pour l’aide précieuse

    9a aurai pu être quel autre personne de la liste, je ne suis pas favorable à
    la personnalisation des remerciements (par contre, si tu veux m’offrir une
    bière lorsqu’on se croisera,pas de problèmes ^^).


    liste spip
    spip@rezo.net - désabonnement : spip-off@rezo.net
    Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
    Documentation de SPIP : http://www.spip.net/
    irc://irc.freenode.net/spip
    FAQ : http://www.spip-contrib.net/spikini/FaQ


    Découvrez un nouveau moyen de poser toutes vos questions quelque soit le sujet ! Yahoo! Questions/Réponses pour partager vos connaissances, vos opinions et vos expériences. Cliquez ici.