Das geht. Was auch immer Du im DCA im Bereich fields schreiben kannst, geht auch hier (und mehr). Du kannst das verschieden ausgewachsen aufziehen. Eine Möglichkeit ist einfach ein Seitenbaum-Feld mit Mehrfachauswahl. Config-Datei:
PHP-Code:
<?php
return array(
'label' => array('Linksammlung', ''),
'types' => array('content'),
'contentCategory' => 'links',
'standardFields' => array('headline'),
'fields' => array(
'pages' => array(
'label' => array('Seiten','Auswahl der Seiten'),
'inputType' => 'pageTree',
'eval' => array(
'fieldType' => 'checkbox',
'multiple' => true,
'mandatory' => true
)
)
)
);
Im Einzelnen:
PHP-Code:
'types' => array('content'),
Dies ist ein Inhaltselement, aber kein Frontend-Modul. Wenn es auch als Modul verfügbar sein soll, ergänzt Du 'module'.
PHP-Code:
'contentCategory' => 'links'
Das Inhaltselement im Bereich "Link-Elemente" anzeigen
PHP-Code:
'standardFields' => array('headline')
Feld "Überschrift" von tl_content benutzen
PHP-Code:
'inputType' => 'pageTree'
Seitenbaum
PHP-Code:
'fieldType' => 'checkbox',
'multiple' => true,
Checkbox, Mehrfachauswahl. Muss beides gesetzt sein, sonst wird nur eine Auswahl übernommen.
Im Template bekommst Du dann mit ein Array von Page-IDs.
Diese Lösung ist im Backend sehr übersichtlich, hat aber den Nachteil, dass man keine individuellen Linktexte vergeben kann. Wenn Du das möchtest, brauchst du mehrere Eingabefelder pro Seite: einmal Seitenauswahl, einmal Linktext. Dabei hilft Dir der Custom-Elements-eigene inputType "list": https://rocksolidthemes.com/de/conta...n#feldtyp-list
In so einem Feld kannst Du einen weiteren Block aus Feldern definieren, der wiederholt werden kann. Beispiel-Config:
PHP-Code:
<?php
return array(
'label' => array('Linksammlung', ''),
'types' => array('content'),
'contentCategory' => 'links',
'standardFields' => array('headline'),
'fields' => array(
'pages' => array(
'label' => array('Seiten','Auswahl der Seiten'),
'elementLabel' => '%s. Seite',
'inputType' => 'list',
'minItems' => 1,
'fields' => array(
'page' => array(
'label' => array('Seite', ''),
'inputType' => 'pageTree',
'eval' => array('fieldType' => 'radio')
),
'linktext' => array(
'label' => array('Linktext', ''),
'inputType' => 'text'
),
)
)
)
);
Hier haben wir pro Element
PHP-Code:
'eval' => array('fieldType' => 'radio')
weil die Mehrfachauswahl direkt im Seitenbaum jetzt durch die Kette von Elementen ersetzt wurde.
Außerdem neu:
PHP-Code:
'elementLabel' => '%s. Seite'
Damit kannst Du den einzelnen Blöcken innerhalb des Listenfeldes ein Label geben. %s wird durch eine laufende Nummer ersetzt. Muss man nicht verwenden, aber ich finds schick.
Allgemeine Infos dazu, wo bei Custom Elements was hinkommt (besonders das Prinzip "eine Config-Datei + eine Template-Datei pro Element"), findest Du hier in der Doku: https://rocksolidthemes.com/de/conta...igene-elemente
Lesezeichen