[Typo3-german] HOWTO .js JavaScript-Dateien als Template-Resources erlauben
Stefan Geith
typo3dev at geithware.de
Wed Aug 31 11:17:18 CEST 2005
Hallo Johannes,
trag das doch mal auf bugs.typo3.org als Patch ein ...
-
Stefan
Johannes Vockeroth schrieb:
> Boah, was für eine Geburt, aber ich habe es doch irgendwie herausgefunden:
>
> Ich fand es immer blöd, dass sich JavaScript-Dateien nicht so einfach
> nutzen lassen wie CSS-Stylesheets. Für das Einbinden ins TypoScript
> vermisse ich z.B. neben page.includeCSS auch page.includeJS. Als
> Workaround funktioniert es ja recht einfach, diese mit page.headerData
> direkt als HTML einzubinden. z.B:
>
> page.headerData.10 = TEXT
> page.headerData.10.value = <script language="JavaScript"
> type="text/javascript" src="fileadmin/template/meinJScript.js"></script>
>
> Zweites Problem. Im Template-Modul lassen sich prima einfach CSS und
> andere Dateien zu den Resourcen hochladen oder neu erstellen. So habe
> ich all meine Dateien für das Template fein säuberlich direkt beim
> Template (bzw. im uploads/tf-Ordner). Leider lassen sich JS-Dateien
> weder hochladen, noch erstellen oder bearbeiten. Wie im Beispiel muss
> man meinJScript.js dann irgendwo im fileadmin ablegen (und beim Export
> der Seite vergessen bzw. nicht wiederfinden)
>
> Deshalb habe ich nach einer Möglichkeit gesucht, die Liste der erlaubten
> Erweiterungen zu erweitern - gar nicht so einfach. Aber Schlussendlich
> kann ich jetzt .JS-Dateien hochladen, erstellen und bearbeiten.
>
> Die Möglichkeit die Dateien hochzuladen lässt sich am einfachsten und
> saubersten schaffen:
>
> Im Konfigurations-Modul findet man im Typo3-Configuration-Array TCA
> (tables.php) den Eintrag
> $TCA['sys_template']['columns']['resources']['config']['allowed'] =
> 'gif,jpg,jpeg,tif,bmp,pcx,tga,png,pdf,ai,html,htm,ttf,pfb,pfm,txt,css,tmpl,inc,ico';
>
> der soll um den Wert "js" erweitert werden. Dafür bearbeitet man die
> Datei typo3conf/extTables.php und fügt folgende Zeile ein:
> $GLOBALS['TCA']['sys_template']['columns']['resources']['config']['allowed']
> =
> 'gif,jpg,jpeg,tif,bmp,pcx,tga,png,pdf,ai,html,htm,ttf,pfb,pfm,txt,css,tmpl,inc,ico,js';
>
> Falls extTables.php noch komplett auskommentiert ist, muss sie, wie
> darin beschrieben, noch von der typo3conf/localconf.php eingebunden
> werden, indem die Zeile
> $typo_db_extTableDef_script = 'extTables.php';
> angehängt wird.
>
> Damit ist es nun möglich, auch JS-Dateien im Template-Modul hochzuladen.
> Man kann sie aber weder bearbeiten noch erstellen. Das liegt daran, weil
> "irgendjemand" quick'n'dirty die Variable
> $textExtensions = "html,htm,txt,css,tmpl,inc"; direkt im Quellcode
> definiert hat.
>
> Also sollte das gleich verbessert werden und in der TCA ein neuer
> Eintrag für erlaubte Text-Erweiterungen erstellt werden, also in die
> typo3conf/extTables.php insgesamt:
> $GLOBALS['TCA']['sys_template']['columns']['resources']['config']['allowed']
> =
> 'gif,jpg,jpeg,tif,bmp,pcx,tga,png,pdf,ai,html,htm,ttf,pfb,pfm,txt,css,tmpl,inc,ico,js';
> $GLOBALS['TCA']['sys_template']['columns']['resources']['config']['textExtensions']
> = 'html,htm,txt,css,tmpl,inc,js';
>
> Letztlich muss noch die Wurzel allen Übels bearbeitet werden, die Datei
> typo3/ext/tstemplate/ts/index.php. Dort findet sich auch die böse Zeile
> $textExtensions = "html,htm,txt,css,tmpl,inc";, die aber erstmal so
> stehen bleiben kann, denn man überschreibt sie einfach in der darauf
> folgenden init()-Funktion, irgendwo hinter parent::init(); (Zeile 70) mit
>
> $this->textExtensions =
> $TCA["sys_template"]["columns"]["resources"]["config"]["textExtensions"];
>
> Fertig. Jetzt können JS-Dateien einfach mit im Template erstellt und
> bearbeitet werden. Und falls mal irgendwann eine Erweiterung dazu kommt,
> braucht nur noch die TCA entsprechend geändert werden.
>
> Legt man jetzt eine Datei "meinJScript.js" an, muss diese im TypoScript
> dann mit
> page.headerData.10.value = <script language="JavaScript"
> type="text/javascript" src="uploads/tf/meinJScript.js"></script>
> eingebunden werden, sie liegt also in dem Pfad, der in der TCA als
> uploadfolder angegeben ist.
>
> Ein Joker wie bei CSS-Dateien, also etwa meinJScript*.js funktioniert so
> natürlich noch nicht. Auch die Reihenfolge von möglichen Duplikaten
> spielt noch keine Rolle. Das kommt dann hoffentlich mit page.includeJS :)
>
> Ich hoffe, das nutzt jetzt jemanden etwas. Vielleicht gibt es ja auch
> Leute die so lange danach suchen mussten wie ich. Ich freue mich dann
> aber immer, wenn ich solche Texte im Listenarchiv finde. Und wenn jetzt
> noch jemand darauf antwortet, damit der Text nicht durch den "Only
> answered or rated posts."-Filter fliegt, würde ich mich freuen.
> Natürlich auch darüber, wenn jemand das mal ausprobiert und ggf. berichtigt.
>
> Johannes
>
>
> _______________________________________________
> Typo3-german mailing list
> Typo3-german at lists.netfielders.de
> http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-german
>
More information about the TYPO3-german
mailing list