Drupal: Crear vista de usuarios filtrados por un campo de tipo de contenido
En la siguiente guía intentaremos mostrar la forma de crear una vista para listar usuarios. Esta lista de usuarios será filtrada por un campo de un tipo de contenido del cual el usuario es autor.. Para ello, en la vista crearemos una RELATIONSHIPS entre el usuario y los nodos de su autoría.
Escenario
El escenario en el que se contextualiza esta guía es el siguiente:
Tipo de contenido
Como lo muestra la imagen, trabajaremos con un tipo de contenido llamado "Aporte" que posee, además de los campos "Title" y "Body", un campo numérico llamado "Aporte mensual".
Usuarios
Para efectos de esta guía consideraremos tres usuarios:
- Financista pudiente (financista@pudiente.cl)
- Financista moderado (financista@moderado.cl)
- Financista modesto (financista@modesto.cl)
Nodos
Asumiremos que cada financista ha comprometido su aporte mensual, por lo tanto en la plataforma Drupal tendremos tres nodos de tipo "Aporte" que almacenan el monto del aporte por cada financista. Asumiremos también que cada uno de ellos anotó su aporte como usuario autenticado en la plataforma:
- Financista pudiente: 50.000
- Financista moderado: : 3.000
- Financista modesto: : 1.000
Crear la vista
Primero crearemos la vista desde la opción del menú Structure > Views > Add new view. Luego, como lo muestra la siguiente imagen, debemos seleccionar la opción para Mostrar usuarios. Con esto le indicamos a Drupal que la "tabla base" de la vista es "Usuarios". Además configuraremos la vista con un formato de tabla HTML:
Luego de configurar estas opciones presionamos el botón "Continue & edit".
Crear relación
Ya que en el paso anterior hemos configurado la vista para que muestre un listado de usuarios ("tabla base"), ahora debemos crear una relación que vincule a estos usuarios con cada nodo donde él/ella es "author". Para esto iremos a la opción "Agregar" de la sección "Relationships":
En ventana que se despliega filtramos por usuario y seleccionamos la opción "Usuario: Content authored".
Configurar criterios para filtrar
Ya que hemos creado la relación entre los usuarios y los tipos de contenidos de su autoría, ahora debemos filtrar esos tipos de contenidos para que el listado sólo nos muestre los de tipo "Aporte":
Se abrirá una ventana en la que filtraremos el tipo de contenido que deseamos desplegar:
Seleccionamos el tipo de contenido "Aporte":
Mostrar el campo del tipo de contenido
Ahora que ha sido creada la relación y han sido configurados los criterios para filtrar la vista, falta indicarle a Drupal que despliegue el campo "Aporte mensual" junto al nombre del financista:
Seleccionamos el campo "Aporte mensual" que contiene el monto aportado:
Resultado
Como resultado de la ejecución de los pasos descritos, se ha creado una vista que despliega un listado de financistas asociados al monto de su aporte.:
Conclusión
Cuando creamos una vista mediante la interfaz gráfica de Drupal, como primer paso le indicamos cual será su "tabla base". En este caso lo hicimos seleccionando la opción "Usuario". Luego, al configurar la vista podemos indicarle que esta "tabla base" se debe relacionar con otra tabla y así lo hicimos al crear la relación que vinculó a cada usuario con los nodes de su autoría. Una vez creada esta relación pudimos configurar los criterios de filtrado y agregar campos desde el tipo de contenido relacionado