TypoScript Einstellungen in Extensions auslagern

Aus Wikizone
Wechseln zu: Navigation, Suche

Stichworte:

TypoScript für Constants und Setup

Die alte Methode

im Hauptordner der Extension:

ext_typoscript_constants.txt
ext_typoscript_setup.txt

Der Inhalt dieser Dateien wird automatisch eingebunden. Dies ist eigentlich die "alte Art" TypoScript einzubinden. Die neue Art

ext_emconf.php

In dieser Datei kann man festlegen daß sie erst am Schluss nachdem alle anderen Extensions geladen wurden ausgeführt wird. Somit hat man die Möglichkeit die Einstellungen die in den anderen Extensions gemacht wurden wieder zu überschreiben. Damit das klappt setzt man die Eigenschaft:

...
'priority' => 'bottom',
...

Die neue Methode

In neueren Extensions funktioniert das Einbinden von Statischem TypoScript etwas anders: Es gibt es im Extension Verzeichnis einen Ordner mit dem Namen

static

In diesem Ordner werden die Dateien

constants.txt
setup.txt

manchmal auch

editorcfg.txt

Abgelegt.

Wenn die TypoScripte auf diese Weise in der Extension vorliegen, stehen Sie im Haupttemplate der Website im Feld static Templates zur Verfügung und können bzw. müssen dort ausgewählt werden.

Zur Verfügung stehen Sie aber nur dann, wenn sie auch in der Datei ext_tables.php eingebunden werden. Das funktioniert mit folgender Funktion (Beispiel aus der Extension css_styled_content):

t3lib_extMgm::addStaticFile($_EXTKEY,'static/','CSS Styled Content');

Praktischerweise erledigt dies schon der Extensionmanager automatisch.

TSConfig

Hierbei gibt es keine Dateien deren Inhalt automatisch übernommen wird. Deshalb müssen wir selbst dafür sorgen: Wir erstellen zwei Dateien

tsconfig_page.txt
tsconfig_user.txt

in der Datei

ext_localconf.php

nutzen wir die Funktionen addPageTSConfig und addUserTSConfig um den benötigten Code hinzuzufügen

<?php
if (!defined ('TYPO3_MODE'))     die ('Access denied.');

// add default page TSconfig
t3lib_extMgm::addPageTSConfig('<INCLUDE_TYPOSCRIPT: source="FILE:EXT:meineExtension/tsconfig_page.txt">');
// add default user TSconfig
t3lib_extMgm::addUserTSConfig('<INCLUDE_TYPOSCRIPT: source="FILE:EXT:meineExtension/tsconfig_user.txt">');

//you need to allow explicitly the available content elements for users
$TYPO3_CONF_VARS['BE']['explicitADmode'] = 'explicitAllow';
?>