Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Anfängerfragen ›

Views Kontext Beziehungen

Eingetragen von silvesterd (268)
am 02.02.2019 - 18:32 Uhr in
  • Anfängerfragen
  • Drupal 8.x oder neuer

Hallo alle,

nach vielen Jahren Drupal und Views, aber erst einer geglückten Kontext-/Beziehungskonfiguration brauche ich wieder Hilfe.

Auf meiner Seite mutathe.de gibt es den Inhaltstyp "Projekte2. Die Projekte werden von "Partnern" mit der Kategorie "Förderpartner" gefördert (die Partner fördern verschiedene Projekte).
Die Projekte enthalten Reference Fields "Förderer" zu den Partnern . Beim Anlegen der Projekte können die Förderer ausgewählt werden und erscheinen so in der Anzeige des Inhaltstyps "Projekt".

Nun möchte ich die Logos der Projektförderer zum jeweiligen Projekt in einem separaten Block anzeigen (hier in der 2. Seitenleiste).
Die Förderer erwarten auch eine Anzeige Ihrer Bildmarke zum Projekt.

Ich habe nun einige Tutorials und Anleitungen gesehen/gelesen und mit Argumenten und Beziehungen gespielt, aber entweder bekomme ich alle Logos, auch mehrfach, oder keine.

Wer hat den Tipp?

Vielen Dank
frank

‹ Gebuchte Anzeigen verarbeiten Menübutton funktioniert nur auf Unterseiten nicht auf Startseite ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

@mehrfach angezeigt Da es für

Eingetragen von torfnase (1525)
am 03.02.2019 - 14:50 Uhr

@mehrfach angezeigt
Da es für Views kein Views Distinct in Drupal 8 gibt, kannst du das z.B. mit einem kleinen Modul selbst erledigen.

Z.B. so:

use Drupal\views\ViewExecutable;

/**
* Implements hook_views_pre_render().
*/
function XXXModulnameXXX_views_pre_render(Drupal\views\ViewExecutable $view) {
  $unique_uuids = $new_view_result = [];

  // Loop through results and filter out duplicate results.
  foreach ($view->result as $row) {
    // Use UUID so this works for all entities
    $uuid = $row->_entity->uuid();

    if (!in_array($uuid, $unique_uuids)) {
      $new_view_result[] = $row;
      $unique_uuids[] = $uuid;
    }
  }

  // Replace $view->result with new array. Apparently views requires sequentially keyed
  // array of results instead of skipping keys (e.g. 0, 2, 4, etc), so we can't just
  // unset the duplicates.
  $view->result = $new_view_result;
}

Wenn keine Logos angezeigt werden, stimmt in der Regel etwas mit dem kontextualen Filter nicht (es wird alles weggefiltert).

Gruß
Berthold

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke, aber Module bastele

Eingetragen von silvesterd (268)
am 06.02.2019 - 15:13 Uhr

Danke, aber Module bastele ich erst, wenn ich programmieren kann. Außerdem glaube ich, dass bei der Vielzahl funktionierender Drupal-Seiten der Fehler eher in meinem Verständnis als im System liegt. Denn mein Anwendungsfall ist ein typischer.
Der Kontextfilter wird meist "nimm die Node ID" gelöst. Bei Drupal 8 heißt es nur noch ID, und das funktioniert nicht.

Ein Beispiel:

Das Projekt mit der ID 100 wird vom Förderer mit der ID 46 unterstützt.
Wenn ich beim Projekt einen Block mit den daran beteiligten Förder-Logos haben möchte, erstelle ich eine Ansicht "Projektförderer" als Block mit den Inhalten "Titel" und "Logo".
Die Titel lasse ich nicht anzeigen, habe ich aber mit aufgenommen, weil im Projekt das Feld "Förderer" als Referenz existiert. Der Titel des Förderers wird auch im Projekt angezeigt.
Wenn ich im Kontext also die Beitrags-ID als Filter angebe, erwartete ich, dass bei Eingabe von 100 (die ID des Projektes) der entsprechende Förderer erscheint, bzw nur das Logo.
Natürlich nicht. Ich kann 46 eingeben, und bekomme das Logo zu sehen. Kein Wunder.

Ich denke da irgendwo falsch herum. Vor vielen Jahren habe ich das schonmal gelöst, aber ich weiß nicht mehr wie.
Den Umweg über Taxonomie (viele Beispiele im Netz) möchte ich auch nicht gehen, scheint mir auch unlogisch.

Danke und Gruß

  • Anmelden oder Registrieren um Kommentare zu schreiben

Es gibt kein Views distinct

Eingetragen von dinmikkith (1594)
am 10.02.2019 - 00:16 Uhr

Es gibt kein Views distinct weil die Funktion bereits im View Modul integriert ist.

Was bitte möchtest du machen. Ein Bild in einem Block anzeigen, wenn der Artikel eines Partners angezeigt wird?

AnhangGröße
Screenshot_20190209-231553.png 92.99 KB
  • Anmelden oder Registrieren um Kommentare zu schreiben

Fast

Eingetragen von silvesterd (268)
am 10.02.2019 - 00:06 Uhr

