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

[gelöst] Backreference in PHP auflisten (Child Nodes)

Eingetragen von leda.ch (977)
am 18.04.2010 - 17:01 Uhr in
  • Modul-Entwicklung
  • Drupal 6.x

Hallo, jetzt habe ich mal ein kleines Problem...

Habe u.a. folgendes mit dem Node Relationships Modul abgebildet:

- Inhaltstyp Häuser
- Inhaltstyp Haus-Bewohner

1 Haus kann x Bewohner haben.

In Drupal funktioniert alles perfekt, soweit keine Sache. Auch mit Views komme ich zurande, also auch da alles OK.

In einem eigenen Modul habe ich nun Node-ID des Hauses und möchte nun alle Node-IDs der Bewohner dazu. Ich suche also eine PHP-Function die etwa
das tut:

Input: Node-ID des Hauses
Output: Array mit allen Node-IDs der Bewohner, deren Nodes auf die Input-Node-ID referenzieren, die also in diesem Haus wohnen.

Ich habe versucht, in $node nachzusehen, ob vielleicht die Child-Sammlung bereits dort drin ist, es scheint aber nicht so, die Childs sind offenbar bereits gerendert...

Bin dankbar für jede Idee :-)

‹ [gelöst] Eigene .tpl Datei in eigenem Modul bereitstellen Eigenes CCK Feld - Textarea ohne Editor ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Schonmal im Modul

Eingetragen von Alexander Langer (3416)
am 18.04.2010 - 17:18 Uhr

Schonmal im Modul nachgeschaut, ob die gewünschte Funktion dort nicht bereits vorhanden ist? Irgendwie muss das Modul sich das schließlich auch selbst zusammenreimen..

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ja, das hab ich versucht.

Eingetragen von leda.ch (977)
am 19.04.2010 - 13:14 Uhr

Ja, das hab ich versucht. Obwohl das Modul recht aufgeräumt ist, habe ich Mühe, die passende Stelle zu finden. Ich werde mich aber nochmals dahinterklemmen.

In der Zwischenzeit wäre ich schon froh um Feedback, wenn jemand diese Fragestellung schon gelöst hat. Danke.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das sieht doch stark nach

Eingetragen von wla (9461)
am 19.04.2010 - 13:36 Uhr

Das sieht doch stark nach einer zu erstellenden SQL-Abfrage aus. Wenn es in Views geht, hast Du doch schon mal einen Ausgangspunkt, indem Du die Views Abfrage nimmst. Die läßt sich evtl auch noch vereinfachen. Dann mit db_query und db_fetch_array oder db_fetch_object die Ergebnisse in einer Schleife (foreach) auslesen. Danach solltest Du Deine zugehörigen Bewohner ermittelt haben.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke für den Hinweis.

Eingetragen von leda.ch (977)
am 19.04.2010 - 14:12 Uhr

Ja, genau ich suche nach dem richtigen SQL. Die von Nodereference vorgefertigten Views zeigen keine nutzbringenden SQLs an. Ich müsste nun wahrscheinlich eine View bauen und hoffen, dass die mir mehr zeigt
OK, das wäre wirklich noch ein Ansatz.

In der Zwischenzeit habe ich herausgefunden, dass ich wohl nicht im Node Relationships Modul, sondern im Node Reference Modul innerhalb CCK suchen muss.

EDIT:
Der Tip mit dem Erstellen einer View war goldrichtig - das muss ich mir für die Zukunft merken :-)
(...da hätt ich auch selbst draufkommen können...^^)
Danke!

  • Anmelden oder Registrieren um Kommentare zu schreiben

schön das es mit views geht :-)

Eingetragen von elvis (4)
am 18.08.2010 - 13:17 Uhr
wla schrieb

Wenn es in Views geht, hast Du doch schon mal einen Ausgangspunkt, indem Du die Views Abfrage nimmst.

Hi!
Ich bin Elvis und neu hier im Forum. Ich schlage mich seit Tagen mit Views herum und versuche exakt so etwas so konstruieren. Ich habe schon einen Haufen Tutorials usw. gelesen und Casts angeschaut, aber ich komme nicht zum gewünschten Ergebnis.

Ich möchte ganz einfach (wahrs. mit einer View) eine Liste aller Child-Nodes des aktuellen Nodes auf der Seite angezeigt bekommen (mit Block oder Node Content würde ich beides zurecht kommen, also die Darstellung dann im Node). Ich bekomme nicht gebacken, wo ich genau die Einschränkung machen muss, das nur Child-Nodes angezeigt werden.

