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

[z. Teil gelöst] Wie kann man Feld Werte in einem neuen Node aus einem referenziertem Node erhalten?

Eingetragen von Thoor (3678)
am 17.01.2011 - 11:56 Uhr in
  • Views
  • Drupal 6.x

Ich habe zwei Inhaltstypen.

Node Typ PARENT mit einem Textfeld "Farbe"
Node Typ CHILD mit einem Referenced Field zum Node Typ PARENT.

Wenn ich einen Node des Typs PARENT erstellt habe und diesem eine Farbe Blau zugefügt habe habe, welche Möglichkeiten gibt es dann in Inhalten des Typs CHILD die Farbe des referenzierten Typs PARENT automatisch anzuzeigen?

‹ ViewsRotator hilfe benötigt View aus views2 auf view verlinken ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Das sollte mit dem Bordmittel

Eingetragen von Alexander Langer (3416)
am 17.01.2011 - 12:19 Uhr

Das sollte mit dem Bordmittel "Relationship" aus dem Bordmittel-Fundus von Views möglich sein..

  • Anmelden oder Registrieren um Kommentare zu schreiben

Du kannst das auch einfach im

Eingetragen von docmiller (89)
am 19.01.2011 - 21:49 Uhr

Du kannst das auch einfach im Child ein CKK Feld anlegen und dieses über backreference mit dem Parent verbinden. So wird das CCK Feld vom Child mit dem des Parent sychnonisiert.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Alexander Langer schrieb Das

Eingetragen von Thoor (3678)
am 01.02.2011 - 14:51 Uhr
Alexander Langer schrieb

Das sollte mit dem Bordmittel "Relationship" aus dem Bordmittel-Fundus von Views möglich sein..

So ist ne Zeit her, aber ich bin wieder vor dem Problem gelandet. Mit VIEWS und Relationship haut das schon mal hin. Nur wenn ich mehrere Nodes der beiden Inhaltstypen habe, dann erhalte ich mit meiner Ansicht leider alle Werte. Ich möchte natürlich ausschliesslich die entsprechenden Feldwerte des refernezierten Nodes integrieren. Hat jemand ne Idee, mit welchem Argument ich das hinbekommen kann?

  • Anmelden oder Registrieren um Kommentare zu schreiben

docmiller schrieb Du kannst

Eingetragen von Thoor (3678)
am 01.02.2011 - 14:53 Uhr
docmiller schrieb

Du kannst das auch einfach im Child ein CKK Feld anlegen und dieses über backreference mit dem Parent verbinden. So wird das CCK Feld vom Child mit dem des Parent sychnonisiert.

Also das Modul habe ich mir eben mal angesehen ... aber ich blicke es irgendwie nicht! Das greift doch nur bei Feldtypen "Beitragsreferenz" - oder? Wie kann ich denn damit beispielsweise ein Logo eines PARENT Inhalstypen im CHILD Inhaltstypen anzeigen? Hast Du vielleicht mal kurz ne Erklärung zu dem Modul für mich? Die readme.txt gibt auch nix her ...

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich habe das Problem dann mit

Eingetragen von Thoor (3678)
am 01.02.2011 - 18:26 Uhr

Ich habe das Problem dann mit dem Modul http://drupal.org/project/nodereference_views lösen können. Bin damit dann aber zu unflexibel, was die einzelnen Felder anbelangt.

Deshalb interessiert mich noch die PHP Variante in der node.tpl.php. Da müsste ich doch auch auf ein PARENT Feld zugreifen können ... oder?
Wenn ich im PARENT ein Feld field_logo habe und dieses mit <?php print $node->field_logo[0]['view']; ?> ausgeben kann, dann gibts doch sicherlich ein PHP Konstrukt, wie ich im CHILD Node mit "nid" darauf zugreifen kann - oder? Kann mir da jemand beim PHP Befehl behilflich sein?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Jetzt mal langsam: Was soll

Eingetragen von docmiller (89)
am 01.02.2011 - 19:06 Uhr

