Diferencia entre revisiones de «DRUPAL Módulo View»

De MediaWiki
Ir a la navegación Ir a la búsqueda
(Caso práctico 2: Creando unha vista asociada a un bloque)
(Paso de parámetros a unha vista)
Línea 85: Línea 85:
 
* Vexamos un exemplo.
 
* Vexamos un exemplo.
  
=== Caso Práctico ===
+
=== Caso Práctico 1 ===
  
 
* Imaxinemos que temos unha tenda de ordenadores e vendemos compoñentes do mesmo.  
 
* Imaxinemos que temos unha tenda de ordenadores e vendemos compoñentes do mesmo.  
Línea 126: Línea 126:
 
Image:Drupal_modulos_view_15.jpg| O resultado agora de amosar a vista creada é unha lista de tipos de produto có número de cada tipo.  
 
Image:Drupal_modulos_view_15.jpg| O resultado agora de amosar a vista creada é unha lista de tipos de produto có número de cada tipo.  
 
Image:Drupal_modulos_view_16.jpg| Se prememos sobre un tipo de produto aparecerá a táboa anterior pero só cos datos do tipo seleccionado.
 
Image:Drupal_modulos_view_16.jpg| Se prememos sobre un tipo de produto aparecerá a táboa anterior pero só cos datos do tipo seleccionado.
 +
</gallery>
 +
 +
 +
=== Caso Práctico 2 ===
 +
 +
* Imaxinemos que temos una lista de termos de taxonomía dun vocabulario determinado.
 +
 +
[[Imagen:Drupal_taxonomia_17.jpg|400px]]
 +
 +
: Podemos crear agora unha vista de tipo bloque que amose ditos termos nunha das seccións dispoñibles polo tema.
 +
: Se o facemos co que sabemos ata o de agora poderemos ter un resultado parecido a isto:
 +
 +
[[Imagen:Drupal_taxonomia_27.jpg|400px]]
 +
 +
* Como podemos facer para que so aparezan os termos de primeiro nivel ?
 +
 +
: Existen varias formas:
 +
:* Podemos engadir un criterio de selección á vista e amosar só os termos que teñan un peso (previamente asinado) de 1, por exemplo.
 +
:* Outra forma é engadir un parámetro á vista, para que busque aqueles termos que teñan un valor de termo <u>no seu pai</u> de 0 (isto é, os termos de primeiro nivel).
 +
 +
* Vexamos como se fai:
 +
 +
<gallery caption="Pasando un parámetro a unha vista" widths="350" heights="300px" perrow="2">
 +
Image:Drupal_modulos_view_60.jpg| Creamos unha vista baseada nos termos do vocabulario de deportes. Prememos 'Guardar y editar'
 +
Image:Drupal_modulos_view_61.jpg| Dámoslle un nome ao bloque para poder referencialo despois na sección de bloques do tema. Prememos na sección '''Avanzada''' e prememos o botón '''Aádir''' da sección '''Filtros contextuales'''.
 +
Image:Drupal_modulos_view_62.jpg| Buscamos polos filtros de tipo '''Término de taxonomía''' e seleccionamos o filtro '''Término padre'''. Prememos o botón '''Agregar y configurar filtros contextuales'''.
 +
Image:Drupal_modulos_view_63.jpg| Indicamos o valor predeterminado para o parámetro 'Término padre' de cero, polo que vai buscar os termos que non teñan pai (os de nivel 0). Prememos o botón '''Apply'''.
 +
Image:Drupal_modulos_view_64.jpg| Prememos o botón '''Guardar''' da vista.
 +
Image:Drupal_modulos_view_65.jpg| Imos á '''disposición de bloques''' do tema seleccionado.
 +
Image:Drupal_modulos_view_66.jpg| Prememos no botón '''Colocar bloque''' da sección onde queremos que apareza.
 +
Image:Drupal_modulos_view_67.jpg| Buscamos o bloque que representa a vista.
 +
Image:Drupal_modulos_view_68.jpg| Prememos o botón '''Guardar el bloque'''.
 +
Image:Drupal_modulos_view_69.jpg| Prememos o botón '''Guardar bloques'''.
 +
