en: Programacion
Ya han pasado algunas semanas desde que descubrí este genial framework, pensado para ofrecer un alto rendimiento, además es bastante ligero y fácilmente configurable.
CodeIgniter Framework para PHP
Hay muchos frameworks para PHP y este podría pasar por una alternativa mas, pero si la aplicación que desarrollas requiere de una plataforma que no marque mucho la aplicación y que necesite un alto rendimiento creo que CodeIgniter debería ser tu elección.
Cumple perfectamente el fin de cualquier framework.. una estructura definida que de soporte a un proyecto web y ayude a que este proyecto sea organizado y desarrollado.
Tras esta breve descripción os dejo un ejemplo de como podríamos crear nuestro feed RSS con las herramientas que ofrece CodeIgniter…
En primer lugar tenenmos que crear un controlador con el nombre “feed”, recuerda que un controlador es simplemente un archivo que es llamado cada vez que la URL a la que va asociado es invocada.
<?php
class Feed extends Controller
{
function Feed()
{
parent::Controller();
$this->load->model('posts_model', '', TRUE);
$this->load->helper('xml');
}
function index()
{
$data['encoding'] = 'utf-8';
$data['feed_name'] = 'TuFuncion.com';
$data['feed_url'] = 'http://www.tufuncion.com';
$data['page_description'] = 'Descripción de la página';
$data['page_language'] = 'es-es';
$data['creator_email'] = 'Manuel Gutiérrez Heredia';
$data['posts'] = $this->posts_model->getRecentPosts();
header("Content-Type: application/rss+xml");
$this->load->view('feed/rss', $data);
}
}
?>
En un segundo paso debemos comprobar que tenemos declarada y funcionando las funciones invocadas en el controlador… en nuestro caso “getRecentPosts()”, si lo deseas puedes hacer la prueba de este ejemplo pasando datos estáticos sin necesidad de utilizar esta función.
function getRecentPosts ()
{
$this->db->orderby('post_date', 'desc');
$this->db->where('post_visible', 1);
$this->db->limit(10);
return $this->db->get('posts');
}
Por último necesitamos una vista, una vista simplemente es una página, o un fragmento de página (cabecera, pie, barra lateral). De hecho, las vistas son más versátiles y flexibles si se utilizan unas embebidas dentro de otras.
Las vistas nunca son llamadas directamente y tienen que ser cargadas con un controlador, el controlador es el que se encarga de realizar la distribución de las diferentes acciones por eso es el responsable de la carga de las diferentes vistas.
Esta vista deberá tenenr el nombre que hemos definido en el controlador, en nuestro caso “rss” dentro de la carpeta “feed”.
<?php
echo '<?xml version="1.0" encoding="utf-8"?>' . "
";
?>
<rss version="2.0"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:admin="http://webns.net/mvcb/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title><?php echo $feed_name; ?></title>
<link><?php echo $feed_url; ?></link>
<description><?php echo $page_description; ?></description>
<dc:language><?php echo $page_language; ?></dc:language>
<dc:creator><?php echo $creator_email; ?></dc:creator>
<dc:rights>Copyright <?php echo gmdate("Y", time()); ?></dc:rights>
<admin:generatorAgent rdf:resource="http://www.codeigniter.com/" />
<?php foreach($posts->result() as $entry): ?>
<item>
<title><?php echo xml_convert($entry->post_title); ?></title>
<link><?php echo site_url('blog/post/' . $entry->url_title) ?></link>
<guid><?php echo site_url('blog/post/' . $entry->url_title) ?></guid>
<description><![CDATA[
<?= str_replace('/img/post_resources/', base_url() . 'img/post_resources/', $entry->post_body); ?>
]]></description>
<pubDate><?php echo date ('r', $entry->post_date);?></pubDate>
</item>
<?php endforeach; ?>
</channel></rss>
Si todo ha funcionado podremos invocar la url /feed y comprobar como en tres sencillos pasos hemos creado un feed RSS para nuestra aplicación.
Via: Derek Allard
1 Respuesta a Creando un feed RSS con Codeigniter
Anónimo
12 de Febrero de 2008 a las 11:21 am
Está muy bien, pero lamentablemente sólo funciona para generar el Feed, uno no puede depender de él, porque al tratar de agregarlo al Live Bookmarks de Firefox (por ejemplo) da error.
Saludos!
Imzyos
25 de Diciembre de 2007 a las 4:28 pm
Exelente aporte, sobretodo para la comunidad hispana que usan el framework
josepzin
15 de Septiembre de 2008 a las 8:43 am
Gracias, este código me sirvió de guía para generar el RSS de mi RetroPlanet (http://juegario.com/retroplanet)
Dentro de poco liberaré el código, así que por si a alguien le es de utilidad, el RSS generado es aceptado por FeedBurner.
Anónimo
15 de Abril de 2009 a las 3:42 pm
teinbito apololiar natalia sy natalia chao bay-