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

[gelöst] View-Block: Related Content by Taxonomy Term funktioniert nicht

Eingetragen von pyretta (171)
am 25.07.2023 - 15:44 Uhr in
  • Views
  • Drupal 9.x oder neuer

Hallo,

ich versuche eine View als Block zu erstellen, die Nodes eines bestimmten Content-Typs beinhaltet und nur die anzeigt, die einer bestimmten Taxonomie zugeordnet sind. Diese Taxonomie soll von der Node vorgegeben werden, auf der der View-Block eingebunden ist - also nach dem Motto "Leser die sich für XY interessierten, interessierten sich auch für...".

Habe dazu einige Anleitungen über Google gefunden und bin auch danach vorgegangen. Es scheint sich dabei ja auch seit Drupal 7 in diesem Fall nichts oder kaum etwas geändert zu haben, laut den Anleitungen - das grundlegende Vorgehen bleibt offenbar gleich.

Beispiele:
(Drupal 9) https://www.hashbangcode.com/article/drupal-9-using-taxonomy-terms-creat...
(Drupal 8) https://www.youtube.com/watch?v=kAbU6ClVmiI
(Drupal 7) https://www.daymuse.com/blogs/drupal-guide-related-content-term-views

  1. Neue View erstellt: Content - Typ Alle
  2. Anzeigen: Content - Teaser
  3. Filterkriterien: Published (Ja), Content Type (spezieller Typ), Taxonomie-Vokabular A (Beispiel-Term A)
  4. Erweitert - Kontextfilter: "Besitzt eine Taxonimiebegriff-ID":
    • Vorgabewert bereitstellen
    • Taxonomiebegriff-ID aus der URL
    • Standardfilter der Node-Seite laden (gut für verwandte Vokabular-Blöcke).
    • Begriffe nach Vokabular begrenzen
    • Taxonomie-Vokabular B
    • Auf Elemente filtern, die einen beliebigen Begriff teilen
    • Duplikate reduzieren

Es wird leider nichts angezeigt - die View bleibt leer.
Gibt auch keine Fehlermeldungen im Watchdog dazu.
Cache habe ich auch schon mehrfach gelöscht.

Das Taxonomie-Vokabular B ist in den betreffenden nodes als "Dynamische Entitätsreferenz" Feld angelegt und ist auch in keinem Fall leer.

Was mache ich falsch oder was übersehe ich hier?!

Verwende derzeit Drupal 9.5.9, PHP 8.1.20

Vielen Dank schon mal im Voraus für eure Hilfe.
Liebe Grüße

‹ Archiv-View wirft Fehlermeldung "InvalidArgumentException: The timestamp must be numeric" aus [gelöst] View-Block: Related Content by Taxonomy Term funktioniert nicht ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Das kann vom Grundsatz her so

Eingetragen von wla (9461)
am 25.07.2023 - 18:11 Uhr

Das kann vom Grundsatz her so nicht gehen. Du zeigst den Block auf einer Node-Seite. In der URL einer Node ist aber nicht die Term-ID sondern nur Die Node-ID vorhanden. Also kannst Du die Term-ID so nicht bekommen. Wenn Du das Modul PHP installierst (Vorsicht mit den Rechten!!), kannst Du den Vorgabewert für den Kontextfilter über PHP-Code generieren. Du holst Dir per Code die Node-ID aus der Url, lädst die Node und ermittelst aus der Node die gewünschte Term-ID, die Du dann als Wert zurück gibst, damit nach der ID gefiltert werden kann.
Machbar, aber Bastelarbeit.
Bitte diesen Code in ein eigenes Modul auslagern und die entsprechende Funktion in der View aufrufen. Du zerschießt Dir nämlich die Seite, wenn im Kontextfilter fehlerhafter Code eingetragen wird. Das kann dann nur noch über direkten Eingriff in der Datenbank behoben werden!!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Sollte eigentlich funktionieren, auch ohne PHP

Eingetragen von schmittrich (213)
am 26.07.2023 - 06:56 Uhr

Habe es gerade selber ausprobiert. Das sollte so funktionieren, auch ohne PHP wie von Werner vorgeschlagen. Vielleicht schießt dir aber der Filter "Taxonomie-Vokabular A (Beispiel-Term A)" in die Quere? Du könntest diesen mal testhalber weglassen. Zeigt dir der View Ergebnisse an, wenn du eine Taxonomy-Id in das Feld "Vorschau mit Kontextfilter" eingibst?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Vielen Dank für deine Antwort

