web-dev-qa-db-ja.com

サブフォームの値を表示する方法

私のXMLにはサブフォームがあり、これはバックエンドで正常に機能しますが、サブフォームからデータを取り出して表示する最善の方法がわかりません。

これが私の元の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"/>

これが私のサブフォームです

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

これが私の$params

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

そして、これが到着します

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

それらにアクセスするにはforeachループが必要であることはわかっていますが、$ paramsを直接使用できないこともわかっています。

私はこのような他の質問を見てきました: JFormFieldRepeatableの値を表示 ですが、attribsを使用しているようです。私を混乱させるのは、XMLにattribsが表示されないことです。これは特別なJoomlaですか?機能または私は初心者ですか?

私が読んだ他の人に役立つかもしれないもの: サブフォームから値を取得する方法同じモジュールからカスタムフィールドでJoomlaサブフォームフィールドの値を使用からデータを保存する方法joomla 3.7カスタムフィールドのサブフォームフィールドタイプ

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