Howto: Zusätzliche Dynamische CSS Klassen
am 30.07.2008 - 19:15 Uhr in
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)
?>
Das waren 2 Beispiele, wie man zusätzliche CSS Klassen erstellen kann, die sich je nach Lage ändern.
- Anmelden oder Registrieren um Kommentare zu schreiben
Neue Kommentare
vor 3 Stunden 48 Minuten
vor 1 Tag 10 Stunden
vor 1 Tag 10 Stunden
vor 6 Tagen 3 Stunden
vor 6 Tagen 6 Stunden
vor 6 Tagen 6 Stunden
vor 6 Tagen 6 Stunden
vor 1 Woche 3 Stunden
vor 1 Woche 5 Stunden
vor 1 Woche 1 Tag