Erneut ein schönes Snippet, welches inzwischen in den meisten eigenen Extensions untergebracht ist. Die Funktion ist statisch und kann in diesem Beispiel mit Tx_ExtensionName_Utility_Helper::flexFormAutoLoader() aufgerufen werden. Dieser Aufruf kommt an das Ende eurer ext_tables.php Datei und sorgt dafür, dass eure FlexForms automatisch mit euren Plugins verknüpft werden. Sehr praktisch, wenn es viele Plugins gibt.
Habt ihr vielleicht Ideen für die Ergänzung oder weitere Ideen für ähnliche Funktionalitäten?!
<?php class Tx_ExtensionName_Utility_Helper { /** * Call this function at the end of your ext_tables.php to autoregister the flexforms * of the extension to the given plugins. */ public static function flexFormAutoLoader() { global $TCA, $_EXTKEY; $FlexFormPath = t3lib_extMgm::extPath($_EXTKEY) . 'Configuration/FlexForms/'; $extensionName = t3lib_div::underscoredToUpperCamelCase($_EXTKEY); $FlexForms = t3lib_div::getFilesInDir($FlexFormPath, 'xml'); foreach ($FlexForms as $FlexForm) { $fileKey = str_replace('.xml', '', $FlexForm); $pluginSignature = strtolower($extensionName . '_' . $fileKey); $TCA['tt_content']['types']['list']['subtypes_excludelist'][$pluginSignature] = 'layout,select_key,recursive'; $TCA['tt_content']['types']['list']['subtypes_addlist'][$pluginSignature] = 'pi_flexform'; t3lib_extMgm::addPiFlexFormValue($pluginSignature, 'FILE:EXT:' . $_EXTKEY . '/Configuration/FlexForms/' . $fileKey . '.xml'); } } } |