Anderer Nodetyp, zusätzliches CSS
am 05.08.2008 - 01:25 Uhr in
Hallo,
ich habe auf meinem D6-basierten Portal verschiedene nterkategorien bzw. Unterseiten, die sich durch eine andere farbliche Gestaltung vom Rest abheben. Alle Änderungen gegenüber der globalen style.css befinden sich in jeweils eigenen CSS-Dateien, da ja hauptsächlich Einstellungen aus der style.css überschrieben werden.
Bisher habe ich die zusätzlichen CSS-Dateien einfach über in die node-irgendwas.tpl.php-Dateien eingebaut, aber heute ist mir leider aufgefallen, dass das zwar in allen Browsern funktioniert, aber nicht W3C-Konform ist.
Also habe ich versucht, das zusätzliche CSS mit drupal_add_css einzubinden. Leider funktioniert das nicht aus den Template-Dateien heraus.
Hat jemand hier eine Idee, wie man das machen könnte?
vielen Dank schonmal im Voraus.
- Anmelden oder Registrieren um Kommentare zu schreiben

Wieso nicht W3C-Konform? Was
am 05.08.2008 - 09:15 Uhr
Wieso nicht W3C-Konform? Was bekommst du denn für Fehler, kann man sich das online anschauen?
Selbst ist der Mann
am 05.08.2008 - 11:00 Uhr
Ich bin mir ziemlich sicher das Du bei Deiner Arbeit, mit CSS zu stylen, den Firebug nicht verwendest.
Denn sonst wurde es diesen Thread hier nicht geben.
Schau Dir einfach mal die CSS / HTML-Tag Kaskaden auf den Seiten der verschiedenen Unterkategorien an. Dann wirst Du mit ziemlicher Sicherheit eine HTML-ID oder HTML-Klasse entdecken die es ermoeglicht Unterkategoriebezogen separate CSS Styles zu definieren.
Sollte diese Entdeckung nicht moeglich sein weil nicht existent, das haengt eben von der Genialitaet der Person ab die das verwendetet Theme erstellt hat, dann muss Du nachhelfen.
Vorschlag zur einer Vorgehensweise:
Erzeuge selbst Unterkategoriebezogene HTML-ID's oder HTML-Klassen. Platziere diese in den HTML Body-Tag. Vom Body-Tag ausgehend ist damit eine separate Unterkategoriebezogene CSS Kaskadierung moeglich.
Um selbst Unterkategoriebezogene HTML-ID's oder HTML-Klassen verwenden zu koennen kann man diese in der template.php als PHP-Variable ($vars) definieren und sie dann in der page.tpl.php im HTML Body-Tag einfuegen.
Willkuerliches Beispiel D6, Theme Garland, page.tpl.php. Snipped:
<body<?php print phptemplate_body_class($left, $right); ?>>Wenn Du wissen moechtest wie man in der template.php die $vars Variablen erzeugt dann sehe Dir vom Zentheme die template.php an. Dort wird dies fast schon musterhaft zelebriert.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Vielen lieben Dank für die
am 05.08.2008 - 16:16 Uhr
Vielen lieben Dank für die Idee mit der body-class ... darauf bin ich einfach nicht gekommen :-)
Ich habe nun in meiner page.tpl.php einfach eine Abfrage nach dem Alias eingebaut und das entsprechende Ergebnis dann als CSS-Klasse in den Body-Tag eingebaut, etwa so:
<?phpif ($alias == 'zensurhaus' | substr($alias, 0, 11) == 'zensurhaus/')
{
$bodyclass = 'zensurhaus';
}
?>
<body <?php if ($bodyclass) {echo 'class="'.$bodyclass.'"';} ?>Bezüglich Firebug hast du dich übrigens getäuscht, das ist eines meiner wichtigsten Werkzeuge bei der Arbeit mit CSS ...
Falls euch das Ergebnis interessieren sollte: http://grünschnabel-online.de/
@luzer:
CSS kann man nur im -Bereich einbauen, sonst beschwert sich der Validator.
Gut, war halt nur so 'ne Vermutung.
am 05.08.2008 - 16:24 Uhr
Bezüglich Firebug hast du dich übrigens getäuscht, das ist eines meiner wichtigsten Werkzeuge bei der Arbeit mit CSS
Gut, war halt nur so 'ne Vermutung.
Freut mich das die zusaetzlichen Body-Tags Dein Problem loesen konnten.
PS
In Deinem Forum gibt es ein Problem:
* warning: theme_render_template(./sites/all/themes/gs/forums.tpl.php) [function.theme-render-template]: failed to open stream: No such file or directory in /kunden/105056_95517/gruenschnabel/drupal6/includes/theme.inc on line 971.
* warning: theme_render_template() [function.include]: Failed opening './sites/all/themes/gs/forums.tpl.php' for inclusion (include_path='.:/usr/local/lib/php') in /kunden/105056_95517/gruenschnabel/drupal6/includes/theme.inc on line 971.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.