Eingetragen von pyretta (171)
am 26.07.2023 - 10:35 Uhr

Vielen Dank für deine Antwort & deine Hinweise wla!

Ich geb zu, ich fand das auch etwas verwirrend, aber in den Anleitungen wurde immer genau dieser Weg vorgeschlagen.
Einer erklärte sogar, dass die View durch diese Auswahl aus der URL alle Infos zur node herauslesen könnte - so auch die Term-ID etc. Strange.

Dein vorgeschlagener Weg klingt sehr viel plausibler, aber ist sowas nicht auch eine "Standard-Anwendung" die ganz ohne Programmierung über Views abgewickelt werden könnte? Ich mein, diese "Related Posts" Geschichte müsste doch easy machbar sein mittels Taxonomie & Views. Versteh nur nicht warum das so kompliziert ist. Es muss doch "nur" eine Beziehung zu der angezeigten Node aufgebaut werden, dann vllt über Contextual Filters die Taxonomie abgleichen - aber ich krieg das einfach so nicht zum Laufen.

Weisst du einen "normalen" Weg mit Bordmitteln um Related Posts darzustellen?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Vielen Dank für deine

Eingetragen von pyretta (171)
am 26.07.2023 - 10:40 Uhr

Vielen Dank für deine Hinweise schmittrich. Habe es mal versucht das ohne Taxonomie Vor-Filterung zu nutzen (also ohne Taxonomie-Vokabular A) und auch mal eine Taxonomie-ID eingegeben. Leider bleibt es so, dass es keine node damit findet. Allerdings zeigt es bei einer ID-Eingabe wenigstens an, dass es angeblich nichts findet - also die Anzeige bleibt nicht "leer". Habe nämlich eigentlich unter "VERHALTEN, WENN KEINE ERGEBNISSE VORLIEGEN" ein Textbereich definiert - dieser wird angezeigt, wenn eine (vergebene/vorhandene) ID eingegeben wird - aber nicht generell im View-Block des Frontends, der bleibt einfach leer.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich tippe darauf, dass der Fehler woanders liegt

Eingetragen von schmittrich (213)
am 26.07.2023 - 11:05 Uhr

Wenn auch bei händischer Eingabe einer Taxonomy ID nichts angezeigt wird, dann liegt der Fehler wahrscheinlich woanders. Ich hänge dir mal zum Abgleich die config Datei meines Views an, mit dem es erfolgreich funktioniert.

uuid: d46fe4cf-8084-433a-9c9b-ee0f5ad345aa
langcode: en
status: true
dependencies:
  config:
    - core.entity_view_mode.node.teaser_short_list
    - taxonomy.vocabulary.media_tags
  module:
    - node
    - taxonomy
    - user
