Closed georgkaser closed 4 months ago
MedialistField und LinklistField sind nicht kompatibel aufgrund der aktuellen Backend-Limitierungen. Empfehlung: entsprechend Repeater bauen.
Hmm... Da wird das aber schon ganz schön verschachtelt und unübersichtlich wenn ich zuerst eine Gruppe, dann einen Typ und dann noch einen Repeater einbaue. Blöd. Naja, danke.
Na, obwohl: So schlimm ist es gar nicht:
Sorry. Aber wir haben aktuell noch keine Lösung für das Problem. Evtl. muss ein eigenes Widget entwickelt werden.
Bin draufgekommen, dass das leider doch nicht so funktioniert wie ich wollte. Kann mir jemand sagen, wie tief ich den Repeater verschachteln darf? Das hier funktioniert nämlich nicht - es wird einfach nichts angezeigt. Oder sind Repeater im Collapse-Element nicht erlaubt?
Hier der Code - es geht um die letzte Repeater-Ebene:
<?php
use FriendsOfRedaxo\MForm;
// init mform
$mform = MForm::factory()
->addTabElement('Inhalt', MForm::factory()
// Repeater Wrapper "Gruppe"
->addRepeaterElement(2, MForm::factory()
->addTabElement('Gruppierte Module', MForm::factory()
// Repeater Wrapper "Element"
->addRepeaterElement('modules', MForm::factory()
->addFieldsetArea('Modul', MForm::factory()
// Auswahl des Typs
->addRadioField('typeselect', ['richtext' => 'Formatierter Text', 'image' => 'Bild', 'files' => 'Dateien' ,3 => 'Something...'], ['label' => 'Typ'], 'richtext')
->setToggleOptions(['richtext' => 'richtext', 'image' => 'image', 'files' => 'files'])
->addForm(
MForm::factory()
->addCollapseElement('',
MForm::factory()
->addTextAreaField('richtext', ['label' => 'Text-Area 1'])
, true, true, ['data-group-collapse-id' => 'richtext']
)
->addCollapseElement('',
MForm::factory()
->addTextAreaField('image', ['label' => 'Text-Area 1'])
, true, true, ['data-group-collapse-id' => 'image']
)
// WARUM FUNKTIONIERT DAS HIER NICHT??
->addCollapseElement('',
MForm::factory()
->addRepeaterElement('files', MForm::factory()
->addMediaField('file', array('label'=>'Datei'))
, true, false, ['btn_text' => 'Datei hinzufügen']
)
, true, true, ['data-group-collapse-id' => 'files']
)
// ENDE
)
)
, false, false, ['btn_text' => 'Neues Modul', 'confirm_delete_msg' => 'Modul löschen?']
)
, true, false)
->addTabElement('Einstellungen', MForm::factory()
, false, false)
, false, false, ['btn_text' => 'Neue Gruppe', 'confirm_delete_msg' => 'Gruppe löschen?']
)
, true, false)
->addTabElement('Einstellungen', MForm::factory()
->addTextField(1, ['label' => 'test rex value 1'])
, false, true)
;
echo $mform->show();
Schau mal @georgkaser So klappt es bei mir
->addCollapseElement('Toogle',
MForm::factory()
->addRepeaterElement('files', MForm::factory()
->addMediaField('file', array('label'=>'Datei'))
, true, false, ['btn_text' => 'Datei hinzufügen']
)
, true, false, ['data-group-collapse-id' => 'files']
), true
@georgkaser der Repeater unterstützt nur 2 ebenen. Deswegen funktioniert das so nicht, du setzt da eine 3. Ebene an und die funktioniert so nicht.
Description / Beschreibung
Siehe Video:
https://github.com/user-attachments/assets/ba173913-fa8c-4a5a-972d-299c4e93972d
Affected versions / Verwendete Versionen
REDAXO: 5.17.1 PHP: 8.2.21 Database: MariaDB 10.11.8 Browser: Chromium Version 126.0.6478.126 (Offizieller Build) Fedora Project (64-Bit) AddOns: mform 8.0.3
Did it whoops? / Whoops erhalten?
nope