Frage

Ich versuche, die folgenden zu erreichen. Ich brauche Drupal 6 als Projektanforderung zu verwenden, aber ich will, es benutzen mit meinen eigenen HTML und CSS-Stylesheets für jeden Knoten / view / Platte etc.

Das Problem ist, was auch immer das Thema, ich finde immer, dass Drupal gilt für meine HTML-Inhalte sowohl meines CSS-Stylesheets und die rund um das Thema CSS gewählt. Ich habe auch versucht, ohne Erfolg, das stylestripper Modul (eingebaut in sites / all / modules). Egal, was ich tun, zusätzliche CSS-Stylesheets auf meine Seiten angewendet werden, ganz mein Layout zu zerstören.

Was ist der richtige Weg, dies zu erreichen? Warum stylestripper nicht funktionieren? Gibt es ein völlig leer Thema zur Verfügung? Ich habe versucht, einfach, mothership, zen etc, aber ich sehe immer zusätzliche CSS-Stylesheets auf meine Seiten angewendet.

Das macht mich verrückt, wurde Drupal von jemand anderem für seine Flexibilität gewählt. Vielen Dank im Voraus.

War es hilfreich?

Lösung

<?php
/**
 * Helper function to allow easy CSS excludes + includes
 */
function _phptemplate_get_css($exclude = array(), $include = array()){
$css = drupal_add_css();
foreach ($css['all']['module'] as $k => $path) {
   $file = substr($k, strrpos($k, '/') + 1);
   if (in_array($file, $exclude)){
     unset($css['all']['module'][$k]);
   }
}
foreach ($include as $file){
   $css['all']['theme'][path_to_theme() .'/'. $file] = true;
}
return drupal_get_css($css);
?>

Lesen Sie mehr unter drupal.org .

Update:
Der richtige Ort, um diese Funktion zu setzen, ist in der template.php Datei Ihres Themas. Eigentlich in Ihrem Fall müssen Sie eine Reihe von CSS-Dateinamen zu übergeben, die Sie ausschließen möchten.
Der Aufruf von drupal_add_css() ohne Argumente übergeben, wird $css mit einer Reihe von CSS-Dateien zur Verfügung stellen die gehen zu Ihrem Thema angebracht werden. So ist dies die richtige Zeit, um in!

Wie Sie sehen, im ersten foreach Schleife suchen wir einfach die $css Array für Dateinamen, die in dem übergebenen $exclude Array bestanden werden, für Stil Löschen. Und wir tun die gleiche Arbeit in der zweiten Schleife für Stil Einfügen. Und am Ende diesen, wir eine thematische Darstellung aller Stile zurück, die zu dem Thema der Nutzung von drupal_get_css() Funktion. (vielleicht nichts in Ihrem Fall)

Nun, wo diese Funktion nennen? Sie können diese Hilfsfunktion rufen in _phptemplate_variables() D5 oder YOUR_THEME_preprocess() für D6. Wie wir dies in Aktion für D6 (ungetestet) :

function YOUR_THEME_preprocess(&$vars, $hook){
    // Stylesheet filenames to be excluded.
    $css_exclude_list = array(
        'lightbox.css',
        'lightbox_lite.css',
    );

    // Making use of previously defined helper function.
    $vars['styles'] = _phptemplate_get_css($css_exclude_list);
}

Ich bin sicher, Sie wissen, wie man ausschließen sie alle;)

Andere Tipps

Wenn Sie CSS und / oder JavaScript-Dateien in Ihrem Thema definieren ist .info Datei Dateinamen verwenden, die die Core-Dateien passen sie dann Sie außer Kraft setzen, und wenn Sie Ihre Überschreibungen nicht existieren, dann sind sie nicht enthalten.

Siehe die .info-Datei für das Tao Thema für ein Beispiel

Ich glaube nicht, dies funktionieren wird, aber ich denke, entfernen Sie einfach die folgende Zeile in Ihrem Thema der page.tpl.php

 <?php echo $styles ?>

und dann Drupal nichts von seinem eigenen Stil ..
dies kann Arbeit für Sie sein.


Nitz

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top