Wie verwende ich Kontextfilter und -beziehungen, um verwandte Artikel anzuzeigen?

8

Also habe ich den größten Teil des Tages versucht, dies herauszufinden. Ich hatte es im Wesentlichen in der Vorschau an einem Punkt arbeiten, aber jetzt scheint es überhaupt nicht zu funktionieren.

Anwendungsfall: Jeder mit dem Inhaltstyp "Artikel" veröffentlichte Knoten enthält ein Taxonomiefeld für eingeschlossene Tags. Ich versuche, einen Block zu erstellen, der unter dem Artikel mit einer Reihe von Miniaturansichten angezeigt wird, die auf andere Artikel verweisen. Diese Artikel beziehen sich wiederum auf die in den einzelnen Artikeln verwendeten Tags.

Die Frage ist also:

  1. Was wäre ein guter Weg, um dies mithilfe von Kontextfiltern und -ansichten einzurichten, damit die Ansicht selbst die als Taxonomie-Begriffsreferenz in einem Artikel verwendeten field_tags automatisch anzeigt und die Ausgabe basierend auf den Tags jedes Artikels automatisch anzeigt?

Ich habe versucht, den Kontextfilter einzurichten, um zu wissen, dass die Begriffe über den Filter "Beziehungen" im Inhaltstyp "Artikel" enthalten sind, aber ehrlich gesagt bin ich ziemlich ratlos, was ich tun muss, um dies überhaupt zu erreichen.

John Riley
quelle
Dies ist wahrscheinlich der einfachste Weg. Ich habe versucht, dasselbe zu erreichen, und manchmal überdenken wir die Dinge. ;) drupal.stackexchange.com/questions/69426/…
kyletaylored

Antworten:

1

Ich habe dasselbe in einem Projekt in Drupal 7 implementiert, um Produkte desselben Katalogs anzuzeigen.

Sie können Ansichten des Artikelinhalts erstellen und Kontextfilter für Tags erstellen. Es wird der gesamte Artikel dieser Tags angezeigt.

Sie können den folgenden Schritt ausführen:

  • Fügen Sie einen Kontextfilter für Tags hinzu. Aktiviertes Optionsfeld "Standardwert angeben".
  • Wählen Sie in der Dropdown-Liste Typ die Option "Taxonomiebegriff-ID aus URL" aus.
  • Aktiviert das Kontrollkästchen "Standardfilter von Knotenseite laden".
  • Aktiviert das Kontrollkästchen "Begriffe nach Wortschatz begrenzen".
  • Aktivieren Sie im Abschnitt Vokabeln das Kontrollkästchen Vokabeln (Tags), die Sie in den Ansichten filtern möchten.
  • Aktivieren Sie im Abschnitt "Mehr" das Kontrollkästchen "Mehrere Werte zulassen", damit mehrere Tags den Begriff filtern können.

Sie finden das Bild unten als Referenz.

Sie müssen auch einen Kontextfilter für die Knoten-ID hinzufügen und den folgenden Schritt ausführen, damit die aktuelle Knotenseite nicht im Abschnitt "Verwandte Ansichten" angezeigt wird.

  • Inhalt hinzufügen: Nid-Kontextfilter in den Ansichten.
  • Aktivieren Sie das Optionsfeld "Standardwert bereitstellen" und wählen Sie "Inhalts-ID aus URL" in der Dropdown-Liste "Typ" aus.
  • Aktivieren Sie im Abschnitt "Mehr" im Kontextfilter das Kontrollkästchen "Ausschließen".

Zeigen Sie verwandte Produkte in Ansichten derselben Kategorie an

Jayendra Kainthola
quelle
0

Haben Sie versucht, Similar by Terms zu verwenden ?

(Bearbeiten) Das Problem mit den Taxonomie-Argumenten von Views besteht darin, dass die Taxonomie jetzt in einem Feld enthalten ist, das keinen Voodoo-Taxonomie-Modulcode enthält. Aus diesem Grund ist ein Teil der Taxonomie-API in Drupal 6 in Drupal 7 nicht verfügbar.

Ich verwende das Kontextmodul mit Ansichten Argumente aus dem Kontext . Ich habe einen Patch erstellt , der Drupal 7 portiert. Dies bietet eine weitere Option unter Kontextfilter in Ansichten, um die Argumente basierend auf dem Kontext oder den zu diesem Zeitpunkt geladenen Objekten und Entitäten abzurufen.

Dies ist eine besonders verwendete Funktion:

function taxonomy_node_get_terms($node, $key = 'tid') {
static $terms;
  if (!isset($terms[$node->vid][$key])) {
    $query = db_select('taxonomy_index', 'r');
    $t_alias = $query->join('taxonomy_term_data', 't', 'r.tid = t.tid');
    $v_alias = $query->join('taxonomy_vocabulary', 'v', 't.vid = v.vid');
    $query->fields( $t_alias );
    $query->condition("r.nid", $node->nid);
    $result = $query->execute();
    $terms[$node->vid][$key] = array();
    foreach ($result as $term) {
      $terms[$node->vid][$key][$term->$key] = $term;
      }
  }
return $terms[$node->vid][$key];
}

Es sollte nicht aus dem Drupal-Kern entfernt worden sein. Es findet die Taxonomiebegriffe, die Sie verwenden, wenn Sie das aktuelle Knotenobjekt übergeben.

Adam S.
quelle
Ich werde es mir aber mal ansehen. Mein Hauptanliegen ist, dass ich nicht übermäßig von Modulen abhängig werden möchte, da dies gelegentlich zu einer kleinen Instabilität einer Produktionsumgebung führen kann.
John Riley
Durch Begriffe ähnlich wird nur eine Ansicht erstellt, die Sie klonen können. dann deaktiviere es einfach, wenn du fertig bist.
Wo genau lade ich diese Funktion? Ändere ich das Taxonomiemodul nur irgendwo?
John Riley