Jetzt mal langsam: Was soll denn das Logo sein? Eine Node, ein CCK Feld, ein Bild, ein User?!?!?!?

Backreference funktioniert so, dass Du zwei CCK Felder in beide Richtungen auf einander zeigen lassen kannst.

Ohne Backreference ist das so:

Parent Node:
CCK Feld XY (Typ "node reference") kann auf ein Child PQ zeigen.

Child Node:
hat kein CCK Feld, das auf sein Elternteil verweißt. Der Child weiß nicht, wer sein Elternteil ist.

Jetzt kommt backreference ins Spiel: dem Child-Node wird eine CCK Feld "Wer ist mein Elternteil" gegeben, das über ein "node reference" CCK-Typ auf sein Elternteil verweist. Du kannst damit 1:1 Verbindungen zwischen Nodes herstellen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

docmiller schrieb Jetzt mal

Eingetragen von Thoor (3678)
am 02.02.2011 - 00:17 Uhr
docmiller schrieb

Jetzt mal langsam: Was soll denn das Logo sein? Eine Node, ein CCK Feld, ein Bild, ein User?!?!?!?

Wie oben im eigentlichen Thread geschrieben geht es um CCK Felder. Das können alle möglichen Feldtypen sein, auf die ich referenzieren möchte. Image, Number, Text ...

docmiller schrieb

Jetzt kommt backreference ins Spiel: dem Child-Node wird eine CCK Feld "Wer ist mein Elternteil" gegeben, das über ein "node reference" CCK-Typ auf sein Elternteil verweist. Du kannst damit 1:1 Verbindungen zwischen Nodes herstellen.

Ja dass das theorethisch so sein soll, das ist mir schon aufgefallen :-) Nur das WIE ist für mich nicht klar ... Es gibt weder ne Dokumentation, noch ne readme.txt bei dem Modul!?!? Vielleicht kannst Du mir bitte kurz für DUMMIES erklären, wie ich in meinen CHILD-Node ein CCK-Image-Feld aus dem PARENT Node bekomme? Ich habs beim rumprobieren leider nicht herausfinden können ...

  • Anmelden oder Registrieren um Kommentare zu schreiben

Die Sache ist die. Ich glaube

Eingetragen von docmiller (89)
am 02.02.2011 - 00:38 Uhr

Die Sache ist die. Ich glaube nicht, dass Du mit dem erwähnten Modul eine Verbindung auf ein CCK Feld herstellen kannst. Du kannst eine Verbindun zwischen zwei Nodes per CCK herstellen.

Du willst bei allen Child der "Farbe Blau" den Parent angezeigt haben, oder?
Wenn dem so ist, warum machst Du das dann nicht mit Taxonomie?? back reference eigenet sich nämlich nur für 1:1, und nicht für n:m Beziehungen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Du willst per php aufgrund

Eingetragen von leda.ch (977)
am 02.02.2011 - 09:45 Uhr

Du willst per php aufgrund des Child-Nodes den Parent-Node finden.

Mein Beispiel sind Personen, die in einer Liegenschaft leben. Ich habe also eine Person in $node_pers, mit
dem CCK-Feld field_ref_lie, welches auf die Liegenschaft verweist. Dann hole ich also den Node für die
Liegenschaft $node_lie wie folgt:

...
$node_lie = node_load($node_pers->field_ref_lie[0]['nid']);
...

  • Anmelden oder Registrieren um Kommentare zu schreiben

docmiller schrieb Die Sache

Eingetragen von Thoor (3678)
am 02.02.2011 - 11:22 Uhr
docmiller schrieb

Die Sache ist die. Ich glaube nicht, dass Du mit dem erwähnten Modul eine Verbindung auf ein CCK Feld herstellen kannst. Du kannst eine Verbindun zwischen zwei Nodes per CCK herstellen.

Mit welchem Modul meinst Du jetzt? Mit Deinem BACKREFERENCE Modul?

docmiller schrieb

Du willst bei allen Child der "Farbe Blau" den Parent angezeigt haben, oder?
Wenn dem so ist, warum machst Du das dann nicht mit Taxonomie?? back reference eigenet sich nämlich nur für 1:1, und nicht für n:m Beziehungen.

