¿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?

Perfil profesional 



