Ich muss drupal_add_css verwenden, um Stylesheets auf einzelnen Drupal 6-Seiten aufzurufen. Ich möchte das Hauptthemen-Stylesheet nicht bearbeiten, da es eine Reihe von einzelnen Seiten geben wird, die alle komplett neue Styles benötigen - das Haupt-Sheet wäre riesig, wenn ich alles hineinlege.
Meine Lösung war, die Seite im PHP-Editor-Modus zu bearbeiten und dies zu tun:
%Vor%Aber wenn ich Quelle ansehe, ist da nichts! Nicht einmal eine kaputte CSS-Verknüpfung oder irgendetwas, es ist einfach abzulehnen, das CSS-Blatt dem CSS-Paket hinzuzufügen, das in den Seitenkopf eingefügt wurde.
Variationen scheinen auch nicht zu funktionieren:
%Vor%Meine Vorlagenkopfzeile sieht so aus. Ich habe nichts vom Standard geändert, außer ein benutzerdefiniertes JavaScript hinzuzufügen.
%Vor%Warum funktioniert diese Funktion nicht?
Die Antwort war sehr, das Modul CSS Injector zu benutzen - ein tolles kleines Addon!
Hier ist ein Auszug von seiner Projektseite:
Ermöglicht Administratoren das Einfügen von CSS in die Seitenausgabe basierend auf konfigurierbaren Regeln. Es ist nützlich, um einfache CSS-Optimierungen hinzuzufügen, ohne das offizielle Thema einer Site zu ändern. Das CSS wird mit der Drupal-Standardfunktion drupal_add_css () hinzugefügt und berücksichtigt das Seiten-Caching usw. Der 2.x-Brach nutzt CTools, sodass CSS mit Feature-Änderungen integriert werden kann (dh CSS, das das Aussehen einer Ansicht verbessert, kann mit der Ansicht gepackt werden) ).
Es ist nicht ganz klar, wo Sie die Vorlage auswählen, die Sie in Ihrem Beispiel haben. Wenn Sie es aus einem Modul auswählen, können Sie einfach drupal_add_css im Modul anstelle der Vorlage verwenden.
Wenn Sie Ihr eigenes Thema haben, können Sie template_preprocess_page verwenden und Logik hinzufügen, um das relevante Thema hinzuzufügen CSS (Sie können es auch verwenden, um die zu verwendende Vorlage auszuwählen).
Ich habe etwas Seltsames bemerkt und es könnte Ihr Problem beheben:
%Vor%Der erste wird arbeiten, weil der Stil es im Hauptordner sie Die zweite Zeile funktioniert nicht, da sich der Stil in einem Unterordner befindet!
Bearbeiten:
Ich denke, es hat nicht funktioniert, weil ich nicht den Pfad der Style-Datei richtig geschrieben habe: S also bitte ignorieren Sie meine Antwort
%Vor%funktioniert
Diese Funktion funktioniert nicht in Vorlagen. Der Grund dafür ist, dass die Variable $ styles, die alle Stylesheets html enthält, bereits an dieser Stelle erzeugt wurde, also wird drupal_add_css nicht funktionieren, da sie dazu hinzugefügt wird. Wenn Sie dies in Ihrem Design tun möchten, müssten Sie wahrscheinlich die CSS-Datei manuell hinzufügen
%Vor%Der andere Weg wäre, drupal_add_css in einem Modul zu verwenden, aber es könnte schwierig sein, die richtigen CSS-Dateien auf den von Ihnen gewünschten Seiten hinzuzufügen.
Es ist möglich drupal_add_css () in Ihrer template.php Datei zu verwenden; diese Seite hat ein gutes Beispiel dafür, wie man genau das macht.
drupal_add_css erwartet einen Pfad relativ zum Basispfad, während drupal_get_path den Pfad relativ zum Basispfad nicht zurückgibt.
global $base_path;
drupal_add_css($base_path . drupal_get_path('module / theme','name') . "/styles/file1.css", "module / theme");
Sie können zwischen Modul und Thema entsprechend wählen.
Danke für den Link, wyrmmage. Das ist sehr nützlich. Ich denke, der Rest des Codes auf der Seite ist unnötig. Sie brauchen diese wahrscheinlich nur, da drupal 6 bereits automatisch auf Dateiexistenz prüft:
%Vor%Versuchen Sie es common.inc drupal_get_css ($ css = NULL)
Parameter
$ css: (optional) Ein Array von CSS-Dateien. Wenn kein Array bereitgestellt wird, wird stattdessen das Standard-Stylesheet-Array verwendet.
%Vor%