[gelöst] Block bei bestimmten View Pfad + Node ausgeben?
Eingetragen von moremedia (94)
am 24.02.2011 - 11:42 Uhr in
am 24.02.2011 - 11:42 Uhr in
Guten Morgen,
ich versuche vergeblich einen Block nur bei einem bestimmten View Pfad in Kombination mit einer Node ID auszugeben.
So sieht es aus:
View Pfad = allgemein/id (zB. 17)
Wenn ich jetzt im Block, der bei der ID 17 ausgegeben werden soll, folgenden PHP Code definiere, wird mir dieser Block trotzdem
bei allen ID´s die an diesem Pfad dran hängen ausgegeben. (zB allgemein/18, allgemein/19, ...)
<?php
$match = FALSE;
$nodes = array(17);
if (arg(0) == 'node' && is_numeric(arg(1))) {
$nid = arg(1);
$node = node_load(array('nid' => $nid));
$type = $node->type;
if (isset($types[$type])) {
$match = TRUE;
}
} elseif (arg(0) == 'allgemein') {
$match = TRUE;
}
return $match;
?>
Hilft mir bitte jemand?
Vielen Dank!
- Anmelden oder Registrieren um Kommentare zu schreiben
Im Moment fragst du ja nicht
am 24.02.2011 - 12:09 Uhr
Im Moment fragst du ja nicht nach dem zweiten Teil von allgemein/17
Es müsste z.B. so sein:
<?php
$match = FALSE;
// wozu benutzt du das? taucht im code nicht mehr auf...
$nodes = array(17);
if (arg(0) == 'node' && is_numeric(arg(1))) {
$nid = arg(1);
$node = node_load(array('nid' => $nid));
$type = $node->type;
if (isset($types[$type])) {
$match = TRUE;
}
} elseif (arg(0) == 'allgemein' && arg(1) == '17' ) {
$match = TRUE;
}
return $match;
?>
-----------
Luca Curella
Kooperative Netze - Berlin
Vielen Dank für deine rasche
am 24.02.2011 - 12:15 Uhr
Vielen Dank für deine rasche Anwort und dein Lösung – funktioniert perfekt.
Das Node Array hatte ich vergessen zu löschen, das hatte ich noch von einem anderen Versuch über, der auch nicht funkionierte.
<?php
$match = FALSE;
$types = array('reise' => 1);
$nodes = array(17);
if (arg(0) == 'node' && is_numeric(arg(1))) {
$nid = arg(1);
$node = node_load(array('nid' => $nid));
$type = $node->type;
if (isset($types[$type]) && in_array($nid, $nodes)) {
$match = TRUE;
}
}
return $match;
?>
Vielen Dank nochmals!