Ich verstehe nicht, weshalbman mich nicht versteht :-)

Also nochmal im Detail.
1.) Ich habe einen Inhaltstypen BASIS, der z.B. ein Logo enthält
2.) Außerdem einen Inhaltstypen SUB, der kein Logo enthält deshalb wird der Node vom Typ SUB mit einem Nodereference Field auf einen vorhandenen Node vom Typ BASIS referenziert.
3.) Da es viele Nodes des Typ SUB gibt, möchte ich bestimmte Felder, wie z.B. das Logo, das sich ja im Node von Typ BASIS in die Nodes des Typ SUB abbilden.

Geht das jetzt mit dem von Dir vorgeschlagenen Modul? Und wenn ja - wie setzt man das dann um?

  • Anmelden oder Registrieren um Kommentare zu schreiben

leda@drupal.org schrieb Du

Eingetragen von Thoor (3678)
am 02.02.2011 - 11:28 Uhr
leda@drupal.org schrieb

Du willst per php aufgrund des Child-Nodes den Parent-Node finden.

Mein Beispiel sind Personen, die in einer Liegenschaft leben. Ich habe also eine Person in $node_pers, mit
dem CCK-Feld field_ref_lie, welches auf die Liegenschaft verweist. Dann hole ich also den Node für die
Liegenschaft $node_lie wie folgt:

...
$node_lie = node_load($node_pers->field_ref_lie[0]['nid']);
...

Ich weiss jetzt nicht, ob ich Dich verstanden habe ... Also ich will keinen Node finden. das geht ja mit NODE REFERENCE schon mal ganz gut ... Ich will an einen Feldwert aus einem Node kommen, auf den ich referenziere.

  • Anmelden oder Registrieren um Kommentare zu schreiben

View

Eingetragen von stBorchert (6003)
am 02.02.2011 - 12:42 Uhr

Hi.
Mift, jetzt hatte ich so einen schönen langen Kommentar geschrieben und dann geht das Fenster einfach zu :/
Naja, dann als Kurzfassung: Du benötigst einen View, der als Relation das Nodereference-Feld bekommt und als Argument die nid von SUB. Dann noch als Feld das Bild von Basis und fertig ist das Ganze (siehe Anhang).

Diesen View kannst Du dann per [do:views_attach Views attach] oder als Block bei den entsprechenden Nodes einbinden.

hth,

 Stefan

AnhangGröße
view__related.txt 3.45 KB
  • Anmelden oder Registrieren um Kommentare zu schreiben

stBorchert schrieb Hi. Naja,

Eingetragen von Thoor (3678)
am 02.02.2011 - 13:56 Uhr
stBorchert schrieb

Hi.
Naja, dann als Kurzfassung: Du benötigst einen View, der als Relation das Nodereference-Feld bekommt und als Argument die nid von SUB. Dann noch als Feld das Bild von Basis und fertig ist das Ganze (siehe Anhang).

DANKE DANKE DANKE!

Du warst mal wieder mein Held und Retter :-) Ich habe ja unzählige Argumentvariationen ausprobiert gehabt und wollte das Ganze per Block einbinden. Hat allerdings nie geklappt :-( Dachte, dass es am falschen Argument lag, war aber wohl die Block Anzeige.
Deinen VIEWS Vorschlag konnte ich übrigens auch nicht per Block einbinden. Aber mit dem vorgeschlagenen Modul VIEWS ATTACH wird endlich auch das vemaledeite Image Feld angezeigt.

Das war mal wieder eine äußerst schwierige Geburt :-)

PS: Vielen Dank auch an alle anderen, die sich den Kopf mit zerbrochen haben!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Block

Eingetragen von stBorchert (6003)
am 02.02.2011 - 14:09 Uhr

Beim Block muss man darauf achten, dass dort die Argument nicht über die URL geholt werden können, sondern mittels PHP-Code bestimmt werden müssen.
In dem Fall also

<?php
if (arg(0) == 'node' && is_numeric(arg(1))) {
  return
arg(1);
}
?>

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

