webform toke modulos modules descargar ctools drupal drupal-7 drupal-views

toke - Crear una lista de nodos similares en Drupal 7/Views 3



views drupal (5)

Copie de drupal.stackexchange.com con la esperanza de obtener más respuestas aquí:

Me enfrento a un problema bastante común de mostrar una lista de nodos similar a la actual. Un nodo similar se define como aquel que tiene al menos un término de taxonomía que tiene el nodo actual. Hay pocas soluciones disponibles como módulos, sin embargo, los módulos que he encontrado (específicamente similares por términos) están en fase beta (como en "no funciona correctamente") para Drupal 7.

También encontré un par de soluciones basadas en Vistas y filtros contextuales (como http://scito.ch/content/show-related-nodes-block-based-taxonomy-terms-views-3-and-drupal-7 ) o relaciones. Me gusta bastante, ya que me ahorra la instalación de módulos adicionales y, con Vistas desarrolladas y respaldadas activamente, prefiero usarlas en lugar de cualquier solución personalizada. El problema que no puedo resolver es cómo ordenar "nodos similares" por la cantidad de términos que comparten. Por ejemplo, si tengo el nodo "IPhone 4S" con los términos "Gadget", "Apple" y "Phone", quiero nodos similares en el siguiente orden:

  1. IPhone 3 (Apple, Gadget, teléfono)
  2. IPad (Apple, Gadget, Tablet)
  3. Mac (Apple, computadora)
  4. Bramley (manzana, fruta, árbol)

¿Cómo puedo clasificar los nodos en esta vista por la cantidad de términos que comparten?

Esta pregunta se trata de crear una vista, por favor no sugiera módulos o soluciones personalizadas basadas en php. Gracias.


  1. Crear una vista de bloque
  2. Agregar filtro contextual -> Contenido: Nid -> Proporcionar valor predeterminado -> ID de contenido de URL
  3. Agregar relación -> Contenido: términos de taxonomía en nodo -> especificar el vocabulario apropiado
  4. Agregar relación -> Término de taxonomía: contenido utilizando vocabulario como se especifica arriba -> marcar requiere esta relación
  5. Active la agregación de Vistas (NOTA: la flecha en la captura de pantalla siguiente apunta al lugar equivocado y debe apuntar a 2 filas debajo de donde está)
  6. Suponiendo que está enumerando solo el título, edite el campo de título para usar la relación que configuró en el n. ° 4 anterior.
  7. Agregue nuevos criterios de clasificación de contenido: Nid. En la configuración de agregación, seleccione Contar. Usa relación de # 4 y ordena descendente
  8. Agregar filtro contextual -> Contenido: Nid -> Usar relación desde # 4 -> Proporcionar valor predeterminado - Content ID desde URL -> Desplazarse hacia abajo y expandir "Más", luego marcar "Excluir" para eliminar el nodo actual de la vista

** Consulte el comentario de @ garret-albright a continuación para probar esto en la vista previa de la interfaz de usuario de la interfaz de usuario. **


Cuando configura vistas complejas como esta, hay algunos consejos de configuración que pueden ayudarlo a comprender lo que realmente está sucediendo en cada paso:

En Estructura >> Vistas >> Configuraciones >> Básico:

  • Marque ''Mostrar advertencia de ayuda avanzada'' (importante: requiere el módulo de Ayuda avanzada instalado)
  • Marque ''Actualizar vista previa automáticamente en cambios''
  • Marque ''Mostrar información y estadísticas sobre la vista durante la vista previa en vivo''
  • Marque ''Mostrar la consulta SQL''
  • y finalmente, guardar la configuración

Ahora puede obtener una vista previa de los resultados de cada paso de configuración, la consulta SQL asociada y los campos y tablas involucrados, de modo que le resultará más fácil comprender cómo funcionan los filtros y las agregaciones.

Espero eso ayude.


Esta es una solución alternativa, relacionada con esta pregunta. Sin embargo, es posible que no se aplique a todos los casos, pero si puede usarlo es más simple (y más seguro que la agregación en mi opinión).

Voy a usar panels . Una vez que haya creado un panel para mostrar su entidad (nodo o cualquier otra cosa), puede agregar varias vistas y mostrarlas junto al contenido. uno de estos puntos de vista va a ser nuestro contenido relacionado.
Por lo tanto, los paneles son la única limitación. Tal vez es posible usar mini paneles y representarlo como un bloque, no lo he probado.

Requisitos previos

  • Vistas (¡oh, oh!)
  • Paneles
  • Panel de contenido de vistas: no es necesario descargar, está en el módulo ctools descargado con vistas.
  • Administrador de páginas: igual que el Panel de contenido de vistas (opcional / altamente recomendado).


La vista

  1. Cree su vista como lo haría normalmente, pero no la cree como un bloque o página. Desmarque ambos.

  2. En la página de configuración de vistas cree una relación con el término de taxonomía en la entidad.

  3. Crear un filtro contextual para filtrar: Término de taxonomía: ID de término .

  4. Cree otro filtro contextual : Entity ID o Content: Nid si es un nodo.

    • Al crear este, en la parte inferior hay un conjunto de campos colapsado que tiene la opción: Excluir . Verifíquelo como marcado.

  5. Ahora, al hacer clic en Agregar crear una nueva pantalla de tipo Panel de contenido .

  6. En el área de configuración de visualización (denominada: configuración del panel), abra la entrada de argumento . Debes tener 2 opciones:

    • Contenido: fuente Nid : establece su fuente como Desde el contexto . Establezca su contexto requerido como Content ID (si no está usando un nodo, puede ser ID .
    • Término de taxonomía: fuente de ID de término: establezca su origen como De contexto . Establezca su contexto requerido como ID de término .

Felicidades! Has terminado de crear tu vista. Es hora de un panel (no explicaré mucho sobre la creación de un panel ya que está más allá del alcance de esta Q / A).

El panel

  1. Cree un panel (o habilite el nodo / nodo% panel predeterminado y agregue una variante).

  2. En la pestaña de contexto , crea una relación con el término de taxonomía en la entidad.

  3. Haga clic en agregar contenido en uno de los paneles.

  4. Si no ha cambiado la categoría de la vista, está en el panel de vistas agréguela. Pedirá una identificación de entidad y una identificación de términos, ambos están disponibles ahora en el contexto de su panel, configúrelos.

  5. Ahora cuando se muestra el panel, se muestran todos los contenidos con el mismo término, excluyendo el contenido de esta página.

Configuración de vistas Filtro contextual Entrada de argumento

Importante PS:

Este método es probado y funciona sin problemas, pero en el momento de escribir este artículo, ctools tenía un error. Hay un parche para ello: https://www.drupal.org/node/2195211


No estoy seguro de si entendí completamente su pregunta, pero creo que la cola de nodos es la respuesta. Consulte http://drupal.org/project/nodequeue

El módulo está bien desarrollado. Lo he usado para un cliente y puedes usar su API inteligente también para hacer tu lista.

Espero que haya sido útil.