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

28

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 ... cosas típicas de Drupal ... Okay...

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 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 era 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 las vistas predeterminadas de drupal.

Sin embargo, esto no va a funcionar en mi caso. Tengo varios 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.

blue928
fuente

Respuestas:

20

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 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.

blue928
fuente
¡Su solución suena como un gran plan! Desafortunadamente, no obtengo la "Pantalla de taxonomía que le permite asociar un vocabulario con una vista en particular", parte ... ¿Podría explicarme un poco más en detalle?
Michiel
Una vez que el módulo de visualización de taxonomía esté instalado, verá en sus opciones de configuración para controlar cómo se muestran las listas de términos de taxonomía. Las vistas son una opción. Usted elige la vista y luego elige a qué elemento de esa vista desea que se vean los elementos de su lista de taxonomía. Todo esto supone que ya ha creado una vista que enumera el contenido tal como lo desea. Una vez que presione guardar, su lista de taxonomía se ve exactamente como la salida de la vista que seleccionó en la configuración.
blue928
7

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 Vista usando taxonomía / término / # interceptará el término de 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 de Drupal. Entonces, en su caso, los vehículos / camiones se convierten al nodo / # asignado a la vista. La vista no puede tomar el contexto de un alias directamente.

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 el módulo de fichas rápidas . 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.

Sillar
fuente
3

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. Vista de taxonomía

Jeremy John
fuente
2

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.

Patrick Kenny
fuente
No soy un gran fan de los paneles, pero esa es una ruta posible. Además, seguí este tutorial aquí leveltendesign.com/blog/dustin-currie/… . Esto funciona perfectamente, excepto que usa el número de identificación de la taxonomía, pero necesito el nombre de la taxonomía como con guiones en lugar de espacios. ¿Alguna vez has hecho algún truco como este?
blue928
2
Hacemos esto todo el tiempo. Los paneles definen una página para esto (aunque está deshabilitada de forma predeterminada) fuera de la caja, por lo que difícilmente llamaría a esto poco elegante.
mpdonadio
Me gustaría más detalles! :)
Chris Happy
1

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

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

timofey.com
fuente