GELÖST - Argument Problem in VIEWS

am 05.06.2010 - 11:43 Uhr in
Ich benötige Hilfe bei einem Argument Problem in VIEWS ...
Ich möchte einen Block bei Artikeln einblenden, der alle vorhandenen Nodes auflistet, die den selben Wert eines CCK Feldes haben.
Das klappt schon mal soweit, wenn ich den VIEW beim Erstellen teste. Nur wenn ich den Block dann bei den Artikeln einblende, dann werden alle Werte angezeigt und eben
nicht nur Nodes, die denselben CCK Feld Wert haben, wie der aufgerufene?
Ich möchte aber exakt auf den im Node vorhandenen Wert (field_anbieter) referenzieren ... also zeige alle weiteren Nodes, die denselben Wert haben, wie der aktuell aufgerufene Node.
Ich habe in VIEWS also ein Argument mit Inhalt: (field_anbieter) und dort die Standardauswahl belassen ... nur durch
"Die auszuführende Aktion, wenn das Argument nicht vorhanden ist: " - Alle Werte anzeigen
werden eben alle Nodes angezeigt, die einen Wert im Feld (field_anbieter) haben und nicht nur die, die denselben Wert haben ...
Ich steh dieses Mal echt auf dem Schlauch und würde mich freuen, wenn mir ein VIEWS Profi erklären könnte, wie ich beim Artikelaufruf nur die Nodes aufliste, die den
selben Wert (field_anbieter) haben, wie der aktuell aufgerufene Artikel?
Es kann doch eigentlich nur ne Kleinigkeit sein ... vielleicht ein zweites Argument? Oder brauch ich doch einen PHP-Argumentcode - der mich dann als PHP Deppen wieder mal überfordern würde ...
- Anmelden oder Registrieren um Kommentare zu schreiben
Default Argument
am 05.06.2010 - 16:33 Uhr
Für einen Block musst du ein Default Argument setzen und dann mittels php den Wert aus der URL auslesen.
$argument = arg(1); // oder welche Stelle auch immer
return $argument;
tiger schrieb Für einen Block
am 05.06.2010 - 17:20 Uhr
Für einen Block musst du ein Default Argument setzen und dann mittels php den Wert aus der URL auslesen.
Aha also richtig vermutet ... Dankeschön ... allerdings, wie schon geschrieben, ich bin leider ne PHP Pflaume! Könntest Du mir das nötige Snippet verraten, wenn das Feld "(field_anbieter)" heisst? Da wäre ich sehr verbunden! :)
Nachdem sich noch kein PHP
am 08.06.2010 - 00:41 Uhr
Nachdem sich noch kein PHP und VIEWS Spezi angesprochen fühlte, pushe ich meine Frage nochmal ...
Ich fühlte mich angesprochen ;-)
am 08.06.2010 - 05:53 Uhr
Hallo Thoor
Ich habe einiges versucht, ichdanchte auch, dass ich bereits etwas ähnliches verwende, aber leider war dem nicht so.
Gegenfrage: handelt es sich bei [field_anbieter] um ein Free-Text-Feld?
Eine Idee die mir gekommen ist, ist Taxonomie, aber das scheint in deinem Fall nicht möglich zu sein, da Du wahrscheinlich selbst auf die Idee gekommen wärst.
Argument
am 08.06.2010 - 06:49 Uhr
Moin.
Hier mal ein kleines Code-Fragment (kann funktionieren, muss aber nicht; habe es jetzt nicht getestet):
<?php
// Angezeigte Node laden.
if (arg(0) == 'node' && is_numeric(arg(1))) {
$dn = node_load(arg(1)); // durch Caching kostet das nicht wirklich viel.
// hier bin ich mir nicht ganz sicher, eventuell musst Du mal ein dsm($dn->field_anbieter) machen, um die Struktur zu sehen
return $dn->field_anbieter[0]['value'];
}
?>
hth,
Stefan
r4s6 schrieb Ich habe einiges
am 08.06.2010 - 08:19 Uhr
Ich habe einiges versucht, ichdanchte auch, dass ich bereits etwas ähnliches verwende, aber leider war dem nicht so.
Gegenfrage: handelt es sich bei [field_anbieter] um ein Free-Text-Feld?
Grüß dich Roger ... Es ist ein "stinknormales Textfeld" :-) per Taxonomie mit Free Tagging wäre vielleicht ne Option, aber bei dem Projektumfang ( Geht um mein neues Projekt Gewinnspiele.be ) ist es vermutlich einfacher, mit nem PHP Argument zu referenzieren, als die Seite umzustrukturieren ...
PS: Konkret gehts um das Feld Gewinnspiel Eintrag --> Feld Anbieter ( Login bei Bedarf: Antester | Testan )
PPS: Seit wann und warum hast Du dich eigentlich "umgetauft"? Wollte ich schon länger mal fragen :-)
stBorchert schrieb Moin. Hier
am 08.06.2010 - 08:26 Uhr
Moin.
Hier mal ein kleines Code-Fragment (kann funktionieren, muss aber nicht; habe es jetzt nicht getestet):
Servus Stefan, schön .. daß sich einer meiner PHP Halbgötter konkret meldet! Werde ich heute Nachmittag mal ausprobieren! Auf jeden Fall schon mal großes Dankeschön :-) Ich geb Bescheid hier, ob das ne Lösung war ...
Eine Frage vielleicht noch vorweg - reicht das als einziges Argument, oder benötigt man so noch ein zweite, wie z.B ein Argument NID, das aber ausgeschlossen wird? Habe ich beim Selbersuchen bei einem Tutorial gesehen, kanns aber irgendwi nicht nachvollziehen ... -> http://drupal.org/node/289738 ( Punkt 4 )?
Ich bin auch kein PHP-Crack und [OT]
am 08.06.2010 - 08:50 Uhr
Grüß dich Roger ... Es ist ein "stinknormales Textfeld" :-)
Das habe ich mir fast gedacht, damit kann ich Dir auch nicht weiterhelfen, aber die Lösungen von Stefan führen erfahrungsgemäss früher oder später meist zum Ziel.
Seit wann...
Irgendwan in der letzten oder vorletzten Woche, hat das Stefan für mich erledigt.
und warum hast Du dich eigentlich "umgetauft"? Wollte ich schon länger mal fragen :-)
Na ich wollte zumindest hier im DC eine etwas seriösere Identität annehmen. Natürlich hast Du recht, dass dies evtl. zu Verwirrung führen kann und ich sicherlich hier keinen schlechten Ruf habe, auch sonst im Netz nicht. Nur schin mir inzwischen der Alias in verbindung mit dieser Nummer (mein Jahrgang) einen unseriösen Touch zu sugerieren.
Argument
am 08.06.2010 - 10:53 Uhr
Eine Frage vielleicht noch vorweg - reicht das als einziges Argument, oder benötigt man so noch ein zweite, wie z.B ein Argument NID ...
Ich denke mal, dieses eine Argument sollte genügen. Es sein denn, Du möchtest die gerade angezeigte Node nicht mit in der Liste erscheinen lassen.
Dann benötigst Du noch ein Argument (nid), welches vom Prinzip her genauso gebaut wird, wie das Feld-Argument (nur mit
return arg(1)
und ohnenode_load
) und dann auf "Ausschluss" gesetzt wird.Sollte also funktionieren.
Stefan
stBorchert schrieb Moin. Hier
am 08.06.2010 - 15:48 Uhr
Moin.
Hier mal ein kleines Code-Fragment (kann funktionieren, muss aber nicht; habe es jetzt nicht getestet):
Moin zurück! Also was soll ich sagen? SPITZENKLASSE - RIESIG - AMAZING *grins*
Hier ein Beispiel ... allerdings sieht man den Anbieter nur eingelogged, man kann aber auch so prima sehen, wie es funktioniert ... DANKE!
Vielen vielen Dank wieder mal für Deine tolle Unterstützung bei ollen "PHP Analphabeten" wie ich nach wie vor einer bin! Mit Deiner Hilfe konnte ich endlich diese Idee umsetzen. Irgendwann muss ich mal PHP lernen ... blöd halt nur, daß man vor lauter Drupalieren nicht dazu kommt, auch noch was anderes zu lernen :-)