sábado, 21 de abril de 2012

Creando un slide de imágenes en Drupal 6 y 7

Hace un tiempo necesitaba crear un efecto de esos tan comunes en estos tiempos donde tienes un conjunto de imágenes en un bloque que van saliendo una tras otra, con cierto efecto. Drupal da muchas posibilidades para eso, incluso pluging para views para manejar la presentación de esta forma.

Pero la verdad prefería en ese momento hacerlo, para así aprender. Lo primero que hice fue implementar un módulo que generara un bloque donde colocaría el slide de imágenes. Para eso simplemente busqué un ejemplo en internet y tomé su código y lo adapté a un módulo de Drupal. La verdad funcionó perfectamente.

Pero usando ese mismo módulo en otros proyectos entró en conflicto en una salida de una vista. El problema estaba en que ese ejemplo usaba una versión de JQuery diferente a la que trae consigo Drupal 7. Por ello para evitar entrar en estos conflictos lo mejor es si se va a implementar apoyarse en herramientas que brinda Drupal.

Les presento estas solución:

Para D6 y D7 existe un módulo llamado JQuery plugins, el cual me parece muy ingenioso, sobre todo porque organiza nuestro trabajo. Este módulo trae consigo una serie de plugins de jQuery que permite usarlos directamente en cualquier implementación.

Para instalar el módulo solo es decargarlo, copiarlo en la carpeta de los módulos y activarlo, una vez instalado solo sería algo como esto:



<?php

drupal_add_library
('jquery_plugin', 'cycle' );
drupal_add_js(' $(document).ready(function() {          $("#slide").cycle({fx:'fade',speed:5000}); });','inline' );

?>


<div id="slide" class="pics" style="height: 300; width: 400; ">

    <img src="files/image1.jpg" />

    <img src="files/image2.jpg"/>

    <img src="files/image3.jpg"/>

</div>

Para el caso de D6 sería prácticamente igual, el único cambio estaría en la forma de llamar al plugin cylce, en este caso sería:


jquery_plugin_add('cycle')


El modulo jQuery plugins incluye en estos momentos:

-Cycle
-Date input
-Expose
-Flash embed
-History
-Metadata
-Mousewheel
-Overlay
-Range input
-Scrollable
-Tabs
-Tooltip
-Validate
-Validator

Si se desea incluir uno que no está en esta lista basta con descargárselo y copiarlo dentro del módulo.

domingo, 8 de abril de 2012

De Drupal 6 a Drupal 7

Hoy retomo el blog, con el firme propósito de poner un post semanal, porque las cosas se van dejando y luego quedan como abandonadas. Revisando post anteriores me percato del tiempo que he dejado de escribir. Ese tiempo se traduce en que ya Drupal está estable en su versión 7 desde casi un año y los últimos post se referían en todo momento a la versión 6. Mucho ha llovido desde entonces.

La versión 7 de Drupal trajo consigo muchos cambios. Nos haremos una comparación entre Drupal 6 y 7 porque ya hay cientos de ellas y seguramente no llegaríamos al nivel que muchas de estas alcanzan. Centraremos este Post en algunos detalles que suelen afectar.

Importar y exportar tipos de contenidos

Cuando se instalaba CCK en Drupal 6 aparecía dentro del grupo CCK el módulo Content Copy que permitía exportar e importar estructuras de tipos de contenidos. Para la versión 7, como sabemos el core trae consigo el módulo Field y dependiente de este algunos otros que permiten crear campos con sus respectivas especificaciones, más o menos similar a lo que hacía CCK. Pero el core no cuenta con la posibilidad de exportar/importar tipos de contenidos, para lograr esto en Drupal 7 una opción es instalar el módulo Bundle Copy que permite hacer el proceso de exportar/importar cualquier estructura, requiere que esté instalado el módulo Chaos tolos.

Referencias

Otra problemática que puede perder a los acostumbrados totalmente a Drupal 6 es el ¿cómo crear un campo node reference o user reference?. Sucede lo mismo que en el caso anterior, los módulos asociados a Field que trae consigo el core de Drupal 7 no incluyen ese tipo de campo. Para poder incluirlos solo se necesita instalar el módulo References.

Views

Los cambios también llegaron a las Views, visibles desde el mismo momento en que se accede a la interfaz gráfica. Una opción que se introdujo (Digo se introdujo, porque nunca lo vi en el 6, puede que sea una novedad solo para mí, no estoy seguro) es el hecho de poder crear un formulario en un bloque independiente con los elementos expuestos en los filtros. En el 6 existía la posibilidad de exponer los filtros y así proveer un formulario para filtrar los resultados. Pero esta opción del 7 va más allá permite crear un bloque con el formulario y darle el tratamiento como tal, como un bloque.

View custom flield

El views custom field que tantos problemas nos resolvía a la hora de crear vistas en Drupal 6 ya no existe para la versión 7, pero como todo ha sido para mejor, ahora se cuenta con la alternativa de views _php que no solo permite poner código php en los campos, también en los filtros y en las opciones de ordenamiento.

En el próximo post veremos algunos otros cambios a nivel de la construcción de módulos.