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 - 16: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 - 16: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 - 16: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 - 19: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 - 20: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 - 18: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 - 10: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 31.01.2012 - 23: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

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 1 Woche 2 Tagen
  • Hey danke
    vor 1 Woche 3 Tagen
  • Update: jetzt gibt's ein
    vor 1 Woche 4 Tagen
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 1 Tag
  • Da scheint die Terminologie
    vor 2 Wochen 1 Tag
  • Kannst doch auch alles direkt
    vor 2 Wochen 5 Tagen
  • In der entsprechenden View
    vor 2 Wochen 5 Tagen
  • Dazu müsstest Du vermutlich
    vor 2 Wochen 5 Tagen
  • gelöst
    vor 5 Wochen 2 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 5 Wochen 3 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20450

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 13 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