[SPIP Zone] retour sur cfg

Bonjour,

Peut on faire marcher cela jusqu'au bout ou non ?

Dans un fond tout ce qu'il y a de convenable,
<textarea name="mon_area">[(#ENV{mon_area})]</textarea>

permet d'obtenir quelque chose qui fonctionne :
#CONFIG{mon_area} affiche bien son contenu attendu :
70,150

mais la boucle :
<ul>
<BOUCLE_zonegeo(SPIP_GEO_PAYS){id_pays IN #CONFIG{mon_area}}{", "}>
<li>#ID_PAYS</li>
</BOUCLE_zonegeo>
</ul>

n'affiche que 70 et pas 70, 150
yatil un moyen de l'obtenir ?

@+
pierre

* Pierre FICHES tapuscrivait, le 21/12/2007 15:37:

Bonjour,

Peut on faire marcher cela jusqu'au bout ou non ?

Dans un fond tout ce qu'il y a de convenable,
<textarea name="mon_area">[(#ENV{mon_area})]</textarea>

permet d'obtenir quelque chose qui fonctionne :
#CONFIG{mon_area} affiche bien son contenu attendu :
70,150

mais la boucle :
<ul>
<BOUCLE_zonegeo(SPIP_GEO_PAYS){id_pays IN #CONFIG{mon_area}}{", "}>
<li>#ID_PAYS</li>
</BOUCLE_zonegeo>
</ul>

n'affiche que 70 et pas 70, 150
yatil un moyen de l'obtenir ?

@+
pierre

Tu as essayé avec IN #CONFIG**{mon_area} ?
Relis la doc du critère IN : c'est dedans.

--
RealET

Bonjour

Pour une fois que j'ai une réponse, je me rue sur mon mail :slight_smile:

<ul>
<BOUCLE_zonegeo(SPIP_GEO_PAYS){id_pays IN
#CONFIG{mon_area}|spip_explode{','}}>
<li>#ID_PAYS</li>
</BOUCLE_zonegeo>
</ul>

et dans ton fichier mes_options
/*! \brief explode() pour spip
*
  * Surcharge de la fonction php explode(), pour être utilisé par php
* Remarque : L'appel de filtre passe toujours le texte source en premier
  * (c'est le compilateur qui fait ça tout seul)=> il faut inverser
les paramètres d'explode qui elle attend le texte en second d'où
spip_explode
*
  * \param $texte balise fournit par le compilateur
  * \param $separateur pattern
  * \return tableau décomposé par $separateur
*/
function spip_explode($texte,$separateur){
    return explode($separateur,$texte);
}

J'avais eu le même pb pour doc2img, cedric m'avait dépanné à l'époque.
Il faut donner à IN un tableau or ton champ area est sauvé comme une
chaîne de caractères.
Le explode permet de faire la conversion chaîne vers tableau. Le
explode php à les arguments inversé par rapport à la logique SPIP la
fonction explode propre à SPIP.

Km

RealET a écrit :

* Pierre FICHES tapuscrivait, le 21/12/2007 15:37:
  

Bonjour,

Peut on faire marcher cela jusqu'au bout ou non ?

Dans un fond tout ce qu'il y a de convenable,
<textarea name="mon_area">[(#ENV{mon_area})]</textarea>

permet d'obtenir quelque chose qui fonctionne :
#CONFIG{mon_area} affiche bien son contenu attendu :
70,150

mais la boucle :
<ul>
<BOUCLE_zonegeo(SPIP_GEO_PAYS){id_pays IN #CONFIG{mon_area}}{", "}>
<li>#ID_PAYS</li>
</BOUCLE_zonegeo>
</ul>

n'affiche que 70 et pas 70, 150
yatil un moyen de l'obtenir ?

@+
pierre

Tu as essayé avec IN #CONFIG**{mon_area} ?
  

pas bon

Relis la doc du critère IN : c'est dedans.
  

justement, non

Le 21 déc. 07 à 16:23, cam.lafit@azerttyu.net a écrit :

Bonjour

Pour une fois que j'ai une réponse, je me rue sur mon mail :slight_smile:

<ul>
<BOUCLE_zonegeo(SPIP_GEO_PAYS){id_pays IN
#CONFIG{mon_area}|spip_explode{','}}>
<li>#ID_PAYS</li>
</BOUCLE_zonegeo>
</ul>

et dans ton fichier mes_options
/*! \brief explode() pour spip
*
  * Surcharge de la fonction php explode(), pour être utilisé par php
* Remarque : L'appel de filtre passe toujours le texte source en premier
  * (c'est le compilateur qui fait ça tout seul)=> il faut inverser
les paramètres d'explode qui elle attend le texte en second d'où
spip_explode
*
  * \param $texte balise fournit par le compilateur
  * \param $separateur pattern
  * \return tableau décomposé par $separateur
*/
function spip_explode($texte,$separateur){
    return explode($separateur,$texte);
}

J'avais eu le même pb pour doc2img, cedric m'avait dépanné à l'époque.
Il faut donner à IN un tableau or ton champ area est sauvé comme une
chaîne de caractères.
Le explode permet de faire la conversion chaîne vers tableau. Le
explode php à les arguments inversé par rapport à la logique SPIP la
fonction explode propre à SPIP.

Merci mille fois ça marche , ça ne devrais pas intégrer la doc d'ailleurs ?
j'ai utilisé le mes_fonctions plutôt que le mes_options.
Est-ce pareils où vaut il mieux utiliser mes_options ?
@+
pierre
ps : avec IN #CONFIG**{mon_area} ça ne marche pas par contre

Le 21 déc. 07 à 17:54, Drouet quentin a écrit :

C'est une super idée que tu as eu il faudrait être fou pour ne pas l'utiliser :slight_smile:

BOUCLE_zonegeo(GEO_PAYS)....> ne fonctionne pas, il faut bien le préfixe SPIP si on veut un résultat.

Mmmh es tu sur d'être à jour?

oui je suis en 193 : 10984 et j'ai mis à jour le plugin ce matin.

J'ai commité une modif sur inscription2 1.9.3 pour vérifier et ca marche ... tu es en 1.9.2?

j'ai fais la modif sur controleurs/pays.html suppression du préfixe spip mais...
J'avais depuis longtemps un bug sur l'affichage de ce champs côté public lorsque l'on affiche la fiche modifiable via :
  [(#SESSION{id_auteur}|?{' ',''})<INCLURE(inc/profil_adherent.php){id_auteur=#SESSION{id_auteur}}>]

C'est #ID_PAYS qui s'affiche à la place de #PAYS...

Ce que je ne comprend pas c'est que la modification pratiqué (suppression du préfixe SPIP_ dans la boucle ne change rien) j'en déduit qu'avec inscription2 ce n'est pas le plugin spip_géo qui est utilisé car ailleurs sur le site j'utilise une boucle qui utilise spip-géo de façon certaine et si j'enlève le préfixe la boucle ne produit pas de résultat.

Je reviens sur spip_geo : je ne peux pas modifier le téléphone avec crayon j'ai beau chercher je ne trouve pas d'où viens le bug.

Encore une chose il y a un autre script qui utilise ou devrait le utiliser spip_geo dans inscription2 c'est vues/pays.html

Par ailleurs, cette boucle :
#SET{selected,#CONFIG{port/zonegeo/zone_un,'',''}}
<BOUCLE_zonegeo-continent(SPIP_GEO_CONTINENT){par id_continent}>
<optgroup label="[(#CONTINENT)]">
<BOUCLE_zonegeo(SPIP_GEO_PAYS){id_continent}{par pays}>
<option value="#ID_PAYS"[(#ID_PAYS|in_array{#GET{selected}}|?{' selected="selected"'})]>#ID_PAYS : #PAYS</option>
</BOUCLE_zonegeo>
</optgroup>
</BOUCLE_zonegeo-continent>
donne des optgroup #CONTINENT sous la forme :
<multi>[fr]Afrique[en] ....</multi>

Je ne sais pas comment les afficher correctement. As tu prévu un dispositif particulier ?

Essaie d'applique le filtre typo ou propre ca devrait traiter les multis normalement...

Merci avec typo c'est impec....

@+
pierre