Die Logos der Förderer, die im Inhalt in den Feldern "Förderer" genannt werden.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Dann nimmst du den Inhalt

Eingetragen von dinmikkith (1594)
am 10.02.2019 - 00:21 Uhr

Dann nimmst du den Inhalt erstellt einen Block und fügst das Feld des Bildes zur Blockanzeige hinzu.

Im Kontextfilter Filterst du nach der ID in der URL und bei mehrfachen Ergebnissen stellst du den unter erweitert Datenbankabfragen Einstellungen die Option eindeutig ein.

Das sollte es dann tun.

  • Anmelden oder Registrieren um Kommentare zu schreiben

dinmikkith schriebEs gibt

Eingetragen von torfnase (1525)
am 10.02.2019 - 00:30 Uhr
dinmikkith schrieb

Es gibt kein Views distinct weil die Funktion bereits im View Modul integriert ist.

Diese Option gab es immer schon. Dort steht aber auch: es wird versucht, die doppelten herauszufiltern. Das funktioniert in den wenigsten Fällen.
Deswegen gab es ja Views-Distinct.
Und deswegen benötigt man dafür auch ein neues Modul.

Gruß
Berthold

  • Anmelden oder Registrieren um Kommentare zu schreiben

Sollte dass nicht reichen

Eingetragen von dinmikkith (1594)
am 10.02.2019 - 00:43 Uhr

Sollte dass nicht reichen oder nicht auf Anhieb funktionieren, gibt's auch noch die Funktion Zusammenfassen ebenfalls unter Erweitern und dort gibt es dann auch die von Berthold so gelobte Distinct Funktion wieder. Und zwar nach dem Aktivieren als Einstellung für jedes einzelne Feld in der Anzeige der Ansicht oder auf dem Master für alle Ansichten.

Ich hab leider keinen Rechner hier. Sonst würde ich dir das schnell Zusammenklicken und nebenbei ein Video anfassen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

@inmikkith coole Plattform

Eingetragen von torfnase (1525)
am 10.02.2019 - 00:59 Uhr

@inmikkith
coole Plattform und cooler Domainname, die du da hast, sieht echt nach was aus.....

@Doppelte Einträge
ich bin mir ziemlich sicher, das es nur so funktionieren wird, wie ich das vorgeschlagen haben.
Mit der Zusammenfassung kommen da manchmal ganz merkwürdige Dinge raus. Ich meine das jedenfalls früher so erlebt zu haben.

Aber vielleicht liege ich ja auch falsch, dann hätte ich wieder was gelernt.

Gruß
Berthold

  • Anmelden oder Registrieren um Kommentare zu schreiben

Übrigens ist in meinem Modul

Eingetragen von torfnase (1525)
am 10.02.2019 - 01:05 Uhr

Übrigens ist in meinem Modul auch noch ein Fehler drin.
Den haben ich erst heute bemerkt:

Statt:
$uuid = $row->_entity->uuid();
muss es heißen:
$uuid = method_exists($row->_entity, 'uuid') ? $row->_entity->uuid() : NULL;

Sonst kann es einen fatalen Fehler geben, falls $row->_entity->uuid() nicht existiert.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi. probier es mal so in der

Eingetragen von Hyp1 (1463)
am 10.02.2019 - 12:11 Uhr

Hi.

probier es mal so in der Art:

  // Loop through results and filter out duplicate results.
  foreach ($view->result as $row) {
    // Use UUID so this works for all entities
    $uuid = $row->_entity->uuid();
    //Dieses Array sollte dann unique nids haben.
    $unique_uuids[$row->nid]=$row;

MfG

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • How to Spend a Great Evening at Crash Online Games
  • Neuinstallation: vermutlich ein rewrite-Problem
  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
  • (gelöst)Drupal 11 installieren
  • Titel ausblenden
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • Rolle erstellen nicht zu finden
  • für drupal11 ein Slider Modul
Weiter

Neue Kommentare

  • Was für einen Server benutzt
    vor 1 Woche 4 Stunden
  • Wenn die Subdomain auf
    vor 1 Woche 2 Tagen
  • ordnerstruktur
    vor 1 Woche 2 Tagen
  • Die Subdomain muß auf den
    vor 1 Woche 4 Tagen
  • Verwende doch das Tag dafür,
    vor 4 Wochen 6 Tagen
  • Guckst du hier: step by step
    vor 4 Wochen 6 Tagen
  • Guckst du hier: step by step
    vor 4 Wochen 6 Tagen
  • Ich habe ja keine Angst vor
    vor 6 Wochen 1 Tag
  • Ist grundsätzlichmachbar – aber nichts für „einfach mal schnell“
    vor 6 Wochen 3 Tagen
  • Vielen Dank erst einmal, aber
    vor 6 Wochen 5 Tagen

Statistik

Beiträge im Forum: 250290
Registrierte User: 20516

Neue User:

  • RollingSlots
  • Wolf Dab
  • Scottteday

» Alle User anzeigen

User nach Punkten sortiert:
wla9466
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 1 Benutzer und 16 Gäste online.

Benutzer online

  • dinmikkith

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