drupal_add_css funktioniert nicht

7

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?

    
MrFidge 11.09.2009, 12:09
quelle

9 Antworten

2

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) ).

    
MrFidge 11.09.2009, 14:28
quelle
7

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).

    
Jeremy French 11.09.2009 13:25
quelle
6

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

    
Christophe 30.06.2010 16:41
quelle
4

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.

    
googletorp 11.09.2009 12:46
quelle
3

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.

    
neoncube 29.10.2009 18:44
quelle
1

Dieser Code in template.php funktioniert für mich:

%Vor%

erklärt:

  1. alagna ist der Name des Themas
  2. header_1.css ist die CSS-Datei erforderlich.
heaptree 03.04.2010 08:49
quelle
1

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.

    
junedkazi 10.03.2011 01:01
quelle
0

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%     
VictoriaChan 11.01.2010 14:16
quelle
0

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%     
Peniel1127 10.02.2012 23:03
quelle

Tags und Links