stBorchert schrieb Beim Block

Eingetragen von Thoor (3678)
am 04.02.2011 - 21:37 Uhr
stBorchert schrieb

Beim Block muss man darauf achten, dass dort die Argument nicht über die URL geholt werden können, sondern mittels PHP-Code bestimmt werden müssen.
In dem Fall also

<?php
if (arg(0) == 'node' && is_numeric(arg(1))) {
  return
arg(1);
}
?>

 Stefan

Jetzt wollte ich mir die Blocklösung noch mal genauer ansehen, aber es will nicht klappen, mit der Anzeige des Blocks.
Ich habe also als Argument Node:Beitrag ID gewählt.

Beziehung - keine Beziehung
Die auszuführende Aktion, wenn das Argument nicht vorhanden ist: Leerer Text ( zum prüfen - wird dann auch angezeigt )
Validator: PHP Code mit

if (arg(0) == 'node' && is_numeric(arg(1))) {
  return arg(1);

Die auszuführende Aktion, wenn das Argument nicht valide ist: alle Werte

Sind die gewählten Einstellungen korrekt?

Jedenfalls wird mir in der Blockvorschau mit der entsprechenden Node-ID das richtige angezeigt? Beim "Live-Aufruf" erscheint allerdings der "Leere Text" ...

Jemand ne Idee, wo der Fehler liegt?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Debug

Eingetragen von stBorchert (6003)
am 04.02.2011 - 22:35 Uhr

Mach doch einfach mal eine Debug-Ausgabe im Block (also im Argument-Handling-Code):

<?php
drupal_set_message
('<pre>' . var_export(arg(0), 1) . '</pre>');
drupal_set_message('<pre>' . var_export(arg(1), 1) . '</pre>');
if (
arg(0) == 'node' && is_numeric(arg(1))) {
  return
arg(1);
}
?>

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich pack mal nen Screenshot

Eingetragen von Thoor (3678)
am 04.02.2011 - 23:13 Uhr

Ich pack mal nen Screenshot meiner aktuellen Argumente Einstellung anbei ... wahrscheinlich habe ich da eh schon nen Fehler drin, sowie ich mich kenne? Den Code habe ich mal mit eingefügt, aber da erhalte ich nur zwei grün gehaltene "admin" und "build" über der Vorschau?

AnhangGröße
argument.gif 32.93 KB
  • Anmelden oder Registrieren um Kommentare zu schreiben

Der Fehler liegt

Eingetragen von wla (9461)
am 04.02.2011 - 23:55 Uhr

Der Fehler liegt hier

Zitat:

Die auszuführende Aktion, wenn das Argument nicht vorhanden ist: Leerer Text ( zum prüfen - wird dann auch angezeigt )

Auszuführende Aktion muß sein: Standard Argument zur Verfügung stellen via PHP-Code. Da kommt dann Dein Code rein und den Validator läßt Du auf Standard.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

wla schrieb Der Fehler liegt

Eingetragen von Thoor (3678)
am 05.02.2011 - 00:33 Uhr
wla schrieb

Der Fehler liegt hier
Auszuführende Aktion muß sein: Standard Argument zur Verfügung stellen via PHP-Code. Da kommt dann Dein Code rein und den Validator läßt Du auf Standard.
Beste Grüße
Werner

Danke - das hat dann doch noch geklappt. Nur jetzt gibt es das nächste Problem. Den Block mit dem referenzierten Logo rufe ich in der node.tpl.php mittels PHP Code auf. Klappt dann alles, wenn ich den Node aufrufe.

Nur, wenn ich jetzt eine Taxonomieseite aufrufe, dann klappt die Argumentzuweisung nicht und es werden anscheinend die falschen Argumente taxonomy und term genutzt? Es erscheinen bei den einzelnen Nodes alle verfügbaren Logos ...

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

Statistik

Beiträge im Forum: 250233
Registrierte User: 20459

Neue User:

  • Znogsnernoimb
  • ByteScrapers
  • Mroppoofpaync

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