La idea es crear una lista de usuarios y mostrar junto a cada uno la cantidad de publicaciones que hizo. He buscado en drupal.org y solo he encontrado soluciones parciales con código php puro.
El objetivo
Crear una vista que muestre los usuarios que más publicaciones hicieron del tipo "artículo" (publicadas) con link a sus perfiles y mostrando entre parentesis el total. Variantes pueden ser, mostrar imagen del perfil del usuario, filtrar por posts creados desde x fecha o entre x e y, etc.
Se necesita
¿Cómo?
Ver Figura 1.
Como primer paso, a diferencia de lo que parecería razonable, no hay que crear una vista del tipo "users", sino que hay que crear una del tipo "node".
-
Definimos en Style que sea del tipo "HTML List"
-
Definimos en Row style que se "Fields"
-
En Fields
-
(Ver Figura 2) Agregamos el campo "Usuario: Nombre", y en la configuración borramos la etiqueta y tildamos "Link this field to its user"
-
(Ver Figura 3) Agregamos el campo "Node: Nid". ¡Y acá está lo interesante!, este campo será el usado para hacerl el COUNT dentro de la consulta, por lo que desde ahora lo tomaremos como el campo que mostrará el total de posts del usuario. En la configuración tildaremos "Rewrite the output of this field" y pondremos en la caja de texto "([nid])".
-
(Ver Figura 4) Atencion: Agregamos un nuevo campo SQL Aggregation: Group By Fields, que hará la agrupación por nombre de usuario. Debemos asegurarnos siempre de que este campo sea el último en ser agregado, de lo contrario dará error. En la configuración definimos:
-
Fields to Group On: Usuario: Nombre
-
SQL Aggregation Function: Numérico
-
Fields to Aggregate with the SQL function: Nodo: Nid
-
Field to Sort Resultset On (after SQL Function is applied): Nodo: Nid
-
Sorting Direction: Descending
-
(Ver Figura 1) En Filtros definimos
-
Usuario Activo: si
-
Nodo: Tipo = Articulo (o lo que sea)
-
(Ver Figura 1) Añadimos un display bloque a nuestra vista y lo guardamos, luego desde admin/build/block lo ubicamos y listo!
Figura 1.

Figura 2

Figura 3.

Figura 4.

Enviar un comentario nuevo