Simbiontes
Cada loco con su tema   

Blog |  Acerca de...  |  Asuntos recurrentes  | 

DirifyES: arreglando la función dirify, dirifyplus y dirify unicode para MovableType

Escrito por El Malvado Acidonitrix , Lunes 21 de Noviembre de 2005
   0 Comentarios
Archivado en: Codeblog , Movable Type

Presentamos una variante para la funcion dirify y dirifyplus que resuelve el problema de los acentos de dirifyplus pero aprovecha la potencia de esa función.

Presentamos una variante para la funcion dirify y dirifyplus que resuelve el problema de los acentos de dirifyplus pero aprovecha la potencia de esa función.

In English, please read DirifyES: the power of dirifyplus with unicode support.

Descargar código fuente de dirifyES y notas de instalación.

El operador dirify se utiliza en Movable Type para transformar cadenas de texto en partes de una URL válida, de forma que, por ejemplo, puedas construir las direcciones a cada nota con la categoría y el título. Así, por ejemplo, la siguiente dirección URL

http://www.simbiontes.com/archives/literatura/ la-respuesta-a-la-pregunta-ultima-de-la-vida-del-universo- y-de-todo.php

resulta más legible a simple vista que

http://www.simbiontes.com/archives/000065.php

Mediante dirify se sustituyen los carácteres inválidos en otros válidos para una dirección URL. Espacios, signos de puntuación, tildes, paréntesis y otras minucias son convenientemente sustituidos por otros. Especialmente importante en el caso del castellano: los caracteres con tilde, que no son válidos en una dirección, se cambian por los equivalentes sin tilde.

Además de facilitar la lectura directa de las URL, se mejora la posición en los buscadores, ya que estos dan bastante peso a la dirección URL. En otras palabras, un buscador premia aquellas páginas cuya dirección contiene información sobre el contenido de la página.

Sin embargo, la función dirify que viene de serie con MT no funciona correctamente en las sustituciones. Además, modifica los espacios con guiones bajos (_). Esto tiene el defecto de que Google considera que un guión bajo NO separa palabras, mientras que un guión corriente sí.

Esta limitación se subsana con dirifyplus, que ofrece múltiples parámetros de sustitución (un total de 60 combinaciones, incluyendo guiones). Desafortunadamente, sustituye cualquier carácter ascii mayor de 127 por una a. Por ejemplo, la entrada

http://www.simbiontes.com/archives/ tecnologia/que-aspecto-tiene-sap.php

se convierte en

http://www.simbiontes.com/archives/ tecnologaa/qua-aspecto-tiene-sap.php

El autor de dirifyplus publicó "unicode", una versión adaptada para caracteres unicode, pero muy limitada en otras sustituciones. Entre otras cosas, se echa a faltar el cambio de guiones bajos por guiones corrientes.

Llegados a este punto encontramos dos escuelas de pensamiento. La que aboga por tocar la función dirify (en el blog sueco 456 Berea street, Fixing the dirify function in Movable Type), haciendo otros cambios en las sustituciones además de los caracteres ascii altos. Desde nuestro punto de vista (aquí nos constituimos en escuela de pensamiento), no es conveniente alterar el comportamiento de una función que el desarrollador de otro módulo puede estar usando dando por hecho que no ha cambiado. En su lugar, nos ha parecido más conveniente generar nuestro propio operador dirify, al que hemos llamado dirifyES. Ciertamente, la cosa no tiene mucho mérito. Se trata de adaptar dirifyplus, eliminando la llamada a convert_high_ascii e incluyendo convert_high_unicode del plugin unicode. La llamada a convert_high_unicode se realiza cambiando la siguiente línea

$s = convert_high_ascii($s); ## convert high-ASCII chars to 7bit

por esta otra:

$s = convert_high_unicode($s); ## convert high-ASCII chars to 7bit.

De esta forma, podemos hacer la siguiente llamada:


<$MTCategoryLabel dirifyes="sld" $>/<$MTEntryTitle dirifyes="sld"$>.php

DirifyES acepta exactamente los mismos parámetros que dirifyplus. Llevamos un año con ella y no nos ha dado problema alguno.

 

Digresión:

Hemos hablado hace unas semanas de la utilización de dirifyES para generar URLs semánticas y la generación de perma-permalinks que tuvimos que hacer al migrar de MT 2.6 a 3.2. Muchas personas prefieren utilizar un sistema de archivado por fechas en las URL. Es probable que se trate de una herencia de los tiempos en que un blog era un diario, donde la fecha tiene su trascendencia. En el caso de Simbiontes, que tiende a convertirse en un CMS, creemos preferible obviar un archivado por fechas en beneficio de uno basado en asuntos. Ello no obsta para que existan archivos mensuales: es útil para los buscadores y siempre puede ocurrir que alguien quiera leerse todo Simbiontes de corrido, mes a mes.

 

Recursos:



Mostrar búsqueda avanzadaActivar búsqueda avanzada

Bienvenido al repositorio de los simbiontes

Una página colectiva y ecléctica para comentar y apuntar cosas.

Estás viendo los archivos de Noviembre de 2005. Visita la portada para ver las últimas notas.

Sugerencias de lectura

Los simbiontes hablan de...

Sugerencias de lectura

Si quieres curiosear, puedes consultar:

  • todas las entradas archivadas por categoría (abstract).
  • Las entradas ordenadas mensualmente.
  • Suscribirte a los feeds (más abajo).
  • Lo que vienen buscando otras personas.
  • Si lo prefieres, puedes ver la portada en el formato anterior.
  • ...o leer la presentación para saber qué es esto y si puedes fiarte o no de lo que aquí se dice, y por qué pensamos que esto no es un blog aunque lo llamemos así para entendernos entre nosotros.

Sindicación RSS

  • ¿Qué es un feed?
  • Agregadores recomentados

Lecturas edificantes y tráfico de influencias

La tira Ecol

Tira Ecol

http://tira.escomposlinux.org
La tira ecol ha vuelto.