TypoScript Einstellungen in Extensions auslagern

Aus Wikizone
Wechseln zu: Navigation, Suche

TypoScript und TSconfig Einstellungen in Extbase[Bearbeiten]

Extbase Extensions sind etwas anders organisiert. Hier hat sich einiges verändert, daher sind die untenstehenden Infos teilweise überholt.

Siehe TYPO3 - Extensions mit Extbase programmieren und von dort in Snippets

TypoScript für Constants und Setup[Bearbeiten]

Die alte Methode[Bearbeiten]

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. Sie hat aber den Vorteil das man nur hierüber Einstellungen von anderen Plugins die ebenfalls so arbeiten überschreiben kann.

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[Bearbeiten]

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[Bearbeiten]

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';
?>


Komfortable Eingabe für den Benutzer im Constants Editor[Bearbeiten]

Konstanten für Constant-Editor bereitstellen

Zusammenfassung aus: http://www.easy-office4you.de/constant-editor.html Datum des Zugriffs: 9.8.2008

Beispiele:

#cat=meinText/typo/a; type=string; label=Mein Text
meinText.meineTextEingabe = Hallo Welt!

#cat=meinText/enable/b; type=boolean; label=Mein Text2
meinText.Text2 = 1

#cat=Kategorie/Subkategorie/Buchstabe; type=Feldtyp; label=Label
Kategorie.Label = Wert

Konstanten Die Kategorie ist frei wählbar. Sinnvoll ist es natürlich, hier einen Wert einzugeben, der sich auf das entsprechende Plugin bezieht, also z.B.

cat=plugin.meinPlugin

Hinter die Kategorie kann ein / folgen und danach eine Subkategorie, z.B.

enable, dims, file, typo, color, links oder language

Danach folgt ein / und ein Buchstabe, der die darzustellende Reihenfolge im Constant-Editor bestimmt.

Feldtyp

Mögliche Feldtypen:

	int
	int+
	color
	wrap
	offset
	options
	coolean
	comment
	file
	string

weitere Beispiele

#cat=gbt3.basic/template; type=options[doc,doc2,doc3,doc4,doc_custom]; label= Wrapper ID: yui uses this id to set basic layout (with, fixed...),  Or specify a own width (widht in em = px/13 or /13.3333 for IE) 
wrapperid = doc2