<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Como Lo Hago &#187; XML</title>
	<atom:link href="http://www.comolohago.cl/category/diseno-web/xml/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.comolohago.cl</link>
	<description>Si se puede, te lo enseñamos</description>
	<lastBuildDate>Tue, 10 Jan 2012 16:56:56 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Cómo hacer un gadget en Windows 7</title>
		<link>http://www.comolohago.cl/2010/08/09/como-hacer-un-gadget-en-windows-7-2/</link>
		<comments>http://www.comolohago.cl/2010/08/09/como-hacer-un-gadget-en-windows-7-2/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 02:22:32 +0000</pubDate>
		<dc:creator>Cri</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[Gadget]]></category>
		<category><![CDATA[sidebar]]></category>
		<category><![CDATA[windows 7]]></category>

		<guid isPermaLink="false">http://www.comolohago.cl/?p=3803</guid>
		<description><![CDATA[
 
Hola   amigos de Cómo Lo Hago, tratando de sorprenderlos día a día nos empeñamos en poder crear nuevos tutoriales y ayudarlos en adquirir un mayor conocimiento como también desenvolverse dentro de un nuevo tipo de desarrollo. Esta vez será la ocasión de crear un Gadget el cual nos puede servir para una [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="alignnone" src="http://farm5.static.flickr.com/4076/4878538776_56444ce8d5.jpg" alt="" width="500" height="260" /></p>
<p style="text-align: justify;"><strong> </strong></p>
<p style="text-align: justify;">Hola   amigos de Cómo Lo Hago, tratando de sorprenderlos día a día nos empeñamos en poder crear nuevos tutoriales y ayudarlos en adquirir un mayor conocimiento como también desenvolverse dentro de un nuevo tipo de desarrollo. Esta vez será la ocasión de crear un <strong><em>Gadget</em></strong> el cual nos puede servir para una infinidad de cosas dependiendo del uso que le queramos dar, en este caso veremos como hacer uno con alimentacion RSS de los tutoriales que se hacen en CómoLoHago. Partiendo por una cosa, es muy importante recalcar que no hay que ser programador para poder realizar este tuto, pero sí tener harta paciencia para darle al clavo. Los invito a seguir en este entretenido tuto como siempre despues del salto&#8230;</p>
<p style="text-align: justify;"><span id="more-3803"></span></p>
<p style="text-align: justify;"><img title="Más..." src="http://www.comolohago.cl/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" /></p>
<p style="text-align: justify;"><strong> </strong></p>
<p style="text-align: justify;"><strong> </strong></p>
<p style="text-align: justify;"><strong> </strong></p>
<h1 style="text-align: center;">Cómo hacer un gadget en Windows 7</h1>
<p style="text-align: justify;">1.  ¿Qué  necesitamos?</p>
<ul style="text-align: justify;">
<li>Sistema operativo Windows 7</li>
<li>Aprender un poco de HTML + CSS. Para esto puede recurrir a los siguientes tutoriales</li>
</ul>
<ol>
<li><a href="http://www.comolohago.cl/2010/02/11/como-convertirse-en-un-campeon-de-html-parte-1/">Aprender HTML</a><em><br />
</em></li>
<li><a href="http://www.comolohago.cl/2009/02/01/como-dominar-css-sin-salir-del-escritorio-parte-1/">Aprende CSS</a><em><br />
</em></li>
</ol>
<h2 style="text-align: justify;">2.  ¿Cómo  lo hago?</h2>
<p style="text-align: justify;"><strong>1. </strong>Manos a la obra, primero a buscar donde tenemos nuestros <strong><em>Gadgets</em></strong> los cuales se encontrarán siempre por <em>default</em> en <strong><em>Archivos de programa&gt;Windows Sidebar&gt;Gadgets</em></strong>. Una vez ubicados en esta carpeta procederemos a crear la carpta contenedora de nuestro futuro Gadget por desarrollar. Es muy importante que la extensión del nombre sea así:</p>
<p style="text-align: justify;"><strong>NOMBREDEMIGADGET.Gadget</strong></p>
<p style="text-align: justify;"><strong> </strong> <img class="alignnone" src="http://farm5.static.flickr.com/4094/4877930213_23b99c9738_z.jpg" alt="" width="640" height="493" /></p>
<p style="text-align: justify;"><strong>2. </strong>Una vez creada nuestra carpeta contenedora necesitaremos algunos archivos indispensables para poder personalisar y a la vez desarrollar:</p>
<p><img src="http://farm5.static.flickr.com/4082/4877930397_912a5736e3_z.jpg" alt="" width="640" height="493" /></p>
<ul style="text-align: justify;">
<li><em>MiGadget.html: Contiene el código principal para los ajustes de color, fondo, letras, links, feeders, etc</em>.</li>
</ul>
<blockquote style="text-align: justify;"><address>&lt;html xmlns=&#8221;http://www.w3.org/1999/xhtml&#8221;&gt;<br />
&lt;head&gt;<br />
&lt;meta http-equiv=&#8221;Content-Type&#8221; content=&#8221;text/html; charset=iso-8859-1&#8243; /&gt;<br />
&lt;title&gt;ComoLoHago mi primer gadget&lt;/title&gt;<br />
&lt;!&#8211; Para llamar a nuestros Settings.js del gadget &#8211;&gt;<br />
&lt;script type=&#8221;text/javascript&#8221; src=&#8221;MiGadget.js&#8221;&gt;&lt;/script&gt;<br />
&lt;style type=&#8221;text/css&#8221;&gt;<br />
/*/ El cuerpo de nuestro Gadget /*/<br />
body<br />
{</address>
<address>width: 330px;<br />
height: 450px;<br />
font-family: verdana;<br />
font-weight: lighter;<br />
margin:0px;<br />
font-size: 10px;<br />
overflow-x:hidden;<br />
overflow-y:auto;<br />
background-color:#333333;<br />
scrollbar-face-color:#444444; /*/ Color del cuadro /*/<br />
scrollbar-arrow-color:#999999; /*/ Color de la flecha de nuestro scroll /*/<br />
scrollbar-track-color:#333333;  /*/ Color de la vía donde se mueve el scroll /*/<br />
scrollbar-highlight-color:#444444; /*/ Si queremos color desde un ángulo /*/<br />
scrollbar-darkshadow-color:#444444; /*/Color opuesto al lugar al Highlight-Color /*/<br />
scrollbar-shadow-color:#444444; /*/ Si queremos sombra /*/<br />
scrollbar-3dlight-color:#444444;  /*/ Si queremos color de luz 3d /*/</address>
<address>}</address>
<address>#ContenidoDeMiGadget</address>
<address>/*/Aqui se encuentra parte del contenido que se alimentará dentro de nuestro gadget/*/<br />
{</address>
<address>width: 318px;<br />
margin-left:1px;<br />
height:100px;<br />
vertical-align: middle;<br />
text-align:center;<br />
background-color:#333333;</address>
<address>}</address>
<address>/*/ Este es el codigo especial para poder editar todo dentro del contenido rss /*/<br />
/*/ ya sea colores de letras, colores de fondo, bordes, etc/*/</address>
<address>/*/1-Con esto le indicamos al contenido el ancho que ocupará/*/</address>
<address>.rssxpresschannel { width:318px; font-family: Verdana; }</address>
<address>.rssxpresstable {height:200px; width:318px;}</address>
<address>/*/2-Con esto le indicamos al subtitulo &#8220;Sí se puede, te lo enseñamos&#8221; lo que queremos/*/</address>
<address>.rssxpresschdesc {font-size:10px; background-color:#333333; color:99BBFF; font-style:italic;}</address>
<address>/*/3-Con esto le indicamos al título &#8220;Como Lo Hago&#8221; lo que queremos/*/</address>
<address>.rssxpresschtitle  {font-size:12px; font-family:Arial; color:#99BBFF;  background-color:#333333; background-position:right;  background-image:url(logo.png); background-repeat:no-repeat;  height:69px; width:88px;margin-top:10px;}</address>
<address>/*/4-Con esto le indicamos al título de cada tema lo que queremos/*/</address>
<address>.rssxpressittitle  {font-size:10px; margin-right:5px; background-color:#333333;  border-top-style:inset; border-top-color:#999999; border-width:thin; }</address>
<address>/*/5-Con esto le indicamos a la descripcion de cada contenido lo que queremos/*/</address>
<address>.rssxpressitdesc  {font-size:10px; background-color:#333333; color:#FFFFFF;  margin-top:5px; margin-bottom:5px; font-weight:lighter; }</address>
<address>A:link {text-decoration:none;color:#99BBFF;}</address>
<address>A:visited {text-decoration:none;color:#99BBFF;}</address>
<address>A:active {text-decoration:none;color:#99BBFF;}</address>
<address>A:hover {text-decoration:none;color:#00BBFF;}</address>
<address>&lt;/style&gt;<br />
&lt;/head&gt;</address>
<address>&lt;b style=&#8221;margin-left:210px&#8221; style=&#8221;color:#555555&#8243;&gt;ComoLoHago v1.0&lt;/b&gt;<br />
&lt;body&gt;<br />
&lt;!&#8211;Contenido de mi gadget&#8211;&gt;<br />
&lt;div id=&#8221;ContenidoDeMiGadget&#8221;&gt;<br />
&lt;!&#8211;Script alimentador del contenido Rss&#8211;&gt;<br />
&lt;script src=&#8221;http://rssxpress.ukoln.ac.uk/lite/viewer/?rss=http%3A%2F%2Fwww.comolohago.cl%2Ffeed&#8221;&gt;&lt;/script&gt;<br />
&lt;/div&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;<br />
</address>
</blockquote>
<ul style="text-align: justify;">
<li><em>Settings.html: Contiene el código para los ajustes de nuestro Gadget</em>.</li>
</ul>
<blockquote style="text-align: justify;"><address style="text-align: justify;">&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;meta http-equiv=&#8221;Content-Type&#8221; content=&#8221;text/html; charset=iso-8859-1&#8243; /&gt;<br />
&lt;style type=&#8221;text/css&#8221;&gt;</p>
<p>body<br />
{</p>
</address>
<address style="text-align: justify;">/*/ ancho y alto de nuestro menu de ajustes /*/<br />
width:300px;<br />
height:250px;<br />
}</p>
<p>/*/un poco de CSS /*/<br />
#L_settingsTitle<br />
{<br />
font-family:Arial;<br />
font-size:15px;<br />
color:#FF0000;<br />
}</p>
<p>#L_settingsTitleLabel<br />
{<br />
font-family:Arial;<br />
font-size:8px;<br />
font-style:italic;<br />
color:#000000;<br />
}</p>
<p>&lt;/style&gt;</p>
<p>&lt;script type=&#8221;text/javascript&#8221; src=&#8221;MiGadget.js&#8221;&gt; &lt;/script&gt;</p>
<p>&lt;/head&gt;</p>
<p>&lt;body&gt;<br />
&lt;p&gt;Aqui agregan su contenido&lt;/p&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</p>
</address>
</blockquote>
<ul style="text-align: justify;">
<li><em>MiGadget.js: Contiene el código especial para poder tener ajustes en nuestro Gadget.</em></li>
</ul>
<blockquote style="text-align: justify;"><address>// Importantisimo para poder tener los ajustes de nuestro Gadget<br />
</address>
<address>System.Gadget.settingsUI = &#8220;Settings.html&#8221;;</address>
<address>System.Gadget.onSettingsClosing = SettingsClosing;</address>
<p style="text-align: justify;">
</blockquote>
<ul style="text-align: justify;">
<li><em>Gadget.xml: Contiene el autor, nombre, descripción, ícono, logo. En sí es lo necesario para aparecer en el menú para seleccionar el Gadget</em>.</li>
</ul>
<blockquote style="text-align: justify;"><address>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243; ?&gt;</address>
<address>&lt;gadget&gt;</address>
<address> &lt;name&gt;CómoLoHago &#8211; Novedades&lt;/name&gt;</address>
<address> &lt;version&gt;1.0&lt;/version&gt;</address>
<address> &lt;author name=&#8221;CómoLoHago Team&#8221;&gt;</address>
<address> &lt;info url=&#8221;www.ComoLoHago.cl&#8221; /&gt;</address>
<address> &lt;/author&gt;</address>
<address> &lt;copyright&gt;&amp;#169; CómoLoHago 2010&lt;/copyright&gt;</address>
<address> &lt;description&gt;Novedades acerca de tutoriales nuevos en tu escritorio&lt;/description&gt;</address>
<address> &lt;icons&gt;</address>
<address> &lt;icon height=&#8221;48&#8243; width=&#8221;48&#8243; src=&#8221;icono.png&#8221;/&gt;</address>
<address> &lt;/icons&gt;</address>
<address> &lt;hosts&gt;</address>
<address> &lt;host name=&#8221;sidebar&#8221;&gt;</address>
<address> &lt;autoscaleDPI&gt;true&lt;/autoscaleDPI&gt;</address>
<address> &lt;base type=&#8221;HTML&#8221; apiVersion=&#8221;1.0.0&#8243; src=&#8221;MiGadget.html&#8221; /&gt;</address>
<address> &lt;permissions&gt;Full&lt;/permissions&gt;</address>
<address> &lt;platform minPlatformVersion=&#8221;1.0&#8243; /&gt;</address>
<address> &lt;defaultImage src=&#8221;imagenarrastrada.png&#8221;/&gt;</address>
<address> &lt;/host&gt;</address>
<address> &lt;/hosts&gt;</address>
<address>&lt;/gadget&gt;</address>
</blockquote>
<p style="text-align: justify;"><strong>2. </strong>La flecha blanca indica el ícono que aparecerá en el menú de <em><strong>Gadgets</strong></em>. Este ícono <em>(icono.png)</em> se direcciona desde nuestro archivo XML, en este caso Gadget.xml. También podemos agregar otra imagen para cuando arrastremos nuestro <em><strong>Gadget</strong></em> al escritorio <em>(imagenarrastrada.png)</em>.</p>
<p style="text-align: justify;"><img class="alignnone" src="http://farm5.static.flickr.com/4100/4878539210_3d1179ddee.jpg" alt="" width="500" height="260" /></p>
<p style="text-align: justify;"><img class="alignnone" src="http://farm5.static.flickr.com/4081/4878539308_5af141246a.jpg" alt="" width="500" height="260" /></p>
<p style="text-align: justify;"><strong>3. </strong>Finalmente nos podemos dar cuenta que nuestro <strong><em>Gadget</em></strong> va adquiriendo la forma que le damos con CSS y HTML ademas de las programaciones que cada uno le dé en javascript.</p>
<p style="text-align: justify;">Para poder mostrar el contenido RSS, tuve que recurrir a la página <a href="http://rssxpress.ukoln.ac.uk/lite/include/?t=1" target="_blank">http://rssxpress.ukoln.ac.uk/lite/include/?t=1</a> para obtener el script feeder el cual va inserto en <strong><em>MiGadget.html</em></strong>:</p>
<p style="text-align: justify;"><img class="alignnone" src="http://farm5.static.flickr.com/4123/4877930675_981c161b84.jpg" alt="" width="358" height="463" /></p>
<p style="text-align: justify;"><img class="alignnone" src="http://farm5.static.flickr.com/4094/4877930725_0e4a769418.jpg" alt="" width="358" height="463" /></p>
<p style="text-align: justify;"><img class="alignnone" src="http://farm5.static.flickr.com/4102/4877930919_d251acf20b.jpg" alt="" width="358" height="463" /></p>
<p style="text-align: justify;">Espero    les haya gustado, les motive para hacer sus propias creaciones y así poder compartirlas con los demas. Me despido</p>
<p style="text-align: justify;">Como   siempre exclusivamente  ha sido:</p>
<p style="text-align: justify;"><img src="http://farm4.static.flickr.com/3043/3056524059_ed7150e191_o.jpg" alt="" /></p>
<p style="text-align: justify;"><strong>Staff  CLH</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.comolohago.cl/2010/08/09/como-hacer-un-gadget-en-windows-7-2/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Cómo crear un feed RSS desde cero</title>
		<link>http://www.comolohago.cl/2010/01/06/como-crear-un-feed-rss-desde-cero/</link>
		<comments>http://www.comolohago.cl/2010/01/06/como-crear-un-feed-rss-desde-cero/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 22:21:34 +0000</pubDate>
		<dc:creator>Xabadu</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[Feed]]></category>
		<category><![CDATA[Feedburner]]></category>
		<category><![CDATA[Feeds]]></category>
		<category><![CDATA[RSS]]></category>
		<category><![CDATA[rss feeds]]></category>

		<guid isPermaLink="false">http://www.comolohago.cl/?p=2849</guid>
		<description><![CDATA[
En varios artículos anteriores hemos discutido y detallado la importancia que tienen los feeds para nuestros sitios Web, permitiéndonos entregarles nuevas formas a los usuarios para que se enteren de las actualizaciones de contenido.
Y a pesar de que hoy la mayoría de los sistemas que implementamos (como Wordpress) ya vienen con un feed creado e [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter" src="http://farm3.static.flickr.com/2804/4251317116_8e0c04bd41_o.png" alt="" width="400" height="156" /></p>
<p style="text-align: justify;">En varios artículos anteriores hemos discutido y detallado la importancia que tienen los feeds para nuestros sitios Web, permitiéndonos entregarles nuevas formas a los usuarios para que se enteren de las actualizaciones de contenido.</p>
<p style="text-align: justify;">Y a pesar de que hoy la mayoría de los sistemas que implementamos <em>(como Wordpress)</em> ya vienen con un feed creado e implementado, listo para validar, siempre es posible crear uno de cero, o bien querer personalizar más a fondo lo que ya existe.</p>
<p style="text-align: justify;">Hoy, en CLH, mediante un sencillo tutorial les enseñaremos a crear un feed RSS desde cero, ya sea con contenido estático o dinámico.</p>
<p style="text-align: justify;">El detalle, como siempre, después del salto.</p>
<p style="text-align: justify;"><span id="more-2849"></span></p>
<h1 style="text-align: center;">Cómo crear un feed RSS</h1>
<p style="text-align: justify;">Como siempre, lo primero:</p>
<h2 style="text-align: justify;">Implementos necesarios:</h2>
<ol style="text-align: justify;">
<li>Un sitio Web con contenido, ya sea estático o dinámico.</li>
<li>Un editor Web. Si bien no es necesario y podemos codificar mediante bloc de notas, si es recomendable. En CLH utilizamos Adobe Dreamweaver, el cual pueden obtenerlo desde el <a href="http://www.adobe.com/es/products/dreamweaver/" target="_blank">siguiente enlace</a>.</li>
</ol>
<h2>Procedimiento:</h2>
<p style="text-align: justify;">Para crear un feed RSS, es necesario codificar un archivo en formato XML, el cual contiene las etiquetas necesarias para interpretar y desplegar el contenido en el formato especificado, al cual accederán los usuarios. Este archivo podemos dejarlo nativo en XML, o bien incrustarlo dentro de PHP, como veremos en ámbos casos a continuación.</p>
<p style="text-align: justify;">Para esto realizaremos 2 procesos. En primera instancia crearemos un feed estático, a partir de contenidos que tengamos disponibles en nuestro sitio. Para este caso tomaremos las páginas de información estáticas que están incluídas en CLH <em>(quiénes somos, licencia clh, etc.)</em>.</p>
<p style="text-align: justify;">Posterior a eso repetiremos la tarea, pero esta vez recuperaremos contenidos desde una base de datos para meterlos al feed, ideal si están publicando a través de un CMS o si obtienen contenidos directamente desde una base de datos.</p>
<p style="text-align: justify;">Así que sin más, vamos, manos a la obra:</p>
<h2 style="text-align: justify;">1.- Creando un feed RSS estático</h2>
<p style="text-align: justify;">Esta opción es válida solamente si tenemos contenido estático en nuestro sitio, lo cual si bien no se justifica mucho, puede ser una funcionalidad útil para entregarle a los visitantes.</p>
<p style="text-align: justify;">Para esto, es necesario que creemos un archivo XML en nuestro editor Web, y comenzamos a codificar:</p>
<pre class="xml" title="code">&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;rss version="2.0"&gt;
...
&lt;/rss&gt;</pre>
<p style="text-align: justify;">Las primeras 2 líneas que hemos añadido corresponden a la definición de la versión y codificación de xml <em>(con el fin de que valide correctamente debemos añadir la versión, en cuanto a la codificación es opcional pero nunca está demás)</em> y la versión de RSS que utilizará el archivo que estamos creando. Actualmente la mayoría de los sitios ofrecen suscripciones tanto para RSS 1.1 como 2.0, pero con el último es más que suficiente. Al final cerramos la etiqueta rss para dar por finalizado el documento.</p>
<p style="text-align: justify;">A continuación de lo anterior, es necesario que todo lo relativo al feed <em>(tanto la información como el contenido)</em>, sea incluído dentro de las etiquetas &lt;channel&gt;&lt;/channel&gt;, lo cual lo agregaremos justo seguido del código anterior, es decir:</p>
<pre class="xml" title="code">&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;rss version="2.0"&gt;
&lt;channel&gt;
...
&lt;/channel&gt;
&lt;/rss&gt;</pre>
<p style="text-align: justify;">Y ahora, dentro de las etiquetas channel iremos añadiendo la información del feed, tal como se ve a continuación:</p>
<pre class="xml" title="code">&lt;?xml version="1.0" encoding="utf-8" ?&gt;
&lt;rss version="2.0"&gt;
&lt;channel&gt;
    &lt;title&gt;Feed de páginas estáticas de CLH&lt;/title&gt;
    &lt;link&gt;http://www.comolohago.cl&lt;/link&gt;
    &lt;description&gt;Si se puede, te lo enseñamos&lt;/description&gt;
    ...
&lt;/channel&gt;
&lt;/rss&gt;</pre>
<p style="text-align: justify;">Y finalmente, a continuación de la información, agregamos lo relativo al contenido que desplegaremos en el feed, esto lo haremos repitiendo las mismas etiquetas que usamos anteriormente, pero encerradas entre &lt;item&gt; e &lt;/item&gt;:</p>
<pre class="xml" title="code">&lt;?xml version="1.0" encoding="utf-8" ?&gt;
&lt;rss version="2.0"&gt;
&lt;channel&gt;
    &lt;title&gt;Feed de páginas estáticas de CLH&lt;/title&gt;
    &lt;link&gt;http://www.comolohago.cl&lt;/link&gt;
    &lt;description&gt;Si se puede, te lo enseñamos&lt;/description&gt;
    &lt;item&gt;
        &lt;title&gt;Quiénes Somos&lt;/title&gt;
        &lt;link&gt;http://www.comolohago.cl/acerca/&lt;/link&gt;
        &lt;description&gt;Conoce al equipo de CLH&lt;/description&gt;
    &lt;/item&gt;
    &lt;item&gt;
        &lt;title&gt;Licencia CLH&lt;/title&gt;
        &lt;link&gt;http://www.comolohago.cl/licencia-clh/&lt;/link&gt;
        &lt;description&gt;Lo que permitmos, y lo que no&lt;/description&gt;
    &lt;/item&gt;
    &lt;item&gt;
        &lt;title&gt;Colabora&lt;/title&gt;
        &lt;link&gt;http://www.comolohago.cl/colabora/&lt;/link&gt;
        &lt;description&gt;Ayúdanos a enseñar&lt;/description&gt;
    &lt;/item&gt;
    &lt;item&gt;
        &lt;title&gt;Peticiones&lt;/title&gt;
        &lt;link&gt;http://www.comolohago.cl/peticiones/&lt;/link&gt;
        &lt;description&gt;¿Algo que quieras ver?&lt;/description&gt;
    &lt;/item&gt;
&lt;/channel&gt;
&lt;/rss&gt;</pre>
<p style="text-align: justify;">Lo anterior lo guardamos con cualquier nombre y con extensión <strong>xml</strong>, lo subimos y al abrirlo en el navegador podremos ver que nuestro feed estático está completamente listo:</p>
<p style="text-align: center;"><img class="aligncenter" src="http://farm5.static.flickr.com/4071/4252146958_6ed19bfd68_o.png" alt="" width="600" height="388" /> <em>Feed estático visualizado mediante Firefox</em></p>
<p style="text-align: justify;">
<h2 style="text-align: justify;">2.- Creando un feed RSS dinámico</h2>
<p style="text-align: justify;">Ya. Creamos nuestro feed estático, nos demoramos solo unos minutos, nos dimos cuenta que era sencillísimo y estamos listos para conquistar el mundo&#8230; ¿no?. Pues bueno, aún no. Tal como indicábamos en el punto anterior, un feed estático no tiene mucha gracia, ya que debemos añadir cada nuevo contenido de forma manual y termina siendo mucho trabajo, o puede que en más de alguna ocasión se nos olvide actualizar. Debido a esto, si tenemos un sitio donde el contenido se obtiene de forma dinámica desde una base de datos, es posible adaptar eso a nuestro feed y que la nueva información se vaya agregando a medida que se genera. Para esto, trabajaremos tanto con XML como PHP, en una combinación rimbombante y circumbirúmbica que sacará chispas y nos convertirá en los chicos más populares de la secundaria.</p>
<p style="text-align: justify;">Para esto, consideraremos que tenemos una base de datos, la cual tiene una tabla de noticias con un campo título, un campo enlace, un campo detalle y un campo de fecha de las noticias, tal como vemos a continuación:</p>
<p style="text-align: justify;">
<table id="wp-table-reloaded-id-1-no-1" class="wp-table-reloaded wp-table-reloaded-id-1">
<thead>
	<tr class="row-1 odd">
		<th class="column-1">titulo</th><th class="column-2">enlace</th><th class="column-3">detalle</th><th class="column-4">fecha</th>
	</tr>
</thead>
<tbody>
	<tr class="row-2 even">
		<td class="column-1">Dexter va a la luna</td><td class="column-2">http://www.ejemplo.com/1.php</td><td class="column-3">Dexter se fue a la luna ayer y aun no vuelve</td><td class="column-4">2010/01/01</td>
	</tr>
	<tr class="row-3 odd">
		<td class="column-1">Topher es Batman</td><td class="column-2">http://www.ejemplo.com/2.php</td><td class="column-3">Ciudad Gotica tuvo una sorpresa ayer cuando...</td><td class="column-4">2010/01/02</td>
	</tr>
	<tr class="row-4 even">
		<td class="column-1">Jorge Nitales compra Google</td><td class="column-2">http://www.ejemplo.com/3.php</td><td class="column-3">Luego de interminables negociaciones se supo que...</td><td class="column-4">2010/01/03</td>
	</tr>
	<tr class="row-5 odd">
		<td class="column-1">Goten saca un disco de rancheras</td><td class="column-2">http://www.ejemplo.com/4.php</td><td class="column-3">Su sexto disco de estudio fue lanzado...</td><td class="column-4">2010/01/04</td>
	</tr>
	<tr class="row-6 even">
		<td class="column-1">Locke3K sigue subiendo en las encuestas</td><td class="column-2">http://www.ejemplo.com/5.php</td><td class="column-3">De acuerdo al estudio realizado...</td><td class="column-4">2010/01/05</td>
	</tr>
</tbody>
</table>
</p>
<p style="text-align: justify;">Entonces, lo primero que debemos hacer es crear un archivo PHP en nuestro editor Web, el que tendrá una estructura como la que sigue:</p>
<pre class="php" title="code">&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;rss version="2.0"&gt;
&lt;channel&gt;
    &lt;title&gt;Noticias de mi fantabulenial sitio Web&lt;/title&gt;
    &lt;link&gt;http://www.ejemplo.com&lt;/link&gt;
    &lt;description&gt;Las mejores noticias de Internet&lt;/description&gt;

&lt;?php
   ...
?&gt;

&lt;/channel&gt;
&lt;/rss&gt;</pre>
<p style="text-align: justify;">Como podrán ver, en el código anterior dejamos una sección en blanco, entre las etiquetas &lt;?php y ?&gt;. Esta parte del código es donde nos conectaremos a la base de datos, rescataremos las noticias y las desplegaremos dinámicamente.</p>
<p style="text-align: justify;">Para esto, primero haremos la conexión a la base de datos. Como buena práctica utilizaremos <strong>DEFINE</strong> para, valga la redundancia, definir los datos de conexión, pero si quieren pueden saltarse esta parte y ejecutar la función directamente:</p>
<pre class="php" title="code">DEFINE ('USUARIO_BD', 'el nombre de usuario de la bd');
DEFINE ('CLAVE_BD', 'la clave de acceso a la bd');
DEFINE ('HOST_BD', 'el servidor de la bd');
DEFINE ('NOMBRE_BD', 'el nombre de la base de datos');</pre>
<p style="text-align: justify;">Y ahora hacemos la conexión:</p>
<pre class="php" title="code">$conexion = mysql_connect(HOST_BD, USUARIO_BD, CLAVE_BD) or
die ('No se pudo conectar a la BD');
mysql_select_db(NOMBRE_BD) or die ('No se pudo seleccionar
la BD');</pre>
<p style="text-align: justify;">Ejecutamos la consulta:</p>
<pre class="php" title="code">$consulta = "SELECT * FROM noticias ORDER BY fecha DESC";
$resultado = mysql_query($consulta) or die ('Error al
ejecutar la consulta');</pre>
<p style="text-align: justify;">Ahora que hemos recobrado todas las noticias desde la base de datos de forma ordenada por la fecha, obteniendo primero las más nuevas, las pasaremos a un array para escribirlas en el formato especificado de XML, de la siguiente forma:</p>
<pre class="php" title="code">while ($fila = mysql_fetch_array($resultado, MYSQL_ASSOC){
    echo '&lt;item&gt;
                 &lt;title&gt;'.$fila['titulo'].'&lt;/title&gt;
                 &lt;link&gt;'.$fila['enlace'].'&lt;/link&gt;
                 &lt;description&gt;'.$fila['detalle'].'&lt;/description&gt;
          &lt;/item&gt;';
}</pre>
<p style="text-align: justify;">Con lo anterior, ejecutamos un ciclo que pasará a un array de forma asociativa <em>(gracias al parámetro MYSQL_ASSOC, el cual nos permitirá acceder a los registros en el array con el mismo nombre que tienen en la tabla de la base de datos)</em> cada noticia hasta que se acaben y creará un nuevo ítem con los respectivos valores para incluir en el feed.</p>
<p style="text-align: justify;">Con eso estamos casi listos, el último detalle es añadir un pequeño encabezado al comienzo del documento, indicando que estamos ejecutando contenido XML para un mejor reconocimiento al momento de ejecutar el script completo, esto lo hacemos añadiendo al comienzo:</p>
<pre class="php" title="code">&lt;?php
      header("Content-Type: application/rss+xml; charset="utf-8");
?&gt;</pre>
<p style="text-align: justify;">Con esto, nuestro código completo queda de la siguiente forma:</p>
<pre class="php" title="code">&lt;?php
      header("Content-Type: application/rss+xml; charset=utf-8");
?&gt;

&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;rss version="2.0"&gt;
&lt;channel&gt;
    &lt;title&gt;Noticias de mi fantabulenial sitio Web&lt;/title&gt;
    &lt;link&gt;http://www.ejemplo.com&lt;/link&gt;
    &lt;description&gt;Las mejores noticias de Internet&lt;/description&gt;

&lt;?php

    DEFINE ('USUARIO_BD', 'el nombre de usuario de la bd');
    DEFINE ('CLAVE_BD', 'la clave de acceso a la bd');
    DEFINE ('HOST_BD', 'el servidor de la bd');
    DEFINE ('NOMBRE_BD', 'el nombre de la base de datos');

    $conexion = mysql_connect(HOST_BD, USUARIO_BD, CLAVE_BD) or
    die ('No se pudo conectar a la BD');
    mysql_select_db(NOMBRE_BD) or die ('No se pudo seleccionar
    la BD');

    $consulta = "SELECT * FROM noticias ORDER BY fecha DESC";
    $resultado = mysql_query($consulta) or die ('Error al
    ejecutar la consulta');

    while ($fila = mysql_fetch_array($resultado, MYSQL_ASSOC){
        echo '&lt;item&gt;
                  &lt;title&gt;'.$fila['titulo'].'&lt;/title&gt;
                  &lt;link&gt;'.$fila['enlace'].'&lt;/link&gt;
                  &lt;description&gt;'.$fila['detalle'].'&lt;/description&gt;
             &lt;/item&gt;';
    }
?&gt;

&lt;/channel&gt;
&lt;/rss&gt;</pre>
<p style="text-align: justify;">¡Y listo!. Tenemos nuestro feed RSS dinámico, el cual añadirá los resultados obtenidos desde la base de datos y cada vez que publiquemos contenido nuevo se actualizará automáticamente.</p>
<p style="text-align: justify;">Y ahora, ¿a conquistar el mundo?. Aún no. Antes de terminar:</p>
<h2 style="text-align: justify;">3.- Consejos útiles</h2>
<p style="text-align: justify;">Algunos tips que nunca están demás:</p>
<p style="text-align: justify;"><strong>Validar el feed</strong></p>
<p style="text-align: justify;">Antes de lanzar nuestro feed al público, es bueno asegurarnos que funcione de forma correcta y que no hayamos cometido errores de codificación. Para esto podemos validar mediante varios servicios, como por ejemplo:</p>
<ul style="text-align: justify;">
<li><a href="http://validator.w3.org/feed/" target="_blank">Validador de la W3C</a></li>
<li><a href="http://beta.feedvalidator.org/" target="_blank">Feed Validator</a></li>
</ul>
<p style="text-align: justify;">Solo añadimos la URL de nuestro feed y validamos.</p>
<p style="text-align: justify;"><strong>Publicar el feed</strong></p>
<p style="text-align: justify;">Existen servicios que nos permiten publicar nuestro feed y ofrecen una serie de funcionalidades bastante interesantes, como añadir publicidad o estadísticas sobre nuestros suscriptores. El más conocido y utilizado sin duda que es <a href="http://www.feedburner.com" target="_blank">Feedburner</a>, en el cual en solo instantes podremos publicar nuestro feed sin problemas.</p>
<p style="text-align: justify;"><strong>Mostrarle a los usuarios que existe un feed en el sitio</strong></p>
<p style="text-align: justify;">Si en este preciso instante miran la barra de direcciones de su navegador, podrán ver que hay un ícono de color naranjo:</p>
<p style="text-align: justify;"><img class="aligncenter" src="http://farm3.static.flickr.com/2732/4252400114_18579ae1a2_o.png" alt="" width="600" height="19" /></p>
<p style="text-align: justify;">Este ícono indica que el sitio cuenta con un feed RSS al cual se pueden suscribir. ¿Cómo añadirlo? Muy sencillo, solo debemos agregar las siguientes líneas entre las etiquetas &lt;head&gt; y &lt;/head&gt; de cada página en la que queramos que aparezca, tal <a href="http://www.comolohago.cl/2009/07/25/como-crear-y-anadir-un-favicon-a-tus-sitios-web/" target="_blank">como si fuese un favicon</a>:</p>
<pre class="html" title="code">&lt;link rel="alternate" type="application/rss+xml" title="Mi feed RSS"
href="http://www.ejemplo.com/feed/"&gt;</pre>
<p style="text-align: justify;">Simple, ¿no?</p>
<p style="text-align: justify;"><strong>Personalizar el feed</strong></p>
<p style="text-align: justify;">Los detalles sin duda que marcan la diferencia en la mente de los usuarios. Entonces, ahora que aprendimos a hacer un feed desde cero, ¿por qué no jugar un poco y hacerlo más personalizado?. Solo con modificar pequeñas partes del código podemos desplegar cierto tipo de información en nuestro feed <em>(por ejemplo comentarios si existiesen)</em>, o bien limitar el número de artículos a mostrar, o hacer un feed independiente para cada persona que escriba en el sitio y así cada lector siga a su autor favorito.</p>
<p style="text-align: justify;">Las posibilidades son muchas, solo hay que experimentar.</p>
<p style="text-align: justify;">Y con esto damos por terminado este tutorial en el que hemos cubierto el proceso de creación de un feed RSS desde cero. Como pueden ver, solo toma unos breves minutos y la dificultad es baja, por lo que los animamos a que lo intenten y nos cuenten su experiencia.</p>
<p style="text-align: justify;">Antes de terminar, les recordamos que como siempre, este tutorial ha sido:</p>
<p style="text-align: justify;"><img class="aligncenter" src="http://farm4.static.flickr.com/3043/3056524059_ed7150e191_o.jpg" alt="" width="400" height="314" /></p>
<p style="text-align: justify;">Cualquier duda o comentario que puedan tener, los invitamos a dejarnos unas líneas en el área habilitada a continuación.</p>
<p style="text-align: justify;">Esperamos que este tutorial haya sido de utilidad para Uds.</p>
<p style="text-align: justify;">Muchas gracias por leer y será hasta una próxima oportunidad.</p>
<p style="text-align: center;"><strong>Staff CLH</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.comolohago.cl/2010/01/06/como-crear-un-feed-rss-desde-cero/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

