Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Views ›

User-Reference als Argument in Views

Eingetragen von GevatterTod (85)
am 15.10.2010 - 18:30 Uhr in
  • Views

Views ist ja bekanntlich super, Argumente auch. Was das noch toller machen würde, wäre wenn ich folgendes wüßte:
Ich verwende ein Benutzerreferenz-Feld in einem Inhaltstyp um Bestimme Benutzer als Ansprechpartner für diesen jeweiligen Node auswählbar zu machen.
Daten dieser Benutzer würde ich gern über einen Views-Block jeweils zum Node anzeigen lassen. An Argumenten kann ich aber ja standardmäßig nur die Node-ID vergeben. Wie stelle ich es an dass ich die Userreferenz als Argument nutzen kann um nur die User zu listen die für diesen Node ausgewählt wurden?

‹ [gelöst]View verwendet Node-Template nicht [gelöst] Slideshow mit Views und CCK Bilder Feld ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Versteh ich nicht, kannst du

Eingetragen von netzkoop (1820)
am 16.10.2010 - 11:01 Uhr

Versteh ich nicht, kannst du nicht das Feld als Argument auswählen? Hast du mal ein Screenshot deiner Views-Einstellungen?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Vielleicht hilft das

Eingetragen von GevatterTod (85)
am 18.10.2010 - 15:28 Uhr

Vielleicht hilft das weiter:

Hab das Feld Userreferenz als argument entsprechend wie oben übergeben, der Block zeigt aber nada an.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Du solltest nicht

Eingetragen von Ionit (1802)
am 18.10.2010 - 16:09 Uhr

Du solltest nicht "Beitrags-ID aus der URL" wählen sondern PHP-Code.

Du willst ja nicht die ID aus der URL sondern das Argument aus dem User-Reference-Field

Probiere mal folgendes in das PHP-Code-Feld einzutragen.

return $node->field_dein__userreference_feldname[0][uid];

(keine PHP-Tags angeben)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hm... nein damit geht es

Eingetragen von GevatterTod (85)
am 18.10.2010 - 16:22 Uhr

Hm... nein damit geht es nicht. Wenn ich dem Block unten in der Vorschau eine id eines existierenden Users eingebe kommt auch kein Ergebnis, das Problem erkennt man an der SQL Abfrage:

LEFT JOIN content_field_ansprechpartner node_data_field_ansprechpartner ON node.vid = node_data_field_ansprechpartner.vid
LEFT JOIN content_type_profile node_data_field_foto ON node.vid = node_data_field_foto.vid
WHERE (node.type in ('profile')) AND (node_data_field_ansprechpartner.field_ansprechpartner_uid = 27)

Die Daten die ich will stammen ja aus einem Node-Type "Profil" den ich mit Node-Profile dem jeweiligen User zugeordnet habe. Ich glaube fast, dass ich mit Views hier garnicht weiterkomme oder?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Darf ich fragen warum Du

Eingetragen von Ionit (1802)
am 18.10.2010 - 16:34 Uhr

Darf ich fragen warum Du Drupal 5 benutzt? Node-Profile gibts doch nur für die 5er Version oder? Wenn ich mich nicht irre, ist doch aber der Screenshot von Views2 - also für Drupal 6?

Gebe ich in meinem View unter "Vorschau" eine ID an (Argument das User-Reference-Feld) , wird auch nichts angezeigt - der View in der Node zeigt aber die korrekten Ergebnisse an.

Wird der View im User-Profil aufgerufen domain.com/user/benny oder in einem Node domain.com/node/benny ?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Probiere mal folgenden Code

Eingetragen von Ionit (1802)
am 18.10.2010 - 16:58 Uhr

Mein oben aufgeführter Return-Wert war unvollständig - der View weiß ja nicht wo er sich befindet - daher muss erst der Node geladen werden. Probiere daher mal folgenden Code für das Feld "PHP-Code"

Vorrausgesetzt - Dein View wird in einem Node aufgerufen - nicht im Profile!

if (arg(0) == 'node' && is_numeric(arg(1))) {
  $node = node_load(arg(1));
  return $node->field_dein_userreference_feld[0][uid];
}

  • Anmelden oder Registrieren um Kommentare zu schreiben

Sorry... "Content Profile"

Eingetragen von GevatterTod (85)
am 18.10.2010 - 17:08 Uhr

Sorry... "Content Profile" nicht "Node-Profile"... mea culpa.
Mit dem Code oben geht es auch nicht, ich denke das Problem ist, dass ich ja das Argument nicht mit dem Primärschlüssel der Profile vergleichen muss sondern mit dem Fremdschlüssel der zwischen Profil und User besteht, ich hätte also quasi nicht die User verknüpfen müssen sondern die Profile direkt, oder sehe ich das falsch.
Gibts einen Weg da irgendwie ranzukommen über Views?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Was Du mit Zitat: .... dass

Eingetragen von Ionit (1802)
am 18.10.2010 - 17:12 Uhr

Was Du mit

Zitat:

.... dass ich ja das Argument nicht mit dem Primärschlüssel der Profile vergleichen muss sondern mit dem Fremdschlüssel der zwischen Profil und User besteht, ich hätte also quasi nicht die User verknüpfen müssen sondern die Profile direkt, oder sehe ich das falsch

meinst, kann ich leider nicht nachvollziehen.

Was soll "Primärschlüssel" und "Fremdschlüssel" sein?

Tut mir leid - ich verstehe Dich leider nicht.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich meine auf Datenbankebene.

Eingetragen von GevatterTod (85)
am 18.10.2010 - 17:36 Uhr

Ich meine auf Datenbankebene. Die Node-ID (Primärschlüssel).
Ich kann ja zum Beispiel Node-ID als Argument angeben und dann alle damit verknüpften Inhalte anzeigen bzw herausfiltern
Aber hier in dem Beispiel will ich ja
-Benutzer-ID übergeben als Argument
-herausfinden welches Profil zu welchem Benutzer gehört (und genau da glaube ich liegt die Schwierigkeit)
-Inhalte der Felder aus diesem Profil auslesen

Der Weg der einfach funktionierten würde wäre ja z.B:
-NODE-ID des Profils übergeben als Argument
-Felder des passenden Profils zurückgeben

Hinzu kommt, dass ich ja auch in dem Feld der Benutzereferenz nicht nur 1 Argument sonder X übergeben muss, da der Inhaltstyp um den es geht durchaus mehrere Verknüpfte User haben kann.

Hoffe ich habs halbwegs erklärt.

Ich brauche aber leider die Benutzerreferenz auch für eine Berechtigungsgeschichte... Crap! Zur Not werd ichs übers Template machen, ist halt weniger komfortabel, und andererseits würde mich auch einfach interessieren wie weit man mit den Argumenten gehen kann.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Also hab es jetzt nochmal

Eingetragen von netzkoop (1820)
am 18.10.2010 - 18:21 Uhr

Also hab es jetzt nochmal alles gelesen...
Du möchtest unter der URL node/123 einen Block anzeigen lassen mit Daten aus dem Content-Profile-Node des referenzierten Users?

Grundsätzlich sei dir das Devel-Modul empfohlen, damit kannst du dir die Felder und Werte von Nodes und Usern anzeigen lassen.

Vorgehen:
Block-View erstellen mit den gewünschten Content-Profile Feldern
Argument ist "Benutzer: Uid" damit du nur die des Users bekommst. Falls es mehr als ein Profil pro User gibt geht das so nicht...
Dann Standardargument wie oben beschrieben

<?php

 
if (arg(0) == 'node' && is_numeric(arg(1))) {
 
$node = node_load(arg(1));
  return
$node->field_dein_userreference_feld[0][uid];
}
?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ups da war mein Browser mal

Eingetragen von netzkoop (1820)
am 18.10.2010 - 18:29 Uhr

Ups da war mein Browser mal wieder etwas länger offen :-)

Im Template kannst du in einer Schleife alle uids auslesen und trotzdem die View benutzen falls du möchtest, ebenfalls in Schleife
mittels views_embed_view()

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hab das Thema jetzt über

Eingetragen von GevatterTod (85)
am 21.10.2010 - 09:47 Uhr

Hab das Thema jetzt über Templating gelöst. Vielen Dank für die Hilfe!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Gleiches Problem

Eingetragen von mleitl (26)
am 29.10.2010 - 15:54 Uhr

Hallo,
ich habe das gleiche Ziel:

ich möchte zu meinem Inhaltstyp-Node x (Produkt) ein Profil des Herstellers angeben. Der Hersteller hat im 2 Profile über content profile. Ein Basisprofil, da wird ihm die Rolle Kunde mit Kaufberechtigung zugewiesen - und ein Verkäuferprofil mit erweiterten Rechten, um Produkte einzustellen.

Ich kriege es aber nicht hin, die entsprechenden Verkäufer-Angaben in einem Views-Block darzustellen, der dann in der Seitenleiste neben dem Produkt angezeigt werden soll.

