• : Function ereg() is deprecated in /var/www/investic.net/drupal/includes/file.inc on line 646.
  • : Function ereg() is deprecated in /var/www/investic.net/drupal/includes/file.inc on line 646.
  • : Function ereg() is deprecated in /var/www/investic.net/drupal/includes/file.inc on line 646.
  • : Function ereg() is deprecated in /var/www/investic.net/drupal/includes/file.inc on line 646.
  • : Function ereg() is deprecated in /var/www/investic.net/drupal/includes/file.inc on line 646.
  • : Function ereg() is deprecated in /var/www/investic.net/drupal/includes/file.inc on line 646.
  • : Function ereg() is deprecated in /var/www/investic.net/drupal/includes/file.inc on line 646.
  • : Function ereg() is deprecated in /var/www/investic.net/drupal/includes/file.inc on line 646.
  • : Function ereg() is deprecated in /var/www/investic.net/drupal/includes/file.inc on line 646.
  • : Function ereg() is deprecated in /var/www/investic.net/drupal/includes/file.inc on line 646.

Kerobia.com: i18n, jquery un drupal artesano

Tenemos el placer de presentar www.kerobia.com. Un drupal muy especial que hemos montado en investic.

Kerobia es una grupo de música de Iruña - Pamplona, (nuestra pequeña ciudad). Alberto, el bajista del grupo, es el administrador de sistemas en Investic. Creo que se defiende igual de bien con los instrumentos musicales que con el odioso Midnight Commander (MC). También es especial porque en este disco Kerobia se ha dado de baja de la sgae y ha licenciado su última obra con una licencia creative commons, permitiendo la descarga del disco. En Investic siempre hemos defendido el movimiento de la cultura libre y esta decisión por parte de kerobia es algo importante, que hay que aplaudir y esperar que sirva de ejemplo.

Kerobia.com es un drupal artesano donde se ha priorizado la carga estética sobre el resto de elementos. Es un drupal que podría perfectamente no haber sido, de hecho, en el equipo de Investic este fue el mayor debate ¿merecía la pena usar drupal para un proyecto como este?

Partíamos de las ilustraciones de Maite Gurrutxaga y de que debía tener cuatro idiomas, pero el resto quedaba en nuestras manos. Decidimos tirar con Drupal por demostrarnos que se podían hacer una cosas "bonitas" con nuestro querido entorno rompiendo en parte las líneas habituales de Drupal.

Sin excederme mucho en el apartado técnico voy a realizar un pequeño repaso de cómo hemos resuelto algunos problemas con los que nos hemos encontrado.
En lo que respecta al jQuery que hemos usado para kerobia.com estoy trabajando en un mini manual que publicaré en cocinandocondrupal.net y explicaré como trabajar con estas maravillosas librerías y drupal.

Las adaptaciones son varias, la más importante es que la propia ilustración es el menú, manteniendo el contenido en el centro pero reduciendo mucho todo el entorno enmarcando la ilustración en forma de cuadro.

Lo primero fue definir las regiones en el template.php:

function kerobia_regions() {
return array(
'sidebar_left' => t('left sidebar'),
'sidebar_right' => t('right sidebar'),
'cabecera' => t('cabecera'),
'cab_left' => t('cab_left'),
'cab_right' => t('cab_right'),
'base' => t('base'),
'base_left' => t('base_left'),
'base_right' => t('base_right'),
'content' => t('content'),
'footer' => t('footer'),
'header' => t('header'),
'idioma' => t('idioma')
);
}

?>


Creamos un css nuevo por cada idioma y así poder situar los bloques pero respetando el idioma. Los bloques son gestionados con multilingual block, una utilidad del módulo i18n. En el page.tpl.php hemos añadido una condición y así enlazar el estilo que le corresponde al idioma.

Una de las ideas que nos pedían los "artistillas" de kerobia era que la web tuviera algo de movimiento (que mal nos ha hecho el flash XDD). Y yo tenía ganas de hacer algo con jQuery. El resultado probablemente se puede mejorar, pero estamos contentos por cómo ha quedado. Para esto hemos usado varios módulos y plugins:

  • jQuery_update:Este módulo permite añadir una versión más reciente del la libreria jQuery, que la que trae por defecto drupal en su rama 5.x
  • jQuery_plugin:Este pequeño módulo permite añadir de forma sencilla plugins de jQuery para usarlos en nuestro drupal
    • plugins de jQuery usados
    • jQuery.metadata: Este plugin permite añadir en el class de un elemento unos metadatos que sera enviados a jQuery, nosotros lo usamos para indicar que capas se deben iluminar

      Blog

    • jQuery.aparicion: este plugin es una adaptación del plugin bubble puf, es uno de lo elementos que nos quedan por optimizar. El plugin permite hacer aparecer capas. Por defecto está pensado para que una clase haga de trigger (lanzador) y este trigger haga aparece una sola capa, nosotros hemos adaptado el plugin para que se comunique con el plugin metadata y que con un trigger aparezcan varias capas, las capas que aparecen son despieces de la ilustración pero coloreadas, lo cual hace un efecto aparente. Una de las propiedades del plugin bubble es que evita el burbujeo y mantiene el estado de la capa si se está sobre ella, en nuestro caso de las capas.
  • Módulo aparicion: Este pequeño módulo nos permite añadir los distinos plugins de jQuery en drupal, en breve nos dará mas funcionalidades.


  • **
    * Implementation of hook_perm().
    */
    function aparicion_perm() {
    return array('aparicion');
    }

    /**
    * Implementation of hook_init().
    */
    function aparicion_init() {
    global $user;

    if (user_access('aparicion')) {
    jquery_plugin_add('metadata');
    jquery_plugin_add('aparicion');
    }
    ?>

  • Modulo descarga: Este pequeño módulo lo que nos permite es decir desde donde queremos descargar un elemento pudiendo seleccionar diferentes servidores, no evita el hotlink, pero sí impide que los robots encuentre la url de la descarga. El modulo descargas hace uso del módulo download_count para contabilizar las veces que se descargan los ficheros. Le falta un pequeño lavado y peinado para estar presentable y lo pondremos a degustar en la nuestra cocina.

Una de las secciones del Drupal es Conciertos, creamos un tipo de contenido y uno de los campo es de tipo "date", queríamos que el formato de concierto se asemejara al estilo de un blog con un pequeño calendario delante y seguido el resto de elementos. pero en este caso la fecha nos la da el campo "$node->field_dia_y_hora", posiblemente se puede hacer de otra forma pero esta es nuestra solución (es solo la parte interesante del node-conciertos.tpl.php):

?>

También hemos usado el Aggregator para añadir el feed del blog de kerobia, otro día hablaremos porque todos los artistas tienen que tener un blog en Wordpress.com un sitio MySpace.com y su pagina oficial :)

En resumen, este Drupal no está pensado para ser el mas rápido, pretendemos crear un entorno especial, diferente, pero que a su vez tenga la potencia de un drupal para gestionar sus contenidos.
Es un drupal artesano, ya que cada pieza es un elemento único como si estuvieran construidos a mano. Lo más interesante de este proyecto es ver como drupal se adapta a situaciones diferentes y con un poco(montón) de paciencia se puede cambiar su forma habitual de mostrar las cosas

kerobia


Diseño y desarrollo INVESTIC con DRUPAL