Joomla! 1.7.0: error Syndication RSS Feeds

Tamaño de letra:

Error en módulo Syndication RSS Feeds 

Si estás leyendo este artículo es porque seguramente (y acertadamente) estés interesado en redifundir el contenido de tu página Web. Existen varias extensiones y formas de hacerlo pero hoy nos vamos a centrar en el componente que trae por defecto Joomla!. Al añadir el módulo Syndication RSS Feeds en mi Web desde Joomla! 1.7.0, observo con sorpresa que se produce un error en el archivo helper.php de dicho módulo en la linea 21. El error es el siguiente:

Warning: strpos() expects parameter 1 to be string, array given in
karmany_Web\modules\mod_syndicate\helper.php on line 21

La verdad que sorprende un poco, pero no puedes poner el módulo de RSS que viene por defecto en Joomla! 1.7.0 porque salta este error.

 

Examinando el código de error

Yo en estos casos (algo que recomiendo), es buscar estos errores que me aparecen en la Web oficial de Joomla! porque pienso que ya le habrá pasado antes a alguien (joomla.org).

En este error del que trata el artículo que estás leyendo, si observo el archivo helper.php del módulo veo el poco código que tiene y es el siguiente:

class modSyndicateHelper
{
   static function getLink(&$params)
   {
      $document = JFactory::getDocument();

      foreach($document->_links as $link)
      {
21->     if (strpos($link, 'application/'.$params->get('format').'+xml')) {
            preg_match("#href=\"(.*?)\"#s", $link, $matches);
            return $matches[1];
         }
      }

   }
}

La linea 21 la he marcado como 21->. Ahí puedes ver la función strpos que nos da el error. Es un código muy sencillo de entender pues la función getLink lo que retorna es el enlace de sindicación.

Cómo solucionarlo

Este error está tratado en el siguiente foro: Foro Joomla!.org: Module Syndication Feeds not working in 1.7?

Y llegan a solucionarlo con el siguiente parche: Parche Module Syndication Feed

Ese parche modifica el código anterior que he puesto por el siguiente (helper.php):

class modSyndicateHelper
{
    static function getLink(&$params)
    {
        $document = JFactory::getDocument();

        foreach($document->_links as $link=>$value)
        {
            $value = JArrayHelper::toString($value);
            if (strpos($value, 'application/'.$params->get('format').'+xml')) {
            return $link;
            }
        }

    }
}

Lo he probado y efectivamente ya no sale el error y a mi me funciona correctamente porque el enlace final es totalmente correcto.

Última actualización: Miércoles, 31 Agosto 2011

No tiene privilegios para responder a los comentarios.


 
Visitas: 8562262