Bitte gebt mir doch einen Tipp, wie ich das hinbekomme und was ihr noch an Informationen von mir braucht!

Vielen Dank!

  • Anmelden oder Registrieren um Kommentare zu schreiben

In einer View über Nodes

Eingetragen von leda.ch (977)
am 18.08.2010 - 13:39 Uhr

In einer View über Nodes (Beiträge) musst Du
1. Filter über die beiden betroffenen Inhaltstypen (Header und Child) setzen
2. Die richtige Beziehung auswählen
3. Ein Argument für den gewünschten Header-Node angeben und danach filtern
4. Die Felder der Child-Nodes auswählen

Wenn man dann die Vorschau macht, dann kann man wunderbar den SQL angucken.

Ich hoffe, das hilft weiter.

NB: Das Nodereference-Modul liefert bereits 2 vorgefertigte Views mit für die Anzeige der Childs im Header, bzw. den Header in Childs

  • Anmelden oder Registrieren um Kommentare zu schreiben

hmmm - verstehe ich nicht

Eingetragen von elvis (4)
am 18.08.2010 - 13:52 Uhr

Ohweh :-) Jetzt dachte ich nach dem Anschauen vom Cast: http://mustardseedmedia.com/podcast/episode37 ich hätte es fast!
Da mir ja im Grunde nur noch eins fehlt, nämlich die Parent ID als Argument auszuwählen.

Dann müsste für meine Anzeige gelten ID des gerade aufgerufenen Nodes = Parent ID der Nodes in der Liste... nur das bekomme ich nicht rein.

