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

Verweise zwischen Nodes; View der mir diesen Verweis zu einer gegebenen Node anzeigt

Eingetragen von longvalley (33)
am 14.07.2008 - 09:15 Uhr in
  • Views
  • Drupal 6.x

Hallo zusammen,

ich habe da mal wieder ein Problem bei der Umsetzung eines Sachverhalts mittels CKK und Views 2

Folgede Informationen sind gegeben:
------------------------------------
Ich habe 2 Content Types Mitarbeiter und Publikationen. Mitarbeiter können Publikationen veröffentlichen. Somit muss ich es irgendwie hinbekommen die Publikationen über ein Feld (CKK) mit dem entsprechenden Mitarbeiter zu verbinden....

Welche Lösung würdet ihr hierzu vorschlagen (Node Reference, lediglich NodeId.... welche Möglichkeiten sehr ihr noch?)

Desweiteren brauche ich einen View, der mir zu einem gegebenen Mitarbeiter die Publikationen anzeigt. Die URL meiner Mitarbeiter habe ich über URL-Aliase jeweils staff/Nachname_des_Mitarbeiter genannt (Nachnamen sind eindeutig).

Deswegen hatte ich schon über eine Lösung mit Arguments in Views nachgedacht... Da ich ja immer eine eindeitige URL habe 'staff/Nachname_des_Mitarbeiter' müsste man das doch irgendwie hinbekommen (gesetzt den Fall ich habe die Verwendung von Arguments richtig verstanden )

Kann eine Umsetzung mit Arguments funktionieren?

Gehen wir mal davon aus, ich habe eine Node-Reference auf den Mitarbeiter als Feld der Publikation gespeichert.

Was muss ich nun im View einstellen, damit mir lediglich die Publikationen eines Mitarbeiters angezeigt werden? Alternativ - wie sehe das ganze lediglich bei Speicherung der Node-Id in der Publikation aus?

Das ganze soll ja dann so dynamisch sein, dass je nach ausgewähltem Mitarbeiter nur seine Publikationen aufgelistet werden und das alles über einen View!

Hoffe ihr könnt mir weiterhelfen...

Danke, Gruß
Marcel

‹ CCK/Views Verlinkung auf diverse Nodes views und argumente ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Nachtrag

Eingetragen von longvalley (33)
am 14.07.2008 - 12:28 Uhr

Habe jetzt versucht das ganze mit einer NodeReference hinzubekommen.

Hatte hierzu einen Beitrag gefunden: http://www.drupalcenter.de/handbuch/6675

Danach soll man als Argument die NodeReference wählen und als Validation PHP-Code folgendes eingeben:

$args[0] = arg(1);

Leider funktioniert das so nicht. Da das Beispiel auf eine NodeId geht, habe ich auch extra einen Mitarbeiter angelegt, dessen URL auf node/nid bspw. node/30 lautet und diesem mehrere Publikationen zugewiesen.

Erwartung: Wenn ich jetzt als Argument node/30 übergebe, dann ist in arg(1) die 30 gespeichert und diese vergleicht er mit dem $args[0]-Wert....

Rein vom Verständnis zum obigen Code-Beispiel:
Müsste es nicht ein '==' sein? Obiger Code st doch eine Zuweisung, oder?
Zudem müsste nach meinem Verständnis in $args[0] die Node-Reference stehen. Ist das nicht ein Objekt? Oder wird als Reference intern nur die Node-id abgelegt. Dann würde obiger Code Sinn machen, da in $args[0] die Id steht....

Im Fall eines Objektes würde ich mit obigem Code abfragen, ob ein Objekt gleich meiner NodeId ist... Das ist natürlich immer false... Somit kriege ich keine Ergebnisse...

Könnte ich also mit $args[0]->nid auf die NodeId des übergebenen Arguments zugreifen?

Festzuhalten ist, dass ich mit obigem Code keine Ergebnisse bekomme... weshalb auch immer?

Weiter probiert....
Dieser Umgang mit Views und Arguments hat mich nicht in Ruhe gelassen, so dass ich weiter probiert habe... Ich bin dann auch zu einer Lösung gekommen (fragt mich nicht wieso das funktioniert hat...)

Was funktionert, ist Validator auf Node setzen, Typ Mitarbeiter wählen und ArgumentType Node Id auswählen...

Dann kann ich über das Argument NodeId bspw. 30 die Publikationen zum Mitarbeiter mit NodeId 30 sehen...

Nun treten aber weitere Probleme auf:
Nun zeigt sich aber ein neues Problem. Ich will mehrsprachig sein, d.h. für meinen Mitarbeiter gibt es jeweils eine Node in Deutsch (bspw. node/5) und eine Node in Englisch (bspw. node/25). Bei Erstellung der Publikation taucht in der Drop-down Box für die Auwahl des Mitarbeiters aber nur der Eintrag in der jeweiligen gerade gewählten Sprache auf, so dass ich meiner Publikationen entweder die node/5 bzw. die node/25 zuweise...

Publikationen sind aber Sprachunaghänging (der Titel ändert sich nicht je nach Sprache...) Somit stehe ich vor dem Problem, dass mit obigem Ansatz die Publikationen jeweils nur zu einem Mitarbeiter in einer Sprache verfügbar sind...

Hat jemand ne Idee wie man das umgehen kann?

Gruß
Marcel

  • Anmelden oder Registrieren um Kommentare zu schreiben

Deine Mitarbeiter sind keine

Eingetragen von netzkoop (1820)
am 14.07.2008 - 13:40 Uhr

Deine Mitarbeiter sind keine registrierten User? Mit der Rolle Mitarbeiter oder so?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Mitarbeiter = registrierte User?

Eingetragen von longvalley (33)
am 14.07.2008 - 16:46 Uhr