Auch mit dem oben genannten php-code funktioniert es nicht (vielleicht auch, weil ich das "fiel_dein_userreference_feld" nicht richtig ersetzt habe.

Gibts noch erweiterte Lösungsvorschläge?

Tausend Dank im voraus
Michael

  • Anmelden oder Registrieren um Kommentare zu schreiben

Aber die View an sich

Eingetragen von netzkoop (1820)
am 29.10.2010 - 16:18 Uhr

Aber die View an sich funktioniert?
Wie heisst denn dein Feld?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: Auch mit dem oben

Eingetragen von Ionit (1802)
am 29.10.2010 - 16:20 Uhr
Zitat:

Auch mit dem oben genannten php-code funktioniert es nicht (vielleicht auch, weil ich das "fiel_dein_userreference_feld" nicht richtig ersetzt habe.

Das Feld musst Du natürlich mit Deinem Feldnamen ersetzen - ansosten kann das ja auch nicht funktionieren ;-)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich habe als Argument nun

Eingetragen von mleitl (26)
am 30.10.2010 - 07:35 Uhr

Die View funktioniert nun so halb. Sie ist als Block in der Seitenleiste angeordnet, daneben wird ein Produkt-Node angezeigt.
Ich habe als Argument nun Node: Beitrags-ID gewählt und "Standardargument zu Verfügung stellen"/Beitrags-ID aus der URL gewählt.

Dann sehen ich im Autorenprofil in der Seitenleiste nun den richtigen Autor meines Produkts. Allerdings werden nur die Angaben aus den Feldern mit diesem Schema: Feld Benutzer: Name: angezeigt

Das Profil besteht aus aber vor allem aus CCK-Feldern (es ist mit Content Profile angelegt). Und die Inhaltsfelder
Firma:
Kurzbeschreibung:
Kenntnisse:
Referenzen:

werden nun noch nicht mit ihrem passenden Inhalt gefüllt. Da stehen nur die Feldbezeichnungen - ohne den Inhalt.

Die Felder sind solche: Feld Inhalt: Firma (field_seller_company)

Wo steckt da der Wurm?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ähmm - ich denke Du willst

Eingetragen von Ionit (1802)
am 30.10.2010 - 08:01 Uhr

Ähmm - ich denke Du willst als Argument das Reference Feld nehmen?

Da kann man natürlich "Standardargument zu Verfügung stellen"/Beitrags-ID aus der URL" nicht verwenden.

Und ich dachte Du willst den Hersteller im View anzeigen und nicht den Author des Produkt-Nodes?

Im Moment verstehe ich das nicht so recht was Du erreichen möchtest.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Der Autor des Produkt-Nodes

Eingetragen von mleitl (26)
am 30.10.2010 - 08:53 Uhr

Der Autor des Produkt-Nodes ist bei mir gleichzeitig der Hersteller.
Ein User-Reference-Feld habe ich nicht.
Und: Es funktioniert ja - aber eben nur zum Teil.

Im Augenblick sieht das so aus wie im Bildanhang. Der Ausschnitt zeigt den Hersteller, der sein Produkt selbst online gestellt hat.

AnhangGröße
Bildschirmfoto 2010-10-30 um 09.51.00.png 43.65 KB
Bildschirmfoto 2010-10-30 um 08.23.28.png 18.82 KB
  • Anmelden oder Registrieren um Kommentare zu schreiben

Gib mal unter "Beziehungen"

Eingetragen von Ionit (1802)
am 30.10.2010 - 09:03 Uhr

Gib mal unter "Beziehungen" Node:Content-Profile an.

Dann klicke jedes einzelene Feld von
Firma:
Kurzbeschreibung:
Kenntnisse:
Referenzen:
an - und wähle im oberen Bereich "Beziehung:Content-Profile" aus.

  • Anmelden oder Registrieren um Kommentare zu schreiben

DANKE!!!

Eingetragen von mleitl (26)
am 30.10.2010 - 09:17 Uhr

Super. Jetzt funktioniert es.

Vielen Dank für diese prompte Hilfe. Jetzt versuche ich mal zu verstehen, was da eigentlich passiert :-)).

Grüße
Michael
(gute Fußzeile übrigens in Deinem Post)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Der View "weiß" ja nicht

Eingetragen von Ionit (1802)
am 30.10.2010 - 09:46 Uhr

Der View "weiß" ja nicht woher er die Felder nehmen soll - wenn Du dem View sagst "Nimm das Argument aus der ID", versucht der View die Felder im Produkt-Node zu finden (welche ja nicht vorhanden sind) - deswegen erfolgt eine leere Ausgabe.

Da sich die Felder aber im Content-Profile befinden, müssen wir die Beziehung herstellen.

Stell Dir vor Du befindest Dich in einer fremden Wohnung und jemand sagt dann "Gib mir mal die Vase" - da Du gerade in der Wohnstube bist und dort keine Vase findest - würdest Du sagen "Hier ist nichts"(leere Ausgabe) - Würde aber dazu gesagt "Die ist in der Küche" - wäre die "Küche" die "Beziehung" und Du wüsstest wo Du suchen sollst und findest auch die Vase (die da auf dem Tisch steht) ;-)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Sehr gut erklärt. Wenn Du für

Eingetragen von mleitl (26)
am 30.10.2010 - 10:01 Uhr

Sehr gut erklärt. Wenn Du für alle Views-Fälle das so toll beantworten kannst, sollten wir ein Views-Handbuch schreiben :-)))
Ich stell die doofen Fragen, du gibts die schlauen Antworten...

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 1 Woche 6 Tagen
  • Hey danke
    vor 1 Woche 6 Tagen
  • Update: jetzt gibt's ein
    vor 2 Wochen 14 Stunden
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 5 Tagen
  • Da scheint die Terminologie
    vor 2 Wochen 5 Tagen
  • Kannst doch auch alles direkt
    vor 3 Wochen 2 Tagen
  • In der entsprechenden View
    vor 3 Wochen 2 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 2 Tagen
  • gelöst
    vor 5 Wochen 5 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 5 Wochen 6 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20451

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 25 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association