web-dev-qa-db-fra.com

Obtenir la valeur du champ répétable à partir du manifeste XML Joomla

répétable - Comment obtenir des valeurs de ce type de champ?

Je code un module libre avec un champ répétable.

<field name="star_slides" type="Repeatable" icon="list" description="" label="Edit Your Slides" default="{'main_image':[''],'left_side':[''],'right_side':['']}">

Pour un paramètre de module normal, je peux obtenir une valeur comme celle-ci

$test         = $params->get('test');

Si je fais la même chose pour le champ répétable

$test         = $params->get('star_slides');

Je reçois toutes les valeurs du champ principal - Ressemble à une sortie de tableau.

Comment faire cela pour un champ de formulaire répétable et obtenir la valeur de CHAQUE répétition du champ?

Par exemple, dans le cas ci-dessus, mon objectif est d’obtenir la valeur du champ "image principale" pour chaque répétition. Je pense utiliser "pour chaque" mais je ne sais pas comment passer à travers et extraire les valeurs de chaque ligne, chaque champ - un par un.

7
Star

Puisque vous recevez des données de votre appel et que c'est un tableau, vous pouvez faire un simple (Travailler à partir de l'idée que vous travaillez sur un serveur/système de développement)

echo '<pre>';
print_r($test);
echo '</pre>';

Cela vous montrera quelles données vous sortez et vous pourrez ensuite vérifier si elles contiennent les données nécessaires (ce qui devrait être le cas.)

Vous pouvez ensuite utiliser une simple boucle foreach pour obtenir ce que vous voulez

foreach($test as $val){
   //Store in another array or do what ever you want with the values
}

(Et si vous voulez aussi le nom du champ répété)

foreach($test as $key => $val){
       //Store in another array or do what ever you want with the values
}

Ou alors, vous devriez être capable de faire un simple $ test ['champ'] comme une valeur de tableau normale. N'oubliez pas qu'il vous faudra peut-être creuser un peu plus dans le tableau, soit en effectuant une première opération supplémentaire, soit en prenant votre premier départ pour chaque unité secondaire, si nécessaire.

2
Epodax

Si

$test = $params->get('star_slides');

et

print_r($test);

obtenir un tableau similaire

Array ( [image] => Array ( [0] => images/blog/blog_01.jpg [1] => images/blog/blog_02.jpg [2] => images/blog/blog_03.jpg ) [image_alt] => Array ( [0] => Web Designer [1] => Graphic Designer [2] => Painting Outdoors ) )

utilisation

foreach ($test['image'] as $k => $v) {
  echo $v; // image
  echo $test['image_alt'][$k]; // etc.
}

Luk

0
Leoalv