Dynamische Sichtbarkeitssteuerung von Blöcken mit PHP
Eingetragen von quiptime (4972) am 11.08.2008 - 20:54 Uhr in
Sichtbarkeit eines Block dynamisch mit PHP steuern
Um sich bei der Sichtbarkeitssteuerung von Blöcken nicht totzutippen wenn es eine umfangreiche Taxonomy-Struktur gibt kann man die Steuerung der Sichtbarkeit eines Block auf PHP Code umstellen.
Im nachfolgenden Beispiel soll ein Block sichtbar sein wenn
- bestimmte einzelne Nodes angezeigt werden
- innerhalb bestimmter Terms navigiert wird
- wenn Node eines bestimmten Typ angezeigt werden
Erläuterungen zum unten stehenden Beispielcode
Zu 1.
Diese Nodes sind die Einstiegsseiten in der Menüstruktur der Taxonomy. Die Nodes sind direkt als Menüpunkte in das Menü gelinkt und ihre ID's stehen fest.
Zu 2.
Die Terms in denen navigiert wird gehören zu einem Vocabulary mit der ID 1.
Zu 3.
Der in Frage kommende Nodetyp ist bekannt und vom Typ "tour".
Der PHP Code für die Steuerung
Dieser PHP Code wird in der Sichtbarkeitssteuerung des Blockes eingetragen:
<?php
// URL's sind bestimmte Nodes, einzelne Node ID's, Einstiegsseiten:
// 5 = /Touren, 7 = /Touren/Regionen, 8 = /Tourenlänge, 9 = /Startpunkt
if ( (arg(0) == 'node' && arg(1) == 5) ||
(arg(0) == 'node' && arg(1) == 7) ||
(arg(0) == 'node' && arg(1) == 8) ||
(arg(0) == 'node' && arg(1) == 9) ) {
return TRUE;
}
// URL's sind Taxonomy Pfade:
// Vocabulary des aktuelles aktuellen Term ermitteln
// 1 = Toerenregion
if ( arg(0) == 'taxonomy' && arg(1) == 'term' && is_numeric(arg(2)) ) {
$myterms = taxonomy_get_term(arg(2));
// 1 = Vocabulary: Tourenregion
if ( $myterms->vid == 1 ) {
return TRUE;
}
}
// URL's sind einzelne Nodes:
// Nodetyp des aktuellen Node ermitteln und Nodetyp gegenprüfen
if ( arg(0) == 'node' && is_numeric(arg(1)) ) {
$node = node_load(arg(1));
}
if ( $node->type == 'tour' ) {
return TRUE;
}
?>
- Anmelden oder Registrieren um Kommentare zu schreiben
Hallo, könnte man die Ansicht
am 09.09.2011 - 19:20 Uhr
Hallo,
könnte man die Ansicht eines Blocks auch so steuern, dass bestimmte definierte Typen aus User relationships den Block sehen und eben andere nicht?
Wir haben zum Beispiel die Beziehung "Freund" definiert.
Diese soll den Block sehen.
Kein Freund = keine Blockansicht.
DANKE