Hallo,

ich benutze diese Funktion, um meine Scripts zu minifizieren. Sie macht 
das pro Skript genau einmal und speichert edas resultat in das typo3temp 
Verzeichnis.


        /**
         * Minifies a JavaScript File, stores it as temporary file and returns 
a HTML <script> tag reference to
         * it. The file will be based on a md5 hash of the original file. It 
will only be minified and written if
         * it did not exist in the temp folder.
         *
         * @param String $file
         * @param tslib_piBase $plugin - Reference to the calling plugin
         * @param bool $skipForDebug if set true, the script will return a 
reference to the original file (no min/tmp). Use this if you are 
debugging the JS file since it will not be replaced if only the content 
changes.
         * @return string <script> tag wrapped HTML ready reference to the JS 
file.
         */
function minifyJS2TempFile($file, &$ext, $skipForDebug = false) {
                if ($skipForDebug) return '<script type="text/javascript" 
src="'.htmlspecialchars($GLOBALS['TSFE']->absRefPrefix.$file).'"></script>';
                // Create filename / tags:
                $hashedName = 
'typo3temp/javascript_'.substr(md5($file),0,10).'.js';
                $output = '<script type="text/javascript" 
src="'.htmlspecialchars($GLOBALS['TSFE']->absRefPrefix.$hashedName).'"></script>';
                // Write minifies file if not exists:
                if (!...@is_file(PATH_site.$hashedName))        {
                        //read original
                        $str = file_get_contents($file);
                        //minify
                        $str = t3lib_div::minifyJavaScript($str, $error);
                        t3lib_div::writeFile(PATH_site.$hashedName,$str);
                }
                return $output;
}



Achtung, es wird anhand des Dateinamens entschieden, ob die Datei 
bereits minified wurde. Wenn man aktiv am Javascript entwickelt also den 
Debug Flag auf true setzen, dann der Prozess ausgelassen.

Wenn man die JS Dateien irgendwann überarbeiten will muss man sie leider 
von Hand in typo3temp löschen.

Gruß,
Christopher

Thomas Kieslich schrieb:
> Am Thu, 12 Feb 2009 18:22:11 +0100 schrieb Christian Wolff:
> 
>> Patric Pesch schrieb:
>>> Hi, wie nutze ich die Möglichkeit die JS-Scripte automatisch minif'en zu
>>> lassen?
>>> Ich binde alle JS Dateien per includeJS ein.
>>> page {
>>>     includeJS {
>>>             file1= fileadmin/js/...
>>>             file2= fileadmin/js/...
>>>             file3= fileadmin/js/...
>>>     }
>>> }
>>>
>>> Zusätzlich habe ich nun die Einstellung
>>> config.minifyJS = 1
>>> eingeschaltet (obwohl das ja ansich Standard ist).
>>> Doch die JS-Dateien werden nicht minified. Verstehe
>>> ich die Funktion völlig falsch oder muss ich
>>> noch irgend etwas anderes einstellen?
>>>
>>> Viele Grüße
>>> Patric
>> ich bin jetzt zwar nicht 100% sicher aber ich glaube die config.minifyJS
>>  gilt nur für die typo3 eigenen Javascripte, popup / blur etc.
>>
>> ich hab da aber mal ne extension im TER gesehen die das wohl kann  /
>> tut. hab aber noch keine ruhe gehabt die zu testen.
>> http://typo3.org/extensions/repository/view/mc_css_js_compressor/current/
>> angeblich komprimiert es auch CSS.
>>
>> gruss chris
> 
> Oder auf Version 4.3 warten ;-)
> http://forge.typo3.org/wiki/typo3v4-core/43_roadmap
> In der Roadmap unter Beta ist ein css und js merger dabei.
> 
> Gruß Thomas
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.netfielders.de
http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an