Hallo,

Nein, die Mitarbeiter sollen nicht mit dem System arbeiten können... Es gilt lediglich die Mitarbeiter eines Uni-Lehrstuhls abzubilden und im Zuge dessen auf einer Detailseite des Mitarbeiters die zugeordneten Publikationen anzuzeigen...

Habe es jetzt hinbekommen, indem ich als Referenz bei der Publikation den Nachnamen des Mitarbeiters abgelegt habe. Somit bin ich sprachunabhängig, da der Nachname sich nicht von einer zu nächsten Sprache ändert (im Gegensatz zur NodeId: hier wird ja für jede Sprache eine eigene Node erzeugt).

Diese Lösung gefällt mir aber noch nicht. Schöner wäre da das Vorgehen mit der Node-Referenz!

Hast du villeicht trotzdem eine Idee, warum obiger Code (siehe Link im Post Nachtrag mit $args[0] ....) nicht funktioniert hat?

Gruß
Marcel

  • Anmelden oder Registrieren um Kommentare zu schreiben

Die Anleitung im Handbuch

Eingetragen von netzkoop (1820)
am 15.07.2008 - 11:47 Uhr

Die Anleitung im Handbuch bezieht sich auf Views1.x in D6 benutzt du Views2.x
Das ganze funktioniert so leider nicht mehr... oder vielleicht noch nicht :-)
Siehe hierzu eine Diskussion auf drupal.org:
http://drupal.org/node/258801

Folgt man diesem Post müsste entsprechender validation code jetzt eigentlich lauten:

<?php
$newarg
= arg(1);
$handler->argument = $newarg;
return
true;
?>

klappt leider nicht, weil arg(1) in dieser Form nicht angenommen wird.

Habe noch keine Doku gefunden über die erwartete Syntax.
Jemand anders vielleicht schon?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Haste mal versucht dein View

Eingetragen von Tobias Bähr (4019)
am 15.07.2008 - 12:00 Uhr

Haste mal versucht dein View mit User: Current --> Filter the view to the currently logged in user. zu filtern?

----------------------------------------
Alle Angaben ohne Gewähr!!:D
http://www.tobiasbaehr.de/

  • Anmelden oder Registrieren um Kommentare zu schreiben

sind ja eben keine

Eingetragen von netzkoop (1820)
am 15.07.2008 - 12:22 Uhr

sind ja eben keine user...
hab ich doch schon gefragt - sonst wär es ja einfach :-)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das Thema ist noch nicht durch :)

Eingetragen von longvalley (33)
am 17.07.2008 - 22:25 Uhr

Hey zusammen,

also habe das jetzt wie oben beschrieben mit einem Textfeld gelöst, in das ich einfach den Nachnamen des Mitarbeiters eintrage...

Nun gibt es allerdings das Problem, dass zwischen Mitarbeiter und Publikation eine n-n-Beziehung besteht, d.h. ein Mitarbeiter kann mehrere Bücher schreiben, ein Buch kann aber auch von mehreren Mitarbeitern geschrieben werden.

Folglich müsste ich also einer Publikation auch mehrere Mitarbeiter zuordnen. Einfachste Überlegung wäre in das Textfeld einfach eine Komma-separierte Liste von Nachnamen reinzuschreiben...

Nur wie kann ich die dann als Argument in meine View verwenden?

Ich dachte mir da Folgedes: Als Argument-Field habe ich ja dieses Referenzfeld mit der Komma-separierten Liste. In meinem Validation-PHP-Code für das Argument möchte ich dann das aktuell betrachtete Feld (Hier die Frage wie ich im PHP-Code darauf zugreife?) mit explode(",", Feld) in ein Array verwandeln... Danach einfach noch schauen, ob gerade übergebenes Argument im Array vorkommt, wenn ja, dann Satz anzeigen, sonst nicht... Habe ich vielleicht die Verwendung von Argumenten falsch verstanden? Sind doch so etwas wie dynamische Filter, oder?

Mein Validation Code in PHP würde also so aussehen:

<?php

 
//Aufsplitten des Strings nach Trennzeichen ","
 
$values = explode(",", <Hier das Fragezeichen wie ich auf das Feld zugreife>);
 
//in $argument steht ja das aktuell übergebene Argument -> das Wäre im vorliegen Fall der Nachname eines Mitarbeiters
 
return in_array($argument, $values);
?>

Um mal direkt in SQL zu sprechen. Ich bräuchte ein Abfrage die folgendes leistet:

SELECT node.nid AS nid,
       node.title AS node_title

FROM node node

LEFT JOIN content_type_publication node_data_field_reffield
  ON node.vid = node_data_field_reffield.vid

WHERE (node.type in ('publication'))
AND (node_data_field_reffield.field_reffield_value LIKE '%Nachname%')

Wobei der Nachname dann ein realer Mitarbeiter-nachname wäre. Wie kriege ich es hin, das Views dort ein LIKE mit Platzhaltern verwendet und nicht ein = 'Nachname'?

Hoffe ich konnte das Problem anschaulich machen und jemand hat einen Tipp!

Bin über jeden Ratschlag dankbar!

Gruß
Marcel

  • 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 3 Tagen
  • Hey danke
    vor 1 Woche 4 Tagen
  • Update: jetzt gibt's ein
    vor 1 Woche 5 Tagen
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 2 Tagen
  • Da scheint die Terminologie
    vor 2 Wochen 3 Tagen
  • Kannst doch auch alles direkt
    vor 3 Wochen 6 Stunden
  • In der entsprechenden View
    vor 3 Wochen 6 Stunden
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 6 Stunden
  • gelöst
    vor 5 Wochen 3 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 5 Wochen 4 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20450

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

» 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 19 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