[gelöst]felder in view zusammenführen
am 15.03.2023 - 21:19 Uhr in
Ich verzweilen langsam und hoffe ihr könnt mir auf die Sprünge helfen.
Ich habe einen Inhaltstyp mit Feldern, der nennt sich "Stammdaten Kind". Eins der Felder darin ist "Name" (Name des Kindes).Das Feld hat den Systemnamen "field_stamm_k_vor_und_zuname".
Der User (in dem Fall ein Mitarbeiter) erstellt nun den Inhalt "Stammdaten Kind" und schreibt in das Feld "Name" Lea rein. Der Titel des Nodes heisst übrigens auch Lea.
Das Stammdatenblatt des Kindes ist nun die Basis.
Der Mitarbeiter soll nun noch viele weitere Inhalte aus anderen Inhaltstypen erstellen, wie zum Beispiel "Wochenbericht" und "Entwicklungsbericht" usw. (jeweils eigene Inhaltstypen). In jedem dieser Inhaltstypen ist das Feld "Name", denn er soll ja seinen Inhalt seinem Kind zuordnen.
Das klappt schon ganz gut nur weiß ich nicht ob so richtig ist. Was habe ich gemacht: Ich habe in den Inhaltstyp Wochenbericht ein Feld eingebaut und zwar so:
Feldtyp: Referenz Inhalt
Feld Systemname: field_pad_tgb_kind_auswahl
Referenztyp: Inhaltstyp und dann "Stammdaten Kind" ausgewählt
Wenn der Mitarbeiter nun in einen Inhalt Wochenbericht das Kind auswählen soll, kann er nun den Namen "Lea" auswählen. Nach dem Speichern steht dann zum Feld Name Lea und verlinkt zum Inhalt Stammdaten von Lea.
1. Frage: Ist das Grundsätzlich so richtig? Oder hätte ich im Inhaltstyp "Wochenbericht" ein bereits bestehendes Feld nämlich dasselbe Feld wie aus "Stammdaten" Systemname: field_stamm_k_vor_und_zuname
nehmen sollen.
2. Frage: ich bin nämlich jetzt an der Stelle eine View zu bauen und möchte gerne das Ergebnis aber wie?:
Ich möchte eine Übersichts-view zu allen Inhalten des Kindes Lea. Und in derselben view möchte ich inform von dropdown-auswahl gerne zwischen allen kindern (welche auch alle ein stammblatt haben) umschaltem können. Ich möchte der view sagen können, zeige mir alle Inhalte an, in denen das Kind Lea ausgewählt wurde. Ja und dann sollen alle Inhalte erscheinen wie "Wochenbericht" und "Entwicklungsbericht".
Ich weiß nicht, wie ich dies filtern und zusammenbringen kann.
Ich bin für jeden Tip dankbar. Und wenn ich auf dem Holzweg bin, freue ich mich auch sehr über alternative Idee wie ich zum Ziel kommen könnte.
Lieben Dank.
- Anmelden oder Registrieren um Kommentare zu schreiben
Mit Referenzen zu arbeiten
am 16.03.2023 - 09:58 Uhr
Mit Referenzen zu arbeiten ist der richtige Weg. Du solltest aber bei allen Referenzen dasselbe Feld benutzen.
Die Übersichtsview hat als Basistabelle die Kind-Stammdaten (du zeigst Inhalt vom Typ Kind an). Du legst Beziehungen zu allen Inhaltstypen an, die Du in der Übersicht zeigen willst, über das Referenzfeld. Jede Beziehung bekommt eine eindeutige Beseichnung. Der Name des Kindes wird ein herausgehobener Filter. Die Daten aus den diversen Inhaltstypen kannst Du über die Jeweilige Beziehung anzeigen lassen (Feld auswählen, Bezeichnung der Beziehung im vorgesehenen Feld eintragen). Ist insgesamt ein bißchen Bastelei, aber nicht grundsätzlich schwierig.
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Frage zum selben Feld verwenden
am 16.03.2023 - 11:58 Uhr
Vielen Dank erst einmal. Ich werde es gleich probieren mit der View. Aber vorab möchte ich noch eins fragen, weil ich die Vorarbeit mit den Feldern in den Inhaltstypen erstmal richtig haben möchte.
Du Schreibst, ich solte bei allen Referenzen dasselbe Feld nehmen.
Frage 1: Ich soll also in allen Inhaltstypen dasselbe bereits vorhandene Feld "field_stamm_k_vor_und_zuname" (ist übrigens ein Klarfeld-Typ)in die Inhaltstypen ziehen?
Weil bisher habe ich ja das Feld in den Inhaltstypen "Wochenbericht" etc. jeweils anders benannt, nämlich "field_pad_tgb_kind_auswahl". das wäre dann nicht richtig?
Das habe ich auch schon probiert. Allerdings habe ich dann das Problem, dass der Mitarbeiter wenn er einen Inhaltstyp Wochenbericht erstellt, nicht mehr die Auswahlfunktion hat. Er müsste das Kind eingeben, zumindest den Anfangsbuchstaben, dann sucht Drupal und bietet es an. Das fände ich jetzt doof. Wenn meine Filterung in View aber nur dann funktioniert, wenn Frage 1 mit JA beantwortet wäre, dann ist das halt so. Kann ich dem Feld dann in den Inhaltstypen irgendwie noch anderweitig sagen, dass er eine Auswahl (Dropdown) schaffen soll oder ist Klartext dafür gar nicht geeignet?
Danke und schöne Grüße,
Josi
Zur Frage 2
am 16.03.2023 - 12:26 Uhr
Zur Frage 2
Um eine View zu erstellen, die alle Inhalte für ein bestimmtes Kind (in deinem Beispiel "Lea") anzeigt und zwischen verschiedenen Kindern umschalten kann:
1. Erstelle eine neue View
2. Füge der View eine Beziehung (relation) hinzu: Im Abschnitt "Erweitert" auf "Beziehungen" > "Beziehung hinzufügen". "field_pad_tgb_kind_auswahl" und wähle die entsprechende Beziehung aus (z.B. "Content: field_pad_tgb_kind_auswahl (field_pad_tgb_kind_auswahl)").
3. Füge der View einen Filter hinzu: "Filterkriterien" > "Filter hinzufügen". "Inhalt: Typ" > "Filter anwenden". Inhaltstypen "Wochenbericht" und "Entwicklungsbericht" (und ggf. andere relevante Inhaltstypen) auswählen und "Filter anwenden".
4. Füge der View einen kontextuellen Filter (contextual filter) hinzu: "Erweitert" > "Kontextuelle Filter" > "Kontextuellen Filter hinzufügen". "Content: field_pad_tgb_kind_auswahl (field_pad_tgb_kind_auswahl)" > "Filter anwenden". Unter "Wenn der Filterwert nicht im URL verfügbar ist" die Option "Standardwert anzeigen". Dort die Option "Inhalt-ID aus URL" > "Filter anwenden".
5. Füge der View einen Exposed-Filter hinzu: "Filterkriterien" > "Filter hinzufügen". Dort "Content: field_pad_tgb_kind_auswahl (field_pad_tgb_kind_auswahl)" und "Filter anwenden".
Aktiviere "Expose this filter to visitors, to allow them to change it" Unter "Auswahltyp" die Option "Dropdown" > "Filter anwenden und konfigurieren".
Jetzt kannst du die Sortierreihenfolge und das Anzeigeformat der View konfigurieren. Passe die Sortierreihenfolge unter "Sortierkriterien" an, um die Ergebnisse nach deinen Wünschen zu sortieren (z. B. nach Erstellungsdatum, Aktualisierungsdatum oder Titel). Wähle im Abschnitt "Format" das gewünschte Anzeigeformat aus (z. B. "Tabelle", "Gitter" oder "HTML-Liste").
Jetzt solltest du eine View haben, die alle Inhalte des ausgewählten Kindes anzeigt (z. B. "Lea"), und du kannst zwischen verschiedenen Kindern umschalten, indem du das Dropdown-Menü verwendest. Die View zeigt alle Inhalte, die mit dem ausgewählten Kind verknüpft sind.
Wow danke für deine ausführlöiche Beschreibung
am 16.03.2023 - 13:17 Uhr
Ich bin deiner Beschreibung stück für stück durchgegangen. Aber irgendwie will die View nichts anzeigen. Woran kann das liegen? Fast alles aus deiner Beschreibung war für mich schlüssig, außer bei zwei Dingen:
Kontextfilter: siehe Bild
habe ich das richtig eingestellt?
Filterkriterien: siehe Bild
Leider bringt er mir keine Auswahl Dropdown. Ich müsste jedes erst eingeben Kind eingeben, dann könnte ich wählen via dropdown.
Aber indem Fall wird ja nicht mal irgendwas angezeigt (sieh Bild). Die View gibt leider gar nichts aus.
falscher ansatz oder denkfehler
am 16.03.2023 - 15:16 Uhr
Ich glaube ich habe mich leider unklar ausgedrückt. Vllt geht mein Wunsch bei Drupal ja auch gar nicht. Ich versuche es noch einmal und erzähle wie ich es gerne hätte das Drupal arbeitet, aber vllt versteht mich Drupal auch nicht weil ich den Denkfehler habe und meine Vorgehensweise nicht logisch für Drupal ist.
Es gibt den Inhaltstyp "Stammdaten". Rechte sind so eingestellt, dass nur der Author diesen Inhalt sieht.
Der Mitarbeiter erstellt damit einen Inhalt:
Titel: Lea Back
Feld Vor und Nachname (field_stamm_k_vor_und_zuname): Lea Back
Dieses Feld spielt im weiteren Verlauf eigentlich gar keine Rolle, oder?
Es gibt einen Inhaltstyp "Wochenbericht":
Der Mitarbeiter erstellt damit einen Inhalt:
Titel: Lasse ich durch Pathauto generieren
Feld Kind Auswahl: Hier soll der Mitarbeiter den Namen Lea Back auswählen. Andere Stammdaten-Inhalte (andere Kinder soll er nicht sehen und sieht er auch nicht, da der Mitarbeiter ja Lea Back erstellt hat.) Das Auswählen des namen wäre wirklich wichtig. der Mitarbeiter kann nciht jedes Mal den namen reinschreiben.
Wie habe ich das Feld Kind Auswahl (field_pad_tgb_kind_auswahl) gebaut: Referenz=Inhalt und Referenztyp=Stammdaten Kind
Nach dem Speichern erscheint unter dem Feld Kind Auswahl der verlinkte Name zum Stammblatt Lea Back. Ich denke, das Feld zieht hier den Titel des Stammblattes, denn der heißt auch Lea Back. Richtig?
Nun möchte ich der View sagen:
Zeige mir alle Inhalte an, in denen das Stammdatenblatt vernetzt wurde. Und das eben nach Namen (Titel des Stammblatts) via Auswahl (Dropdown) filtern.
Ich würde ja gerne in der basis also im Inhaltstyp Stammdaten mit dem Feld Vor- und Zuname arbeiten und das dann referenzieren und nicht den Titel. Aber dann müsste der Mitarbeiter in jedem Inhalt immer wieder den Namen reinschreiben und kann nicht auswählen.
Ist doch kacki :/ und viel zu
am 16.03.2023 - 15:16 Uhr
Ist doch kacki :/ und viel zu kompliziert. Warum kann man eigentlich bei Drupal nicht auch Vokabularen und Begriffen spezielle Berichtigungen geben? Es würde ja schon reichen, wenn Drupal die Funktion hätte, das der User welcher ein Vokabular oder Begriff erstellt, auch er nur die Lese- und Schreibrechte zum dem Vokabular/Begriff hätte. Dann wäre alles easy gelöst. Ich will doch nur zuordnen und sortieren können, Taxonomie wäre dafür genau das Richtige, aber ohne Rechteeinstellung nutzlos. Schade
hat denn wirklich keiner eine
am 16.03.2023 - 23:14 Uhr
ich habs hinbekommen, ein wunder :) ganz schön viele Beziehungen. Aber durch das viele herum probieren, hab ich die Logik dahinter auch mal verstanden.
nur noch ein paar kleine fragen.
In der Übersichts-View als Tabelle werden jetzt 2 Inhaltstypen ausgegeben, Wochenbericht und Entwicklungsbericht. Nun habe ich zwei separate Spalten in denen der Name des Kindes steht.
Wie füge ich die zwei Spalten zusammen zu einer?
Wie gestalte ich die Filterfunktion dann? So das nur ein Eingabefilter für den Namen gebraucht wird?
Wie kann ich einen Dropdown-Filter nutzen, der wird mir nie angezeigt. Ich müsste dazu gruppierte Felder (im Filter auswählen) und jedes Kind extra schreiben. Das wären schon jetzt 50 Kinder. Das möchte ich gerne umgehen, zumal bei jedem neuen Kind das automatisch von der view übernommen werden soll. Ich möchte nicht zukünftig bei jedem weiteren Kind dran denken, es in die View einzubasteln.
Die Fragen mit Dropdown im Filter kamen schon oft und bisher hatte noch keiner eine Lösung. Was ich mir bei Drupal nur schwer vorstelln kann.
Lieben Dank schon mal
Du darfst nicht diese 2
am 17.03.2023 - 10:00 Uhr
Du darfst nicht diese 2 Inhaltstypen komplett ausgeben sondern nur die Feder, die Du jeweils benötigst, über die passende Beziehung. Damit hast Du die Kontrolle was in der Ausgabezeile steht. Dann hast Du auch nur ein Feld mit dem Namen des Kindes aus der Basistabelle, nach dem Du filtern kannst.
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Ja aber ich kann in dem Feld
am 17.03.2023 - 12:52 Uhr
Ja aber ich kann in dem Feld ja immer nur eine Beziehung angeben. Ich habe aber mehrere Inhaltstypen mit der Feldbeziehung zum Stammdatenblatt (Vor- und Nachname). Diese Felder aus den verschiedenen Inhaltstypen welche alle ne Referenz zum Stammdatenblatt haben, habe ich in der view unter Beziehungen gesetzt. In der feldansicht der view habe ich das Originalfeld des Stammdatenblattes (Vor- und Zuname) drinnen und die Beziehung zum Feld (welches ich wie eben beschrieben unter Beziehungen bei Erweitert) gesetzt. Hier an dieser Stelle kann ich ja nur eine Beziehung auswählen. Mir wäre ja auch liebe ich könnte gleich beide auswählen.
Gibts es denn die Möglichkeit in einem einzigen Feld (welches unter Felder und auch in meiner view erscheint) mehrere Beziehungen auszuwählen? Oder diese anders irgendwie zu gruppieren?
Und genauso so dasselbe, gibt es denn bei Filterkriterien die Möglichkeit, mehrere Beziehungen auszuwählen?
Wenn das ginge wäre es doch super und zukünftig auch einfach zu pflegen. Denn dann brauche ich wenn es mal wieder einen neuen Inhaltstypen gibt, diesen einfach in der View in Beziehung setzen und fertig.
Also ich konnte schon mal
am 17.03.2023 - 14:18 Uhr
Also ich konnte schon mal eine Spalte anzeigen lassen, indem ich ein neues Feld erstellte: Global>benutzerdefinierter Text und darin habe ich die Ausgabe via Ersetzungsmuster angegeben. Nun habe ich eine Spalte mit den Namen.
Aber ich habe leider noch nicht hinbekommen unter Filterkriterien einen Filter für alle zwei Felder zu erstellen. Es gibt ja ein Globales Kombifeld, darin kann ich mehrere Felder auswählen welche durchsucht werden sollen. Aber leider funktioniert das auch nicht.
Hm dann weiß ich auch nicht. Ich denke die Views ansich, also die Beziehungen habe ich richtig gesetzt, ansonsten würden er ja nicht die Daten aus den Inhalten ziehen.
Dann bleibt mir nur noch die Idee, pro Inhaltstyp einen Views-Block zu schaffen und diese Blocks auf einer Seite darzustellen. Dann kann man wenigstens auf einer Seite alles darstellen und suchen, auch wenn nur zu den einzelnen Inhaltstypen.
Ich habe mir einen Weg
am 19.03.2023 - 18:29 Uhr
Ich habe mir einen Weg gesucht und möchte euch diesen gerne mitteilen. Mit dieser Lösung kann ich in der Zukunft gut arbeiten, zumal dies auch noch mit dem Drupalkern machbar ist (außer Dropdown) und ich keine weiteren Module brauche.
Also was ich nun gemacht habe. Das Ziel war ja, in der View nur ein Feld zu haben welches ich in Verbindung setzen kann, ganz unbehängig davon wie viele Inhaltstypen ich mal habe UND ganz wichtig war, das der Mitarbeiter wenn er einen Inhalt erstellt den Namen des Kindes AUSWÄHLEN kann und nicht suchen oder sogar noch reinschreiben muss. Auch Dropdown in der View war mir wichtig und alle Felder zusammenfügen und nach Namen suchen.
Schritt1: Ich erstellte erst mal unter Ansichten eine Entitätsreferenz. In dieser zog ich alle erstellten Inhalte (Nodes) zum Typ Stammdaten. Bei Felder wollte ich nur das Feld Vor- und Zuname. Dieser Entitätsreferenz gab ich noch einen Systemnamen welchen ich auch wiederfinde, in dem Fall "entity_reference_kinder". Das wars, speichern. Jetzt habe ich eine View in der mir alle Inhalte und davon nur der Zu- und Nachname zum Typ Stammdaten angezeigt werden.
Schritt2: Dann ging ich in meinen Inhaltstyp "Stammdaten" und erstellte dort ein neues Feld mit den Namen Auswahl Kind: Referenzen>Inhalt Unter Referenzmethode: Ansichten: wählte ich "nach einer Entitätsreferenz filtern" und unter Ansicht zur Auswahl der Entitäten erscheint nun zur Auswahl meine soeben erstelle Entitätsrefernz mit dem Namen "entity_reference_kinder" und diese wähle ich jetzt aus. Danach speichern.
Schritt3: Nun gehe ich zu meinen Inhaltstypen "Wochenbericht" Und "Entwicklungsbericht". Hier erstelle ich jeweils auch ein neues Feld ABER ich wähle ein bereits vorhandenes Feld aus, nämlich das aus welches ich eben im Typ "Stammdaten" erstellt habe. Wähle auch hier wieder nach einer Entitätsreferenz filtern und wähle "entity_reference_kinder".
Schritt4: Nun muss ich noch die bereits erstellten Inhalte des Typs Stammdaten bearbeiten und dort das Kind auswählen. Hier kann ich nun in diesem Feld den Vor- und Zunamen auswählen.
Wenn der Mitarbeiter jetzt in einem Inhalt "Wochenbericht" und "Entwicklungsbericht" sein Kind auswählen möchte, dann bekommt er eine Auswahl mit den Vor- und Zunamen des Kindes und kann sein Kind auswählen, dann speichern. Der Mitarbeiter sieht auch nur seine erstellten Inhalte vom Typ Stammdaten. Das heißt alle anderen Kinder welche noch zur Auswahl stünden sieht er nicht.
Schritt5: Ich erstelle eine neue View in Tabellenform, dies soll meine Übersichtseite von allen Inhalten sein, in dem ein Kind ausgewählt wurde, bei dem dieses eine Feld benutzt wurde. Diese Ansicht nutze ich als Admin und auch der Mitarbeiter. Ich als Admin sehe alle Inhalte, der Mitarbeiter nur diese wo er der Autor ist.
Die view ist erstmal nackt, gefiltert nach Inhaltstypen nur diese wo das Feld vorkommt, also Stammdaten, Wochenbericht, Entwicklungsbericht. Unter Beziegungen suche ich das Feld Vor- und Zuname (dazu steht dann: erscheint in Stammdaten, Entwicklu....), dazu noch Beziehung ist erforderlich anklicken, ansonsten erscheinen noch andere Inhalte von ganz anderen Inhalsttypen wie Article oder so.
Unter Felder kommt ebenso das Feld Vor- und Zunamen (erscheint in Stammdaten) rein und hier wähle ich die Beziehung welche ich eben eingerichtet habe. Und dasselbe noch bei Filter, auch hier das Feld Vor- und Zuname (erscheint in Stammdaten) und wähle wieder die Beziehung aus. Ich habe auch noch den Filter Typ drinnen sodass ich nach inhaltstyp filtern kann und noch den Filter Autor. Ein weiteren Filter baue ich noch ein, sodass ich nach Datum und zeiträumen filtern kann.
Wie habe ich es mit Dropdown gelöst?
Ich habe mir das Modul Field Select Filter geladen. In der View unter Filter habe ich nun zwei gleiche Felder zur Auswahl, bei einem steht Selector dahinter. Ja und der gibt mir die Auswahlfunktion Dropdown :D Hoffe nur das dieses Modul dann auch für Drupal 10 existieren wird.
Und nun setze ich meinen Beitrag auf [gelöst]. Ich danke euch für eure Kommentare, Tipps und Anleitungen. Ohne euch hätte ich vieles gar nicht verstanden und so war ich in der Lage mir meine individuelle Lösung selbst zu erschaffen. Hat mich einiges an Nerven gekostet :)