Páginas estáticas en Wordpress 1.5 y bug de _wp_page_template

Una importante característica de Wordpress 1.5 es capacidad de gestionar páginas estáticas aparte de posts. Estas páginas comparten la misma estructura, funciones y aspecto que un post normal. Sin embargo es posible hacer uso del campo “_wp_page_template” para especificar el nombre de la plantilla dentro nuestro directorio de temas en /wp-content/themes.
Al no especificar ninguna plantilla personalizada, wordpress asume el uso de la plantilla “page.php”, y si esta no existe prueba con “index.php”.

El problema que tuve fue que al añadir el campo _wp_page_template en el formulario de edición de la página estática no me actualizaba su valor y se quedaba vacio.

Buscando un poco por los blogs encontré un post que describe un bug en los campos personalizados. Sin embargo escribe que el problema lo tiene solamente con el firefox.

¡ De todas formas si no me funciona con firefox es como si no funcionara para ninguno !

En /wp-admin/post.php aproximadamente por la línea 425 modifiqué este trozo de código para no tener ese problema:

if ($post_status == ’static’) {
generate_page_rewrite_rules();
/******************* COMENTAR AQUI ************************
if ( ! update_post_meta($post_ID, ‘_wp_page_template’, $_POST['page_template'])) {
add_post_meta($post_ID, ‘_wp_page_template’, $_POST['page_template'], true);
}
************************ FIN ****************************/

Por lo que se ve, al principio del desarrollo la idea era que el campo _wp_page_template apareciera en un campo separado del formulario de edición de posts. Quizás por ser más simple al hacer las primeras pruebas o vete a saber. Pero quedó este trozo ahi colgado al actualizar el resto del wordpress.
Por ahora creo que funciona bien con ese cambio sin tener que meterme más a fondo en el tema.

Plugins “stattraq”, “recent comments” y “most popular posts” funcionando con permalinks

Recent comments y popular posts son unos plugins del wordpress escritos por Jonathan Foucher que permite mostrar los ultimos comentarios y los posts que han sido más visitados ordenados por visitas. Estos 2 plugins dependen de otro plugin llamado wp-stattraq de Randy Peterman, un fantástico generador de estadísticas para Wordpress.
La batería formada por estos 3 plugins funciona estupendamente hasta que se activan los permalinks. Entonces el plugin "most popular posts" deja de mostrar nada. Para solucionar esto he hecho un par de modificaciones.

En most_popular.php cambiando:

if (ereg("%postname%", $permalinks)) {

por

if ( false ) {

evitamos que intente usar la estructura de permalinks para conseguir los datos ( a mi no me funciona)
Y por otro lado en stattraq.php y según aconseja Jonathan en este post, he cambiado:

if (($p != ”)){
$p = intval($p);

por

global $post;
if (($post->ID != ”)) {
$p = intval($post->ID);

Bueno, y por ahora no tengo ningún problema.
Para ver los más populares de la semana en vez de los más populares como viene en el plugin original, hay que cambiar la petición sql a algo como esto:

$sqlQuery = "SELECT COUNT(*) AS cnt, article_id, url FROM $tablestattraq WHERE user_agent_type=0 AND article_id!=’feed’ AND article_id!=0 AND TO_DAYS(now())-TO_DAYS(access_time)< $days GROUP BY article_id ORDER BY cnt DESC LIMIT 0,$limit";

Donde $days es el número días (por ejemplo 7) en el que se basará el cálculo de las visitas.

Tanto el creador de wp-stattraq como el de los 2 plugins que hemos comentado antes estan preocupados por el spam en los referrers. El primero anuncia que esta desarrollando algún mecanismo para poder eliminar el referrer spam de las estadísticas entre otras mejoras. También pide colaboración a los desarrolladores con el wp-stattraq ya que estas cosas consumen mucho tiempo.

Continuando con el desarrollo de Trencaspammers

trencaprueba.jpg
En el post del trencaspammers 1.0rc me han llovido comentarios con propuestas muy interesantes y con preguntas sobre los planes que tengo con el plugin. Así que creo conveniente comentar algunas cosas sobre la nueva versión que quiero sacar y si alguien quiere aportar alguna idea me parece estupendo.

He reescrito el código del trencaspammers para integrarlo mejor internamente con el API de Wordpress 1.5 y aprovechar las nuevas posibilidades que ofrece.

No hace falta modificar el archivo /wp-comments-post.php para instalarlo. Es un paso menos que hay que dar. El plugin usa un filtro de aprobación de comentarios siguiendo las líneas de desarrollo de Wordpress.

Los usuarios que están registrados no hace falta que escriban el código.

Ahora el aspecto del captcha se controla por plantillas que se almacenan en los subdirectorios de /wp-content/themes. Podemos tener diferentes aspectos para el plugin manteniendo compatibilidad con futuras versiones del mismo.

Aparte de la plantilla que genera el diseño “clasico” de las versiones anteriores he hecho uno muy simple (menos de 30 lineas de php faciles de personalizar) que emplea archivos .png al azar para componer el grafico. Es la plantilla que estoy usando ahora.

optionstr_snap.pngLas próximas cosas que quiero resolver antes de dar esta versión por acabada son:

Un panel de control integrado con el de wordpress. Donde:
- Poder personalizar las plantillas y colores
- Elegir si el spam lo elimina o lo guarda para moderar (o para analizar por otro plugin)
- Cambiar el tipo de códigos del captcha sin tener mucho conocimiento de php. Es decir, poder elegir que el código que hay que teclear sea: númerico, alfanumérico o de un diccionario de palabras
Seguro que se me olvida algo pero la idea general es la de tener un panel de control.

También quiero hacer una plantilla para trencaspammers que monte la imagen con 3 capas: el fondo, los numeros o textos y otra más encima con transparencias alpha. Creo que puede dar muy buen efecto.

En cuanto al tema de los pingbacks y trackbacks tengo algunas ideas que creo que pueden dar resultado pero las pienso implementar en otro plugin diferente.
Creo que es interesante echar un vistazo mientras a esto: Trackback spam: ¡Solucionado! que por ahora parece bastante efectivo.

Me estan comentando que estos ataques están siendo masivos pero a mi me han llegado 2 o 3 nada más. Me pregunto por qué será.

Para tener un mejor control sobre las versiones y que la gente se pueda bajar el plugin o ayudar a mejorarlo he enviado un email a Matt para hostearlo en un servidor que han montado para este fin.
Se lo envíe hace 2 días pero todavía no me ha contestado. Esperaremos un poco y si pasa del tema pongo el plugin aquí mismo.

Nueva versión de Gazpacho 0.5.2

gazpacho.png
Gazpacho es una interesante alternativa al diseñador de interfaces gráficas Glade.
Al haberse escrito desde el principio en el lenguaje de programación Python y tras unas cuantas refactorizaciones, el código fuente es mucho más manejable, fácil de mantener y extensible que Glade.
En la página oficial de Gazpacho destacan algunas características importantes como poner a la vista todas las herramientas del programa en una misma ventana, el control de deshacer y rehacer ilimitados así como PLANTILLAS reutilizables.

El anuncio original de esta nueva versión es este:

From: Lorenzo Gil Sanchez
Subject: [Gazpacho] ANNOUNCE: Gazpacho 0.5.2
Hi everybody,

I’m happy to announce the 0.5.2 version of Gazpacho. This may be not a
very exciting version because not many new features are present. In the
other hand we are fixing a lot of bugs so you may find it more stable.

We also have a new website: http://gazpacho.sicem.biz . The idea is to
put all the resources associated with Gazpacho in one single place so
information is easier to get.

Description
===========
Gazpacho is a pygtk application that let you design the Graphical User
Interface of your GTK+ programms. It’s goal is to be 100% libglade
compatible.

Enhancements and fixes
======================
- Minor UI bug fixes (Lorenzo, Johan)

- Speed optimizations (Lorenzo)

- Loader refactoring to allow custom widget and properties loaders
(Lorenzo)

- Big Widget refactoring to make a much saner class (Lorenzo)

- Better serialization for Flag/Enum properties (Lorenzo)

- One more test (Rafael)

- Fixed bugs about selecting widgets inside a Notebook (Lorenzo)

- Improved widgets support (Lorenzo)

Resultados del Referéndum para la Constitución Europea: baja participación

En el referéndum de hoy Domingo día 20 de febrero, hemos batido un record histórico por una baja participación que fue de un 41% segun el periódico El Mundo bajo un gran titular: Los españoles dicen ’sí’ a la Constitución Europea ante la indiferencia del 70% que no fueron a votar, votaron NO o votaron en blanco.

Pese a la gran campaña mediática que se ha hecho para llamar a las masas a votar SÍ, sólo un 31% de los españoles censados lo ha demostrado en las urnas.

Tenemos algún blogger que ha asistido a las las elecciones como segundo vocal adelantándonos que en su mesa hubo una participación del 38% aproximadamente.

La baja participación, según mi opinión, resalta el poco interés de los españoles por ‘el tema europeo’

Convertir base de datos y plantillas de wordpress a utf-8 con ayuda de iconv

Aprovechando que tenía que actualizar algunos blogs a Wordpress 1.5 hice un ronda de convertir sus codificaciones de caracteres a utf-8.
Teniendo acceso SSH o al inseguro telnet, esto se hace de una manera muy rápida en cualquier distribucion linux.

Importante: Antes de nada procura hacer copia de seguridad de todo

Cambiando codificación de la base de datos:
Por ejemplo, si tus datos de la conexión mysql son estos:
- usuario: fulanito
- nombre de la base de datos: blogdb
Y quieres cambiar de iso-8859-15 a utf-8

mysqldump -u fulanito -p –add-drop-table blogdb > blogdb.sql

iconv -f iso-8859-1 -t utf-8 blogdb.sql > blogdb-utf8.sql

Con lo que nos resulta un archivo blogdb-utf8.sql convertido a la nueva codificación.

Si al hacer el iconv, lees algo como:

iconv: illegal input sequence at position 163388

Esto es porque hay alguna letra que no está codificada correctamente en el archivo original. Para arreglar este problema que me surgió transcodificando un archivo .sql con codificación en BIG-5 de Keane lo resolví viendo hasta que punto había codificado el archivo y luego yendo al original para corregirlo. Suele ser habitual el problema en trackbacks que cada cual usa la codificación que le da la gana, pero en este caso el problema era en los contenidos del dashboard.

Para reemplazar la base de datos por la que hemos convertido es tan sencillo como:

mysql -u fulanito -p blogdb < blogdb-utf8.sql

Cambiando la codificación de las plantillas

Pues un tanto de lo mismo:

iconv -f iso-8859-1 -t utf-8 index.php > index-utf8.php

y así con cualquier archivo al que le quieras cambiar la codificación

Si no tienes acceso SSH al servidor
En este caso puedes obtener un volcado de la base de datos mysql con phpmyadmin y usar el iconv en tu máquina linux.

También es posible implementar la conversión de caracteres a través de un script php ya que php soporta las funciones de iconv

Ubuntu en un ordenador portatil Aspire 1501LMi plataforma AMD64

ubuntu_jpg.jpgInstalando Ubuntu Warty con el CD de instalación para AMD64
No hubo ningún problema en la instalación. En un par de cafés ubuntu estaba instalado en el portátil igual que con la versión de 32bits.
Sin embargo, el servidor de ventanas se caía pese a haber detectado el solito la tarjeta ATI Radeon Mobility 9600. Se arregló el problema usando el driver VESA en vez del driver ATI, pero de esta manera no se puede explotar la aceleración gráfica. Actualicé a Ubuntu Hoary y todo fue estupendamente.
Ahora tengo las extensiones XV, con lo cual me conformo por ahora para ver las peliculas suavemente sin un consumo excesivo de microprocesador.

Lo que sigue sin funcionar es el lector 3 en 1 de tarjetas de memoria y el módem. Todavía no he encontrado testimonio de que alguien haya conseguido hacer funcionar esto.

Problemas con el Macromedia Flash Player

Macromedia solamente distribuye plugins para las plataformas x86 (solo 32 bits), MacOSX, Solaris y Windows.

Esto es lo que ocurre cuando te bajas el plugin de la página de macromedia y lo intentas instalar siguiendo las instrucciones:

root@ubuntu:/home/inkubo/install_flash_player_7_linux # ./flashplayer-installer
ERROR: Your architecture, ‘x86_64′, is not supported by the
Macromedia Flash Player installer.

Es posible que macromedia crea que no le sale rentable portar su plugin a la arquitectura de 64 bits. Si no estás conforme, puedes contactar con Macromedia para comentarles el agravio.

Tengo ciertas esperanzas en que el proyecto gpl para reproducir archivos swf crezca y podamos tener una alternativa libre para reproducir animaciones flash que no dependa de que Macromedia priorice o no su port del plugin a AMD64.

Problemas con el WINE
Cuando fui a buscar wine ( simulador de windows para linux ) en la lista de paquetes del synaptic no lo encontré. Esto es porque los binarios de windows son para plataformas de 32 bits.
Hay muchas discusiones acerca de hacer funcionar wine en amd64. En la página oficial de wine, en foros donde dicen que debería funcionar un binario de redhat para 32bits. He probado bastantas propuestas de estas pero obtengo siempre unos impresionantes "Segment Faults".
Lo próximo que queda por probar en el portátil es la suspensión o hibernación pero eso otro día.

Comprando tinta barata.

13/2/2005 - -


Últimamente me he estado registrando en el adsense del google y el tradedoubler para ver si es cierto lo que dice la gente por ahí de que se gana dinero. Bueno, ha caido algun click pero me imagino que son los portales estos los que deben ganar dinero. O cualquiera de esos blogs mucho más interesantes que este.

Es increible pero antes de que me picara la curiosidad con lo de los anuncios ni siquiera los leía o los bloqueaba con el programa de quitar banners del firefox. Me estoy enterando de un montón de ofertas que me pasaban desapercibidas.

Hoy he pasado por casa de unos amigos a quienes le interesaron el tema de las tintas a 4.95 € iva incluido de la promoción para su Epson Stylus Color 760. Pues yo encantado porque encima me dan comisión. Entra en la tienda de tintas y papel fotográfico barato

Si crees que esto es publicidad encubierta has acertado. Echa un vistazo a una página que habla sobre los blogs condicionados a la publicidad en htmllife.

OpenOffice necesita betatesters

La alternativa libre del MS Office, Openoffice, está por sacar la versión 2.0. Una de las novedades de esta versión es una aplicación análoga al Access comercial de la que antes no disponíamos y que echábamos realmente en falta. Echa un vistazo a los screenshots o mejor, pruébalo.

Es posible descargarse OpenOffice.org Snapshot Build 1.9.m77 (680_m77) de su sitio oficial.

Los usuarios de Debian pueden añadir esta línea al archivo /etc/apt/sources.list para obtener la versión 1.9.73:

deb http://people.debian.org/%7Ehalls/openoffice/test/ooo1.9-java/ ./

No es necesario desinstalar la versión anterior que tengas del openoffice. Esta se instala en el directorio /opt y por lo tanto puede coexistir con otras versiones.

También sirve para una distribución Ubuntu solo que con pasar a ubuntu hoary (la ubuntu inestable) es suficiente para tener los últimos snapshots del openoffice ( ¡ y del resto de aplicaciones >:D ! )

CÀTIX, distribución linux en catalán

logo catix livecd

Càtix es una distribución de linux liveCD, es decir, que se puede ejecutar arrancando con el CD sin tener que hacer una instalación en el disco duro. La peculiaridad de esta distribución es que está en catalán.

Se trata de una metadistro basada en Debian y Knoppix 3.4

El 31 de enero se publicó la alfa2 de la futura CATix 1.1

He encontrado capturas de pantalla publicadas en la propia web oficial y también estas otras capturas

Download CATix 1.1 alfa2:
ftp://ftp.softcatala.org/pub/knoppix/catix/catix-1.1-alfa2.iso
ftp://ftp.caliu.info/pub/distribucions/catix/catix-1.1-alfa2.iso