J'ai un sous-formulaire dans mon XML, qui fonctionne très bien dans le back-end, mais je ne suis pas sûr du meilleur moyen d'extraire les données du sous-formulaire et de les afficher.
Voici une partie de mon XML original
<field name= "repeatable_fields_map"
description= "MOD_ACCREDITATIONS_REPEATABLE_FIELDS_MAP_DESC"
type= "subform"
label= "MOD_ACCREDITATIONS_REPEATABLE_FIELDS_MAP_LABEL"
min= "1"
max= "1000"
required= "true"
formsource= "/modules/mod_accreditations/xml/repeatablefieldsmap.xml"
multiple= "true"
buttons= "add,remove"
layout="joomla.form.field.subform.repeatable"
groupByFieldset="false"/>
Voici mon sous-formulaire
<?xml version="1.0" encoding="UTF-8"?>
<form>
<field name="accreditationImage"
type="media"
label="MOD_ACCREDITATIONS_REPEATABLE_FIELDS_MAP_ACCREDITATION_IMAGE_LABEL"
description="MOD_ACCREDITATIONS_REPEATABLE_FIELDS_MAP_ACCREDITATION_IMAGE_DESC"/>
<field name="accreditationText"
type="text"
label="MOD_ACCREDITATIONS_REPEATABLE_FIELDS_MAP_ACCREDITATION_TEXT_LABEL"
description="MOD_ACCREDITATIONS_REPEATABLE_FIELDS_MAP_ACCREDITATION_TEXTE_DESC"/>
<field name="link"
type="url"
label="MOD_ACCREDITATIONS_REPEATABLE_FIELDS_MAP_LINK_LABEL"
description="MOD_ACCREDITATIONS_REPEATABLE_FIELDS_MAP_LINK_DESC"/>
</form>
Voici comment je surpasse mon $params
<?php echo "<pre>" . print_r($params, true) . "</pre>"; ?>
Et voici ce qui arrive
Joomla\Registry\Registry Object
(
[data:protected] => stdClass Object
(
[repeatable_fields_map] => stdClass Object
(
[repeatable_fields_map0] => stdClass Object
(
[accreditationImage] => images/accreditations/some-logo.jpg
[accreditationText] => SomeText
[link] => http://www.someurl.com
)
)
[moduleclass_sfx] =>
[module_tag] => div
[bootstrap_size] => 0
[header_tag] => h3
[header_class] =>
[style] => 0
)
[initialized:protected] => 1
[separator] => .
)
Je sais que j'ai besoin d'une boucle foreach pour y accéder, mais je sais aussi que je ne peux pas utiliser directement $ params.
J'ai examiné d'autres questions telles que celle-ci: Affiche les valeurs de JFormFieldRepeatable mais il semble qu'ils utilisent attrib
s. Ce qui me déroute, c'est que je ne vois pas attribs
dans le XML. Est-ce une spéciale Joomla! fonctionne ou suis-je un noob?
Autres choses que j'ai lues qui pourraient aider quelqu'un: Comment obtenir de la valeur d'un sous-formulairetilisez les valeurs de champ Joomla Subform dans un champ personnalisé du même moduleComment enregistrer des données depuis type de champ de sous-formulaire dans le champ personnalisé joomla 3.7
$repeatable_fields_map = (array)$this->params->get('repeatable_fields_map');
foreach($repeatable_fields_map as $item) {
$accreditationImage = $item->accreditationImage;
$accreditationText = $item->accreditationText;
$link = $item->link;
// do stuff with these variables
}