Con la ayuda de otra pregunta: ¿ Mostrar los nodos más nuevos para cada término de taxonomía en Vistas que he podido crear la vista que requiero, excepto que muestra todas las publicaciones para cada término (agrupadas por término)? ¿Cómo limito cada término para mostrar solo 3 de sus últimas publicaciones?
p.ej
Término 1
- Publicación 1
- Publicación 2
- Publicación 3
Término 2
- Publicación 1
- Publicación 2
- Publicación 3
Término 3
- Publicación 1
- Publicación 2
- Publicación 3
fuente
Tras una investigación más profunda, parece que Peek Summary podría ser exactamente lo que quieres. Las capturas de pantalla en la documentación son para Drupal 6, y es ligeramente diferente en Drupal 7, por lo que adjunté algunas capturas de pantalla actualizadas.
Tendrá que editar el buscapersonas para cada grupo que desee limitar, lo cual es lamentable.Cuando edita el buscapersonas para un grupo, cambia la configuración de todos los grupos. Si desea mostrar un número de nodos por grupo diferente al número total de grupos, anule eso en la configuración de 'Formato' en 'Filtros contextuales' (en la primera captura de pantalla en púrpura).Tiene la desventaja de crear esencialmente [n] vistas para [n] agrupaciones, lo que podría ser un problema de rendimiento dependiendo de cuántas agrupaciones tenga, pero limita la consulta solo al número establecido para mostrar. Esto podría mejorar su rendimiento, dependiendo de su caso de uso. Como siempre, cachee responsablemente.
fuente
Una forma de limitar esto en el código sería agregar algo como lo siguiente a un módulo personalizado:
Esto es para ver los términos de taxonomía que están conectados a los nodos a través de una relación. Si solo tiene una vista de los nodos, su kilometraje puede variar.
Aunque evita la visualización de más de 3 por término, esto no impedirá que la consulta devuelva todos los resultados de cada término, por lo que no mejora el rendimiento de SQL en absoluto. Si tiene una gran cantidad de resultados para cada término, realice pantallas de panel de vista separadas y colóquelas todas en una región utilizando algo como CTools Page Manager para que no esté ejecutando grandes consultas.
Como siempre, querrás almacenar en caché estas cosas en producción.
fuente
Hook_views_pre_build()
ohook_build_pre_execute()
podría ser utilizable para algo como esto que reduce el impacto en el rendimiento, pero no estoy tan familiarizado con eso. O puede que le guste mi respuesta a esta pregunta anteriormente .