Drupal: CSS Aggregation im Private Mode
Verfasst von jan am Mo, 12/13/2010 - 15:10
Hat man keine Kapazitätsprobleme, kann man mit diesem Kleinen Modul die CSS optimieren, vereinigen und Cachen. Leider ist dies ansonsten in Drupal 6 Core nicht möglich. Ich weiss, der Cache braucht relativ viel Platz in der DB, aber dies ist in meinem Fall kein Problem. Das Modul erstellt für jede Seite, welche eine andere CSS Dateien Konstellation hat, ein eigener Cache-Eintrag. Die Geschwindigkeit zum Laden der Seite ist bei mir extrem gestiegen (> 33%). Anregungen bitte im Kommentar posten!
// die Folgenden Konstanten anpassen function minicss_menu() { 'title' => 'minicss css', 'page callback' => 'minicss_minify', 'access callback' => true, 'type' => MENU_CALLBACK, ); return $items; } /** * Implementation of hook_preprocess_page() */ function minicss_preprocess_page(&$variables) { $variables['styles'] = '<link type="text/css" '. 'rel="stylesheet" media="all" '. 'href="/minicss/css/'. } } function minicss_minify($files,$type) { // The Checksum identifies the unique css-File-Package // Recive Cached CSS-Package $cache = cache_get('minicss_'.$checksum); // If Package does not exist, create it and output if (!$cache) { $output = ''; foreach ($files as $file) { // remove comments //$content = str_replace("\t", ' ', $content); // Removing Tabs somehow creates problems... // Remove special chars // urls sind relativ zum CSS file und müssen dementsprechend relativ zum miniCSS angepasst werden $output .= $content; } // Write new created Package into Cache for next time if (MINICSSCACHE) cache_set('minicss_'.$checksum,$output); print $output; } else { // If Cache-package already exists, output cache, also add Information about version $output = '/* Retrieved from Cache; Version: '.date('Y.m.d H:i',$cache->created).' */'."\n\n".$cache->data; print($output); } }
Evtl. muss man in der Datenbank Tabelle "System" das Modul-weight noch an den Schluss setzen.
Kommentar hinzufügen