it-swarm.com.de

Wie zeige ich die Werte aus einem Unterformular an?

Ich habe ein Unterformular in meinem XML-Code, das im Back-End problemlos funktioniert, bin mir jedoch nicht sicher, wie die Daten am besten aus dem Unterformular abgerufen und angezeigt werden können.

Hier ist ein Teil meiner ursprünglichen XML

        <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"/>

Hier ist mein Unterformular

<?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>

So übertreibe ich meinen $params

<?php echo "<pre>" . print_r($params, true) . "</pre>"; ?>

Und hier kommt was

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] => .
)

Ich weiß, dass ich eine foreach-Schleife brauche, um darauf zuzugreifen, aber ich weiß auch, dass ich $ params nicht direkt verwenden kann.

Ich habe mir andere Fragen wie diese angesehen: Werte von JFormFieldRepeatable anzeigen aber es scheint, dass sie attribs verwenden. Das, was mich verwirrt, ist, dass ich attribs im XML nicht sehe. Ist das ein besonderer Joomla! Funktion oder bin ich ein Noob?

Andere Dinge, die ich gelesen habe und die jemandem helfen könnten: Wie man Werte aus dem Unterformular erhältVerwende Werte aus dem Joomla-Unterformular-Feld in benutzerdefinierten Feldern aus demselben ModulWie man Daten aus dem Unterformular speichert) Unterformular Feldtyp in Joomla 3.7 benutzerdefinierten Feld

2
Eoin
$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
}
1
Michael