Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Themes & Theming ›

[gelöst]Titel als CSS Klasse anhängen

Eingetragen von Bernsch (243)
am 17.11.2011 - 17:05 Uhr in
  • Themes & Theming
  • Drupal 7.x oder neuer

Hallo Leute,

ich möchte gerne den Seitentitel bzw. den Nodetitel als CSS-Klasse an meine erzeugten Seite anhängen.

Gibt es da ein Modul bzw. wie kann ich das in einer preprocess Funktion (in der page und/oder in der node???) machen?
Bitte um Hilfe. Danke.
lg, bernsch

‹ [gelöst] Themes Rechte? Vordefiniertes und ausgewähltes Feld unsichtbar machen. ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Wo soll die CSS-Klasse den

Eingetragen von Exterior (2903)
am 17.11.2011 - 17:38 Uhr

Wo soll die CSS-Klasse den eingefügt werden bzw. welches Element soll sie bekommen?

  • Anmelden oder Registrieren um Kommentare zu schreiben

preprocess

Eingetragen von stBorchert (6003)
am 17.11.2011 - 17:40 Uhr

Hallo.
In der [api:template_preprocess_html:7] kannst Du Klassen zum "body"-Tag hinzufügen.
Dazu benötigst Du zusätzlich noch die Funktionen [api:menu_get_object:7] und [api:drupal_html_class:7].

<?php
function MYTHEME_preprocess_html(&$variables) {
  if ((
$node = menu_get_object()) !== FALSE) {
   
$variables['classes_array'][] = drupal_html_class(filter_xss($node->title, array()));
  }
}
?>

In der [api:template_preprocess_node:7] hingegen fügst Du die Klassen zu dem Node-Wrapper selbst hinzu.

<?php
function MYTHEME_preprocess_node(&$variables) {
 
$variables['classes_array'][] = drupal_html_class(filter_xss($variables['node']->title, array()));
}
?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

Infos zu Details?

Eingetragen von Bernsch (243)
am 17.11.2011 - 20:57 Uhr

Super, danke stBorchert! - Werd ich gleich mal ausprobieren...

Hättest du ev. noch Zeit mir die beiden Preprocess Funktionen im Detail zu erklären?
Ich würde gerne den PHP Code besser verstehen lernen bzw. die Preprocess-Funktionen.
Was macht z.B. filter_xxs und warum ist jeweils das ",array( ) ) ); hinten darangeschrieben?
Wäre echt nett von dir. DANKE!
lg

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: Was macht z.B.

Eingetragen von Exterior (2903)
am 17.11.2011 - 21:37 Uhr
Zitat:

Was macht z.B. filter_xxs

filter_xss filtert HTML-Code gegen Cross-Site-Scripting (http://api.drupal.org/api/drupal/core--includes--common.inc/function/fil...)

Zitat:

warum ist jeweils das ",array( ) ) ); hinten darangeschrieben?

Weil die Funktion eben zwei bestimmte Parameter erwartet: Den HTML-String und ein Array mit Strings, welches angibt, welche HTML-Tags nicht gefiltert werden sollen. In Stefans Beispiel wird eben ein leeres Array übergeben, womit keine HTML-Tags verschont werden.

Allgemein solltest du dich mal bei der Drupal-API umschauen, wenn du Drupal und den Code besser verstehen willst.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Funktioniert leider nicht

Eingetragen von Bernsch (243)
am 02.12.2011 - 19:38 Uhr
stBorchert schrieb

Hallo.
In der [api:template_preprocess_html:7] kannst Du Klassen zum "body"-Tag hinzufügen.
Dazu benötigst Du zusätzlich noch die Funktionen [api:menu_get_object:7] und [api:drupal_html_class:7].

<?php
function MYTHEME_preprocess_html(&$variables) {
  if ((
$node = menu_get_object()) !== FALSE) {
   
$variables['classes_array'][] = drupal_html_class(filter_xss($node->title, array()));
  }
}
?>

In der [api:template_preprocess_node:7] hingegen fügst Du die Klassen zu dem Node-Wrapper selbst hinzu.

<?php
function MYTHEME_preprocess_node(&$variables) {
 
$variables['classes_array'][] = drupal_html_class(filter_xss($variables['node']->title, array()));
}
?>

Danke für den Tipp stBorchert:
Habe jetzt diese beiden Codeschnippsel in meien template.tpl.php kopiert und jeweils mit meinem Themenamen ersetzt und danach Cach gelöscht.
Leider habe ich den Titel meiner Seite nicht als Classe im "body-Tag" bzw. "Node-Wrapper-Tag"... :-(

Kann mir wer sagen woran das liegt?
Danke. lg

  • Anmelden oder Registrieren um Kommentare zu schreiben

template.php

Eingetragen von stBorchert (6003)
am 03.12.2011 - 11:43 Uhr
Bernsch schrieb

... Kann mir wer sagen woran das liegt?

Das hast Du selbst schon mit diesem Satz getan :)

Bernsch schrieb

Habe jetzt diese beiden Codeschnippsel in meien template.tpl.php kopiert

Die Datei muss template.php heissen!

  • Anmelden oder Registrieren um Kommentare zu schreiben

template.php

Eingetragen von Bernsch (243)
am 01.02.2012 - 00:37 Uhr
stBorchert schrieb

Die Datei muss template.php heissen!

... Sorry, ich hab mich vertan....

Der Code funktioniert wie von dir angegeben... DANKE!
lg, bernsch

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Canvas Palette: Eine fertige Komponentenbibliothek für Drupal Canvas
  • Hilfe zu Updates oder Composer
  • Vergleich Drupal und Contao
  • [geloest] Blocks in Bootstrap nebeneinander darstellen und nicht untereinander
  • DrupalCamp Frankfurt 27-28 November 2026
  • Bitte mein Bentzerkonto löschen
  • Beim Aufruf einiger Inhalte erhalte ich folgende Fehlermeldung
  • Neuinstallation: vermutlich ein rewrite-Problem
  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
  • (gelöst)Drupal 11 installieren
  • Titel ausblenden
Weiter

Neue Kommentare

  • anyone has a working Betaflight mirror right now?
    vor 7 Stunden 19 Sekunden
  • Vielen Dank für Ihren
    vor 11 Stunden 33 Minuten
  • Composer ist sehr ratsam
    vor 2 Tagen 10 Stunden
  • Vielen Dank für den
    vor 4 Tagen 20 Stunden
  • Die alten CMS Vergleiche von contentmanager.de
    vor 5 Tagen 9 Stunden
  • Gut gemacht
    vor 5 Tagen 9 Stunden
  • Layout Builder etc. z.B. für Landing Pages
    vor 5 Tagen 9 Stunden
  • Links
    vor 1 Woche 23 Stunden
  • Moin,wow, sehr gutes
    vor 1 Woche 2 Tagen
  • Dass ist eine spannende
    vor 1 Woche 2 Tagen

Statistik

Beiträge im Forum: 250314
Registrierte User: 20559

Neue User:

  • Cruzorerm
  • Valid64x
  • Plandkeews

» Alle User anzeigen

User nach Punkten sortiert:
wla9466
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 7 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association