[gelöst] Views-Modul - Wie übergebe ich Parameter?
Eingetragen von df8oe (67)
am 27.04.2009 - 10:13 Uhr in
am 27.04.2009 - 10:13 Uhr in
Hallo an alle,
ich habe mittels dieses Moduls eine Tabelle aus bestimmten gefilterten Usern zusammengebastelt und sie als "Link" definiert. Nun möcjhte ich, daß beim Anklicken eines dieser Links eine weitere Ansicht aufgerufen wird, in der ich weitere Profilpunkte selektiert als Tabelle anzeige. Das Filterkriterium soll dabei der User sein, den ich angeklickt habe. Ich muß also irgendwie einen Parameter übergeben, den dann die neue Ansicht als Filterkriterium verwendet. Leider habe ich dazu keine HowTos oder Beispiele gefunden...
Hat jemand einen Tipp für mich?
Gruß
df8oe
- Anmelden oder Registrieren um Kommentare zu schreiben
Dazu musst du einfach die
am 27.04.2009 - 10:29 Uhr
Dazu musst du einfach die aufzurufende URl dann bei der noch zuerstellene View angeben und die Argumente mit %. Die Tabelle hat jetzt Pfade ala user/123/meinehobbies.
Dann muss die URL dann lauten user/%/meinehobbies, die Benutzer-Id ist hier dynamisch, weil bei jedem Benutzer anders. Und als Argument wählste Benutzer-ID.
Dann weiß Views aha % ist die Benutzer-ID.
----------------------------------------
http://tobiasbaehr.de/
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Das Verhältnis anderen zu helfen muss höher sein, als von anderen Hilfe zu erfragen/erwarten.
Ganz so einfach nicht.
am 27.04.2009 - 11:20 Uhr
Dann weiß Views aha % ist die Benutzer-ID.
Ganz so einfach nicht. Du musst dem View im Konfigurationsbereich Argumente sagen das der Parameter in der URL auf bestimmte Weise zu betrachten ist. Woher soll es der View sonst wissen. Eine URL mit einem Argument ist ja kein Zauberstring in dem durch Magie der View weiss was los ist. Ein Argument koennte ja beispielsweise auch eine Term ID sein.
------------------------
Quiptime Group
Da geht noch was.
Hmmmm.... So grob habe ich
am 27.04.2009 - 11:32 Uhr
Hmmmm.... So grob habe ich das verstanden. Ich habe mir in der ersten Seite mit dem integrierten View jetzt die Benutzer-IDs als Übergabeparameter sefiniert, funktioniert auch. Die Links sehen jetzt alle so aus:
http://haupturl/spezielprofil/3
Wobei die "3" durch die jeweilige Benutzer-ID ersetzt eird.
Es soll jetzt für jeden angeklickten Link die *gleiche Seite* aufgerufen werden, in der wiederum ein view steckt. Und dieser View soll die Benutzer-ID als Filterkriterium übernehmen.
Also in diesem Fall sollen bestimmte Profilfelder des Users mit der übergebenen ID "3" angezeigt werden. In einem anderen Fall sollen es die Profilfelder des Users mit der ID "33" sein etc.
Wie ich das hinbekomme, das weiß ich noch nicht...
Danke für Deine Hilfe!
df8oe
Views advanced
am 27.04.2009 - 13:48 Uhr
... die *gleiche Seite* aufgerufen werden, in der wiederum ein view steckt. ...
Tipp:
Man kann Views auch einbetten um sie aufzurufen. Beim Einbettten kann man gezielt eine Ansicht eines View ansprechen sowie auch ein oder mehrere Argumente uebergeben.
Ansichten in einem View sind Seiten-Ansichten oder Block-Ansichten. Ein View kann mehr als nur eine Seiten- oder Block-Ansicht haben. Dadurch kann man mit einem einzelnen View mit beispielsweise mehreren Seiten-Ansicht sehr flexibel unterschiedliche Ausgaben erzeugen.
Aber Generell:
Damit eine Seiten-Ansicht eines View Argumente in der URL erkennen und verarbeiten kann muss man in der Seiten-Ansicht eines View definieren was das Argument ist und wie sich diese Views-Ansicht mit und ohne Argument in der URL verhalten soll.
------------------------
Quiptime Group
Da geht noch was.
Bin weiter... Ich habe zwei
am 27.04.2009 - 16:16 Uhr
Bin weiter...
Ich habe zwei Ansichten erstellt, die ich mittels insert_view auf eine "Standardseite" eingebettet habe. Beide Ansichten erstellen genau die Profilfelder, die ich haben will.
Hier der "Quelltext" der Seite:
++++++++++++++++++++++++++++++++++++++
[view:show_ortsverbandskontakt==20]
[view:show_ortsverbandstreffen==20]
++++++++++++++++++++++++++++++++++++++
Wenn ich die "20" durch andere Zahlen ersetze ( es sind die UIDs), dann wird genau das angezeigt, was ich will. Soweit so gut.
In der "Ansichtsseite", deren Links hierauf zeigen, habe ich alles mögliche ausprobiert, was ich als Links setzen soll. Ich bekomme es nicht hin, daß die uid, die ich übergeben möchte, von meiner Seite mit den eingebetteten Ansichten übernommen wird.
Ich habe anstelle der "20" schon "arg1", "$arg1" probiert - es wird scheinbar immer die NULL übergeben. Und was ich in den "Link-String" der Ansichtsseite setzen soll, die verweist, weiß ich auch nicht :(
df8oe
Ich habe doch schon
am 27.04.2009 - 16:52 Uhr
Ich habe doch schon geschrieben. Bei dem Bereich Argumente (über Felder) wählst du Benutzer-ID aus.
----------------------------------------
http://tobiasbaehr.de/
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Das Verhältnis anderen zu helfen muss höher sein, als von anderen Hilfe zu erfragen/erwarten.
Screenshot rechte Seite + views_embed_view()
am 27.04.2009 - 18:42 Uhr
Screenshot rechte Seite: "Argumente"
Man kann Views auch mit PHP Code einbetten: Zauberwort bei D6 ist "views_embed_view"
Kleine Hilfe zum Einbetten mittels PHP Code sollte Die dieser Post liefern: Mit einem View Nodes der User zählen (Vorsicht beim Surfen auf dieser Seite. Ist meine Testsite)
------------------------
Quiptime Group
Da geht noch was.
@Spartacus Leider hilft mir
am 27.04.2009 - 18:42 Uhr
@Spartacus
Leider hilft mir das nicht weiter!
Ich habe gemäß deinem Tipp, der mir wirklich weitergeholfen hat, es eingerichtet, daß der erzeugte Link die Uid weitergibt. Bedeutet: Die erzeugte URL sieht so aus:
http://hauptseite/unterseite/Uid
Nur:
Wie bekomme ich die "variable" Uid (die sich ja in einem "/" hinter dem Seitennamen verbirgt) in eine Variable, die ich an die Ansicht weiterreichen kann??
Einfach ausgedrückt:
Ich habe einen Aufruf der Form
http://hauptseite/unterseite/Uid
Die Unterseite wurde als Seite in Drupal angelegt, dort wurden Ansichten (Blockes) eingebunden, wie folgt:
++++++++++++++++++++++++++++++++++++++
[view:show_ortsverbandskontakt==20]
[view:show_ortsverbandstreffen==20]
++++++++++++++++++++++++++++++++++++++
Was muß ich anstelle der "20" eintragen, damit der Wert "Uid" aus dem Pfad oben übernommen wird? "Uid" ist eine Zahl ( in meinem Fall von 1...66). Auch ein manueller Aufruf von
http://hauptseite/unterseite/44
sollte zur Ausgabe der Profildaten des Users "44" führen!Dabei hilft dein Hinweis mir leider nicht...
df8oe
PS:
Ich programmiere selbst in php und könnte das Problem in einer qad (quick-and-dirty) Lösung durch Eingriff in eines der Module lösen. Das kann aber nicht der Sinn der Sache sein - bei einem Update wäre alles wieder futsch!
Argumente mit dem Prozentzeichen % angegeben
am 27.04.2009 - 18:47 Uhr
1. Du musst den View konfigurieren und ihm sagen das eine Ziffer in der URL eine User ID ist.
2. Eine entsprechende URL einer solchen View-Ansich lautet beispielsweise: unterseite/%
Allgemein: Bei Drupal 6 werden in Views und in Panels Argumente mit dem Prozentzeichen % angegeben.
------------------------
Quiptime Group
Da geht noch was.
Guckst Du Screenshot hier:
am 27.04.2009 - 18:52 Uhr
Guckst Du Screenshot hier:
------------------------
Quiptime Group
Da geht noch was.
So funktioniert es -
am 28.04.2009 - 07:41 Uhr
So funktioniert es - ABER:
Ich möchte auf einer Seite ZWEI unterschiedliche Ansichten vereinen, die durch Text getrennt sind. Deswegen hatte ich auch zwei unterschiedliche Ansichten erstellt und diese als BLOCK definiert. In "Block" gibt es aber den Menüpunkt "Pfad" nicht.
Für eine "perfekte Lösung" bleiben also Fragen offen:
1) Mit welchem Namen spreche ich innerhalb einer "Drupal-Seite" den "Schwanz" an, der ihrer URL angehängt ist? Also:
http://hauptpfad/drupalseite/12/34/45
Mit welchem Namen erreiche ich innerhalb der Drupal-Seite die drei Variablen, um sie mittels insert_view in der Form [view:mein_view==??] weiterzugeben?
oder
2) Wie kann ich eine Ansicht erstellen, die eine Seite ist, aber auf ihr befinden sich zwei optisch getrennte Blöcke mit HTML-Elementen zwischen ihnen?
Geht das irgendwie?
Als erste Notlösung (funktionell ok, aber optisch eben nicht so, wie es sein soll) habe ich deinen Tipp befolgt -vielen Dank dafür!
df8oe
Wie gesagt, wenn etwas
am 28.04.2009 - 07:54 Uhr
Wie gesagt, wenn etwas dynamisch in der URL sein soll. Musst du die Argumente verwenden und das in der Reihenfolge wie sie auftreten. Wenn ein Argument nicht von Views beachten werden soll, kannst Globals:Null auswählen.
Und du kannst auch bei den Basiseinstellungen im Kopfbereich, Fußbereich HTML verwenden oder im Template der Anzeige. Am besten du installierst Dir mal das Modul advanced_help, damit erhälst du weitere Hilfe/Anleitung zu Views.
----------------------------------------
http://tobiasbaehr.de/
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Das Verhältnis anderen zu helfen muss höher sein, als von anderen Hilfe zu erfragen/erwarten.
Danke sehr - ich habe es
am 28.04.2009 - 09:48 Uhr
Danke sehr - ich habe es jetzt geschafft, beide "alten Blockansichten" auf einer neuen "Seitenansicht" zu vereinen - dank des zusätlichen Hilfemoduls. Es sieht ja wohl so aus, als wenn das "views"-Modul ein schweizer Taschenmesser ist...
Gruß
df8oe
Bequemer und mit mehr Moeglichkeiten
am 28.04.2009 - 10:04 Uhr
beide "alten Blockansichten" auf einer neuen "Seitenansicht" zu vereinen
Bequemer und mit mehr Moeglichkeiten kann man dies auch mit dem Modul Panels realisieren. Man erstellt eine Panelseite welche die beiden "alten" Views gemeinsam anzeigt. Und bei Bedarf kann man in dieser Panelseite fast beliebige weitere Inhalte diesen beiden "alten" Views hinzufuegen. Das nur als Ausblick fuer Dein weiteres Einarbeiten in Drupal.
Views ist ein schweizer Taschenmesser.
Views mit Panels sind eine Waffe.
------------------------
Quiptime Group
Da geht noch was.