Startseite
  • » Home
  • » Handbuch & FAQ
  • » Showroom
  • » Forum
  • » Drupalchannel
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Tipps & Tricks ›

Howto: Zusätzliche Dynamische CSS Klassen

Eingetragen von drupaler3000 (78)
am 30.07.2008 - 19:15 Uhr in
  • Tipps & Tricks

Ihr wollt mit dynamischen CSS Klassen arbeiten? Dann ist dieses Tutorial genau richtig für euch. Ich zeige euch einige Beispiele, wie man dynamische CSS Klassen erstellen kann:

1. Menüpunkte nur bestimmten Benutzerrollen verfügbar machen:

Folgende Funktion in die template.php - Datei kopieren:

function der_name_deiner_funktion($uid) {
global $user;
$author = user_load(array('uid' => $node->uid));

if ((in_array('benutzerrolle-a', $user->roles)))
{
print "xyz";
}

else
{
print "abc";
}
}

'Benutzerrolle-a' wird mit eurer Benutzerrolle ersetzt. "xyz" ist dass, was ausgegeben wird, wenn die 'Benutzerrolle-a' die Seite betrachtet, ansonsten wird "abc" ausgegeben.
Wenn man nun in die page.tpl.php - datei

<div class="<?php print der_name_deiner_funktion($uid)" ?>"></div>

schreibt, hat mein seine erste dynamische Klasse und kann damit in CSS arbeiten.
Wenn man möchte kann man den Namen der Funktion
function der_name_deiner_funktion($uid) {

beliebig umbennenen. Damit lässt sich einiges anfangen, man kann beispielsweise mit dem Zeichen "&&" Zwei Argumente als Voraussetzung setzen, also müssten 2 Benutzerrollen zutreffen, oder eines von beiden mit "or". Als Beispiel kann man damit ein manuelles Menü erstellen, indem man Menüpunkte kontrolliert einblenden oder ausblenden kann. (Mit der CSS Eigenschaft display:none;)

2. Taxonomys als Klasse anlegen

// für jedes einzelne Taxonomy eine Body Klasse definieren
function der_name_deiner_funktion($nid) {
     $vocabularies = taxonomy_get_vocabularies();
     foreach($vocabularies as $vocabulary) {
       if ($vocabularies) {
         $terms = taxonomy_node_get_terms_by_vocabulary($nid, $vocabulary->vid);
         if ($terms) {
           $links = array();
           foreach ($terms as $term) {
             $links[] = l($term->name, taxonomy_term_path($term), array('rel' => 'tag', 'title' => strip_tags($term->description)));
           }
         }
       }
     }
     return $output;
}

Nun schreibt man folgendes zwischen if ($terms) { und $links = array();

// Vocabulary Name
$output .= '<div class="vocabulary-name-' . $vocabulary->name . '">';

Achtung: Ersteres funktioniert nur, wenn der Taxonomy keine Leerzeichen hat, da CSS mit der klasse sonst nichts anfangen kann. Ich empfehle deshalb die Vocabulary Name.

Nun schreibt man wieder

<?php

der_name_deiner_funktion
($nid)
?>
in die page.tpl.php - datei und macht dies beispielsweise wieder als Body Class oder div Klasse.

Das waren 2 Beispiele, wie man zusätzliche CSS Klassen erstellen kann, die sich je nach Lage ändern.

‹ Alle Node- und Term-Ansichten der Website mit Ajax-Funktionalität anzeigen ??? HOW TO: Google Map aus Adressfeldern generieren ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Absichern Von Drupal- und Serverinstallation
  • Danland: Standard-Startseite formatieren
  • Views Accordion - Header Elemente nebeneinander
  • Heartbeat und Facebook Style Status
  • Marinelli 3, Admin-Layer
  • [gelöst] Drupal7.10 Fehlermeldungen ohne Site-Änderungen
  • Blockregionen per CCK Feld ausblenden
  • [erledigt] drupal 7 - read more ausblenden
  • Drupal7 für eine Produktvergleich Seite
  • #ajax Funktionalität in einem Field Widget
  • Image: Bildupload erst beim Speichern des Nodes
  • Wie kann ich Theme AUTOMATISCH umstellen, wenn sich Benutzer einlogen?
Weiter

Neue Kommentare

  • Du mußt die page.tpl.php
    vor 37 Minuten 59 Sekunden
  • Dann mußt Du eben ein bißchen
    vor 40 Minuten 40 Sekunden
  • Hallo und Danke für Eure
    vor 41 Minuten 24 Sekunden
  • Ok... ich habe mir die
    vor 2 Stunden 37 Minuten
  • Dafür ist das Modul "Overlay"
    vor 5 Stunden 3 Minuten
  • sorry, der 2te Link war
    vor 5 Stunden 5 Minuten
  • screenshots
    vor 5 Stunden 7 Minuten
  • Danke!
    vor 8 Stunden 34 Minuten
  • in die template.php im
    vor 9 Stunden 40 Minuten
  • da es bisher keine etablierte
    vor 9 Stunden 50 Minuten

Statistik

Beiträge im Forum: 173964
Registrierte User: 15480

Neue User:

  • Neoskop
  • habicht09
  • Gruenkohl

» Alle User anzeigen

User nach Punkten sortiert:
stBorchert5516
quiptime4713
Tobias Bähr3874
wla3807
md3777
bv3700
Thoor3678
Alexander Langer3282
dereine2635
Exterior2571
» User nach Punkten
Zur Zeit sind 4 User und 48 Gäste online.

Benutzer online

  • kahta
  • tfranz
  • StevenB
  • brusau

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Showroom
  • » Forum
  • » Drupalchannel
  • » Ü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
  • Bücherecke

Quicklinks III

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

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed Drupal Podcast
  • 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