Question sur l'utilisation de la balise #ARRAY

Bonjour, j'espère être dorénavant au bon endroit pour poser une question sur l'utilisation de spip :slight_smile:

J'ai découvert la balise #ARRAY il n'y a pas longtemps et elle me serait très utile pour stocker un nombre important de choix.

J'ai donc affecté des tableaux à des variables par #SET{"choix1", #ARRAY{"key1","val1", ... } } #SET{"choix2", #ARRAY{"key1","val1", ... } } ....

Cependant je ne trouve pas la syntaxe pour récupérer un indice particulier par la suite.

Imaginons que je veuille récupérer la valeur "key1" de la variable "choix2" contenu elle même dans une variable de #ENV, quelle serait la syntaxe ?

#GET{#ENV{"mavaleur}}{"key1"} ?
( avec #ENV{"mavaleur"} qui contient "choix2" )

Comment je fais pour récupérer l'indice voulu du tableau ainsi sélectionné ?

Je vous remercie d'avance pour votre réponse.

Yan

Domenjoud Yannick a écrit :

Bonjour, j'espère être dorénavant au bon endroit pour poser une question sur l'utilisation de spip :slight_smile:

J'ai découvert la balise #ARRAY il n'y a pas longtemps et elle me serait très utile pour stocker un nombre important de choix.

J'ai donc affecté des tableaux à des variables par #SET{"choix1", #ARRAY{"key1","val1", ... } } #SET{"choix2", #ARRAY{"key1","val1", ... } } ....

Cependant je ne trouve pas la syntaxe pour récupérer un indice particulier par la suite.

Imaginons que je veuille récupérer la valeur "key1" de la variable "choix2" contenu elle même dans une variable de #ENV, quelle serait la syntaxe ?

#GET{#ENV{"mavaleur}}{"key1"} ?
( avec #ENV{"mavaleur"} qui contient "choix2" )

Comment je fais pour récupérer l'indice voulu du tableau ainsi sélectionné ?

Je vous remercie d'avance pour votre réponse.

Yan

Bonjour, je crois que le filtre c'est table_valeur

[(#GET{"choix2"}|table_valeur{"key1"})]
à tester ...

dans inc/filtres.php on trouve:

// filtre table_valeur
// permet de recuperer la valeur d'un tableau pour une cle donnee
// prend en entree un tableau serialise ou non (ce qui permet d'enchainer le filtre)
// http://doc.spip.org/@table_valeur
function table_valeur($table,$cle,$defaut=''){
  $table= is_string($table)?unserialize($table):$table;
  $table= is_array($table)?$table:array();
  return isset($table[$cle])?$table[$cle]:$defaut;
}

à+
RB

Salut,

Pour
#SET{test,#ARRAY{1,'val1',2,'val2'}}

on peut le récupérer un élément avec
[(#GET{test}|table_valeur{1})]

doc : http://doc.spip.org/@table_valeur
(encore un oeuf de pâque à mettre sur spip.blog :slight_smile:

.Gilles
----
On Jan 6, 2008 4:40 PM, Domenjoud Yannick <domen@6tech.net> wrote:

Bonjour, j'espère être dorénavant au bon endroit pour poser une question sur
l'utilisation de spip :slight_smile:

J'ai découvert la balise #ARRAY il n'y a pas longtemps et elle me serait
très utile pour stocker un nombre important de choix.

J'ai donc affecté des tableaux à des variables par #SET{"choix1",
#ARRAY{"key1","val1", ... } } #SET{"choix2", #ARRAY{"key1","val1", ... }
} ....

Cependant je ne trouve pas la syntaxe pour récupérer un indice
particulier par la suite.

Imaginons que je veuille récupérer la valeur "key1" de la variable
"choix2" contenu elle même dans une variable de #ENV, quelle serait la
syntaxe ?

#GET{#ENV{"mavaleur}}{"key1"} ?
( avec #ENV{"mavaleur"} qui contient "choix2" )

Comment je fais pour récupérer l'indice voulu du tableau ainsi sélectionné ?

Je vous remercie d'avance pour votre réponse.

Yan

_______________________________________________
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 : FAQ webmestre - SPIP

rburton a écrit :

Domenjoud Yannick a écrit :
  

Bonjour, j'espère être dorénavant au bon endroit pour poser une question sur l'utilisation de spip :slight_smile:

J'ai découvert la balise #ARRAY il n'y a pas longtemps et elle me serait très utile pour stocker un nombre important de choix.

J'ai donc affecté des tableaux à des variables par #SET{"choix1", #ARRAY{"key1","val1", ... } } #SET{"choix2", #ARRAY{"key1","val1", ... } } ....

Cependant je ne trouve pas la syntaxe pour récupérer un indice particulier par la suite.

Imaginons que je veuille récupérer la valeur "key1" de la variable "choix2" contenu elle même dans une variable de #ENV, quelle serait la syntaxe ?

#GET{#ENV{"mavaleur}}{"key1"} ?
( avec #ENV{"mavaleur"} qui contient "choix2" )

Comment je fais pour récupérer l'indice voulu du tableau ainsi sélectionné ?

Je vous remercie d'avance pour votre réponse.

Yan

Bonjour, je crois que le filtre c'est table_valeur

[(#GET{"choix2"}|table_valeur{"key1"})]
à tester ...

dans inc/filtres.php on trouve:

// filtre table_valeur
// permet de recuperer la valeur d'un tableau pour une cle donnee
// prend en entree un tableau serialise ou non (ce qui permet d'enchainer le filtre)
// http://doc.spip.org/@table_valeur
function table_valeur($table,$cle,$defaut=''){
  $table= is_string($table)?unserialize($table):$table;
  $table= is_array($table)?$table:array();
  return isset($table[$cle])?$table[$cle]:$defaut;
}

à+
RB

_______________________________________________
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 : FAQ webmestre - SPIP

Oui c'est en effet ce filtre que je cherchais, je vais adopter un peu plus le réflexe de recherche dans le code que la recherche sur google :slight_smile:

Il faudrait rajouter cela dans la liste des filtres sur le site !

Merci

Yan