id: you_could_also_like
label: 'You could also like'
module: views
description: ''
tag: ''
base_table: node_field_data
base_field: nid
display:
  default:
    id: default
    display_title: Default
    display_plugin: default
    position: 0
    display_options:
      title: 'You could also like'
      fields:
        title:
          id: title
          table: node_field_data
          field: title
          relationship: none
          group_type: group
          admin_label: ''
          plugin_id: field
          label: ''
          exclude: false
          alter:
            alter_text: false
            text: ''
            make_link: false
            path: ''
            absolute: false
            external: false
            replace_spaces: false
            path_case: none
            trim_whitespace: false
            alt: ''
            rel: ''
            link_class: ''
            prefix: ''
            suffix: ''
            target: ''
            nl2br: false
            max_length: 0
            word_boundary: true
            ellipsis: true
            more_link: false
            more_link_text: ''
            more_link_path: ''
            strip_tags: false
            trim: false
            preserve_tags: ''
            html: false
          element_type: ''
          element_class: ''
          element_label_type: ''
          element_label_class: ''
          element_label_colon: true
          element_wrapper_type: ''
          element_wrapper_class: ''
          element_default_classes: true
          empty: ''
          hide_empty: false
          empty_zero: false
          hide_alter_empty: true
          click_sort_column: value
          type: string
          settings:
            link_to_entity: true
          group_column: value
          group_columns: {  }
          group_rows: true
          delta_limit: 0
          delta_offset: 0
          delta_reversed: false
          delta_first_last: false
          multi_type: separator
          separator: ', '
          field_api_classes: false
      pager:
        type: some
        options:
          offset: 0
          items_per_page: 5
      exposed_form:
        type: basic
        options:
          submit_button: Apply
          reset_button: false
          reset_button_label: Reset
          exposed_sorts_label: 'Sort by'
          expose_sort_order: true
          sort_asc_label: Asc
          sort_desc_label: Desc
      access:
        type: perm
        options:
          perm: 'access content'
      cache:
        type: tag
        options: {  }
      empty: {  }
      sorts:
        created:
          id: created
          table: node_field_data
          field: created
          relationship: none
          group_type: group
          admin_label: ''
          entity_type: node
          entity_field: created
          plugin_id: date
          order: DESC
          expose:
            label: ''
            field_identifier: ''
          exposed: false
          granularity: second
      arguments:
        tid:
          id: tid
          table: taxonomy_index
          field: tid
          relationship: none
          group_type: group
          admin_label: ''
          plugin_id: taxonomy_index_tid
          default_action: default
          exception:
            value: all
            title_enable: false
            title: All
          title_enable: false
          title: ''
          default_argument_type: taxonomy_tid
          default_argument_options:
            term_page: '1'
            node: true
            limit: true
            vids:
              media_tags: media_tags
            anyall: +
          default_argument_skip_url: false
          summary_options:
            base_path: ''
            count: true
            override: false
            items_per_page: 25
          summary:
            sort_order: asc
            number_of_records: 0
            format: default_summary
          specify_validation: false
          validate:
            type: none
            fail: 'not found'
          validate_options: {  }
          break_phrase: false
          add_table: false
          require_value: false
          reduce_duplicates: true
      filters:
        status:
          id: status
          table: node_field_data
          field: status
          entity_type: node
          entity_field: status
          plugin_id: boolean
          value: '1'
          group: 1
          expose:
            operator: ''
            operator_limit_selection: false
            operator_list: {  }
      style:
        type: default
      row:
        type: 'entity:node'
        options:
          relationship: none
          view_mode: teaser_short_list
      query:
        type: views_query
        options:
          query_comment: ''
          disable_sql_rewrite: false
          distinct: false
          replica: false
          query_tags: {  }
      relationships: {  }
      header: {  }
      footer: {  }
      display_extenders: {  }
    cache_metadata:
      max-age: -1
      contexts:
        - 'languages:language_content'
        - 'languages:language_interface'
        - url
        - 'user.node_grants:view'
        - user.permissions
      tags: {  }
  block_1:
    id: block_1
    display_title: Block
    display_plugin: block
    position: 1
    display_options:
      display_extenders: {  }
    cache_metadata:
      max-age: -1
      contexts:
        - 'languages:language_content'
        - 'languages:language_interface'
        - url
        - 'user.node_grants:view'
        - user.permissions
      tags: {  }

  • Anmelden oder Registrieren um Kommentare zu schreiben

Vielen Dank! Probiere das

Eingetragen von pyretta (171)
am 26.07.2023 - 12:55 Uhr

Vielen Dank!
Probiere das gleich mal aus: Also gleich sie mal ab mit meiner config und schau mal wo die Unterschiede liegen bzw. ändere mal Content Type & Taxonomien etc. so ab, dass es bei mir passen könnte und versuch das mal damit.
Melde mich dann gleich mal, was dabei raus kam.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Habe es nun ausprobiert und

Eingetragen von pyretta (171)
am 27.07.2023 - 12:34 Uhr

Habe es nun ausprobiert und deine config importiert.
Erst hat es genau so wenig funktioniert.
Habe dann aber herausgefunden, dass das Feld, was das Taxonomie Vokabular referenziert, den "falschen" Typ hat, damit das funktionieren kann.

Habe dabei gelernt: Will man eine "Related Posts" View erstellen, die auf Taxonomien aufbaut, geht das nur dann, wenn in den Posts das Taxonomie-Feld vom Typ "Referenz - Taxonomy Term" ist anstelle von "Dynamische Referenzierung - Taxonomy Term".

Nachdem ich ein neues Feld mit diesem Typ angelegt hatte und in allen betreffenden Nodes mit den entsprechenden Werten gefüllt hatte, funktionierte auch die View perfekt.

Also nochmal vielen lieben Dank schmittrich!
Werde den Thread jetzt als gelöst markieren.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Perfekt

Eingetragen von schmittrich (213)
am 27.07.2023 - 13:30 Uhr

Perfekt, freut mich, dass du den Fehler gefunden hast. Ja, die Tücke steckt manchmal im Detail :-) Habe gerade nachgesehen - auch bei mir ist das entsprechende Feld vom Typ "entity reference" - "taxonomy term."

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

Statistik

Beiträge im Forum: 250233
Registrierte User: 20449

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

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