Und deiner Beschreibung nach, verstehe ich leider wieder nur Bahnhof :-(

leda@drupal.org schrieb

In einer View über Nodes (Beiträge) musst Du
1. Filter über die beiden betroffenen Inhaltstypen (Header und Child) setzen

Bei meinem Filtermöglichkeiten gibts kein Header und kein Child? Oder verstehe ich was falsch?

Zitat:

2. Die richtige Beziehung auswählen

Hier gibts bei mir unter "Node Relativity" nur die Möglichkeit "Parent Node ID"

Zitat:

3. Ein Argument für den gewünschten Header-Node angeben und danach filtern
4. Die Felder der Child-Nodes auswählen

Wenn man dann die Vorschau macht, dann kann man wunderbar den SQL angucken.

Ich hoffe, das hilft weiter.

NB: Das Nodereference-Modul liefert bereits 2 vorgefertigte Views mit für die Anzeige der Childs im Header, bzw. den Header in Childs

Das Nodereference Modul liefert mir leider gar keine Views zur Anzeige der Childs :-( Was einigermaßen in die Richtung geht ist die View "backlinks", aber die macht ja genau das Gegenteil. Zeigt mir ja Parents an und nicht Childs....

  • Anmelden oder Registrieren um Kommentare zu schreiben

Oh, du hast ein englisches

Eingetragen von leda.ch (977)
am 18.08.2010 - 14:19 Uhr

Oh, du hast ein englisches Drupal, ich habe es auf Deutsch - macht die Beschreibung nicht einfacher...

Eigentlich sprechen wir hier von 2 Dingen...

1. Wie zeige ich die Child-Nodes eines Nodes in seiner Node-Ansicht an
2. Wie erstelle ich selber eine View über Parent-Child-Nodes.

Zu 1:
Das Modul Nodereference bietet alles bereits fixfertig an. Da sind in den Ansichten zwei vorgefertigte Views, nämlich noderelationships_backref
und noderelationships_noderef (die kann man erweitern, damit das ganze schön aussieht, aber für den Augenblick reichts so).

Ich kann Dir das nur mit meinem Beispiel mal erklären.Da ist also ein Inhaltstyp Haus (parent) und ein Inhaltstyp Bewohner (child). Die beiden sind über die Nodereference 1:x verknüpft.
Dann gehe zum Inhaltstyp Haus, da gibts oben ein Register "Beziehungen" und dort "Back reference Settings".
Dort ist dann (wahrscheinlich unter deaktiviert) die backreferenceView zu sehen: die schiebst du hoch nach Tab oder Page. Damit wird in der Nodeansicht die View entweder als separates Tab oder als Tabelle innerhalb der Node-Ansicht eingeblendet.
Im Inhaltstyp Bewohner wird der parent automatisch eingeblendet. Auch da gibts weitere Optionen, musst Du mal angucken.

Views selbst wird in diesem Fall also nur zum "schönen" der bereits vorhanden Views gebraucht!

Zu 2.
Brauchst Du mit Punkt 1 eigentlich gar nicht mehr. Aber wie gesagt, in View erhalte ich unter "Beziehungen" wirklich nur die Felder, die für eine Beziehung Sinn machen, das heisst jene, die auf einen Parent verweisen. Bei Dir ist das schon das gefundene Feld, denke ich.
Bei Filtermöglichkeiten Header/Child) meinte ich natürlich, dass Views in meinem Beispiel nur Nodes aus den Inhaltstypen Haus und Bewohner selektieren soll, andere machen ja keinen Sinn.

  • Anmelden oder Registrieren um Kommentare zu schreiben

also...

Eingetragen von elvis (4)
am 18.08.2010 - 14:30 Uhr

Also ich denke ich will einfach Nummer 1 erreichen.

Ich rufe node/X auf und auf hier bekomme ich neben seinem Text usw. drunter eine Liste seiner Childs...

Und obwohl ich das Modul "Node Reference" installiert habe, bekomme ich in meinen Views NICHT deine beschriebenen Views(noderelationships_backref
und noderelationships_noderef). Ich bekomm lediglich in meinen Blocks folgende neue Einträge:

  • Node relativity: ancestors
  • Node relativity: link operations
  • Node relativity: parent
  • Node relativity: children

Das letzte wäre ja Prima. Genau das was ich bruache, aber die scheinen alle nicht zu funktionieren. Jedenfalls zeigen sie nichts an :-(

Eine weiter Vermutung ist, ich müsste die Parent-Child-Beziehung noch irgendwo ein zweites Mal nachpflegen, dass sie hier im Node Reference auch Wirkung zeigt?
Ich habe die Parent der jeweiligen Nodes lediglich beim erstellen ausgewählt, reicht das?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hab was herausgefunden

Eingetragen von elvis (4)
am 18.08.2010 - 14:57 Uhr

Hallo!

Ich habe wieder was tolles heraus gefunden. Das Modul "Node Hierarchy" mit einer View "nodehierarchy_children_list" scheint mir meinen Wunsch zu erfüllen.
Nur leider ist die Ausgabe leer. Was kein Wunder ist bei der SQL (hier mit Beispiel NODE 7):

SELECT node.nid AS nid,
   node.title AS node_title,
   nodehierarchy.order_by AS nodehierarchy_order_by
FROM node node
LEFT JOIN nodehierarchy nodehierarchy ON node.nid = nodehierarchy.nid
WHERE (node.status <> 0) AND (nodehierarchy.parent = 7)
   ORDER BY nodehierarchy_order_by ASC

vor allem, da ich in PHPMyadmin in der Tabelle gesehen habe, das dort alle "parent"-Felder = 0 sind? Wie kommts und wie kann ich das nachträglich ändern ohne in der Tabelle zum zu pfuschen?

Grüße

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wir reden glaub nicht vom

Eingetragen von leda.ch (977)
am 18.08.2010 - 15:16 Uhr

Wir reden glaub nicht vom selben Modul...

Ich habe neben Node Reference noch Node Relationships, wie im Eröffnungsthread bereits geschrieben...Das Modul funktioniert absolut perfekt, es "kann" sogar wunderbar ein ER-Diagramm darstellen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • 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?
Weiter

Neue Kommentare

  • Inzwischen sind wir bei
    vor 1 Tag 11 Stunden
  • Migrieren von D7 auf D8/ D10/ D11
    vor 2 Tagen 3 Stunden
  • melde mich mal wieder, da ich
    vor 7 Wochen 6 Tagen
  • Hey danke
    vor 8 Wochen 2 Stunden
  • Update: jetzt gibt's ein
    vor 8 Wochen 20 Stunden
  • Hallo, im Prinzip habe ich
    vor 8 Wochen 5 Tagen
  • Da scheint die Terminologie
    vor 8 Wochen 5 Tagen
  • Kannst doch auch alles direkt
    vor 9 Wochen 2 Tagen
  • In der entsprechenden View
    vor 9 Wochen 2 Tagen
  • Dazu müsstest Du vermutlich
    vor 9 Wochen 2 Tagen

Statistik

Beiträge im Forum: 250235
Registrierte User: 20462

Neue User:

  • marouane.blel
  • capilclinic
  • Quabzibboter

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