¿Cómo uso los filtros contextuales y las relaciones para mostrar artículos relacionados?

8

Entonces, he estado tratando de resolver esto la mayor parte del día. Lo tuve esencialmente trabajando en la vista previa en un punto, pero ahora parece que no funciona en absoluto.

Caso de uso: cada nodo publicado con el tipo de contenido "Artículo" viene con un campo de Taxonomía para las etiquetas incluidas. Lo que intento hacer es crear un bloque que aparezca debajo del artículo con una serie de miniaturas que se vinculen con otros artículos. Estos artículos a su vez están relacionados en función de las etiquetas utilizadas en cada artículo.

Entonces, la pregunta es:

  1. ¿Cuál sería una buena manera de configurar esto usando los filtros contextuales y las vistas para que la vista misma vea automáticamente los field_tags utilizados como referencia de término de taxonomía en un artículo y haga que muestre automáticamente la salida en función de las etiquetas de cada artículo?

Intenté configurar el Filtro contextual para tener en cuenta que los términos estarían en el Tipo de contenido: Artículos a través del filtro Relaciones, pero, francamente, estoy un poco perplejo en cuanto a lo que necesito hacer para lograr esto.

John Riley
fuente
Esta es probablemente la forma más fácil, estaba tratando de lograr lo mismo y, a veces, pensamos demasiado. ;) drupal.stackexchange.com/questions/69426/…
kyletaylored

Respuestas:

1

He implementado lo mismo en un proyecto en Drupal 7 para mostrar productos del mismo catálogo.

Puede crear vistas del contenido del artículo y crear filtros contextuales para las etiquetas. Mostrará todo el artículo de esas etiquetas.

Puedes seguir el siguiente paso:

  • Agregue un filtro contextual de etiquetas. Botón de radio marcado "Proporcionar valor predeterminado".
  • Seleccione "Id. De término de taxonomía de url" en el menú desplegable de tipo.
  • Marcó la casilla de verificación "Cargar filtro predeterminado desde la página del nodo".
  • Casilla de verificación "Limitar términos por vocabulario".
  • En la sección Vocabularios, marque la casilla de verificación de Vocabularios (etiquetas) que desea agregar filtro en las vistas.
  • En la sección más, marque la casilla de verificación "Permitir valores múltiples", por lo que varias etiquetas pueden usar filtrar el término.

Puede encontrar la imagen de abajo como referencia.

También debe agregar un filtro contextual de la identificación del nodo y seguir el siguiente paso, para que la página del nodo actual no se muestre en la sección de vistas relacionadas.

  • Añadir contenido: filtro contextual Nid en las vistas.
  • Marque el botón de opción "Proporcionar valor predeterminado" y seleccione "Id. De contenido de la URL" en el menú desplegable de tipos.
  • En la sección más del filtro contextual, marque la casilla de verificación "Excluir".

mostrar productos relacionados en vistas de la misma categoría

Jayendra Kainthola
fuente
0

¿Has intentado usar Similar por términos ?

(editar) El problema con los argumentos de la taxonomía de Vistas es que la taxonomía ahora está contenida en un campo, no en un código de módulo de taxonomía vudú. Debido a esto, parte de la API de taxonomía en Drupal 6 no está disponible en Drupal 7.

Utilizo el módulo de contexto con argumentos de vistas desde el contexto . Hice un parche que lo portó Drupal 7. Esto ofrece otra opción en el filtro Contextual en las vistas para obtener los argumentos basados ​​en el contexto u objetos y entidades cargados en ese momento.

Esta es una función especialmente utilizada:

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

No debería haberse eliminado del núcleo de Drupal. Encontrará los términos de taxonomía que use si le pasa el objeto de nodo actual.

Adam S
fuente
No. Sin embargo, lo echaré un vistazo. Mi principal preocupación es que no quiero volverme demasiado dependiente de los módulos, ya que eso ocasionalmente puede causar un poco de inestabilidad en un entorno de producción.
John Riley
similar por términos solo crea una vista que puede clonar. luego deshabilítelo cuando haya terminado.
Entonces, ¿dónde exactamente cargo esta función? ¿Solo modifico el módulo de taxonomía en alguna parte?
John Riley