Como agregamos archivos de js y css en Drupal

Cuando trabajamos en Drupal hay que diferenciar lo que podemos hacer como programadores, y lo que los editores/clientes/redactores pueden llegar a pedirnos.

Algunas de estas cosas pueden ser anatema para nosotros y si no somos capaces de hacer cambiar al cliente de su idea, tenemos que llevar a cabo lo mejor posible, de forma más eficiente y segura.

Con estos módulos se puede facilitar esta funcionalidad, aunque vamos a ver también la forma mediante código para agregar librerías.

La función para agregar js es:

<?php
drupal_add_js
($data = NULL, $options = NULL);
?>

La función para agregar css es:

<?php
drupal_add_css
($data = NULL, $options = NULL);
?>

Otra segunda opción es cargar archivos de js/css medinate los archivos *.info de temas y/o módulos.

Existe una tercera opción que sería usar el módulo libraries para cargar diferentes librerías de js/css.

Estas podrían definirse como las formas más seguras, ya que las realizan programadores. Ahora empezamos con las formas Wild Wild West que son llevadas a caso por los propios usuarios. Si, usuarios agregando js/css al proyecto.

  • Css Injector: Este módulo permite agregar código de css según ciertas reglas, por ejemplo unas líneas de css para diferenciar un tema nocturno de otro diurno.
  • Sweaver: Este modulo se comporta como un dreamweaver en línea, permite modificar el css del tema, creando una nueva hoja de estilos para personalizar nuestro tema.
  • Js injector: Al igual que Css Injector este módulo permite definir reglas para agregar código js
  • Context add assets: Este módulo a diferencia de Css Injector y Js Injector no permite agregar snipets de código, pero si permite cargar los assets que se han definido en módulos o temas.
  • Code per Node: Este módulo agregar snipets de css/js por tipo de contenido o por cada uno nodo de forma individual. También permite agregar snipets de css/js a cada bloque de forma individual. Para agregarlo se habilita una nueva pestaña en el formulario de crear o editar nodos/bloques.
  • CSS: Este módulo crea un nuevo tipo de campo que permite agregar código css que luego se pinta como código en línea a la hora de visualizar nuestro

Como he comentado antes, la opción de permitir a una persona sin conocimientos agregar js/css es peligroso, muy peligroso porque puede estropear cosas, no tan peligroso como sería agregar php en la bbdd, pero si es peligroso. Pero a pesar de ello a veces no queda otro remedio y si es necesario para el proyecto, pues es necesario para el proyecto.

Personalmente me quedo con cpn para los usuarios finales, ya que al ligarlo a entidades concretas su manejo es muy sencillo. Para usuarios un poco más avanzados (maquetadores) context assets y/o css_injector + js_injector son dos buenas opciones..

Un saludo

Oskar