Drupal kann einem schon mit seiner schwer durchschaubaren Template Engine das Leben schwer machen. Deshalb poste ich unregelmäßig Code Snippets für rund um Drupal Themes.
Manchmal möchte man eine System CSS Datei nicht anzeigen lassen. Einfach weil sie redundant wird oder den Umgang mit eigenen CSS Dateien unnötig kompliziert macht. Die System CSS Dateien befinden sich in einem Array, also muss man das Array aufrufen und Werte mit unset entfernen. Der Code sieht dann so aus:
//Unset default css files $css = drupal_add_css(); unset($css['all']['module']['modules/system/system.css']); unset($css['all']['module']['modules/system/defaults.css']); $vars['styles'] = drupal_get_css($css); return $vars;
Der Snippet gehört in die _phptemplate_variables Funktion in templates.php. Normalerweise ist diese Funktion dort schon enthalten, sonst einfach anlegen. Hier ist ein Beispiel für die ganze Funktion:
function _phptemplate_variables($hook, $vars) { if ($hook == 'page') { //Unset default css files $css = drupal_add_css(); unset($css['all']['module']['modules/system/system.css']); unset($css['all']['module']['modules/system/defaults.css']); $vars['styles'] = drupal_get_css($css); return $vars; } return array(); }


Kars-T
vor 6 weeks
Das Beispiel ist für Drupal 5. In D6 wäre das über die preprocess Funktionen.
Und man könnte auch die template.info Datei dafür benutzen. Wenn man dort ein stylesheets[all][] = system.css definiert, wird dieses die Basisversion überschreiben.
Post new comment