Los problemas de Mambo con las RSS
- 15 January, 2006 //
- informática //
- Tags :
- 0 Comments
Parece ser que Mambo 4.5.2 tiene un problema con los RSS bastante gordo. Por lo menos si tu idioma es el español. Intenté poner un enlace a un RSS en el portal de motociclismo MotosCanarias (http://www.motoscanarias.com) y el resultado fue desastroso. Sin embargo, después de una hora de trapicheo y lecturas infructuosas de foros conseguí que no salgan símbolos como íƒÂ± o íƒÂº para las vocales acentuada o la eñe. No parece que nadie haya publicado una solución, asi que me pregunto si seré el primero en lograrlo xD.
La solución no es general y es poco más que un parche provisional. Pero funciona.
Todo lo que hay que hacer es abrir el fichero /componentes/com_newsfeed/newsfeeds.html.php y crear una función dentro de la clase HTML_newsfeed, la la única clase del fichero, asi que no tiene pérdida.
La función tiene el aspecto siguiente:
function to_normal_spanish($text) {
$output = $text;
$output = str_replace("íƒÂ±", "ñ", $output);
$output = str_replace("íƒÂ¡", "á", $output);
$output = str_replace("íƒÂ©", "é", $output);
$output = str_replace("íƒÂ³", "ó", $output);
$output = str_replace("íƒÂº", "ú", $output);
$output = str_replace("íƒÂ¿", "¿", $output);
$output = str_replace("íƒÂ¡", "¡", $output);
$output = str_replace("íƒ", "í", $output);
return $output;
}
Puede llamarse como quieras pero el asunto ahora consiste en registrar ese fichero buscando sentencias php de ‘echo’ y llamar a la función que acabamos de crear para que modifique el texto irregular por texto en Español bonito
.
Por ejemplo, podemos cambiar en la línea 350 (o por ahí) la sentencia:
<?php echo $text;?>
Por la sentencia:
<?php echo HTML_newsfeed::to_normal_spanish($text); ?>
Y asi con el resto de líneas del fichero. Esa es la última sentencia que aparece en el fichero y la que imprime el texto de los artículos.
A ver si en la nueva versión de Mambo arreglan estos problemillas. Supuestamente es debido a un problema con los encodings, que si UTF-8 para arriba , que si ISO-88xx-1 para abajo. En fin, ahí queda eso.