Image:Drupal_modulos_view_70.jpg| Vemos o resultado.
 +
 
</gallery>
 
</gallery>
  

Revisión del 12:51 1 nov 2016

Introdución

  • Porqué é tan importante este módulo ? Con este módulo imos poder facer 'consultas' á base de datos de Drupal (onde se gardan todos os contidos) e crear un novo contido a partires de dita consulta.
  • Imos poder determinar:
  • O orixe de datos de onde obtemos a información.
  • Os campos que conforman a consulta.
  • As condicións que queremos que cumpran os campos para entrar na vista.
  • Podemos engadir criterios de ordenación.
  • Por exemplo:
  • Imaxinemos que temos un sitio web de traballos. Cun view podemos obter unha nova páxina que obteña os traballos dunha categoría determinada e que os amose nunha táboa de forma ordenada por data.
  • Imaxinemos que temos un sitio web de produtos e queremos crear unha páxina na que se amose en forma de Grid os produtos dun tipo determinado. Queremos que cada produto do grid amose o seu nome e prezo e que cando se preme sobre o nome vaiamos á páxina do produto. Queremos que o grid sexa 3x3 e con paxinación.
  • Como vemos os Views van permitirnos facer consultas como se fixeramos consultas SQL contra unha base de datos, pero non só vai devolver os contidos, se non que vai a establecer un formato de presentación deses contidos (con filtrado e ordeación) e o resultado vai poder ser unha páxina, un bloque para poñer nalgunha sección do Theme,...


  • Para acceder ao módulo View temos que ir a opción de menú Administrar => Estructuras e escoller a opción Vistas:
Drupal modulos view 43.jpg


Creando unha vista sinxela

  • NOTA: Esta sección está asociada á realización dun EXERCICIO.



  • O número de posibilidades que nos ofrece dito módulo é inmenso. Imos facer un exemplo de creación de vista o máis sinxela posible.

Caso práctico 1: Creando unha vista asociada a unha páxina

  • Imaxinemos que temos unha serie de artigos publicados, por exemplo deportivos (valería para calquera tipo de contido).
Cada artigo terá unha serie de etiquetas (dentro dun vocabulario) para relacionar o seu contido. Por exemplo, podemos ter varios artigos de baloncesto e outros de hockey.


  • Podemos crear unha vista que amose todos os artigos dun tipo determinado, por exemplo baloncesto.

Caso práctico 2: Creando unha vista de termos de taxonomía asociada a un bloque

  • Imaxinemos que temos unha serie de artigos publicados, por exemplo deportivos (valería para calquera tipo de contido).
Cada artigo terá unha serie de etiquetas (dentro dun vocabulario) para relacionar o seu contido. Por exemplo, podemos ter varios artigos de baloncesto e outros de hockey.


  • Podemos crear unha vista que amose todos os artigos dun tipo determinado, por exemplo hockey, pero dentro dun bloque e situado nunha rexión do tema actual.
Nota: Lembrar que o tema é a aparencia do sitio web. Dentro dun tema temos rexións e en cada rexión poden situarse bloques ou contidos. Isto está explicado no tema Themes en Drupal.

Paso de parámetros a unha vista

  • NOTA: Esta sección está asociada á realización dun EXERCICIO.



  • Pode suceder que teñamos unha vista con datos dun tipo determinado e queiramos que ditos datos aparezan filtrados por un campo da vista, de tal forma que apareza previamente un resumo có número de elementos que teñen un valor determinado para ese campo, e que ao premer aparezan a lista de elementos da vista que teñan ese dato.
  • Vexamos un exemplo.

Caso Práctico 1

  • Imaxinemos que temos unha tenda de ordenadores e vendemos compoñentes do mesmo.
  • A vista de nome produtos_informaticos ten os seguintes campos:
  • nome
  • prezo
  • tipo, sendo tipo unha lista cos seguintes valores: CPU, Memoria, Hard Disk.


  • Unha vez engadidos, crearemos unha vista en forma de táboa para que amose os produtos. Polo tanto iremos a Administrar => Estructura => Vistas e crearemos unha nova vista.


