GetTemplateGroup: Unterschied zwischen den Versionen
Aus Contao Community Documentation
K (→Tabellen Angaben) |
(→DCA Angaben) |
||
Zeile 29: | Zeile 29: | ||
==DCA Angaben== | ==DCA Angaben== | ||
+ | In der DCA, hier "tl_banner_category.php", erfolgte nun im Abschnitt "fields" dieser Teil:<br> | ||
+ | <pre> | ||
+ | 'banner_template' => array | ||
+ | ( | ||
+ | 'label' => &$GLOBALS['TL_LANG']['tl_banner_category']['banner_template'], | ||
+ | 'default' => 'mod_banner_list_all', | ||
+ | 'exclude' => true, | ||
+ | 'inputType' => 'select', | ||
+ | 'options' => $this->getTemplateGroup('mod_banner_list_'), | ||
+ | 'eval' => array('tl_class'=>'w50') | ||
+ | ), | ||
+ | </pre> | ||
+ | Hier nun zu sehen, ein Select Feld, welches als Default das Template "mod_banner_list_all" nimmt, gesucht werden Templates die beginnen mit "mod_banner_list_" und enden mit ".tpl", die Endung kann dabei hier nicht angegeben werden.<br /> | ||
+ | In dem Fall wird vom Framework zuerst im Verzeichnis "templates" vom Modul gesucht, und dann im Verzeichnis "TL_ROOT/templates". Liegen im letzterem Templates mit gleichem Namen werden diese bevorzugt. Damit wurde die Möglichkeit geschaffen, updatesichere Templates anzulegen auch für Module die keine Auswahlmöglichkeit bieten.<br /> | ||
+ | Der Name wird nach Auswahl und Speicherung in der Datenbank abgelegt und kann un vom Frontend Modul ausgelesen werden. | ||
+ | |||
==Modul Auswertung== | ==Modul Auswertung== | ||
=getTemplateGroup in Contao 2.9.x= | =getTemplateGroup in Contao 2.9.x= |
Version vom 15. Juli 2010, 10:19 Uhr
Unvollständiger Artikel: dieser Artikel ist noch nicht sauber bearbeitet.
Bitte erweitere ihn und entferne erst anschliessend diesen Hinweis. |
betrifft | |
---|---|
TYPOlight Version | ab 2.7 |
Contao Version | ab 2.9 |
Mit der Methode getTemplateGroup ist es in einem Modul möglich, im Backend die Auswahl von Templates dem Nutzer zu ermöglichen, die im Frontend dann verwendet werden sollen. Damit ist es möglich, eigene Templates zu erstellen und zu verwenden.
Bis Contao 2.8.4 wurden die Templates im Verzeichnis templates des Moduls gesucht und anschließend im Verzeichnis TL_ROOT/templates.
Ab Contao 2.9 wurde auf Grund des Theme-Managers diese Methode erweitert, damit diese nun auch im Template Verzeichnis des Themes gesucht werden.
Hier nun beide Varianten kurz erläutert. Beide funktionieren dabei in Contao 2.9, die erste nur bis Contao 2.8.4
Inhaltsverzeichnis
getTemplateGroup in Contao 2.8.x
In Contao 2.8.x (und früher) spielt es keine Rolle, an welcher Stelle man die Aufwahl für ein Template einbaut, das muss nicht beim Anlegen des Frontend Moduls sein.
Beispielsweise wird/wurde im Modul Banner unter dem Punkt Inhalte als erstes eine Kategorie angelegt, in dieser dann kam die Template Auswahl.
Das Frontend Modul wurde dann eine Kategorie zugewiesen, über diese konnte das Modul dann das gewählte Template erfahren.
Tabellen Angaben
Zum Abspeichern benötigt man natürlich ein Feld in der jeweiligen Tabelle, hier ein Auszug aus dem Banner Modul:
CREATE TABLE `tl_banner_category` ( `id` int(10) unsigned NOT NULL auto_increment, `tstamp` int(10) unsigned NOT NULL default '0', ... `banner_template` varchar(32) NOT NULL default '', ... PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Dieses Feld muss nun über die DCA Datei gesteuert werden.
DCA Angaben
In der DCA, hier "tl_banner_category.php", erfolgte nun im Abschnitt "fields" dieser Teil:
'banner_template' => array ( 'label' => &$GLOBALS['TL_LANG']['tl_banner_category']['banner_template'], 'default' => 'mod_banner_list_all', 'exclude' => true, 'inputType' => 'select', 'options' => $this->getTemplateGroup('mod_banner_list_'), 'eval' => array('tl_class'=>'w50') ),
Hier nun zu sehen, ein Select Feld, welches als Default das Template "mod_banner_list_all" nimmt, gesucht werden Templates die beginnen mit "mod_banner_list_" und enden mit ".tpl", die Endung kann dabei hier nicht angegeben werden.
In dem Fall wird vom Framework zuerst im Verzeichnis "templates" vom Modul gesucht, und dann im Verzeichnis "TL_ROOT/templates". Liegen im letzterem Templates mit gleichem Namen werden diese bevorzugt. Damit wurde die Möglichkeit geschaffen, updatesichere Templates anzulegen auch für Module die keine Auswahlmöglichkeit bieten.
Der Name wird nach Auswahl und Speicherung in der Datenbank abgelegt und kann un vom Frontend Modul ausgelesen werden.