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

Views Kontext Beziehungen

Eingetragen von silvesterd (268)
am 02.02.2019 - 17: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 - 13: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 - 14: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 (1573)
am 09.02.2019 - 23: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 09.02.2019 - 23: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 (1573)
am 09.02.2019 - 23: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 09.02.2019 - 23: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 (1573)
am 09.02.2019 - 23: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 09.02.2019 - 23: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 - 00: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 - 11: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

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

Statistik

Beiträge im Forum: 250233
Registrierte User: 20456

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

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