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