it-swarm-es.com

¿Cómo anulo una lista de taxonomía / término /% con una vista?

Tengo un vocabulario adjunto a un tipo de contenido. Solo se puede seleccionar un término para clasificar un nodo hecho con este tipo de contenido. El vocabulario se llama Vehículos y tiene los términos 'autos, camiones, botes'. El tipo de contenido también se denomina Vehículos.

Utilizo path auto para que muestre [vocabulario: nombre]/[term: nombre] así que cuando se muestre mostrará site.com/vehicles/trucks, por ejemplo, que mostrará todos los camiones ... típico Drupal cosas .. Ok ...

Ahora, tengo una Vista que es una página con una ruta 'vehículos'. Está configurado para mostrar todos los elementos del tipo de contenido 'vehículos'. Esta vista de página también está configurada para tomar un argumento 'taxonomy term id'.

Tenga en cuenta que cuando el término de taxonomía está presente, el alias de url generado para la ruta de taxonomía es exactamente igual que la página Vistas con un argumento proporcionado:

Ruta de taxonomía con alias de URL = vehículos/camiones. Visualiza la página con argumento = vehículos/camiones.

Esto es a propósito. Mi objetivo era mostrar todos los resultados de ese tipo de contenido cuando un argumento no estaba presente, y cuando estaba presente, lo más importante sería filtrar los resultados basados ​​en ese término de taxonomía Y mantener los mismos campos y estructura sin el argumento (igual que sitio.com/vehículos).

El problema es que esto no funciona como se esperaba. site.com/vehicles muestra correctamente mi vista y los filtros relacionados. site.com/vehicles/trucks muestra solo la lista de taxonomía regular y sin formato suministrada por Drupal.

¿Es esto porque el argumento de ID de término de taxonomía no está configurado correctamente?

¿Es este un problema de peso donde los ganchos de taxonomía se disparan después de Vistas? Si es así, ¿cómo puedo reorganizar los pesos aquí para que se dispare correctamente y me dé los resultados que necesito?

Sé lo que va a sugerir: las Vistas vienen con taxonomía/término /% vista para anular drupal vistas predeterminadas.

Sin embargo, esto no va a funcionar en mi caso. Tengo múltiples tipos de contenido, cada uno con su propio vocabulario y cada uno con su vista y un conjunto distinto de campos (casas y automóviles, por ejemplo, tienen conjuntos de campos muy diferentes). La taxonomía/término /% funcionaría si todos los tipos de contenido tuvieran los mismos campos, entonces podría simplemente imitarlos en esa anulación, pero dado que ese no es el caso, ¿cómo puedo obtener correctamente mi ruta con argumento para mostrar los resultados basados ​​en ese vocabulario y mantener mi estructura de campo?

Lo siento si eso fue confuso. Un enlace al sitio para referencia http://www.buyagainbaby.com . El sitio actualmente usa taxonomía/término /% como una anulación, pero nuevamente, eso tiene que cambiar para que cada vista sea responsable de cómo representa su conjunto de resultados en función de la taxonomía.

28
blue928

Todas estas respuestas son excelentes soluciones, y gracias por tomarse el tiempo para proporcionar respuestas tan infomativas. Ashlar, tu respuesta me enseñó mucho sobre cómo funciona la taxonomía, así como la relación entre puntos de vista y taxonomía.

Encontré una solución que funciona muy bien para mi situación, y compartiré eso en caso de que pueda ayudarlos también.

Como expliqué anteriormente, mi problema era que mi punto de vista, sin argumento, proporcionaba los resultados que quería, pero la vista de taxonomía predeterminada con un argumento, que no era lo que quería.

Para resolver esto, instalé el módulo Taxonomy Display http://drupal.org/project/taxonomy_display . Luego reconfiguré cada vista para tener un ID de término de taxonomía como argumento.

La visualización de taxonomía le permite asociar un vocabulario con una vista particular. Ahora, cuando hago clic en vehículos/camiones, que es un alias para taxonomía/término/3, la vista se hace cargo y esto se representa correctamente manteniendo la integridad de la estructura del campo.

Si alguien quiere saber más detalles sobre la configuración, hágamelo saber.

20
blue928

Creo que hay varios factores a considerar en su configuración:

  • Cada ruta debe ser única para acceder a una página, un término, una vista o un panel de página. Si tiene dos piezas de contenido con la misma dirección, perderá el control de la pantalla. Drupal le da prioridad al término de la taxonomía sobre las Vistas, por lo que no se llamará. La definición de la Vista usando taxonomía/término/# interceptará el término de la taxonomía, pero como usted indicó, no muestra una URL significativa.

  • Las vistas no responden a los alias. Esto se debe a que lo primero que hace Drupal con cualquier solicitud es convertir el alias a un estándar de formato de nodo/nid para todo el contenido Drupal. Así que en su caso vehículos/camiones se convierte al nodo/# asignado a la vista. La vista no puede tomar contexto directamente de un alias.

Para obtener lo que quieres, debes hacer una de varias cosas.

  • Cree un menú con las devoluciones de llamada establecidas en la ruta de su vista. Esto generará la URL correcta y permitirá que la Vista responda.

  • Utilice paneles con el Administrador de páginas (en Ctools Suite) habilitado. Si define un Panel de página definido para la URL apropiada, puede colocar su Vista en el panel del panel o pasar el contexto desde la página del panel directamente a un panel de contenido de Vistas. Un panel de contenido no tiene una ruta. En su lugar, toma los contextos como la ruta, establecida directamente por el panel de la página, para crear su contenido. Esta serie de videos en nodeone.se hace un excelente trabajo al demostrar cómo usar los paneles y el administrador de páginas de manera efectiva.

  • Otra forma de obtener vistas de contenido en la pantalla es usar pestañas rápidas módulo. No creo que se ajuste a su situación específica, pero también puede aprovechar directamente las vistas seleccionando las pestañas que defina para una página.

7
Ashlar

Las vistas tienen una vista integrada que emula y anula los términos de taxonomía. Simplemente habilítelo para anular listados de taxonomía con vistas. Taxonomy view

4
Jeremy John

De hecho, hice algo similar hace unos días. Mi solución no es elegante pero funciona. Lo que hice fue anular la visualización del término de taxonomía usando paneles, no vistas. Luego agregué todas mis diferentes vistas para cada término al área de contenido de los paneles. Como en mi caso cada vista tiene un filtro que lo limita a los resultados de un vocabulario particular, cuando visita la página de términos de taxonomía, muestra solo la vista para ese vocabulario particular.

Avíseme si necesita más información sobre cómo implementé esto.

2
Patrick Kenny

WebbyKat ha propuesto una gran solución para configurar la ruta de su página en /taxonomy/term/% en lugar de /categories/%

Funciona, pero reescribirá todos sus términos en una Vista.

1
timofey.com