drupal
Publicada la beta de Rules
Carlos — Jue, 28/08/2008 - 10:46
El sucesor de workflow-ng para Drupal 6 se llama Rules y acaban de publicar la primera beta. Es un módulo del que dependen bastantes otros módulos además de ser realmente muy potente.
Es un pequeño paso para Rules pero un gran paso para Drupal 6.
IE tiene un número máximo de ficheros css que le puedes añadir
Carlos — Lun, 25/08/2008 - 11:52
En una de las webs que estamos desarrollando tenemos un archivo de css para corregir los errores de IE usando comentarios condicionales (como en todas las otras webs). Resulta que de repente no funciona y pongas lo que pongas no hace caso. Es más, luego veo que en algunas páginas funciona y en otras no.
Pues el problema estaba en que IE6 (por lo menos, IE7 ahora no lo sé) tiene un límite en en número de ficheros css que le puedes añadir y resulta que el fichero que arreglaba los bugs de IE6 estaba fuera de él. En un issue de Drupal ponen que el límite está en 31 aunque yo he contado los mios y llegan a 27. En esa página hacen mención al método createStyleSheet que tal vez sea el que use Explorer internamente para añadir los ficheros css externos aunque no lo tengo muy claro. Tal vez haya contado mal yo y si tengo más de 31 ficheros.
Supongo que algunos pensaréis que son una burrada de ficheros css pero cuando desarrollas en Drupal no son tantos. Hay muchos módulos que añaden los suyos y luego siempre va bien separarlos según sus funciones. Y cómo Drupal te permite juntarlos todos en uno luego no hay problema de rendimiento pero eso se hace con la web en producción, en desarrollo no se puede por que hay problemas de cache y no ves los cambios inmediatamente por lo que se desconecta hasta estar listos.
Actualización
En Drupal existe el módulo Unlimited CSS que evita que pase esto ya que añade los CSS usando un import.
Nueva vulnerabilidad en Drupal 5 y Drupal 6
Carlos — Jue, 14/08/2008 - 11:14
Se han encontrado varias vulnerabilidades en Drupal 5 y Drupal 6 por lo que es altamente recomendado actualizar.
Como es habitual además de corregir los agujeros de seguridad también se han corregido algunos bugs menores para Drupal 6 y para Drupal 5.
Esto últimamente ya parece Wordpress....
Escogida la compañia encargada del rediseño de Drupal.org
Carlos — Jue, 14/08/2008 - 10:54
Lokiyo en un comentario de "el rediseño de Drupal.org" nos informa que ya ha sido escogida la empresa que se encargará de hacer el rediseño de Drupal.org: será Mark Boulton Design.
Entre los trabajos más destacables están Coolspotters y Noozz.com. Puedes ver más trabajos en su portfolio. Personalmente me gusta bastante el diseño de Coolspotters, a ver si Drupal.org por fin tiene el aspecto que se merece.
Cómo funciona el cron en Drupal
Carlos — Mar, 12/08/2008 - 23:14
Ged de Drupalweb me lanza el reto de explicar un poco cómo funciona el cron en Drupal. En realidad lo hizo hace unos días pero no lo vi hasta ayer, pero bueno, supongo que más vale tarde que nunca.
Realmente pide saber más sobre el cron y sobre el ping, pero yo he escogido el cron. El ping se lo dejo a Pedro o a Daniel o a quien quiera.
Cómo introducción estaría bien saber que es el cron (de la wikipedia):
En el sistema operativo Unix, cron es un administrador regular de procesos en segundo plano (demonio) que ejecuta programas a intervalos regulares (por ejemplo, cada minuto, día, semana o mes). Los procesos que deben ejecutarse y la hora en la que deben hacerlo se especifican en el archivo crontab.
Cron se podría definir como el "equivalente" a Tareas Programadas de Windows. Los usuarios habilitados para crear su archivo crontab se especifican en el archivo cron.allow. De manera análoga, los que no lo tienen permitido figuran en /etc/cron.d/cron.deny, o /etc/cron.deny, dependiendo de la versión de unix.
Es decir, que es un programa que ejecutará en los intervalos que le digamos un determinado programa. Esto se hace usando el comando crontab -e o desde el panel de control de tu hosting. Lo siguiente es una linea del cron:
30 * * * * /home/carlos/mi_script
Esto hará que cuando lo minutos sean igual a 30, las horas cualquiera, el día cualquiera y el mes cualquiera se ejecuta /home/carlos/mi_script. Es decir, que el primer número indica los minutos, el segundo las horas, el tercero los días, el cuarto los meses y el quinto el día de la semana (me olvidé de este, gracias FeKuLa). Un asterisco vale de comodín o podemos poner más de un valor usando un coma cómo separador. Por ejemplo el siguiente código que ejecutará mi_script cuando los minutos sean 0, 15, 30 o 45, es decir, cada cuarto de hora:
0,15,30,45 * * * * /home/carlos/mi_script
Vale, ¿y ahora cómo unimos esto al cron de Drupal? Es fácil, en Drupal hay un archivo llamado cron.php (curioso el nombre) que es el que hemos de configurar para que el cron lo ejecute, por lo que añadiremos algo así:
0 * * * * wget -O - -q -t 1 http://www.midominio.com/cron.php
Con esto se ejecutará cada hora. Si estás en un hosting compartido es mejor poner un minuto diferente de 0, uno que no sea normal, así cuando se ejecute no habrá otros programas ejecutados por el cron e irá más rápido (o por lo menos no ayudará a sobrecargarse el servidor, algo más habitual de lo normal). Dependiendo de nuestra web tal vez sea necesario que se ejecute más o menos veces. También es posible que wget no esté en el path por lo que habrá que poner la ruta completa, normalmente suele ser /usr/bin/wget.
Recuerda que esta linea no se añade en el cron.php de Drupal, se ha de añadir usando el comando crontab -e (sólo para expertos) o usando tu panel de control de hosting.
Ahora sólo falta por saber que hace el fichero cron.php aunque primero hay que saber lo que es un hook en drupal. En la documentación de Drupal pone (traducido más o menos por mi):
Permite a los módulos interactuar con el núcleo de Drupal.
El sistema de módulos de Drupal esta basado en el concepto de "hooks". Un hook es una función de PHP a la que llamamos foo_bar(), donde "foo" es el nombre del módulo (cuyo nombre de archivo es también foo.module) y "bar" es el nombre del hook. Cada hook tiene una serie de parámetros predefinidos y el tipo de variable que devuelve.
Para ampliar Drupal, un módulo simplemente implementa un hook. Cuando Drupal desea permitir la intervención desde los módulos determina que módulos implementan un hook y ejecuta ese hook en los módulos habilitados que lo implementen.
Ummm, creo que no está demasiado bien explicado o lo he traducido mal. Intentaré explicarlo con mis propias palabras. Un hook no es más que una función de un módulo pero que se llama de una manera especial. Por ejemplo, si estoy haciendo un módulo que se llama carlosrincon y quiero que ese módulo tenga un bloque con mi foto tendré que usar el hook_block por lo que llamaré a mi función carlosrincon_block.
Entonces cuando Drupal quiera ver todos los bloques disponibles mirará de entre todos los módulos habilitados las funciones que se llamen nombremodulo_block y encontrará el mio.
Pues todo esto venía por que existe el hook_cron que cuando el fichero cron.php se ejecuta Drupal busca en todos los módulos que hayan implementado el hook_cron y ejecuta el hook. Así por ejemplo la búsqueda indexa el contenido cada vez que se ejecuta el cron.php por que tiene una función que se llama search_cron()
<?php
function search_cron() {
// We register a shutdown function to ensure that search_total is always up
// to date.
register_shutdown_function('search_update_totals');
// Update word index
foreach (module_list() as $module) {
module_invoke($module, 'update_index');
}
}
?>
Bueno, espero poder haber aclarado las dudas pero si hay alguna más para eso están los comentarios.
Comentarios recientes
hace 3 años 6 semanas
hace 3 años 39 semanas
hace 3 años 47 semanas
hace 4 años 3 días
hace 4 años 8 semanas
hace 4 años 8 semanas
hace 4 años 9 semanas
hace 4 años 10 semanas
hace 4 años 10 semanas
hace 4 años 11 semanas