Gelöst - Mehrere Agumente übergeben
am 01.02.2009 - 15:40 Uhr in
Moin moin,
ich habe ein Problem mit der Argumentauswertung. Ich möchte eine Reihe von Argumenten an einen View übergeben, welcher mir dann einen Liste von Node-Titeln ausgeibt. Dafür habe in dem View das Argument "Taxonomie Term ID" eigerichtet. Also soll mir die View nur die Nodes ausgeben, deren Taxonomie IDs ich übergeben habe.
Term ID deswegen, weil in den Unterterkategorien teil die gleichen begriffe vorhanden sind und die Term ID eine eindeutige Referenz darstellt.
Den View selber rufe ich innerhalt des Themas über die Embed Funktion auf.
Als Argument möchte ich mehrere Trem-IDs übergeben. Ich nehme dazu ein Array.
array(21, 22, 33)
Das funktioniert aber leider immer nur mit dem ersten Argument. Was mache ich falsch, oder wie kann man das lösen?
- Anmelden oder Registrieren um Kommentare zu schreiben
Re: Mehrere Agumente übergeben
am 02.02.2009 - 01:18 Uhr
Was mache ich falsch, ...
Nichts. Pro Argument, das du im View definierst, kannst du nur einen Wert übergeben. Wenn du allerdings drei Argumente definierst (jeweils Term-IDs), dann werden nur Nodes aufgelistet, die mit allen drei Terms belegt sind.
oder wie kann man das lösen?
Eine Möglichkeit: Auf Drupal 6 aktualisieren. Einige Argumenttypen bieten dort die Möglichkeit mehrere Werte zu übergeben (Term-ID gehört AFAIK dazu).
Andere Möglichkeit: Schreibe ein eigenes Modul, das das kann.
--
Gelöst
am 02.02.2009 - 01:55 Uhr
Es geht doch mehere Argumente zu übergeben.
Es ist richtig das Argumente als Array übergeben werden kann. Wie das genau geht meherer Argumente zu übergeben von welchen allerdings nur ein zutreffen muss, hate ich durch Zufall in der Views dokumentation rausgefunden. Dort hat jemand einen Argumen Handle Code gepaostet den ich mir mal angesehen habe.
Normal übergibt am das Array folgendermaßen:
<?php
$argumente = array ( 21, 22, 33 );
?>
Allerdings wird hier jeder übergebene Wert eine Argument zugewiesen. Wenn mann allerdings das ganze so schreibt, werden alle Werte in einem Argument verwendet.
<?php
$argumente = array ( '21+22+33' );
?>
Habe ich nach 2 Tagen nur durch Zufall rausgefunden, nach dem ich versucht habe mit den API Funktionen die View dynamisch durch einen Filter zu erweitern. Also kann man durch die oben aufgeführte Schreibweise auch mehere Werte übergeben. Wenn man die Werte in der URL übergibt muss mann allerdings im Argument-Handle-Code die obige Schreibweise sicherstellen oder wandeln, da das + Zeichen in der uRL durch einen Code ersetzt wird.
--------
Active-Media-Production
Individual Web Development and Design
--------
Active-Media-Production
Individual Web Development and Design