MetaPalettes
Aus Contao Community Documentation
Mit der Erweiterung MetaPalettes lassen sich die DCA Paletten in einem Array, statt einem String definieren. Dadurch wird es einfacher die Paletten später zu verändern.
Erweiterungs-Übersicht | |
---|---|
Name des Entwicklers | Tristan Lins |
Version der Erweiterung | 1.0.0 |
Kompatibilität mit Contao Version | 2.9+ (potentiell kompatibel mit 2.8.3+, weil da der loadDataContainer Hook hinzugefügt wurde) |
Link zum Extension Repository | http://www.contao.org/erweiterungsliste/view/metapalettes.de.html |
MetaPalettes generiert aus einem Mehrdimensionalen-Array das im DCA festgelegt wird die Haupt- und Unterpaletten.
Inhaltsverzeichnis
Anwendungsbeispiel
Beispiel für eine MetaPalette aus der Erweiterung htaccess:
/** * DCA tl_htaccess */ $GLOBALS['TL_DCA']['tl_htaccess'] = array ( ... // meta pallettes 'metapalettes' => array ( 'default' => array ( 'htaccess_settings' => array(':hide', 'htaccess_load_settings'), 'htaccess_base' => array('htaccess_template'), 'htaccess_etag' => array('htaccess_etag_disable'), 'htaccess_mime' => array('htaccess_mime_types'), 'htaccess_deflate' => array('htaccess_deflate_files'), 'htaccess_headers' => array(), 'htaccess_expires' => array('htaccess_expires_default', 'htaccess_expires'), 'htaccess_custom' => array('htaccess_custom'), 'htaccess_rewrite' => array('htaccess_rewrite_rules', 'htaccess_rewrite_prepend_www', 'htaccess_rewrite_remove_www', 'htaccess_rewrite_gzip', 'htaccess_rewrite_suffix'), 'htaccess_h5bp' => array('htaccess_h5bp_ie_x_ua_compatible', 'htaccess_h5bp_cross_domain_ajax', 'htaccess_h5bp_concatenation_include', 'htaccess_h5bp_ie_flicker_fix') ) ), ... );
Anstelle einer palette
wird ein Feld metapalette
definiert. Die Schlüssel für das Array definieren wie gewohnt die Palette, jedoch werden die einzelnen Abschnitte mit den Feldern nicht als Zeichenkette, sondern als Array definiert. Der Schlüssel aus dem Meta Array beschreibt den Abschnitt, darunter kommt wiederum als Array die Felder.
Paletten definieren
Am besten zeigt sich der Zusammenhang an einem kleinen Beispiel:
$GLOBALS['TL_DCA']['tl_example'] = array ( ... 'metapalettes' => array ( 'default' => array ( 'chapter_one' => array('field_one', 'field_two'), 'chapter_two' => array(':hide', 'field_three') ) ) ... );
Daraus wird:
$GLOBALS['TL_DCA']['tl_example'] = array ( ... 'palettes' => array ( 'default' => '{chapter_one_legend},field_one,field_two;{chapter_two_legend:hide},field_three' ) ... );
Der Array Key definieren jeweils die Legende für den Abschnitt, das _legend wird dabei automatisch hinzugefügt.
:hide und andere Modifikatoren
Eine Palette kann versteckt angezeigt werden, wie oben chapter_two: {chapter_two_legend:hide}
.
Dazu muss einfach das Schlüsselwort :hide
in das Felder-Array hinzugefügt werden.
MetaPalettes betrachtet alle mit : beginnenden Felder als Modifikatoren, diese werden aus der Feldliste extrahiert.
Zur Zeit wird aber nur das Schlüsselwort :hide
unterstützt.
Subpaletten definieren
Auch Subpaletten lassen sich definieren:
$GLOBALS['TL_DCA']['tl_example'] = array ( ... 'metasubpalettes' => array ( 'field_three' => array('field_four') ) ... );
Daraus wird:
$GLOBALS['TL_DCA']['tl_example'] = array ( ... 'palettes' => array ( '__selector__' => array('field_three'), ... ), 'subpalettes' => array ( 'field_three' => 'field_four' ) ... );
Das __selector__
Array wird automatisch gefüllt, es ist also nicht mehr notwendig dieses Array von Hand zu befüllen.