私の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の値を表示 ですが、attrib
sを使用しているようです。私を混乱させるのは、XMLにattribs
が表示されないことです。これは特別なJoomlaですか?機能または私は初心者ですか?
私が読んだ他の人に役立つかもしれないもの: サブフォームから値を取得する方法同じモジュールからカスタムフィールドでJoomlaサブフォームフィールドの値を使用からデータを保存する方法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
}