Drupal – Como quitar acentos y otros caracteres especiales de las urls generadas por Pathauto

Drupal posee un subsistema que permite generar alias de urls a fin de contar con url limpias, es decir, en vez de tener “node/30” podemos tener “article/this-article-rocks”, mas SEO friendly y más Human friendly.

Existe un módulo llamado pathauto el cual permite definir patrones para generar estas urls limpias automáticamente. Este módulo por defecto, si tenemos el lenguaje español habilitado, tratará de generar urls limpias usando acentos y otros caracteres latinos que como todos bien sabemos no son lo ideal en el universo de la internet, por ende este post trata acerca de como sacar los acentos de los alias de urls generados por pathauto.

Para esto deberán bajar el módulo transliteration, este modulo integrará una opción en el formulario de configuración de pathauto para que se conviertan todos esos caracteres especiales a caracteres el alfabeto ANSI 96.

Descarguen Transliteration desde aquí https://www.drupal.org/project/transliteration

Luego instalen el modulo en su sitio Drupal.

Con el módulo habilitado vayan a /admin/config/search/path/settings para configurar path auto. Verán dos opciones que deberán habilitar

> Transliterate prior to creating alias
> Reduce strings to letters and numbers

Drupal Pathauto Acentos

Al terminar deberán borrar todos los alias existentes y regenerarlos, ojo si su sitio esta en producción e indexado por google, pueden llegar a tener muchos 404.

Para borrar admin/config/search/path/delete_bulk

Drupal Delete all aliases

 

Actualizar admin/config/search/path/update_bulk

Regenerate Alias

Share

Drupal Custom Formatters

En Drupal cuando construimos un content type y añadimos fields al mismo, dependiendo el tipo de field, podemos elegir como dicha field va a mostrarse y donde se mostrará. Para seleccionar donde se mostrará y como tenemos que ir a la solapa de “Manage Display” en el editor del content type.

El orden se setea con drag an drop y dependiendo de la field podemos seleccionar como la field va a mostrarse usando un formatter. Los formaters leen el valor de la field y aplican un tema para renderizarla, el tema es que los formatters son límitados y los requerimientos no.

Si necesitamos aplicar un renderizado particular muchas veces caemos en la primera opción, editar la template, para que se muestren los valores como queremos. Una alternativa un poco mas elegante y que nos proveerá mas flexibilidad en el futuro es crear nuestros propios formatters.

Para implementar un formatter debemos utilizar los siguientes hooks.

Los fundamentales

hook_field_formatter_info : Meta Información para que podamos usar el formatter del editor.
hook_field_formatter_view : Para definir el renderizado del formatter

Los formatters pueden configurarse, estos para definir las opciones del formatter

hook_field_formatter_settings_summary : Muestra en el Manage Display, en la field, las settings.
hook_field_formatter_settings_form : Define el form de setting para la field, requiere el anterior para funcionar.

Recuerden que las settings son por cada field en el content type que usen el formatter, no son globales, y pueden variar de display a display (Default, Teaster, Etc).

Uno de yapa

hook_field_formatter_prepare_view : Para levantar mas información en la field si se necesita.

Les dejo un par de links que tienen ejemplos

http://www.failover.co/blog/drupal-7-custom-field-formatter-hooks-overview

http://www.paulbooker.co.uk/dru……-custom-drupal-field-formatter-existing-field

http://www.whenwhowhere.com/tech-blog/create-custom-field-formatter-drupal-7

https://api.drupal.org/api/drupal/modules%21field_ui%21field_ui.api….

https://api.drupal.org/api/drup…._field_formatter_view/7

https://api.drupal.org/api/dru….tion/hook_field_formatter_info/7

 

Share

Task exited with message: (12) Error in rsync protocol data stream

Ayer mientras realizaba unos deploys en Jenkins con unas tareas creadas en phing (el ant de PHP) me encuentro con que al hacer rsync contra uno de los servidores la task se cortaba con este error.

Task exited with message: (12) Error in rsync protocol data stream