NOTA IMPORTANTE: Fixarse como DRUPAL envía os datos dos parámetros na URL. Así se escollo CPU a url terá este aspecto: http://localhost/drupal/lista-de-produtos-informaticos/cpu


  • O que imos facer agora é que se nos amose unha lista de 'tipos de produto' có número de produtos de cada tipo e que ao premer aparece unha táboa como a anterior pero só do tipo de produto seleccionado. Polo tanto é como se pasáramos un parámetro á vista para que escolla os dun tipo. Vería a ser a parte where dunha sentenza SQL.


Caso Práctico 2

  • Imaxinemos que temos una lista de termos de taxonomía dun vocabulario determinado.

Drupal taxonomia 17.jpg

Podemos crear agora unha vista de tipo bloque que amose ditos termos nunha das seccións dispoñibles polo tema.
Se o facemos co que sabemos ata o de agora poderemos ter un resultado parecido a isto:

Drupal taxonomia 27.jpg

  • Como podemos facer para que so aparezan os termos de primeiro nivel ?
Existen varias formas:
  • Podemos engadir un criterio de selección á vista e amosar só os termos que teñan un peso (previamente asinado) de 1, por exemplo.
  • Outra forma é engadir un parámetro á vista, para que busque aqueles termos que teñan un valor de termo no seu pai de 0 (isto é, os termos de primeiro nivel).
  • Vexamos como se fai:

Relacións

  • Pode suceder que necesitemos relacionar un tipo de contido con outro para crear unha vista no que haia campos dos dous contidos.
  • Para que isto sexa correcto normalmente teremos que ter algunha relación entre os dous tipos de contido.
  • Nota: Isto sería o equivalente a facer un JOIN en SQL (relacionamos dúas táboas a través das súas claves primaria-foránea).
  • Por exemplo, pode ter un tipo de contido no que gardo información sobre Coches que se gardan nun garaxe. Cada coche está 'relacionado' co seu dono. Por outra banda teño os donos cos seus datos (teléfono, dirección,...). Cando dou de alta un coche, asocio dito coche a un dono, escollendo o dono,por exemplo, dunha lista (isto xa o fixemos no punto anterior).
Pero resulta que necesito unha vista na que aparezan de vez os datos do coche xunto co nome e teléfono do dono, sen ter que premer sobre o dono para que me amose dito dato.
Necesitamos por tanto 'relacionar' o coche cos donos dentro da vista, e a relación a faremos por medio do identificar do dono, xa que este se atopa nos dous tipos de contidos.
  • Vexamos un exemplo.

Caso Práctico

  • Imaxinemos que temos dous tipos de contido:
  • Tipo de contido: Profesores do Centro (cos seguintes campos)
  • Titulo (aparece cando se crea o tipo de contido)
  • Nome
  • Foto (se lle aplica un filtro para reducir o seu tamaño a 260x260)
  • Campo comentarios
Todos os campos son obrigatorios.
  • Tipo de contido: Módulos do Centro (cos seguintes campos)
  • Titulo (aparece cando se crea o tipo de contido)
  • Nome do Módulo: Texto sen formato.
  • Número de Horas: Número entero cun mínimo dunha hora.
  • Ciclo ao que pertence: Lista de selección cos seguintes datos: ASI, DAW e DAM. Só se pode seleccionar un. Se podería crear outro tipo de contido (Ciclos) e crear unha referencia a dito tipo.
  • Profesor que imparte: fai referencia a entidade 'Profesor do Centro' creado antes.
Todos os campos son obrigatorios.
  • Este último campo é o que nos vai servir de 'enlace' entre o tipo 'Profesores do Centro' e 'Módulos do Centro'.





  • Introducimos varios datos de cada tipo de contido, intentando que a lo menos un profesor imparta dous módulos...



  • Aplicando o aprendido anteriormente tamén poderíamos 'agrupar' o listado de Profesor-Módulo para que saian soamente os profesores nunha lista, indicando o número de módulos que imparte cada un deles e ao premer que apareza a táboa anterior.









-- Ángel D. Fernández González -- (2016).