Comment utiliser les filtres contextuels et les relations pour afficher des articles connexes?

8

J'ai donc essayé de comprendre cela pendant presque toute la journée. Je l'ai fait fonctionner essentiellement dans l'aperçu à un moment donné, mais maintenant il ne semble plus fonctionner du tout.

Cas d'utilisation: chaque nœud publié avec le type de contenu "Article" est livré avec un champ Taxonomie pour les balises incluses. Ce que j'essaie de faire, c'est de créer un bloc qui apparaît sous l'article avec une série de miniatures qui pointent vers d'autres articles. Ces articles sont à leur tour liés en fonction des balises utilisées dans chaque article.

Donc, la question est:

  1. Quelle serait une bonne façon de configurer cela en utilisant des filtres contextuels et des vues pour que la vue elle-même voit automatiquement les field_tags utilisés comme référence de terme de taxonomie dans un article et qu'elle affiche automatiquement la sortie en fonction des balises de chaque article?

J'ai essayé de configurer le filtre contextuel pour être conscient que les termes seraient dans le type de contenu: articles via le filtre Relations, mais franchement, je suis un peu perplexe quant à ce que je dois faire pour même accomplir cela.

John Riley
la source
C'est probablement le moyen le plus simple, j'essayais d'accomplir la même chose et parfois nous réfléchissons trop. ;) drupal.stackexchange.com/questions/69426/…
kyletaylored

Réponses:

1

J'ai implémenté le même dans un projet dans Drupal 7 pour afficher les produits du même catalogue.

Vous pouvez créer une vue du contenu de l'article et créer des filtres contextuels pour les balises. Il affichera tout l'article de ces balises.

Vous pouvez suivre l'étape ci-dessous:

  • Ajoutez un filtre contextuel de balises. Bouton radio coché "Fournir la valeur par défaut".
  • Sélectionnez "Taxonomy term Id from url" dans la liste déroulante des types.
  • Cochez la case "Charger le filtre par défaut à partir de la page du nœud".
  • Cochez la case "Limiter les termes par vocabulaire".
  • Dans la section Vocabulaires, cochez la case Vocabulaires (balises) que vous souhaitez ajouter un filtre dans les vues.
  • Dans la section plus, cochez la case "Autoriser plusieurs valeurs", afin que plusieurs balises puissent utiliser filtrer le terme.

Vous pouvez trouver l'image ci-dessous pour référence.

Vous devez également ajouter un filtre contextuel de l'ID de nœud et suivre l'étape ci-dessous, de sorte que la page de nœud actuelle ne s'affichera pas dans la section des vues associées.

  • Ajouter du contenu: filtre contextuel Nid dans les vues.
  • Cochez le bouton radio "Fournir la valeur par défaut" et sélectionnez "Identifiant de contenu de l'URL" dans la liste déroulante des types.
  • Dans la section plus du filtre contextuel, cochez la case "Exclure".

afficher le produit associé dans les vues de la même catégorie

Jayendra Kainthola
la source
0

Avez-vous essayé d'utiliser Similar by Terms ?

(modifier) ​​Le problème avec les arguments de taxonomie de Views est que la taxonomie est maintenant contenue dans un champ et non un code de module de taxonomie vaudou. Pour cette raison, une partie de l'API de taxonomie dans Drupal 6 n'est pas disponible dans Drupal 7.

J'utilise le module Context avec les arguments de vues du contexte . J'ai fait un patch qui le portait Drupal 7. Cela donne une autre option sous Filtre contextuel dans les vues pour obtenir les arguments basés sur le contexte ou les objets et entités chargés à ce moment-là.

Il s'agit d'une fonction particulièrement utilisée:

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];
}

Il n'aurait pas dû être supprimé du noyau Drupal. Il trouvera les termes de taxonomie que vous utilisez si vous lui passez l'objet nœud actuel.

Adam S
la source
Non, je vais y jeter un œil, cependant. Ma principale préoccupation est que je ne souhaite pas devenir trop dépendant des modules, car cela peut occasionnellement causer un peu d'instabilité pour un environnement de production.
John Riley
des termes similaires créent simplement une vue que vous pouvez cloner. puis désactivez-le lorsque vous avez terminé.
Alors, où dois-je charger exactement cette fonction? Dois-je simplement modifier le module de taxonomie quelque part?
John Riley