La nueva versión de Joomla (1.5) tiene un problema en su plug-in de búsqueda de artículos. Si hacemos una prueba con los datos de ejemplo de JoomlaSpanish y buscamos "edición" obtendremos dos resultados. Pero si realizamos una búsqueda de la palabra "edicion" sin acento no obtendremos resultados. Esto no preocupara a muchos, pero a veces es requisito del cliente o de uno mismo que las búsquedas devuelvan resultados aunque el que busca no escriba la palabra correctamente.
En la version 1.0 de Joomla sucedia lo mismo y ya explicamos como solucionarlo en un post anterior. Ahora la solución fue más compleja ya que el problema no venía por la codificación de la base de datos, ya que Joomla 1.5 esta en utf-8 y la base de datos no es sensible a la diferencia entre letras acentuadas y no acentuadas.
Para solucionar este problema basta con comentar las líneas 255 y 257 del archivo "\plugins\search\content.php" de modo que quede como el código que sigue:
253 $new_row = array();
254 foreach($row AS $key => $article) {
255 // if(searchHelper::checkNoHTML($article, $searchText, array('text', 'title', 'metadesc', 'metakey'))) {
256 $new_row[] = $article;
257 // }
258 }
Estudiando a fondo el código de Joomla 1.5 , el componente com_search y el plugín de búsqueda de contenidos, me encontré que aunque la base de datos devuelve bien los resultados se realiza a posteriori un comprobación de que dicho resultado no se encuentre en una etiqueta html, y es ahí donde se pierde la insensibilidad a las tildes por el uso de una expresión regular. Quizás se podría ir mas allá y corregir esa expresión regular pero con quitar esta comprobación se obtiene el resultado deseado.
Este mismo cambio debe realizarse en los otros plugins de búsqueda si uno tiene activado la búsqueda en los nombres de categorías y secciones, en contactos y weblinks ya que hacen la misma comprobación y no salen los resultados si uno busca sin poner los acentos a las palabras correctamente.
Espero que comentéis sobre esta solución, para saber si os funciona a todos.
Actualización Diciembre de 2009:
Esta solución consigue corregir el problema con los acentos y consigue que Joomla devuelva resultados correctos para una búsqueda. Pero en dichos resultados no se muestra la palabra destacada si esta lleva acento y no se ha escrito en la búsqueda. Para conseguir que se destaquen los resultados de la búsqueda hay que realizar otro cambio, que os explico en este otro artículo.
Destacar los resultados de la búsqueda sin tildes.