Quelques questions sur le plugin Tables

Bonjour,
ton champ secteur doit avoir un champ rattaché du type ‹ texte_1 › (défini dans la table forms_champs de ta base).
situ veux que les données du form 2, tu fais d’abord une boucle sur la table qui relie données à formulaire, soit ‹ forms_donnees ›:

<BOUCLE_donnees_cat(FORMS_DONNEES){id_form=2}>

puis a partir de l’id donnée que tu as récupérer de cette boucle, tu en fait une autre à l’intérieur de la première sur ‹ forms_donnees_champs › qui contient lles valeurs que tu as saisies pour chaque champs de tes formulaires. donc dans ton cas un truc comme:

<BOUCLE_secteur(FORMS_DONNEES_CHAMPS){id_donnee}{champ=texte_1}{valeur=#ID_RUBRIQUE}>

</BOUCLE_secteur>

</BOUCLE_donnees_cat>

le #VALEUR contient la valeur associé au champs ‹ secteur ›. Tu récupères donc tous les id de données correspondant à ton secteur.
si après tu veux récupérer par exemple la valeur d’un autre champs, tu fais encore une boucle à l’intérieur de cette dernière en spécifiant cette fois {champ=X} (avec X la valeur ligne_1 ou autre selon ton champs), et pas de critère pour la valeur

Muriel

Bon, j’y arrive pas …
Dans ma table j’ai rajouté un champ « secteur » (champ de texte libre). Je voudrais maintenant pouvoir rajouter un filtre sur ce champ dans ma boucle FORMS_DONNEES, mais je ne trouve pas comment faire. J’aurais besoin de quelque chose dans ce genre :

<BOUCLE_fondsEcran(FORMS_DONNEES){id_form=2}{secteur=#ID_RUBRIQUE}>

Comment je dois faire ?

Merci d’avance :wink:

Le 04/09/07, Olivier THIERRY <olivier.thierry@gmail.com> a écrit :Tant pis. Je vais me débrouiller autrement, par exemple avec une liste de valeurs prédéfinies (il me semble avoir vu un truc comme ça dans la liste des types de champ possibles). Merci pour ton aide :wink:

Le 04/09/07, ganastor@netcourrier.com < ganastor@netcourrier.com> a écrit :

J’ai essayé le type de champ « jointure avec une autre table », mais d’après ce que j’ai >compris, ce doit être une table créée avec le plugin tables alors que moi je voudrais >faire une jointure avec une table Spip (spip_rubrique en l’occurrence). C’est possible ?
Il ne me semble pas que ce soit possible avec le plugin.

Je m’y remets après quelques jours … J’ai compris le principe, mais il y a encore un problème que je n’arrive pas à résoudre. Pour présenter mes fonds d’écran sur 3 colonnes, j’utilise la balise #COMPTEUR_BOUCLE et le filtre alterner. Le problème c’est que #COMPTEUR_BOUCLE vaut toujours 1 (et c’est logique puisque le filtre de la boucle porte sur le couple id_donnee / champ qui est unique). Je vois pas trop comment faire pour m’en sortir … Si tu as une idée, je suis preneur :wink:

Voici mon code :

[(#COMPTEUR_BOUCLE|alterner{'','',''})] [(#COMPTEUR_BOUCLE|alterner{'','',''})] [(#TOTAL_BOUCLE|alterner{'','', ''})]

[(#VALEUR|supprimer_numero)]

Sinon je sens que je vais écrire un plugin pour alimenter directement une table fond_ecran, ce qui me permettrait d’utiliser une boucle qui attaque directement cette table. Mais j’aimerais éviter si possible :frowning:

Le 06/09/07, ganastor@netcourrier.com <ganastor@netcourrier.com > a écrit :

Bonjour,
ton champ secteur doit avoir un champ rattaché du type ‹ texte_1 › (défini dans la table forms_champs de ta base).
situ veux que les données du form 2, tu fais d’abord une boucle sur la table qui relie données à formulaire, soit ‹ forms_donnees ›:

<BOUCLE_donnees_cat(FORMS_DONNEES){id_form=2}>

puis a partir de l’id donnée que tu as récupérer de cette boucle, tu en fait une autre à l’intérieur de la première sur ‹ forms_donnees_champs › qui contient lles valeurs que tu as saisies pour chaque champs de tes formulaires. donc dans ton cas un truc comme:

<BOUCLE_secteur(FORMS_DONNEES_CHAMPS){id_donnee}{champ=texte_1}{valeur=#ID_RUBRIQUE}>

</BOUCLE_secteur>

</BOUCLE_donnees_cat>

le #VALEUR contient la valeur associé au champs ‹ secteur ›. Tu récupères donc tous les id de données correspondant à ton secteur.
si après tu veux récupérer par exemple la valeur d’un autre champs, tu fais encore une boucle à l’intérieur de cette dernière en spécifiant cette fois {champ=X} (avec X la valeur ligne_1 ou autre selon ton champs), et pas de critère pour la valeur

Muriel

Bon, j’y arrive pas …
Dans ma table j’ai rajouté un champ « secteur » (champ de texte libre). Je voudrais maintenant pouvoir rajouter un filtre sur ce champ dans ma boucle FORMS_DONNEES, mais je ne trouve pas comment faire. J’aurais besoin de quelque chose dans ce genre :

<BOUCLE_fondsEcran(FORMS_DONNEES){id_form=2}{secteur=#ID_RUBRIQUE}>

Comment je dois faire ?

Merci d’avance :wink:

Le 04/09/07, Olivier THIERRY <olivier.thierry@gmail.com> a écrit :Tant pis. Je vais me débrouiller autrement, par exemple avec une liste de valeurs prédéfinies (il me semble avoir vu un truc comme ça dans la liste des types de champ possibles). Merci pour ton aide :wink:

Le 04/09/07, ganastor@netcourrier.com < ganastor@netcourrier.com> a écrit :

J’ai essayé le type de champ « jointure avec une autre table », mais d’après ce que j’ai >compris, ce doit être une table créée avec le plugin tables alors que moi je voudrais >faire une jointure avec une table Spip (spip_rubrique en l’occurrence). C’est possible ?
Il ne me semble pas que ce soit possible avec le plugin.

Olivier THIERRY <olivier.thierry@gmail.com> wrote:

Je m'y remets après quelques jours ... J'ai compris le principe, mais il y a
encore un problème que je n'arrive pas à résoudre. Pour présenter mes fonds
d'écran sur 3 colonnes, j'utilise la balise #COMPTEUR_BOUCLE et le filtre
alterner. Le problème c'est que #COMPTEUR_BOUCLE vaut toujours 1 (et c'est
logique puisque le filtre de la boucle porte sur le couple id_donnee / champ
qui est unique). Je vois pas trop comment faire pour m'en sortir ... Si tu
as une idée, je suis preneur :wink:

Voici mon code :

                <table id="listeFondsEcran">
                <BOUCLE_formulaire(FORMS_DONNEES){id_form=2}>

<BOUCLE_fondsEcran(FORMS_DONNEES_CHAMPS){id_donnee}{champ=ligne_2}
{valeur=#ID_RUBRIQUE}>
                    [(#COMPTEUR_BOUCLE|alterner{'<tr>','',''})]
                    .......

Il faut que #COMPTEUR_BOUCLE face référence à ta boucle précédente
_formulaire. Il faut donc utiliser les références non ambigues aux
balises spip. Donc remplacer #COMPTEUR_BOUCLE par
#_formulaire:COMPTEUR_BOUCLE

voir la doc <http://www.spip.net/fr_article899.html&gt;

ici cela donnerait :

<BOUCLE_formulaire(FORMS_DONNEES){id_form=2}>
<BOUCLE_fondsEcran(FORMS_DONNEES_CHAMPS){id_donnee}{champ=ligne_2}{valeu
r=#ID_RUBRIQUE}>
        [(#_formulaire:COMPTEUR_BOUCLE|alterner{'<tr>','',''})]
        <td width="33%">
        ....

PS :
Il est de bon usage sur les newsgroup
- de poster en texte
- de réponse en dessous
- de virer les citations inutiles

--
http://wojylac.free.fr
Un proverbe chinois dit que lorsqu'on a rien à dire
on cite généralement un proverbe chinois.

Le 15/09/07, Dominique<dwojylac@free.fr> a écrit :

ici cela donnerait :

<BOUCLE_formulaire(FORMS_DONNEES){id_form=2}>
<BOUCLE_fondsEcran(FORMS_DONNEES_CHAMPS){id_donnee}{champ=ligne_2}{valeu
r=#ID_RUBRIQUE}>
        [(#_formulaire:COMPTEUR_BOUCLE|alterner{'<tr>','',''})]
        <td width="33%">
        ....

Je crains que ça ne fonctionne pas comme je souhaite ...
COMPTEUR_BOUCLE compte les données saisie avec le formulaire 2. Mais
moi j'ai besoin de compter ceux qui sont à la fois avec id_form=2 et
qui ont le champ ligne_2 avec la valeur définie par #ID_RUBRIQUE. Ce
qu'il faudrait que j'arrive à faire, c'est d'avoir un compteur que
j'incrémente moi-même à chaque tour dans la boucle fondsEcran.

Une solution que je vois, c'est de dupliquer le formulaire de création
pour chaque rubrique, comme ça j'évite le besoin de filtrer sur la
valeur du champ ligne_2. Mais ça me plaît moyen comme solution.

Merci quand même pour le tuyau sur les références non ambigües, ça me
servira sûrement à l'avenir :wink: Et merci pour le rappel sur les règles
de bon usage des newsgroups, je n'avais même pas vu que j'étais en
mode HTML.