Wtf! me dije a mi mismo, quien habrá metido mano me pregunte ?, buscando el error por google no pude encontrar mucha información adecuada, capaz por que eran las 12 de la noche de un feriado y algo que esperaba sea sencillo se complico, no lo se, pero no pude encontrar mucha info. Después de un buen rato googleando caí en esta FAQ de rsync donde el primer topic dice “the transfer fails to finish“, en el mismo aparecía el mensaje de error y explicaba algunos posibles casos. Las sugerencias a verificar.

  • The destination disk is full
  • An idle connection caused a router or remote-shell server to close the connection.
  • A network error caused the connection to be dropped.
  • The remote rsync executable wasn’t found.
  • Your remote-shell setup isn’t working right or isn’t “clean”

Obviamente mi problema fue el primer caso, después de liberar un poco de espacio en disco ví como el deploy funcionaba nuevamente.

Entre mis búsquedas en google vi varios comentarios respecto al problema de que rsync no era encontrado y sugerían que cambies el path de rsync, también el tema de tener versiones similares de rsync en todos los entornos, pero no era mi caso.

 

Share

La guía sucia y rápida para incrementar un disco virtual de Virtual Box con LVM

Hace un tiempo que vengo usando vagrant para laburar todos los días, me gusto mucho. Vengo usando como box esta maquinola que tiene debian 7 para 64bits.

El tema es que el otro día me paso es que una de las máquinas se me quedo sin disco, me pongo a ver el box y el mismo solo trae 9gb de espacio, así que tuve que ponerme a ver como redimesionar el disco, redimesionar las particiones y para colmo de males este box trae LVM asi que a ponerse a ver como incrementar el volumen de root.

Aca rápidamente el paso a paso.

1 – Incrementar el disco de Virtual box

Esta máquina trae un disco del tipo vdk, asi que vamos a tener que transformarlo a vdi para resaizear. Estos serían los pasos

 VBoxManage clonehd box-disk1.vmdk box-disk-vdi.vdi –format vdi

Y para resaizear el disco clonado

 VBoxManage modifyhd box-disk-vdi.vdi –resize 20000 

2 – Cambiar el disco actual por el cloneado. Para eso usen la GUI de Virtual Box.

3 – Bajar Gparted Live para redimesionar las particiones

4 – Hacer botear la maquina virtual con Gparted Live

5 – Redimesionen la partición extendida y la particióin del LVM, apliquen los cambios, reinicien la virtual y boteen del disco.

6 – Una vez reiniciada la maquina con el disco y las particiones redimesionadas lo único restante es agrandar el volumen LVM.

7 – Como root, miren /etc/fstab para ver el path al volumen.

8 – Una vez listo eso hagan lvextend (en este caso 10gb mas para la partición)

 lvextend -l +1000 /dev/mapper/debian–70rc1–x64–vbox4210-root

9 – Paso final, resaizear la partición dentro del volumen

resize2fs /dev/mapper/debian–70rc1–x64–vbox4210-root

Listo, reinicien y a disfrutar 🙂

Espero les sirva, a mi me va a servir como referencia la próxima vez que me quede sin espacio en disco.

 

Share

Global Day of Coderetreat 2013 – Corrientes

El amigo Matias Mascazzini esta organizando junto con otros colaboradores el capitulo regional del Coderetreat en Corrientes.

La idea es juntarse a implementar un algoritmo con la filosofía, que cada 40 minutos se lo implementa, se muestra que se hizo, se borra todo y se lo hace nuevamente de otra manera, o de una mejor manera, así varias veces. El objetivo es mejorar las técnicas de programación.

La cita es el Sábado 14 de Diciembre, de 10 a 18 hs, Lavalle 50, Salón auditorio de la UCP (Universidad de la Cuenca del Plata), Corrientes, Argentina.

Un evento técnico super copado para ir, les dejo mas información en los links y no olviden registrarse.

banner2

Registración  https://eventioz.com.ar/e/global-day-of-coderetreat-2013-corrientes-argentin

Share