Generar RSS 2.0 de forma fácil.

Contenido de ámbito general para Joomla 1.0.X que no pueda ser catalogado en ningún otro foro específico.

Moderador: Staff Comunidad Joomla!

Generar RSS 2.0 de forma fácil.

Notapor gustavo el Dom Jul 06, 2008 1:08 am

Algunos de ustedes se preguntaran cual es el sentido de esto si Joomla! ya cuenta con un modulo especifico para la generación de RSS. Es verdad, pero dicho modulo (mod_rssfeed, depende del componente com_rss, el cual instancia a la clase feedcreator) no nos brinda la flexibilidad que necesitamos en casos específicos. Por lo tanto en algunas ocasiones debemos meter mano, investigar, programar , etc. hasta lograr el objetivo final.

¿Y EN QUE ME PODRÍA SERVIR? Imaginemos que tenemos un portal, con 3 autores y queremos hacer un seguimiento vía rss de las noticias publicadas por cada uno.

  • ADMINISTRADOR -> [id de usuario= 62]
  • CARLOS -> [id de usuario = 4]
  • PEDRO -> [id de usuario = 19]

Dentro del directorio donde tenemos instalado Joomla! creamos un archivo llamado administrador.xml con el siguiente contenido (favor configurar con datos propios ):

Código: Seleccionar todo
<? header('Content-type: text/xml'); ?>

<rss version="2.0">
  <channel>
    <title>Comunidad Joomla!</title>
    <link>http://comunidadjoomla.org</link>
    <description>Comunidad Joomla! mantenimiento, soporte y actualización de paquetes del CMS Joomla! en español [es_ES]</description>
    <language>es_ES</language>
    <pubDate><? print date("F j, Y, g:i a"); ?></pubDate>
    <webMaster>info@comunidadjoomla.org</webMaster>

<?

// INICIAMOS LA CONEXIÓN CON MYSQL
$conectarDB = mysql_connect('localhost', 'root', '123456789')
or die('ERROR: ' . mysql_error());

// CONECTAMOS CON LA DB
mysql_select_db('mibasejoomla') or die('ERROR, la base de datos no existe.');

// RUTA URL CONTENIDO
$rutaURL = "http://misitojoomla123456.com/index.php?option=com_content&task=view&id=";

// CONSULTA SQL
$consultaSQL="SELECT CONTENIDO.id, CONTENIDO.title, CONTENIDO.introtext, CONTENIDO.created, CATEGORIA.name FROM jos_content AS CONTENIDO, jos_categories AS CATEGORIA WHERE CONTENIDO.catid = CATEGORIA.id AND created_by = 62 ORDER BY created LIMIT 0,10";

$miSQL=mysql_query($consultaSQL) or die('ERROR al ejecutar la consulta: ' . mysql_error());;

while($resultadoSQL = mysql_fetch_array($miSQL)){
?>
    <item>
        <title> <? echo htmlentities(strip_tags($resultadoSQL['title'])); ?></title>
        <description> <? echo htmlentities(strip_tags($resultadoSQL['introtext'],’ENT_QUOTES’));?></description>
        <link><? echo htmlentities($rutaURL); ?><? echo $resultadoSQL['id'];?></link>
        <category><? echo htmlentities(strip_tags($resultadoSQL['name'])); ?></category>
        <pubDate><? echo htmlentities(strip_tags($resultadoSQL['created'])); ?></pubDate>
     </item>
<? } ?> 

</channel>
</rss>

<?
// LIBERAMOS CONSULTA
mysql_free_result($miSQL);

// CERRAMOS CONEXION BASE DE DATOS
mysql_close($conectarDB);
?>


Detallo las funciones de filtro utilizadas:

Código: Seleccionar todo
strip_tags — Elimina etiquetas HTML y PHP de una cadena
http://ar.php.net/manual/es/function.strip-tags.php


Código: Seleccionar todo
htmlentities — Convierte todos los caracteres a su entidad HTML aplicable
http://ar.php.net/manual/es/function.htmlentities.php


Esta es una de las tantas formas que tenemos actualmente de generar RSS, para evitar problemas y aumentar nuestra productividad recomiendo la utilización de clases y librerías conocidas para resolver posible limitaciones de Joomla!

Para los que estén interesados en aprender, dejo un par de preguntas:
¿SE PODRÍA CREAR UN MODULO QUE PASE PARÁMETROS PARA GENERAR EL RSS AL VUELO? ¿QUIEN SE ANIMA ARMARLO? ¿SE CUMPLE CON LOS ESTÁNDARES RSS 2.0? ¿CUALES SON? ¿COMO SE PODRÍA MEJORAR?
Imagen On ne tue point les idées (Las ideas no se matan) | Imagen Perfil profesional Linkedin
Avatar de Usuario
gustavo
Coordinador General
Coordinador General
 
Mensajes: 427
Registrado: Mié Ene 30, 2008 5:30 pm
Ubicación: Bahía Blanca, Argentina

Re: Generar RSS 2.0 de forma fácil.

Notapor lcanton el Dom Ago 03, 2008 1:55 am

gustavo escribió:Para los que estén interesados en aprender, dejo un par de preguntas:
¿SE CUMPLE CON LOS ESTÁNDARES RSS 2.0?

Si los cumple, ya revise las especificaciones y cumple con todas los aspectos requeridos

gustavo escribió:¿CUALES SON?

Básicamente encontre que todo RSS v. 2.0 tiene dos partes (por decirlo de alguna manera), una sección llamada <channel> (con etiquetas obligatorias y optativas) y varios elementos <item>.

Las etiquetas obligatorias del encabezado son
Código: Seleccionar todo
<title>Mi titulo</title>
<link>http://misitio.com/</link>
<description>La descripcion de mi sitio.</description>

En http://www.rssboard.org/rss-specificati ... elElements pueden encontrar el listado de etiquetas opcionales, así como las etiquetas que se pueden usar en el item

Saludos,

Leonel
Cuando preguntes o constestes algo ten encuenta Normas y Código de Conducta. || Te invito a que visites el Blog de la Comunidad Joomla!
Avatar de Usuario
lcanton
Staff Comunidad Joomla!
Staff Comunidad Joomla!
 
Mensajes: 429
Registrado: Mié Ene 30, 2008 5:33 pm
Ubicación: Guatemala


Volver a General

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados