[gelöst] View Block mit CCK Feld als Argument
Eingetragen von asoahc (69)
am 02.08.2010 - 08:46 Uhr in
am 02.08.2010 - 08:46 Uhr in
Hi Drupal-Community,
ich steh mal wieder vor einer interessanten Herausforderung.
Ich habe mir einen View Block gebaut, der auf allen Seiten eines Inhaltstyps ("Haus") angezeigt werden soll. Der Block ist aktiv und der Fußzeile zugeordnet.
Dem Inhaltstyp habe ich verschiedene CCK Felder (Textfelder) zugeordnet. Nun hab ich dem Block das CCK Feld als Argument eingetragen.
Es funktioniert in der Vorschau, das er mit den Block tatsächlich anzeigt, aber auf den Seite klappt es nicht.
Hat jemand eine Idee, wie ich den Block richtig konfiguriere?
Gruß aSoahc
- Anmelden oder Registrieren um Kommentare zu schreiben
Block Argumente
am 02.08.2010 - 09:05 Uhr
Hallo.
Damit der Block überhaupt von dem Feld etwas mitbekommt, muss er natürlich auch "wissen", von welcher Node der Feldinhalt geladen werden soll.
Da Blöcke jedoch keine Argument verarbeiten (siehe dazu auch http://www.drupalcenter.de/handbuch/20871) musst Du das Argument selbst per PHP-Code bereitstellen.
In der View-Vorschau funktioniert dies nur, da dort nicht wirklich der Block, sondern nur der zu erwartende Inhalt des Blocks gezeigt wird.
hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Hi Stefan, vielen Dank für
am 02.08.2010 - 09:27 Uhr
Hi Stefan,
vielen Dank für deine schnelle Antwort.
Genau das ist mein Problem. Allerdings wollte ich das Argument nicht aus dem Pfad, sondern aus der Seite bzw. dem CCK Feld direkt nehmen.
Geht das überhaupt?
Gruß aSoahc
Argument
am 02.08.2010 - 09:30 Uhr
Allerdings wollte ich das Argument nicht aus dem Pfad, sondern aus der Seite bzw. dem CCK Feld direkt nehmen.
Dann musst Du Dir im "Argument Handling Code" das gerade angezeigte Node-Objekt laden und daraus dann den Wert des Feldes holen.
So zum Beispiel (ungetestet):
<?php
$node = menu_get_object();
if (isset($node->nid)) {
return $node->meinFeldName[0]['#value'];
}
?>
hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
super
am 02.08.2010 - 14:24 Uhr
Hi Stefan,
dein Schnipsel hat geholfen ... vielen Dank ...
Ich musste nur eine kleine Korrektur vornehmen ... Die Raute vor dem 'value' war zuviel.
<?php
$node = menu_get_object();
if (isset($node->nid)) {
return $node->meinFeldName[0]['value'];
}
?>
Vielen Dank und Gruß, aSoahc