{ f a n d o m s }

Avatar

Puqueños arreglos

Algunas me habíais comentado que no podíais borrar vuestros contactos, ni los mensajes de vuestro shoutbox, he sacado unos minutillos esta mañana y ya lo he arreglado. Además le he añadido un poco de ajax y los comentarios o fans desaparecen según los borras sin necesidad de recargar la página.

A estas alturas ya habreis notado que estoy sustituyendo todos los avisos pequeños, estos que no pasan casi nunca de dos palabras: amiga añadida, mensaje borrado,… y ahora aparecen todos en una ventana pequeña.

Creo que queda más más bonito y lo que es más importante, más práctico, se centra la atención más fácilmente y así no os perdéis la información.

Como pasar un sitio de iso 8859-1 a utf-8

He pensado dejar aquí los pasos que he seguido para la conversión por si a alguien le vienen bien.

En primer lugar hay que hacer un backup de la base de datos, puedes hacerla toda de golpe si no es muy grande:

mysqldump NOMBREBD --add-drop-table > backup.sql

O a trozos como he tenido que hacer yo:

mysqldump NOMBREBD TABLA1 TABLA2 TABLA3--add-drop-table > backup1.sql

El siguiente paso sería convertir ese archivo a utf-8 con este comando:
iconv -f iso-8859-1 -t utf-8 backup.sql > backup_utf8.sql

Pero en mi caso no ha sido necesario ya que el dump directamente me lo convertía a utf-8, asi que mirad primero proque si lo codificasi dos veces os van a salir caracteres raros.

Ahora toca cambiar las codificaciones especificadas en la bd para que al vover a cargarla se creen en utf-8. Yo tenía además de latin1_spanish, latin1_swedish_ci porque ese era el que me ponía por defecto phpmyadmin al crear un nuevo campo,  así que he añadido una linea más para reemplazarlo también:

perl -pi -w -e 's/latin1/utf8/g;' backup.sql
perl -pi -w -e 's/latin1_spanish_ci/utf8_unicode_ci/g;' backup.sql
perl -pi -w -e 's/latin1_swedish_ci/utf8_unicode_ci/g;' backup.sql

Y ahora toca subir de nuevo:

mysql USE NOMBREBD;

mysql ALTER DATABASE `NOMBREBD` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

mysql NOMBREBD < backup.sql

Yo la he subido a otra base de datos previamente creada desde el cpanel a la que con la 2ª línea de arriba le he cambiado la codificación a utf-8 por si las moscas.

No me preguntaeis por los distitos tipos de utf-8 que existen, he leído lo que pone en el manula de mysql y sólo me he enterado de que utf8_unicode_ci es más preciso, y utf8_general_ci más rápido, el resto creoq ue son específicos de idiomas, lo cual no entiendo si se supne que el utf-8 es para cubrir todos los idiomas…

Ya hemos terminado con la BD ahora tocan los archivos. Con este comando puedes cambiarlos desde la consola:

for i in *php ; do
iconv -f iso-8859-1 -t utf-8 $i > $i.UTF
mv -f $i.UTF $i
done

Lo malo es que sólo funciona en el directorio que esté, y no siempre, me he llevado la desagrable sorpresa de que después de pasearme por todos mis directorios y  correr ese comando, resulta que la mitad no se habían convertido, y he tenido que convertirlos uno a uno con Notepad ++ que tienen la utilidad de “Convertir a UTF-8 sin BOM“. Muy importante lo de sin BOM ya que os llevareis una desagradable sorpresa si usais sesiones.

Por último si usais gettext para traducir vuestra web a varios idiomas acordaros de que poner el archivo .po en UTF-8 y muy importante bind_textdomain_codeset, yo no lo estaba usando porque creía que al estar en el poedit ya en utf-8 no haría falta, pero si que hace.

Para conseguir la conversión he seguido las indicaciones de estas página:

Nos ponemos con utf-8

Hace tiempo que debería haber hecho esto: pasar toda la web de iso 8859-1 a utf8. No lo hemos necesitado hasta ahora porque el idioma de nuestras usuarias es principalmente el español, pero ahora que nos hemos puesto ha internacionalizarlo y que además todas las librerías que te encuentras hoy en día vienen por defecto en utf8, era hora de dar el paso.

En realidad no lo tenía planeado, pero este fin de semana me he puesto con unas bases de datos geográficas que usaré en LL, venían en utf8, y una cosa llevó a la otra, y al final ya veis, unas horitas cerrado hasta que lo tuviera más o menos listo.

Me esta dando unos problemas enormes la caché, o por lo menos creo que es la caché porque pasa en la misma página ahora si, ahora no, con lo cual no puede ser el código ya que no lo he cambiado. Así que si veis caracteres raros, por favor limpiad la caché, pulsar Ctrl+F5 y a ver si se arregla. Le voy a dar un margen de tiempo, si no se arregla investigaré a ver si anda algo mal.

Actualización: esto de echarle la culpa a la caché siempre…pobrecita, esta vez no era su culpa. Lo he resuelto añadiendo esta línea bind_textdomain_codeset('messages',"UTF-8"); para que gettext lea la traducción en utf8.

Lifestream o qué esta pasando en LL

He añadido una nueva opción que está muy de moda en las redes sociales: el lifetream.

Básicamente se trata de ir contando que pasa en LL. Por ahora sólo está en portada, pero tengo pensado individualizarlo para que aparezca en los perfiles de cada una. Tal vez también loq ue hacen tus amgos, no lo se todavía.

También me gustaría implementar algún sistema de privacidad para que podais decidir quien puede ver vuestro lifestream.

Cambios en el sistema de amigas

Estoy reformando el sistema actual de amigas.

A partir de ahora debe existir reciprocidad para que haya “amistad”, en caso contrario sólo serán contactos.

Si añades a x como contacto serás su fan, su seguidora, si x te añade a ti también como contacto pasareis a ser amigas.

Actualizaré esta entrada cuando termine y esté todo listo.

,

Proyectos