<?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>zoia.org &#187; CMS</title>
	<atom:link href="http://www.zoia.org/blog/category/cms/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.zoia.org/blog</link>
	<description>Por Roberto Zoia</description>
	<lastBuildDate>Fri, 18 Jun 2010 14:04:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Ya no hay excusas para no tener tu WordPress actualizado</title>
		<link>http://www.zoia.org/blog/2009/02/12/ya-no-hay-excusas-para-no-tener-tu-wordpress-actualizado/</link>
		<comments>http://www.zoia.org/blog/2009/02/12/ya-no-hay-excusas-para-no-tener-tu-wordpress-actualizado/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 16:50:48 +0000</pubDate>
		<dc:creator>Roberto</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[upgrade]]></category>
		<category><![CDATA[wordpress2.7]]></category>

		<guid isPermaLink="false">http://www.zoia.org/blog/?p=360</guid>
		<description><![CDATA[WordPress cada vez está mejor. Para los que alojan su blog en un host contratado (en vez de usar los servicios gratuitos de wordpress.com, blogspot.com u otro), un tema importante es mantener el manejador de contenido actualizado con los últimos parches de seguridad. Una página web con una versión desactualizada del manejador de contenido es [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.wordpress.org">WordPress</a> cada vez está mejor.</p>

<p>Para los que alojan su blog en un host contratado (en vez de usar los servicios gratuitos de wordpress.com, blogspot.com u otro), un tema importante es mantener el manejador de contenido actualizado con los últimos parches de seguridad. Una página web con una versión desactualizada del manejador de contenido es una invitación al vandalismo.</p>

<p>A partir de la versión 2.7 de WordPress la actualización del programa y de los <em>plugins</em> puede hacerse desde la interfaz administrativa, con un solo click. Es más, WordPress se encarga de notificarte de que hay una nueva versión disponible.  Ya no hay excusas para no tener tu WordPress al día.</p>

<p>¿Algún comentario sobre si otros manejadores de contenido ya incorporan esta funcionalidad?</p>

<p><a href="http://www.zoia.org/blog/wp-content/uploads/2009/02/wordpressupdate.png" rel="lightbox"><img src="http://www.zoia.org/blog/wp-content/uploads/2009/02/wordpressupdate_thumb.png" alt="Actualización de WordPress" title="Actualización de WordPress"  /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zoia.org/blog/2009/02/12/ya-no-hay-excusas-para-no-tener-tu-wordpress-actualizado/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Art and Science of CSS is free to download</title>
		<link>http://www.zoia.org/blog/2008/11/20/the-art-and-science-of-css-is-free-to-download/</link>
		<comments>http://www.zoia.org/blog/2008/11/20/the-art-and-science-of-css-is-free-to-download/#comments</comments>
		<pubDate>Thu, 20 Nov 2008 16:26:49 +0000</pubDate>
		<dc:creator>Roberto</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[webdesign]]></category>
		<category><![CDATA[css webdesign html]]></category>

		<guid isPermaLink="false">http://www.zoia.org/blog/?p=297</guid>
		<description><![CDATA[Por unos días, SitePoint está ofreciendo gratis el libro The Art &#38; Science of CSS, a cambio de que los sigamos en Twitter. Más información aquí: The Art&#38;Science of CSS is free to download]]></description>
			<content:encoded><![CDATA[<p>Por unos días, SitePoint está ofreciendo gratis el libro The Art &amp; Science of CSS, a cambio de que los sigamos en Twitter.  Más información aquí:  <a href="http://www.sitepoint.com/blogs/2008/11/18/the-art-science-of-css-is-free-to-download/">The Art&amp;Science of CSS is free to download</a></p>

<p><a href="http://www.sitepoint.com/blogs/2008/11/18/the-art-science-of-css-is-free-to-download"/><img src="http://www.zoia.org/blog/wp-content/uploads/2008/11/theartandscienceofcss1.png" alt="" title="The Art and Science of CSS" width="220" height="280" class="alignnone size-full wp-image-300" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zoia.org/blog/2008/11/20/the-art-and-science-of-css-is-free-to-download/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cómo crear encuestas (Polls) en WordPress</title>
		<link>http://www.zoia.org/blog/2008/07/15/como-crear-encuestas-polls-en-wordpress/</link>
		<comments>http://www.zoia.org/blog/2008/07/15/como-crear-encuestas-polls-en-wordpress/#comments</comments>
		<pubDate>Tue, 15 Jul 2008 21:16:30 +0000</pubDate>
		<dc:creator>Roberto</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[webdesign]]></category>
		<category><![CDATA[encuestas]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[polls]]></category>
		<category><![CDATA[sitesthatsoar]]></category>

		<guid isPermaLink="false">http://www.zoia.org/blog/?p=244</guid>
		<description><![CDATA[Encontré este documento de Aisling D&#8217;Art, de Sites That Soar, sobre cómo crear encuestas en WordPress: http://www.lulu.com/content/3108876. Es gratis, está en pdf.]]></description>
			<content:encoded><![CDATA[<p>Encontré este documento de Aisling D&#8217;Art, de <a href="http://www.sitesthatsoar.com">Sites That Soar</a>, sobre cómo crear encuestas en WordPress:  <a href="http://www.lulu.com/content/3108876">http://www.lulu.com/content/3108876</a>.  Es gratis, está en pdf.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zoia.org/blog/2008/07/15/como-crear-encuestas-polls-en-wordpress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Temas Premium para WordPress</title>
		<link>http://www.zoia.org/blog/2008/05/21/temas-premium-para-wordpress/</link>
		<comments>http://www.zoia.org/blog/2008/05/21/temas-premium-para-wordpress/#comments</comments>
		<pubDate>Thu, 22 May 2008 01:21:31 +0000</pubDate>
		<dc:creator>Roberto</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[premium_wordpress_themes]]></category>
		<category><![CDATA[themes]]></category>

		<guid isPermaLink="false">http://www.zoia.org/blog/?p=228</guid>
		<description><![CDATA[Hace unos días estuve buscando un diseño para una página web. La idea es usar WordPress como manejador de contenido, aunque también se ha considerado Joomla como una posibilidad. Empezamos a buscar temas de WordPress y templates de Joompla para hacer pruebas y ensayar cómo podía verse el website. (Joomla llama templates a lo que [...]]]></description>
			<content:encoded><![CDATA[<p>Hace unos días estuve buscando un diseño para una página web.  La idea es usar <a href="http://www.wordpress.org">WordPress</a> como manejador de contenido, aunque también se ha considerado <a href="http://www.joomla">Joomla</a> como una posibilidad.  Empezamos a buscar temas de WordPress y <em>templates</em> de Joompla para hacer pruebas y ensayar cómo podía verse el website. (Joomla  llama <em>templates</em> a lo que WordPress llama <em>themes</em>.  El <em>theme</em> o <em>template</em> es lo que hace que la página web se vea como se ve, mientras que, detrás de las bambalinas, el manejador de contenido se encarga de administrar los artículos.)</p>

<h2>Temas Premium para WordPress</h2>

<p>Una persona que diseña páginas web aquí en Lima, Perú, nos cotizó US$900 por un <em>template</em> para Joomla, tiempo de entrega en tres semanas.   Mmm&#8230; pensé, este señor o debe ser muy bueno o&#8230; Lamentablemente, sus diseños no son muy buenos.  Una mirada a su portafolio on-line y nada, <em>sin pena ni gloria</em>.  Mucho flash y menús que hacen ruidos cuado pasas el mouse sobre ellos.  Realmente me hubiera encantado encontrar unos diseños impresionantes y poder decir:  excelente, este señor tiene futuro.</p>

<p>Así que a buscar temas en otro sitio.  En <a href="http://themes.wordpress.net/">http://themes.wordpress.net/</a> hay muchos temas gratis, pero justamente porque hay tantos, los mejores están un poco enterrados entre muchos de mediana calidad.  Para la página en cuestión estábamos buscando un tema sobrio pero mejor que el promedio, aunque hubiese que pagar un poco. Una buena fuente de temas fue este artículo publicado en <a href="http://www.smashingmagazine.com/2008/01/11/premium-wordpress-themes-are-they-here-to-stay/">Smashing Magazine</a>.</p>

<p><a href="http://www.zoia.org/blog/wp-content/uploads/2008/05/banford_theme.jpg" alt="Branford Magazine WordPress Theme" rel="lightbox"><img src="http://www.zoia.org/blog/wp-content/uploads/2008/05/banford_theme_thumb.jpg" title="Branford Magazine WordPress Theme" /></a></p>

<p>Finalmente escogimos un tema llamado <a href="http://www.der-prinz.com/2008/01/20/wordpress-magazine-style-theme-branfordmagazine/">Branford Magazine</a>,  de <a href="http://www.der-prinz.com">Michael Oeser</a>.  Y es gratis.  Es un tema sobrio, de formato &#8220;revista&#8221;, que tiene la posibilidad de tener artículos destacados y páginas destacadas.</p>

<p>Como en el proceso encontré varias páginas interesantes con &#8220;temas premium&#8221;, listo algunas a continuación por si son de utilidad (algunos temas se repiten):</p>

<ul>
<li><a href="http://www.der-prinz.com/2008/04/21/new-magazine-style-theme-for-wordpress-wyntonmagazine/">Wynton Magazine</a> y el ya mencionado <a href="http://www.der-prinz.com/2008/01/20/wordpress-magazine-style-theme-branfordmagazine/">Branford Magazine</a>.</li>
<li><a href="http://www.darrenhoyt.com/2008/03/12/mimbo-pro-magazine-theme-released/">Mimbo Pro</a> y <a href="http://www.darrenhoyt.com/2007/08/05/wordpress-magazine-theme-released/">Mimbo</a>, de Darren Hoyt.</li>
<li><a href="http://www.blogohblog.com/premium-wordpress-themes/">Premium WordPress themes</a>.</li>
<li>Premium themes en <a href="http://hackwordpress.com/best-premium-wordpress-themes-gallery/">HackWordPress</a>.</li>
<li><a href="http://www.premiumnewstheme.com/">Premium News Theme</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.zoia.org/blog/2008/05/21/temas-premium-para-wordpress/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Nuevo tema para el blog</title>
		<link>http://www.zoia.org/blog/2007/08/30/nuevo-tema-para-el-blog/</link>
		<comments>http://www.zoia.org/blog/2007/08/30/nuevo-tema-para-el-blog/#comments</comments>
		<pubDate>Thu, 30 Aug 2007 17:50:46 +0000</pubDate>
		<dc:creator>Roberto</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[webdesign]]></category>

		<guid isPermaLink="false">http://www.zoia.org/blog/2007/08/30/nuevo-tema-para-el-blog/</guid>
		<description><![CDATA[He cambiado el theme del blog. La versión anterior, que desarrollé yo mismo empezando de cero, no me gustaba del todo y no encontraba mucho tiempo para mejorarla. Como el diseño gráfico tampoco es mi especialidad, finalmente opté por buscar algún diseño sobrio en Internet y adaptarlo a mis necesidades. Tomando como base el tema [...]]]></description>
			<content:encoded><![CDATA[<p>He cambiado el <em>theme</em> del blog.  La versión anterior, que desarrollé yo mismo empezando de cero, no me gustaba del todo y no encontraba mucho tiempo para mejorarla.   Como el diseño gráfico tampoco es mi especialidad, finalmente opté por buscar algún diseño sobrio en Internet y adaptarlo a mis necesidades.</p>

<p>Tomando como base el tema <a href="http://www.storelicious.com/?p=96">Minyx2 Lite</a>, he ensanchado la columna de contenido (a costa de adelgazar en algunos pixels la doble columna de la derecha) y añadido el código necesario para el <em>badge</em> de Flickr, el mapamundi con las visitas, las estadísticas de Google Analytics, los iconitos de blogperu y perublogs, etc.  Al desarrollar el tema anterior ya había separado el código para cada una de estas modificaciones en su propio archivo .php, así que añadirlos al nuevo tema ha sido cuestión de insertar algunos <code> &lt;?php  include(TEMPLATEPATH . 'extension.php');  ?&gt; </code> en los lugares apropiados.  El tema base está bien hecho, de modo que no ha demorado mucho tiempo.</p>

<p>Todavía quedan algunos ajustes por hacer, como por ejemplo adaptar el Google Search al nuevo diseño (por ahora estoy usando la casilla de búsqueda que viene por defecto con WordPress) y escribir algo decente para la sección <em>About</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zoia.org/blog/2007/08/30/nuevo-tema-para-el-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress stats plugin</title>
		<link>http://www.zoia.org/blog/2007/05/06/wordpress-stats-plugin/</link>
		<comments>http://www.zoia.org/blog/2007/05/06/wordpress-stats-plugin/#comments</comments>
		<pubDate>Sun, 06 May 2007 22:50:54 +0000</pubDate>
		<dc:creator>Roberto</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.zoia.org/blog/2007/05/06/wordpress-stats-plugin/</guid>
		<description><![CDATA[Automattic ha sacado una nueva versión de su plugin de estadísticas de visitas. Se puede descargar aquí: http://wordpress.org/extend/plugins/stats/. Es el mismo plugin que usa WordPress.com para mostrar sus estadísticas. Ahora puedes usarlo aunque no alojes tu blog en WordPress.com (pero siempre usando WordPress, se entiende).]]></description>
			<content:encoded><![CDATA[<p>Automattic ha sacado una nueva versión de su plugin de estadísticas de visitas.  Se puede descargar aquí: <a href="http://wordpress.org/extend/plugins/stats/">http://wordpress.org/extend/plugins/stats/</a>.</p>

<p>Es el mismo plugin que usa WordPress.com para mostrar sus estadísticas.  Ahora puedes usarlo aunque no alojes tu blog en WordPress.com (pero siempre usando WordPress, se entiende).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zoia.org/blog/2007/05/06/wordpress-stats-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Feeds y agregadores de noticias</title>
		<link>http://www.zoia.org/blog/2007/04/06/feeds-y-agregadores-de-noticias/</link>
		<comments>http://www.zoia.org/blog/2007/04/06/feeds-y-agregadores-de-noticias/#comments</comments>
		<pubDate>Sat, 07 Apr 2007 02:28:07 +0000</pubDate>
		<dc:creator>Roberto</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.zoia.org/blog/2007/04/06/feeds-y-agregadores-de-noticias/</guid>
		<description><![CDATA[Llevo unas semanas usando Bloglines como agregador de noticias. Antes usaba el agregador que trae incorporado Flock (un navegador alternativo), pero como a veces trabajo en distintas PCs, cada vez que añadía o quitaba un blog de la lista del agregador tenía que actualizar la relación en varias PCs. Bien, cuando he comentado este cambio [...]]]></description>
			<content:encoded><![CDATA[<p>Llevo unas semanas usando <a href="http://www.bloglines.com" target="_blank">Bloglines</a> como agregador de noticias.  Antes usaba el agregador que trae incorporado <a href="http://www.flock.com/" target="_blank">Flock</a> (un navegador alternativo), pero como a veces trabajo en distintas PCs, cada vez que añadía o quitaba un blog de la lista del agregador tenía que actualizar la relación en varias PCs.</p>

<p>Bien, cuando he comentado este cambio de agregador de noticias con algunos amigos, resulta que no tienen <strike>ni idea</strike> muy claro qué es un <em>feed</em>, menos qué es un agregador o para qué sirve.  Y son usuarios de PCs que considero sofisticados&#8230;  Así que he pensado que no está de más explicar qué es un feed, qué es un agregador de noticias y hacer algunos comentarios al respecto.</p>

<h2>Feeds</h2>

<p>Un <em>feed</em> es un modo de presentar el contenido de un blog en un formato estandarizado de modo que sea fácil procesarlo con un programa.  En la práctica el <em>feed</em> es un archivo al que se puede acceder a través de un URL en Internet, escrito de modo que es fácil hacer programas que extraigan la información.  Cada vez que el blog se actualiza, se actualiza este archivo.  Por ejemplo, el feed de este blog está en este URL:  <a href="http://www.zoia.org/blog/feed/">http://www.zoia.org/blog/feed/</a>.  La información del feed es generada <em>sobre la marcha</em> cuando alguien accede al URL en cuestión, pero a efectos prácticos se puede tratar como un archivo.</p>

<p>Si queremos seguir día a día los artículos de algunos blogs, el <strong>método manual</strong> consiste en a) abrir el blog en el navegador; b) ver si hay un artículo nuevo; c) si lo hay, leerlo y, si es oportuno, escribir algún comentario&#8230; y luego pasar siguiente blog.</p>

<p>Este sistema es por lo menos tedioso. ¿Cuántos blogs son &#8220;algunos blogs&#8221;?  No me refiero aquí a navegar sin rumbo por internet a ver qué descubro, sino a seguir con cierto orden algunos temas concretos.  Por ejemplo, en mi lista de blogs tengo blogs de desarrollo de juegos, programación, seguridad, webdesign, algunos de fotografía digital&#8230; y por supuesto una gran carpeta &#8220;unclassified&#8221;.  Cada tanto reviso la lista y borro algunos.  Pero también añado nuevos blogs&#8230; La realidad es que lista, en vez de reducirse, va creciendo.</p>

<h2>Agregadores de noticias</h2>

<p>Si no habías oído hasta ahora de los <strong>agregadores de noticias</strong>, y al leer lo que es un <em>feed</em> se te ha ocurrido hacer un programa que procese automáticamente los <em>feeds</em> de los blogs que lees habitualmente, y te avise automáticamente cuando hay nuevos artículos&#8230;  ¡felicitaciones! tienes neuronas, podrías ser un buen hacker. Conectas ideas.  (De todos modos pregúntante cómo es que no sabías qué es un feed&#8230;)</p>

<div style="float: left;"><a href='http://www.zoia.org/blog/wp-content/uploads/2007/04/agregadordenoticias.jpg' rel='lightbox' title='Agregador de noticias de Flock'><img src='http://www.zoia.org/blog/wp-content/uploads/2007/04/agregadordenoticias_thumb.jpg' alt='Agregador de noticias de Flock' /></a></div>

<p>Eso es exactamente lo que hace un agregador de noticias.  Maneja una lista de blogs (una &#8220;lista de suscripciones&#8221;) y nos avisa en cuáles hay artículos nuevos.  Además permite leer los artículos sin necesidad de abrir el navegador.  En el pantallazo de al lado se puede ver el agregador de noticas de <a href="http://www.flock.com">Flock</a>.  En la columna de la izquierda están los blogs a los que estoy suscrito (como se ve, Flock permite crear carpetas para agruparlos).  Junto a cada blog aparece un número entre paréntesis, en negrita:  es el número de artículos nuevos.  En la columna de la derecha está el contenido, los artículos actualizados.</p>

<p>Como se ve también en la imagen de flock, el agregador de noticias homogeniza la presentación de los artículos.  Los artículos de la columna de la derecha son de blogs distintos, sin embargo se ven iguales en la pantalla. Realmente lo que sucede es que el <em>feed</em> contiene solamente el contenido del artículo, sin la presentación específica que tiene en el blog del que proviene.</p>

<p><em>Syndicate</em> y <em>Syndication</em> son otros modos de decir que estamos obteniendo el contenido de un website a través de su <em>feed</em>.</p>

<div style="float: right;"><img src='http://www.zoia.org/blog/wp-content/uploads/2007/04/feed-icon-32x32.gif' alt='feed icon' /></div>

<p>Como técnicamente un <em>feed</em> puede estar en distintos formatos, también se suele llamar al <em>feed</em> por el nombre de esas especificaciones técnicas:  RSS (<em>Really Simple Syndication</em>), Atom y otros. (Se puede leer más acerca de las distintas versiones de RSS en <a href="http://en.wikipedia.org/wiki/RSS_(file_format)" target="_blank">Wikipedia</a>.)  Cuando un website ofrece un feed con su contenido, suele indicarlo con un icono más o menos <a href="http://www.feedicons.com/" target="_blank">estandarizado</a>.</p>

<h2>Una criba de contenido</h2>

<p>Los que tienen algo que ver con el mundo de la publicidad o del marketing deberían estar escandalizados.  El agregador de noticias, al separar la presentación del contenido, permite que los lectores  lean los artículos limpios de publicidad, sin el logo del website y sin enterarse del último rediseño de la página web en el que tanto tiempo se ha invertido.  Es como escuchar radio o ver TV sin comerciales. (Estoy trivializando el asunto adrede, ya sé que una buena campaña de publicidad no es solamente el aviso publicado.)  En todo caso, aunque no haya publicidad de por medio, los agregadores de noticias sí tienen el primer efecto de que los lectores que no visiten directamente el blog, y por tanto se pierdan &#8220;parte de la experiencia&#8221;.  <a href="http://photomatt.net/xml/" title="Matthew Mullenweg" target="_blank">Matthew Mullenweg</a>, uno de las personas detrás de <a href="http://www.wordpress.org" title="WordPress" target="_blank">WordPress</a>, dice que hay mucho en su website que nunca podrá estar disponible en el feed.  Y es que el diseño del blog de Matthew es sobresaliente, leerlo a través de un agregador simplemente no le hace justicia.</p>

<p>Dicho esto, también podríamos afirmar justamente lo contrario:  gracias a los agregadores, son más las personas que visitan directamente los blogs.  Personalmente, como ya expliqué arriba, si no fuera por un agregador de noticias, me sería imposible estar al día de los distintos blogs que sigo de cerca.  Gracias al agregador, he desarrollado el hábito de leer los blogs como leo un periódico:   hay artículos que se pueden leer en diagonal, porque no son demasiado densos y son más bien divulgativos;  otros artículos los descarto simplemente por el título (si resulta que la mayoría de veces termino descartando artículos de un determinado blog, éste acaba siendo eliminado de la lista);  pero hay algunos escritos que merecen una lectura más detenida y quizá tomar algunas notas.  En estos casos normalmente los marco el agregador y leo el artículo directamente en la página web en la que ha sido publicado.</p>

<p>En otras palabras, muchas veces leo el artículo en el blog en el que fue publicado, aunque lo haya detectado a través del agregador de noticias.  Si no fuera por el agregador, quizá nunca lo hubiera leído.  El agregador me permite hacer una criba de qué leo y qué no leo.  Y es que en el estado actual de la blogósfera (tomando prestada la expresión de Technorati), por un tema de tiempo, resulta imprescindible seleccionar sobre todo qué no leo.</p>

<h2>Bloglines</h2>

<p>Llevo algunas semanas usando Bloglines como agregador de noticias.  La experiencia es bastante buena.  Ahora puedo revisar la lista de blogs desde cualquier lugar con acceso Internet, incluso desde el Qtek 9100 cuando hay conexión WiFi cerca, pues Bloglines tiene un formato para dispositivos de pantalla pequeña.</p>

<p>La otra alternativa que estuve evaluando fue <a href="http://www.newsgator.com/" target="_blank">NewsGator</a>. El servicio de lectura on-line es gratis, aunque ofrecen varios servicios de pago que permiten sincronizar la informacion con distintos dispositivos o programas.  Lo que ha inclinado la balanza a favor de Bloglines es un asunto muy sencillo&#8230; casi una tontería.  Cuando la columna de artículos tiene varias entradas, normalmente es necesario &#8220;subir&#8221; (<em>scroll</em>) la página para poder seguir leyendo (scroll).  En Bloglines, el panel con las noticias se mueve independientemente del panel que tiene la lista de blogs.  Al subir las noticias la lista de blogs está siempre visible en la pantalla.  Así, cuando terminas de leer los artículos de ese blog o de esa carpeta de blogs, no es necesario volver al comienzo de la página para escoger el siguiente blog de la lista.  Es un detalle pequeño, pero afecta la experiencia de uso.  Por eso me he quedado con Bloglines.</p>

<p>La interfaz de Bloglines tiene definitivamente menos &#8220;caramelo&#8221; (traducción libre de &#8216;eye candy&#8217;) que la de NewsGator.  Bien, eso se puede corregir usando una extensión para Firefox llamada <a href="http://userstyles.org/stylish">Stylish</a>, como menciona <a href="http://www.yukei.net/2007/02/bloglines-al-estilo-osx/">este artículo</a>.  Personalmente la interfaz normal de Bloglines me parece suficiente y me permite trabajar con rapidez.  De todos modos, en la PC que más uso para leer las noticias he instalado Stylish, un estilo para Bloglines y he modificado el estilo para agrandar un poco la letra de los artículos.  Abajo se pueden ver dos imágenes.</p>

<p><a href='http://www.zoia.org/blog/wp-content/uploads/2007/04/bloglinesnostylish.jpg' rel='lightbox' title='Bloglines standard interface, sin Stylish'><img src='http://www.zoia.org/blog/wp-content/uploads/2007/04/bloglinesnostylish.thumbnail.jpg' alt='Bloglines standard interface, sin Stylish' /></a></p>

<p><a href='http://www.zoia.org/blog/wp-content/uploads/2007/04/bloglinesstylish.jpg' rel='lightbox' title='Bloglines con Stylish'><img src='http://www.zoia.org/blog/wp-content/uploads/2007/04/bloglinesstylish.thumbnail.jpg' alt='Bloglines con Stylish' /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zoia.org/blog/2007/04/06/feeds-y-agregadores-de-noticias/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Iterating over items of selection fields in django templates using newforms</title>
		<link>http://www.zoia.org/blog/2007/03/24/iterating-over-items-of-selection-fields-in-django-templates-using-newforms/</link>
		<comments>http://www.zoia.org/blog/2007/03/24/iterating-over-items-of-selection-fields-in-django-templates-using-newforms/#comments</comments>
		<pubDate>Sat, 24 Mar 2007 16:28:33 +0000</pubDate>
		<dc:creator>Roberto</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Fotografia]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.zoia.org/blog/2007/03/24/iterating-over-items-of-selection-fields-in-django-templates-using-newforms/</guid>
		<description><![CDATA[A year ago I wrote a custom CheckboxSelectMultiple control for django. My application needed to display a series of checkboxes on the webpage, but the default django control did not allow iteration over each checkbox when the control was rendered in the template (as it was possible with the RadioSelect control). This finer control was [...]]]></description>
			<content:encoded><![CDATA[<p>A year ago I wrote a <a href="http://www.zoia.org/blog/2006/02/22/django-and-custom-checkboxselectmultiplefield/">custom CheckboxSelectMultiple</a> control for <a href="http://www.djangoproject.com">django</a>.  My application needed to display a series of checkboxes on the webpage, but the default django control did not allow iteration over each checkbox when the control was rendered in the template (as it was possible with the RadioSelect control).  This finer control was necessary because I needed to insert extra HTML between each checkbox.</p>

<p>As of version 0.95, django has been under heavy changes, and my custom control no longer works.  In particular, the old forms module is being discarded in favor of the newforms module that will become the default forms module sometime in the future.  A good explanation can be found in the on-site django documentation, under <a href="http://www.djangoproject.com/documentation/newforms/#migration-plan">newforms-migration plan</a>.</p>

<p>The good news is that newforms allows access to individual items of the form fields, multiple-select fields included. The newforms documentation is still work in progress, so it took me a while to figure out how to do it&#8230; by inspecting the source code and regression tests. It seems pretty obvious now, should have asked in the <a href="http://groups.google.com/group/django-users">django-users list</a>.</p>

<p>The example code has been tested with django svn release 4812 (2007-3-23).</p>

<p><strong><span style="text-decoration: underline;">2007-03-27</span></strong>: By mistake I published an incorrect version of <code>views.py</code>.  Code has been corrected so that now   <code>add_post</code> saves the tag field as expected. <span style="text-decoration: line-through;">(<code>Post</code> has a many-to-many relationship with <code>Tag</code>, so <code>form.save()</code> is not enough to save the form data.)</span></p>

<p><strong><span style="text-decoration: underline;">2007-04-12</span></strong>:  The code for <code>views.py</code> has been corrected again.  The code posted 2007-03-27 works, but as I discovered later, there is no need to create another object (<code>p = Post(**cleandata)</code>) to handle the many-to-many field data.  <code>form.save()</code> takes care of everything, as expected.</p>

<p><strong><span style="text-decoration: underline;">2007-04-24</span></strong>:  You may be interested in <a href="http://www.zoia.org/blog/2007/04/23/using-dynamic-choices-with-django-newforms-and-custom-widgets/">this post</a>.</p>

<h2>template</h2>

<p><pre>
</pre><pre class="brush: xml;">&lt;/p&gt;

&lt;ul&gt;
{% for choice in form.base_fields.tag.choices %}
&lt;li&gt; ({{ choice.0 }}, {{ choice.1 }}) &lt;/li&gt;
{% endfor %}
&lt;/ul&gt;

&lt;p&gt;</pre>
</p>

<h2>models.py</h2>

<p><pre>
</pre><pre class="brush: python;">&lt;/p&gt;

&lt;h1&gt;-&lt;em&gt;- coding: utf-8 -&lt;/em&gt;-&lt;/h1&gt;

&lt;h1&gt;models.py&lt;/h1&gt;

&lt;p&gt;from django.db import models&lt;/p&gt;

&lt;p&gt;class Tag(models.Model):
    tag = models.CharField(maxlength=20)&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;def __str__(self):
    return self.tag
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;class Post(models.Model):
    # other fields here:
    # text = models.CharField(maxlength=255)
    # title = models.CharField(maxlength=50)
    # etc.
    tag = models.ManyToManyField(Tag)&lt;/p&gt;

&lt;p&gt;</pre>
</p>

<h2>views.py</h2>

<p><pre>
</pre><pre class="brush: python;">&lt;/p&gt;

&lt;h1&gt;-&lt;em&gt;- coding: utf-8 -&lt;/em&gt;-&lt;/h1&gt;

&lt;h1&gt;views.py&lt;/h1&gt;

&lt;p&gt;from django.template import Context, loader
from django.http import HttpResponse, HttpResponseRedirect&lt;/p&gt;

&lt;p&gt;from django import newforms as forms
from django.newforms.widgets import *&lt;/p&gt;

&lt;p&gt;from project.models import *&lt;/p&gt;

&lt;p&gt;def add_post(request):
    postForm = forms.models.form_for_model(Post)
    if request.method == 'POST':
       form = postForm(request.POST)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect(&quot;/&quot;)
    else:
         form = postForm()
         t = loader.get_template('add_post.html')
         c = Context({
               'form': form,
               })&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;     return HttpResponse(t.render(c))
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;</pre>
</p>

<h2><span style="text-decoration: line-through;">views.py</span></h2>

<p>This is an old version of <code>views.py</code>.  The code works, but as I discovered later, there is no need to create another object (<code>p = Post(**cleandata)</code>) to handle the many-to-many field data.  form.save() takes care of everything, as expected.
<pre>
</pre><pre class="brush: python;">&lt;/p&gt;

&lt;h1&gt;-&lt;em&gt;- coding: utf-8 -&lt;/em&gt;-&lt;/h1&gt;

&lt;h1&gt;views.py&lt;/h1&gt;

&lt;p&gt;from django.template import Context, loader
from django.http import HttpResponse, HttpResponseRedirect&lt;/p&gt;

&lt;p&gt;from django import newforms as forms
from django.newforms.widgets import *&lt;/p&gt;

&lt;p&gt;from project.models import *&lt;/p&gt;

&lt;p&gt;def add_post(request):
    postForm = forms.models.form_for_model(Post)
    if request.method == 'POST':
        form = postForm(request.POST)
        if form.is_valid():
           cleandata = form.clean_data
           # use the form tag ids to select the Tag instances
           # related to this Post entry
           tag = Tag.objects.in_bulk(cleandata['tag'])
           # need to delete the tag ids from clean data,
           # otherwise p = Post(** cleandata) will complain that
           # tag is not a parameter of Post( )
           del cleandata['tag']&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;       # create an instance of Post from the form data
       p = Post(**cleandata)
       p.save()   # need to save so p gets an id.
       p.tag = tag
       p.save()

       return HttpResponseRedirect(&amp;amp;amp;quot;/&amp;amp;amp;quot;)
   else:
   form = postForm()

   t = loader.get_template('add_post.html')
   c = Context({
          'form': form,
    })

    return HttpResponse(t.render(c))
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;</pre>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zoia.org/blog/2007/03/24/iterating-over-items-of-selection-fields-in-django-templates-using-newforms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutorial de Joomla en Joomlashack</title>
		<link>http://www.zoia.org/blog/2007/03/08/tutorial-de-joomla-en-joomlashack/</link>
		<comments>http://www.zoia.org/blog/2007/03/08/tutorial-de-joomla-en-joomlashack/#comments</comments>
		<pubDate>Thu, 08 Mar 2007 15:28:22 +0000</pubDate>
		<dc:creator>Roberto</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Joomla]]></category>

		<guid isPermaLink="false">http://www.zoia.org/blog/2007/03/08/tutorial-de-joomla-en-joomlashack/</guid>
		<description><![CDATA[Joomlashack ha publicado hace unos días un tutorial de Joomla en formato pdf. Es parte del libro Joomla 1.5: A User&#8217;s Guide. El documento tiene 30 páginas y está escrito por Barrie North. El documento muestra paso a paso cómo diseñar el website de un colegio. No explica cómo diseñar el template (más bien usa [...]]]></description>
			<content:encoded><![CDATA[<p>Joomlashack ha publicado hace unos días un <a href="http://www.joomlashack.com/component/option,com_smf/Itemid,183/topic,4412.msg17340#msg17340">tutorial de Joomla</a> en formato pdf.  Es parte del libro <a href="http://www.compassdesigns.net/new-joomla-book.html">Joomla 1.5: A User&#8217;s Guide</a>.  El documento tiene 30 páginas y está escrito por Barrie North.</p>

<p>El documento muestra paso a paso cómo diseñar el website de un colegio.  No explica cómo diseñar el template (más bien usa uno ya prediseñado que se puede descargar sin costo) y se centra en explicar cómo configurar los distintos módulos a través de la interfaz administrativa de Joomla.  Es bastante claro y refuerza las explicaciones con abundantes pantallazos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zoia.org/blog/2007/03/08/tutorial-de-joomla-en-joomlashack/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Nuevo template para el blog</title>
		<link>http://www.zoia.org/blog/2007/02/18/nuevo-template-para-el-blog/</link>
		<comments>http://www.zoia.org/blog/2007/02/18/nuevo-template-para-el-blog/#comments</comments>
		<pubDate>Sun, 18 Feb 2007 23:17:22 +0000</pubDate>
		<dc:creator>Roberto</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[webdesign]]></category>

		<guid isPermaLink="false">http://www.zoia.org/blog/2007/02/18/nuevo-template-para-el-blog/</guid>
		<description><![CDATA[Estoy estrenando un nuevo template en el blog. Esta vez he optado por desarrollarlo yo mismo, por un motivo doble: un control más fino sobre la presentación, y aprender más de WordPress. Algunos cambios que he hecho: La columna de los artículos es más ancha (750 pixels, versus 525 pixels del template anterior). Antes cuando [...]]]></description>
			<content:encoded><![CDATA[<p>Estoy estrenando un nuevo <em>template</em> en el blog.  Esta vez he optado por desarrollarlo yo mismo, por un motivo doble:  un control más fino sobre la presentación, y aprender más de WordPress.</p>

<p>Algunos cambios que he hecho:</p>

<ul>
<li>La columna de los artículos es más ancha (750 pixels, versus 525 pixels del <a href="http://www.fahlstad.se/demo/index.php?wptheme=fMulti">template anterior</a>). Antes cuando el artículo incluía código las líneas se &#8220;rebalsaban&#8221;.</li>
<li>El color de fondo es ahora blanco, para facilitar la lectura.  (El otro tema me gustaba, pero quizá el estilo &#8220;dark&#8221; no era para el público general.)</li>
<li>Las categorías, lista de artículos recientes y el archivo están ahora a pie de página, de modo que no interfieran con el contenido principal.</li>
<li>Se ha &#8220;descongestionado&#8221; la columna angosta de la derecha, que ahora contiene solamente el icono para suscribirse al feed RSS del blog, la casilla de búsqueda de Google, los avisos de AdSense y un par de iconos más hacia el final.  Quizá estos iconos (tecnorati, perublogs, claimID y la licencia de Creative Commons) los termine pasando también a pie de página.</li>
<li>La página principal muestra sólo el último artículo publicado.  Se puede acceder al resto desde el menú a pie de página.  Antes, para ver el segundo artículo el lector tenía que correr la página hasta el final del primer artículo.  En el diseño actual igual hay que correr la página, pero en vez del siguiente artículo se encuentra con la relación de los últimos artículos publicados. </li>
</ul>

<h2>Herramientas</h2>

<p>Para desarrollar el template he usado <a href="http://www.gimp.org">gimp</a> para los gráficos y para probar combinaciones de colores, y <a href="http://www.vim.org">gvim</a> para editar la edición de los archivos HTML, PHP y CSS.  Salvo algunas pruebas en Windows para ver si el IE 7.0 no reventaba el diseño, casi todo se hizo en una laptop con Linux (Ubuntu), y WordPress 2.1 +MySQL+PHP.  Algunos ajustes finales se hicieron después de subir el nuevo template al servidor que aloja el blog, a través de la interfaz administrativa de WordPress o usando ssh.</p>

<p>Ya he comentado alguna vez sobre las incompatibilidades entre los distintos navegadores. Son para morirse.  Aprenderse todos los trucos no es mi idea un conocimiento en el que valga la pena invertir tiempo.  Así que esta vez opté por usar los &#8220;grids&#8221; de <a href="http://developer.yahoo.com/yui">YUI</a>, la librería CSS que ofrece Yahoo!, para el layout del blog.  Valió la pena y supuso un ahorro importante de tiempo:  una vez hecho el layout básico, se veía igual en Firefox, Flock, Safari y IE 6 y 7.</p>

<p>Como se puede ver en el layout de esta página, la parte superior tiene dos columnas (la de los artículos y la de  los avisos de Google), y la parte inferior (el <em>footer</em>) tiene tres columnas igualmente espaciadas.  Esto también lo pude hacer sin mayores problemas gracias a que los <em>grids</em> de YUI son apilables (stackable).  Al final del artículo se incluye el código fuente de parte del <em>template</em>, que muestra cómo lograr el efecto.</p>

<p>La imágen del encabezado la saqué de <a href="http://www.sxc.hu/photo/9273">Stock Exchange</a>.  Stock Exchange tiene es una excelente fuente de fotos de alta resolución.  Quizá la cambie más adelante, pero la actual me parece buena. (<a href="http://mickyperez.wordpress.com">Miguel</a> dice que mejor estaba el tema anterior, que &#8220;no pasa nada&#8221; con la foto del header. Piña, por ahora suficiente.)</p>

<h2>Diseño para no diseñadores</h2>

<p>Encontré el libro <a href="http://www.amazon.com/Non-Designers-Design-Book-Robin-Williams/dp/0613997549/ref=ed_oe_h/104-2546886-0706340">The Non-Designer&#8217;s Design Book</a> en Amazon justo unas semanas antes de empezar el rediseño del blog.  Tiene menos de 200 páginas, sumamente práctico.  La idea de la autora es explicar los principios de un buen diseño a personas que profesionalmente no se dedican al diseño gráfico.  Con flexibilidad, he tratado de aplicar al blog las cuatro ideas básicas de las que habla el libro:  <em>contraste</em> entre distintos elementos de la página, <em>repetición</em> de tamaño, color y estilo para elementos conceptualmente similares, <em>alineación</em> marcada (en el blog, dos líneas fuertes: la del margen izquierdo de los artículos, y la del margen izquierdo de la barra derecha) y <em>proximidad</em> de elementos similares.</p>

<p>Es un buen libro.  Si los documentos que escribes parecen afiche de instituto técnico de dudosa reputación (del tipo &#8220;Estudia gerencia comercial gratis&#8221;), lo necesitas urgentemente.</p>

<h2>Mejorar la presentación del código fuente</h2>

<p>Ya que estaba rediseñando el template, también aproveché para arreglar algunos detalles con los que no estaba del todo contento.</p>

<p>Uno de los motivos para ensanchar la columna de los artículos fue que el código fuente presentase mejor.  Pero no solamente es el encuadre del texto lo que hace que el código se vea y lea bien.  Hay dando vueltas por ahí algunos programas en JavaScript que permiten resaltar la sintaxis del código fuente de los lenguajes de programación más populares.  Uno bastante conocido es <a href="http://www.dreamprojections.com/SyntaxHighlighter/">db.SyntaxHighlighter</a>, de  Alex Gorbatchev.  Tiene la gracia que además de colorear el código, permite numerar las líneas y da la posibilidad al lector de imprimir el  <em>snippet</em> o verlo en texto llano en una ventana aparte.</p>

<p>Hace algún tiempo estuve tratando de hacerlo funcionar con WordPress, pero no resultó fácil, así que lo dejé de lado.  Pero gracias a este <a href="http://erik.range-it.de/wordpress/plugins/syntaxhighlighter/">plugin</a> para WordPress ya no es necesario modificar el template para colorear el código.</p>

<h2>Resultados de Google Search dentro del blog</h2>

<p>Gracias a <a href="http://adsense.google.com">AdSense</a>, el blog usa el motor de Google para la búsqueda en vez del código de búsqueda de WordPress.  Una de las mejoras que tenía en mente es que los resultados de las búsquedas aparecieran dentro del mismo blog, de modo que no hiciesen que el usuario dejase la página.</p>

<p>En sí no es complicado, este <a href="http://www.liewcf.com/blog/archives/2006/09/google-adsense-search-results-within-wordpress-pages/">link</a> (en inglés) explica cómo hacerlo.  En resumen, se trata de usar la posibilidad que ofrece WordPress de asociar una Página (con mayúscula, para dejar claro que nos referimos a los <em>Pages</em> de WordPress) a un <em>slug</em> <em>template</em> determinado.  Trataré de explicarlo en detalle en otro post.  Mientras tanto, prueba a buscar algo dentro del blog usando la casilla de la esquina superior derecha.  Verás que en vez de abrirse una ventana nueva, los resultados se muestran dentro del mismo blog.</p>

<h2>Selección de artículos</h2>

<p>El menú horizontal del encabezado tiene una entrada <a href="http://www.zoia.org/blog/articles/">Artículos</a>, que muestra una página con una selección de artículos ordenados por categoría.  La gracia es que no son todos los artículos, solamente los que el autor del blog ha indicado previamente.  Esto es posible gracias al <a href="http://alexking.org/projects/wordpress/plugins/articles.zip">Articles plugin</a> para WordPress, de Alex King.</p>

<h2>Qué no tiene este template</h2>

<p>Es lógico escribir también de las limitaciones del template.  Menciono una que me parece importante, y es que no hay posibilidades de configurar el template a través de la interfaz de WordPress.  Por ejemplo, las últimas versiones de Kubrick (el template que viene por defecto en WordPress), permite al propietario del blog escoger una imagen alternativa para el encabezado.</p>

<p>Este template, en cambio, tiene un montón de cosas que han sido insertadas directamente en el código.  Por ejemplo, el código que genera los avisos de Google están en un archivo con el código que genera AdSense para mí.  Lo mismo el icono de BlogsPeru, de Tecnorati&#8230;  El código del template en sí es bastante ordenado y modular, en principio cada archivo .php hace solamente una cosa y nada más que eso.  Pero lo que no es igual para todos los usuarios debería poder configurarse a través de la interfaz de WordPress, sin tocar una sola línea de PHP.</p>

<h2>Y para terminar&#8230;</h2>

<p>Para cerrar el artículo, tengo que decir que desarrollar un template para WordPress es una delicia comparado con lo que supone desarrollar un template para Joomla o Mambo.  En mi opinión, esto se debe en buena parte a la excelente <a href="http://codex.wordpress.org">documentación</a> de WordPress.  Es bastante clara, hay ejemplos.</p>

<p>Por último, si tienes algún comentario sobre el template, agradecería saberlo.  Me intersa lo positivo y negativo, no problem.</p>

<p>Más abajo se puede encontrar el código fuente de algunos de los archivos que componen el template.
<span id="more-100"></span></p>

<h2>header.php</h2>

<p>
&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&gt;
&lt;html xmlns=&#8221;http://www.w3.org/1999/xhtml&#8221;&gt;
&lt;head profile=&#8221;http://gmpg.org/xfn/11&#8243;&gt;
     &lt;meta http-equiv=&#8221;Content-Type&#8221; content=&#8221;&lt;?php bloginfo(&#8216;html_type&#8217;); ?&gt;; charset=&lt;?php bloginfo(&#8216;charset&#8217;); ?&gt;&#8221; /&gt;
     &lt;title&gt;&lt;?php bloginfo(&#8216;name&#8217;); ?&gt; &lt;?php if ( is_single() ) { ?&gt; &raquo; Blog Archive &lt;?php } ?&gt; &lt;?php wp_title(); ?&gt;&lt;/title&gt;
     &lt;meta name=&#8221;generator&#8221; content=&#8221;WordPress &lt;?php bloginfo(&#8216;version&#8217;); ?&gt;&#8221; /&gt; &lt;!&#8211; leave this for stats &#8211;&gt;
     &lt;link rel=&#8221;stylesheet&#8221; href=&#8221;&lt;?php bloginfo(&#8216;template_url&#8217;); ?&gt;/reset-fonts-grids.css&#8221; type=&#8221;text/css&#8221; media=&#8221;screen&#8221; /&gt;
     &lt;link rel=&#8221;stylesheet&#8221; href=&#8221;&lt;?php bloginfo(&#8216;stylesheet_url&#8217;); ?&gt;&#8221; type=&#8221;text/css&#8221; media=&#8221;screen&#8221; /&gt;
     &lt;?php wp_head(); ?&gt;
&lt;/head&gt;
&lt;body&gt;
     &lt;!&#8211; 950 px width &#8211;&gt;
     &lt;!&#8211; 180 on right &#8211;&gt;
     &lt;div id=&#8221;doc2&#8243; class=&#8221;yui-t4&#8243;&gt;
          &lt;div id=&#8221;hd&#8221;&gt;
               &lt;div id=&#8221;hdimage&#8221;&gt;
                      &lt;h1&gt;&lt;a href=&#8221;&lt;?php echo get_settings(&#8216;home&#8217;); ?&gt;&#8221;&gt;&lt;?php bloginfo(&#8216;name&#8217;); ?&gt;
                      &lt;!&#8211; &lt;img src=&#8221;&lt;?php bloginfo(&#8216;template_url&#8217;); ?&gt;/images/header.jpg&#8221; /&gt; &#8211;&gt;
                      &lt;/a&gt;&lt;/h1&gt;
                      &lt;div class=&#8221;description&#8221;&gt;&lt;?php bloginfo(&#8216;description&#8217;); ?&gt;&lt;/div&gt;
               &lt;/div&gt;
             &lt;!&#8211; horizontal menu &#8211;&gt;
             &lt;div id=&#8221;navmenu&#8221;&gt;
             &lt;ul&gt;
                  &lt;?php wp_list_pages(&#8216;title_li=&#8217;); ?&gt; 
             &lt;/ul&gt;<br />
             &lt;/div&gt;   &lt;!&#8211; end horizontal menu &#8211;&gt;
         &lt;/div&gt;&lt;!&#8211; end header &#8211;&gt;
</p>

<h2>index.php</h2>

<p>
&lt;?php get_header(); ?&gt;
     &lt;div id=&#8221;bd&#8221;&gt;
          &lt;div id=&#8221;yui-main&#8221;&gt;
               &lt;div class=&#8221;yui-b first&#8221;&gt;
               &lt;!&#8211; The Loop &#8211;&gt;
               &lt;?php if (have_posts()) : ?&gt;
                      &lt;?php while (have_posts()) : the_post(); ?&gt;
                       &lt;div class=&#8221;post&#8221; id=&#8221;post-&lt;?php the_ID(); ?&gt;&#8221;&gt;
                            &lt;h1&gt;&lt;a href=&#8221;&lt;?php the_permalink() ?&gt;&#8221; rel=&#8221;bookmark&#8221; title=&#8221;Permanent link to &lt;?php the_title(); ?&gt;&#8221;&gt;
                            &lt;?php the_title() ?&gt;&lt;/a&gt;&lt;/h1&gt;
                            &lt;small&gt;&lt;span class=&#8221;postmetadata&#8221;&gt;&lt;?php the_time(&#8216;Y-j-n&#8217;) &gt;
                            &nbsp;|&nbsp;
                            &lt;?php the_category(&#8216;, &#8216;) ?&gt; 
                                  | &lt;?php edit_post_link(&#8216;Edit&#8217;, &#8221;, &#8216; | &#8216;); ?&gt;
                                    &lt;?php comments_popup_link(
                                          &#8216;Ningún comentario &#187;&#8217;, 
                                          &#8217;1 Comentario &#187;&#8217;,
                                          &#8216;% Comentarios &#187;&#8217;); ?&gt;
                             &lt;/span&gt;
                             &lt;/small&gt;
                             &lt;br /&gt;&lt;br /&gt;
                        &lt;div class=&#8221;entry&#8221;&gt;
                               &lt;?php the_content(&#8216;&lt;br /&gt;&lt;br /&gt;Seguir leyendo&#8230;&#8217;); ?&gt;
                               &lt;?php wp_link_pages(&#8216;&lt;p&gt;&lt;strong&gt;P&aacute;ginas:&lt;/strong&gt; &#8216;,<br />
                                                          &lt;/p&gt;&#8217;, &#8216;n&uacute;mero&#8217;); ?&gt;
                        &lt;/div&gt;
                       &lt;/div&gt; &lt;!&#8211; end post &#8211;&gt;
                       &lt;?php endwhile; ?&gt;
                       &lt;?php else : ?&gt;
                               &lt;h2 class=&#8221;center&#8221;&gt;Not found&lt;/h2&gt;
                       &lt;?php endif; ?&gt;
                &lt;/div&gt;&lt;!&#8211; end yui-b &#8211;&gt;
                &lt;/div&gt;&lt;!&#8211; end yui-main &#8211;&gt;
                &lt;!&#8211; The sidebar &#8211;&gt;
                &lt;div class=&#8221;yui-b&#8221;&gt;
                      &lt;?php get_sidebar(); ?&gt;
                &lt;/div&gt; &lt;!&#8211; end sidebar &#8211;&gt;
        &lt;/div&gt; &lt;!&#8211; end body &#8211;&gt;
        &lt;div id=&#8221;ft&#8221;&gt;
               &lt;?php get_footer(); ?&gt;
        &lt;/div&gt;&lt;!&#8211; end footer &#8211;&gt;
&lt;/div&gt; &lt;!&#8211; end doc2 &#8211;&gt;
&lt;/body&gt; 
&lt;/html&gt;
</p>

<h2>footer.php</h2>

<p>
        &lt;div class=&#8221;yui-gb&#8221;&gt;
            &lt;div class=&#8221;yui-u first&#8221;&gt;  &lt;!&#8211; col 1 &#8211;&gt;
                &lt;h1&gt;Art&iacute;culos recientes&lt;/h1&gt;
                &lt;!&#8211; show recent posts &#8211;&gt;
                &lt;ul&gt;
                &lt;?php wp_get_archives(&#8216;type=postbypost&amp;limit=10&amp;format=html&#8217;); ?&gt;
                &lt;/ul&gt;
                &lt;h1&gt;Archivos&lt;/h1&gt;
                &lt;ul&gt;
                &lt;?php wp_get_archives(&#8216;type=monthly&amp;limit=12&amp;format=html&#8217;); ?&gt;
                &lt;/ul&gt;
                &lt;br /&gt;
            &lt;/div&gt; &lt;!&#8211; end col 1 &#8211;&gt;
            &lt;div class=&#8221;yui-u&#8221;&gt;   &lt;!&#8211; col 2 &#8211;&gt;
                &lt;h1&gt;Categor&iacute;as&lt;/h1&gt;
                &lt;ul&gt;
                &lt;?php wp_list_categories(&#8216;sortby=name&amp;show_count=1&amp;title_li=&#8217;); ?&gt;
                &lt;/ul&gt; 
            &lt;/div&gt;   &lt;!&#8211; end col 2 &#8211;&gt;
            &lt;div class=&#8221;yui-u&#8221;&gt;  &lt;!&#8211; col 3 &#8211;&gt;
                &lt;h1&gt;Fotos&lt;/h1&gt;
                &lt;?php include(TEMPLATEPATH . &#8216;/flickrbadge.php&#8217;); ?&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;p&gt;
        This site is proudly powered by &lt;a href=&#8221;http://wordpress.org/&#8221;&gt;WordPress&lt;/a&gt;.
        &lt;/p&gt;
        &lt;?php wp_footer(); ?&gt;
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zoia.org/blog/2007/02/18/nuevo-template-para-el-blog/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
