Crear un calendario académico en Drupal 7

Crear un calendario en Drupal es fácil, porque el proceso es simplemente la instalación de dos módulos y la creación de una vista. Por si a alguién le pilla esto fuera de juego, lo voy a explicar rápidamente.

 

Cómo crear un calendario

La magia se resume en la instalación de los módulos Date y Calendar. El primero de ellos nos va a servir para poder tener un control casi total de las fechas que aparecen en nuestra instalación de Drupal 7. Gracias a él podremos añadir un campo de tipo fecha mucho más completo a nuestros tipos de contenido, y para crear un calendario vamos a necesitar esto (a menos que queramos que sea un calendario de publicación, en cuyo caso no es necesario porque utilizaremos el campo de fecha de publicación de nuestros nodos). El campo que de fecha que creemos será el que determinará en qué fecha del calendario aparecerán nuestros contenidos.

Ahora sólo tenemos que ir a vistas y crear una nueva desde una plantilla, y como veremos, el módulo Calendar nos ofrece un montón de estas. De hecho, nos ofrecerá una por cada campo de fecha que creemos. Sin más, guardamos, y ya tenemos nuestro calendario funcionando con un montón de displays: mes, semana, día y año.

Ahora cada vez que creemos un contenido con y definamos ese campo fecha nos aparecerá en el calendario generado por la vista, fácil, ¿no?

 

Crear un calendario académico

¿Cual es el problema? Pues que en la visión anual de nuestro calendario vemos que va de Enero a Febrero. Esto puede ser muy útil cuando trabajamos con años naturales, pero hay muchas empresas y entidades que rigen su actividad por el calendario académico, y esto nos rompe los esquemas.

¿Cómo podemos hacer que en la vista anual veamos desde septiembre de un año hasta junio del siguiente? Vamos a por ello.

Vamos a tener que modificar la vista creada, pero que no os dé miedo. Al venir de una plantilla si hacemos algo mal siempre podremos eliminarla y crearla otra vez desde la plantilla para empezar desde cero. Vamos a ir al display de Año de la vista y desplegamos las opciones avanzadas que hay en la columna derecha. Ahí vemos que existe un filtro contextual que vamos a cambiar. Hacemos click en él y en la parte superior de la ventana emergente que nos aparece vamos a decirle que los cambios van a ser sólo para esta página, ya que no queremos afectar al resto de displays. Ahora, bajo la sección que dice “Cuando el valor del filtro no está en la URL” vamos a proporcionar un valor por defecto de tipo Valor fijo, y en este caso pondremos 2016. Esto va a hacer que el calendario que muestre sea siempre de 2016 (tendremos que cambiar esto cuando pasemos de año académico). Ahora le damos a guardar y seguimos.

El siguiente paso va a ser añadir un nuevo display a la vista de tipo adjunto. Tras hacerlo, bajo la configuración del adjunto le vamos a decir que se añada al display Año, y que se coloque después. También le diremos que no herede los filtros contextuales, porque le vamos a dar nosotros uno fijo. Así que vamos a los filtros contextuales y añadimos uno exactamente igual que el que tiene el display Año. Revisad todas las configuraciones para que sean exactas, pero en el valor fijo proporcionado se lo vamos a cambiar a 2017. Ahora guardamos y en la página del calendario anual debemos ver el año 2016 y después el 2017. Ya hemos dado un paso, ahora vamos a rematar la faena.

 

Modificando plantillas

Ahora nos vamos a ir a la carpeta del módulo Calendar y dentro de él encontraremos la plantilla calendar-year.tpl.php. Debemos copiarla y pegarla en nuestro theme dos veces: una para el display de la página Año y otra para el display del adjunto que acabamos de crear. Estas plantillas deben tener un nombre específico, así que vamos a renombrarlas adecuadamente.

Volvemos a la vista y al display de Año. Desplegamos de nuevo las opciones avanzadas y la última fila vemos la información de nuestro theme, así que hacemos click allí. Vamos a buscar el conjunto de plantillas que empieza con calendar-year.tpl.php en negrita, y copiamos el nombre del último elemento de ese conjunto, ya que ese es el nombre que le vamos a dar a la primera de las plantillas, en mi caso es calendar-year–calendar–page.tpl.php. Vamos al display del adjunto y hacemos lo mismo, así que ya tenemos las dos plantillas renombradas.

Lo siguiente es modificarlas. La primera la vamos a cambiar por este código:

 

Si lo veis bien, estamos mostrando solo los cuatro últimos meses del año 2016, y además no estamos cerrando la tabla, ya que de eso se va a encargar la plantilla del adjunto, que en mi caso se llama calendar-year–calendario-academico–attachment-1.tpl.php:

 

Vemos que esta plantilla completa el contenido con los siete primeros meses de 2017 y cierra la tabla. Ahora lo que tenemos que hacer es borrar la caché e ir a nuestra página de calendario anual para comprobar que ya vemos nuestro calendario académico y que es completamente funcional.

Experto en la Gestión de Proyectos Web basados en Drupal con más de 8 años de experiencia. Desarrollo Full Stack (Front-end, Back-end, Site-Builder).

No Replies to "Crear un calendario académico en Drupal 7"