<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>aNieto2K</title>
	
	<link>http://www.anieto2k.com</link>
	<description>Desarrollo web, Wordpress, y alguna cosilla más</description>
	<lastBuildDate>Thu, 19 Nov 2009 16:50:14 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/anieto2k/Xzqf" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>HTML5 Glosary</title>
		<link>http://feedproxy.google.com/~r/anieto2k/Xzqf/~3/r1-AYguVqLA/</link>
		<comments>http://www.anieto2k.com/2009/11/19/html5-glosary/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 16:50:14 +0000</pubDate>
		<dc:creator>aNieto2k</dc:creator>
				<category><![CDATA[Asides]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[estandares]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[HTML5]]></category>

		<guid isPermaLink="false">http://www.anieto2k.com/?p=9316</guid>
		<description><![CDATA[Con la finalidad de hacer llegar a los desarrolladores las ventajas y la documentación necesaria sobre HTML5, HTML5Doctor crea HTML5Glosary. Un lugar donde encontraremos información sobre todos los tags HTML5 que podemos usar en esta última revisión del estándar.Artículos relacionados
Chuleta HTML5Un preview al HTML5HTML 5 Working Draft publicadoEl circo del HTML5, peligro para el estandarImplementando [...]]]></description>
			<content:encoded><![CDATA[Con la finalidad de hacer llegar a los desarrolladores las ventajas y la documentación necesaria sobre HTML5, <strong>HTML5Doctor</strong> crea <a href="http://html5doctor.com/glossary/">HTML5Glosary</a>. Un lugar donde encontraremos<a href="http://www.anieto2k.com/2009/09/07/html5-cheat-sheet/"> información sobre todos los tags HTML5</a> que podemos usar en esta última revisión del estándar.<h3>Artículos relacionados</h3>
<ul><li><a href="http://www.anieto2k.com/2009/07/06/chuleta-html5/" rel="bookmark" title="Permanent Link: Chuleta HTML5">Chuleta HTML5</a></li><li><a href="http://www.anieto2k.com/2007/12/04/un-preview-al-html5/" rel="bookmark" title="Permanent Link: Un preview al HTML5">Un preview al HTML5</a></li><li><a href="http://www.anieto2k.com/2008/01/22/html-5-working-draft-publicado/" rel="bookmark" title="Permanent Link: HTML 5 Working Draft publicado">HTML 5 Working Draft publicado</a></li><li><a href="http://www.anieto2k.com/2007/09/07/el-circo-del-html5-peligro-para-el-estandar/" rel="bookmark" title="Permanent Link: El circo del HTML5, peligro para el estandar">El circo del HTML5, peligro para el estandar</a></li><li><a href="http://www.anieto2k.com/2008/05/28/implementando-de-html5-con-javascript/" rel="bookmark" title="Permanent Link: Implementando &lt;video /&gt; de HTML5 con Javascript">Implementando &lt;video /&gt; de HTML5 con Javascript</a></li></ul><p><a href="http://www.anieto2k.com" id="unknown"><img rel="unknown" src="http://www.anieto2k.com/favicon.ico" alt="aNieto2k" /></a></p><img src="http://feeds.feedburner.com/~r/anieto2k/Xzqf/~4/r1-AYguVqLA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.anieto2k.com/2009/11/19/html5-glosary/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.anieto2k.com/2009/11/19/html5-glosary/</feedburner:origLink></item>
		<item>
		<title>Gestión de eventos vs Delegación de eventos</title>
		<link>http://feedproxy.google.com/~r/anieto2k/Xzqf/~3/mEWAVIdBqfg/</link>
		<comments>http://www.anieto2k.com/2009/11/19/gestion-de-eventos-vs-delegacion-de-eventos/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 16:40:13 +0000</pubDate>
		<dc:creator>aNieto2k</dc:creator>
				<category><![CDATA[Programacion]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://www.anieto2k.com/?p=9310</guid>
		<description><![CDATA[Este artículo llevaba ya más de un año entre los borradores, pero creo interesante darle salida. Así que es muy probable que este artículo te aburra, lo siento.

Una de las buenas prácticas de Javascript es el uso de eventos para separar la estructura de la funcionalidad, en ella especificamos la funcionalidad que los elementos indicados [...]]]></description>
			<content:encoded><![CDATA[<em>Este artículo llevaba ya más de un año entre los borradores, pero creo interesante darle salida. Así que es muy probable que este artículo te aburra, lo siento.</em>

Una de las buenas prácticas de Javascript es el uso de eventos para separar la estructura de la funcionalidad, en ella especificamos la funcionalidad que los elementos indicados deberán ejecutar al ser accionados.

Este uso de eventos, puede ser tratado de dos formas:
<ul>
	<li>Gestión de eventos</li>
	<li>Delegación de eventos</li>
</ul>
Ambas ofrecen el mismo resultado, aunque, como veremos una es más óptima que otra a la hora de gestionar grandes cantidades de elementos.

Para enteder las diferencias entre ellas, mejor ver unos ejemplos y luego los comentamos.
<h3>HTML</h3>
<pre><code>&lt;ul id="nav"&gt;
 &lt;li&gt;&lt;a href="#hola"&gt;Hola&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="#hola2"&gt;Hola2&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="#hola3"&gt;Hola3&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="#hola4"&gt;Hola4&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="#hola5"&gt;Hola5&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</code></pre>
<h3>Gestión de eventos</h3>
<pre><code>&lt;script type="text/javascript"&gt;
   var nav = document.getElementById("nav");
   var as = nav.getElementsByTagName("a");
   for (var x = 0; x &lt; as.length; x++) {
     as[x].onclick = function(){
        alert(this.innerHTML);
     }
   }
&lt;/script&gt;</code></pre>
Como vemos esta técnica se basa en<a href="http://www.anieto2k.com/2006/10/16/gestion-de-eventos-en-javascript/"> asociar un evento a cada link</a> del listado <code>#nav</code>. Esto nos hace tener que recorrer todos los enlaces que encontramos dentro del listado y asociarle el evento.
<h3>Delegación de eventos</h3>
<pre><code>&lt;script type="text/javascript"&gt;
   var nav = document.getElementById("nav");
   nav.onclick = function(e){
      var e = e || window.event; // Obtenemos el evento
      var el = e.target || e.srcElement; // Obtenemos el elemento que lanza el evento
      alert(el.innerHTML);
   }
&lt;/script&gt;</code></pre>
Con esta opción delegamos al elemento <code>#nav </code>la tarea de decidir que elemento se está ejecutando y la tarea asociada a ellos. Esto es posible gracias al <a href="http://www.quirksmode.org/js/events_order.html">orden de ejecución de eventos sobre varios elementos</a>.
<h3>Rendimiento</h3>
He hecho una serie de pruebas, sobre este mismo código, añadiendo 300/900 y 5000 elementos.

Tenemos que partir de dos mediciones a tener en cuenta:
<ul>
	<li>Tiempo en aplicar los eventos</li>
	<li>Tiempo en ejecutar el evento</li>
</ul>
A simple vista ya podemos conocer el resultado, la primera opción se vé penalizada por tener que aplicar a cada elemento del listado la funcionalidad, pero una vez hecho esto, la ejecución rápida y simple, ya que está asociada al elemento.

Por otro lado, la segunda opción es mucho más rápida a la hora de asociar la funcionalidad al elemento ya que siempre, sin importar el número de subelementos haya,  será un único elemento al que asociar. Pero por otro lado nos encontramos con que la ejecución de la funcionalidad debe detectar el elemento y despues la funcionalidad asociada.
<h3>Conclusiones</h3>
Como siempre digo, no es una forma mejor que otra, son diferentes formas que al conocerlas nos permitirá decidir cual es la que más se ajusta a las necesidades de cada proyecto.
<h3>Más información</h3>
<ol>
	<li><a href="http://www.sitepoint.com/blogs/2008/07/23/javascript-event-delegation-is-easier-than-you-think/">Javascript Event Delegation is Easier than you think</a></li>
	<li><a href="http://cherny.com/webdev/70/javascript-event-delegation-and-event-hanlders">Javascript Event Delegation and Event Handlers</a></li>
	<li><a href="http://lab.distilldesign.com/event-delegation/">Event Delegation with jQuery</a></li>
	<li><a href="http://www.danwebb.net/2008/2/8/event-delegation-made-easy-in-jquery">Event Delegation made Easy</a></li>
	<li><a href="http://robertnyman.com/2008/05/04/event-delegation-with-javascript/">Event Delegation with javascript</a></li>
</ol><h3>Artículos relacionados</h3>
<ul><li><a href="http://www.anieto2k.com/2006/08/02/gestion-de-eventos-en-javascript-con-prototype/" rel="bookmark" title="Permanent Link: Gestión de eventos en Javascript con Prototype">Gestión de eventos en Javascript con Prototype</a></li><li><a href="http://www.anieto2k.com/2006/12/18/cancelar-eventos-mediante-javascript/" rel="bookmark" title="Permanent Link: Cancelar eventos mediante Javascript">Cancelar eventos mediante Javascript</a></li><li><a href="http://www.anieto2k.com/2006/10/06/textarea-tools-con-ensanchamiento-del-textarea/" rel="bookmark" title="Permanent Link: Textarea tools, con ensanchamiento del textarea">Textarea tools, con ensanchamiento del textarea</a></li><li><a href="http://www.anieto2k.com/2007/11/13/los-eventos-de-teclado-en-javascript/" rel="bookmark" title="Permanent Link: Los eventos de teclado en Javascript">Los eventos de teclado en Javascript</a></li><li><a href="http://www.anieto2k.com/2009/02/18/live-en-jquery-13/" rel="bookmark" title="Permanent Link: live() en jQuery 1.3">live() en jQuery 1.3</a></li></ul><p><a href="http://www.anieto2k.com" id="unknown"><img rel="unknown" src="http://www.anieto2k.com/favicon.ico" alt="aNieto2k" /></a></p><img src="http://feeds.feedburner.com/~r/anieto2k/Xzqf/~4/mEWAVIdBqfg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.anieto2k.com/2009/11/19/gestion-de-eventos-vs-delegacion-de-eventos/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.anieto2k.com/2009/11/19/gestion-de-eventos-vs-delegacion-de-eventos/</feedburner:origLink></item>
		<item>
		<title>IE9: Una vista al futuro de Internet Explorer</title>
		<link>http://feedproxy.google.com/~r/anieto2k/Xzqf/~3/k2WtPIBBelo/</link>
		<comments>http://www.anieto2k.com/2009/11/18/ie9-una-vista-al-futuro-de-internet-explorer/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 21:10:36 +0000</pubDate>
		<dc:creator>aNieto2k</dc:creator>
				<category><![CDATA[Actualidad]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[de la red]]></category>
		<category><![CDATA[estandares]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[IE9]]></category>

		<guid isPermaLink="false">http://www.anieto2k.com/?p=9303</guid>
		<description><![CDATA[IEBlog publica un artículo para acercarnos Internet Explorer 9 (o lo que pretenden que sea) a los desarrolladores. Son conscientes de que el navegador necesita un cambio, y principalmente de imagen ya que entre los desarrolladores no podría tener peor fama.

(Ver Imagen)

Para hacer frente a las nuevas aplicaciones web, cargadas de Javascript, IE8 mejoró algo [...]]]></description>
			<content:encoded><![CDATA[<a href="http://blogs.msdn.com/ie/archive/2009/11/18/an-early-look-at-ie9-for-developers.aspx">IEBlog publica un artículo para acercarnos Internet Explorer 9 </a>(o lo que pretenden que sea) a los desarrolladores. Son conscientes de que el navegador necesita un cambio, y principalmente de imagen ya que <a href="http://www.anieto2k.com/2008/09/09/microsoft-internet-explorer-8-y-los-prefijos-css/">entre los desarrolladores no podría tener peor fama</a>.
<p style="text-align: center;"><a rel="lightbox" href="http://www.anieto2k.com/wp-content/uploads/2009/11/Dean_PDC_2.png"><img src="http://www.anieto2k.com/wp-content/uploads/2009/11/Dean_PDC_2.png" alt="Dean_PDC_2" /></a>
<a href="http://www.anieto2k.com/wp-content/uploads/2009/11/Dean_PDC_2.png"><small>(Ver Imagen)</small></a>

Para hacer frente a las nuevas aplicaciones web, cargadas de Javascript, <a href="http://www.anieto2k.com/2009/03/20/internet-explorer-8-primeros-impresiones-tecnicas/">IE8 mejoró algo el tiempo de proceso</a> frente a los resultados obtenidos por su versión anterior, como vemos en la imagen.

Por otro lado, el más importante, la adopción de estándares asoma un triste <strong>32/100</strong> en los resultados actuales de <a href="http://acid3.acidtests.org/">Acid3</a> con la versión de desarrollo, que aunque <a href="http://www.anieto2k.com/2008/03/15/el-estado-de-acid3-en-la-actualidad/">se trata de un resultado muy inferior a sus contrincantes</a> (que hace ya tiempo lo pasaron al 100%), nos permite vislumbrar una pequeña mejoría que quiero coger con ilusión :D
</p><p style="text-align: center;"><a rel="lightbox" href="http://www.anieto2k.com/wp-content/uploads/2009/11/Dean_PDC_4.png"><img src="http://www.anieto2k.com/wp-content/uploads/2009/11/Dean_PDC_4.png" alt="Dean_PDC_4" /></a>
<a href="http://www.anieto2k.com/wp-content/uploads/2009/11/Dean_PDC_4.png"><small>(Ver Imagen)</small></a>

Como vemos en la imagen, <code>border-radius</code> pasará a formar parte de las nuevas funcionalidades disponibles en esta última versión que junto a <a href="http://www.css3.info/selectors-test/">los selectores CSS3</a> y <a href="http://samples.msdn.microsoft.com/ietestcenter/html5.htm">el almacenamiento DOM</a> hará que<a href="http://www.anieto2k.com/2009/09/23/convierte-internet-explorer-en-google-chrome-con-el-plugin-google-chrome-frame/"> IE9 parezca hasta un navegador</a> :D</p><h3>Artículos relacionados</h3>
<ul><li><a href="http://www.anieto2k.com/2008/08/28/internet-explorer-8-beta-2-disponible-para-descargar/" rel="bookmark" title="Permanent Link: Internet Explorer 8 beta 2 disponible para descargar">Internet Explorer 8 beta 2 disponible para descargar</a></li><li><a href="http://www.anieto2k.com/2008/10/20/internet-explorer-8-eliminara-las-expresiones-css-en-el-modo-estandar/" rel="bookmark" title="Permanent Link: Internet Explorer 8 eliminará las expresiones CSS en el modo estandar">Internet Explorer 8 eliminará las expresiones CSS en el modo estandar</a></li><li><a href="http://www.anieto2k.com/2009/03/19/confirmado-internet-explorer-8-hoy-apartir-de-las-1800/" rel="bookmark" title="Permanent Link: Confirmado: Internet Explorer 8 hoy, apartir de las 18:00">Confirmado: Internet Explorer 8 hoy, apartir de las 18:00</a></li><li><a href="http://www.anieto2k.com/2009/08/29/internet-explorer-8-disponible-en-el-windows-server-update-services-wsus/" rel="bookmark" title="Permanent Link: Internet Explorer 8 disponible en el Windows Server Update Services (WSUS)">Internet Explorer 8 disponible en el Windows Server Update Services (WSUS)</a></li><li><a href="http://www.anieto2k.com/2009/06/03/internet-explorer-8-en-20-idiomas-mas/" rel="bookmark" title="Permanent Link: Internet Explorer 8 en 20 idiomas más">Internet Explorer 8 en 20 idiomas más</a></li></ul><p><a href="http://www.anieto2k.com" id="unknown"><img rel="unknown" src="http://www.anieto2k.com/favicon.ico" alt="aNieto2k" /></a></p><img src="http://feeds.feedburner.com/~r/anieto2k/Xzqf/~4/k2WtPIBBelo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.anieto2k.com/2009/11/18/ie9-una-vista-al-futuro-de-internet-explorer/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		<feedburner:origLink>http://www.anieto2k.com/2009/11/18/ie9-una-vista-al-futuro-de-internet-explorer/</feedburner:origLink></item>
		<item>
		<title>La funcionalidad “post-image” de Wordpress 2.9</title>
		<link>http://feedproxy.google.com/~r/anieto2k/Xzqf/~3/duA352AL2I4/</link>
		<comments>http://www.anieto2k.com/2009/11/17/la-funcionalidad-post-image-de-wordpress-2-9/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 14:45:50 +0000</pubDate>
		<dc:creator>aNieto2k</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[themes]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://www.anieto2k.com/?p=9298</guid>
		<description><![CDATA[Una de las nuevas funcionalidades que nos encontraremos en Wordpress 2.9 es el llamado post-image, que como ya hemos explicado previamente se trata de un sistema que nos permite asociar a un post una imagen y poder usarla en un theme.

Justin Tadlock muestra un completo artículo mostrando como hacer uso de esta funcionalidad.
1) Permitir la [...]]]></description>
			<content:encoded><![CDATA[Una de las nuevas funcionalidades que nos encontraremos en Wordpress 2.9 es el llamado <strong>post-image</strong>, que como ya hemos explicado previamente se trata de un sistema que nos permite asociar a un post una imagen y poder usarla en un theme.

<a href="http://justintadlock.com/archives/2009/11/16/everything-you-need-to-know-about-wordpress-2-9s-post-image-feature">Justin Tadlock muestra un completo artículo</a> mostrando como hacer uso de esta funcionalidad.
<h3>1) Permitir la funcionalidad</h3>
Como vimos en el post de las nuevas funcionalidades de Wordpress 2.9, el theme iba a coger algo de relevancia permitiendo activar/desactivar funcionalidades de Wordpress desde el fichero functions.php.

Esta capacidad nos permitirá activar esta funcionalidad añadiendo un simple línea a nuestro theme:
<pre><code>add_theme_support( 'post-thumbnails' );</code></pre>
Esta línea, nos activará la funcionalidad de post-image en nuestro Wordpress, permitiendo que podamos ver un box más en nuestra página de "Nueva Entrada".
<p style="text-align: center;"><a rel="lightbox" href="http://www.anieto2k.com/wp-content/uploads/2009/11/wordpress-2.9-post-image.JPG"><img src="http://www.anieto2k.com/wp-content/uploads/2009/11/wordpress-2.9-post-image.JPG" alt="wordpress-2.9-post-image" /></a>
<a href="http://www.anieto2k.com/wp-content/uploads/2009/11/wordpress-2.9-post-image.JPG"><small>(Ver Imagen)</small></a>

Allí podremos seleccionar una imagen que será asociada al post.
<h3>2) Usar la funcionalidad</h3>
Una vez asociada la imagen, ya solo nos queda hacer que nuestro theme muestre la imagen donde queramos. Para ello tenemos una serie de funciones que debemos conocer:
<h4><code>the_post_image($size)</code></h4>
Esta función nos permite mostrar la imagen en el punto en el que la llamamos, requiere estar incluida <a href="http://www.anieto2k.com/2006/02/15/el-loop-de-wordpress-en-accion/">dentro del Loop</a> para funcionar.
<pre><code>&lt;?php while( have_posts() ) : the_post(); ?&gt;
 &lt;div&gt;
 &lt;h1&gt;&lt;a href="&lt;?php the_permalink() ?&gt;"&gt;&lt;?php the_title() ?&gt;&lt;/a&gt;&lt;/h1&gt;
 &lt;?php the_post_image() ?&gt;
 &lt;?php the_content() ?&gt;
&lt;/div&gt;
&lt;?php endif; ?&gt;</code></pre>
Podemos usarla con un parámetro para especificar el tamaño de la imagen que queremos mostrar:
<ul>
	<li>thumbnail</li>
	<li>medium</li>
	<li>full</li>
</ul>
Todas hacen referencia a la configuración de imagenes del apartado <strong>Opciones &gt; Media</strong> de nuestro panel de control.
<h4><code>has_post_image()</code></h4>
Para comprobar si un post tiene asociada una imagen deberemos usar <code>has_post_image()</code> que nos devolverá <code>true</code> o <code>false</code>.
<pre><code>&lt;?php
	if ( has_post_image() )
		the_post_image( 'thumbnail' );
	else
		echo '&lt;img src="default-image.png" alt="Example Image" title="Example" /&gt;';
?&gt;</code></pre>
<h4><code>get_post_image_id()</code></h4>
Si necesitamos obtener el <code>ID</code> de la imagen podremos hacer uso de esta función que nos devolverá el <code>ID</code>.
<pre><code>$image_id = get_post_image_id();</code></pre>
<h4><code>get_the_post_image( $id, $size )</code></h4>
Si necesitamos obtener la imagen de un post fuera del Loop podemos acceder directamente a ella indicándole el ID del post y el tamaño de la imagen que necesitamos.
<pre><code>$image = get_the_post_image( $post-&gt;ID, 'thumbnail' );</code></pre>
<h3>3) Filtros y actions</h3>
Además de las funciones que nos permiten trabajar cómodamente con la imágen asociada, tenemos una serie de filtros que nos permiten personalizar más aún la funcionalidad y obtener resultados de lo más dispares.
<pre><code><strong>//Filters
</strong> - post_image_size
 - post_image_html
<strong>// Actions
</strong> - begin_fetch_post_image_html
 - end_fetch_post_image_html</code></pre>
Veamos un ejemplo de Justin nos muestra con el que podemos cambiar el HTML de salida de la imagen que vamos a mostrar.
<pre><code>add_filter( 'post_image_html', 'my_post_image_html', 10, 3 );
function my_post_image_html( $html, $post_id, $post_image_id );
	$html = '&lt;a href="' . get_permalink( $post_id ) . '" title="' . esc_attr( get_post_field( 'post_title', $post_id ) ) . '"&gt;' . $html . '&lt;/a&gt;';
	return $html;

}</code></pre>
Se trata de una gran funcionalidad, que muchos desarrolladores de themes estarán deseando usar en sus creaciones.</p><h3>Artículos relacionados</h3>
<ul><li><a href="http://www.anieto2k.com/2009/09/11/nueva-funcionalidad-de-wordpress-2-9-en-la-edicion-de-imagenes/" rel="bookmark" title="Permanent Link: Nueva funcionalidad de Wordpress 2.9 en la edición de imágenes">Nueva funcionalidad de Wordpress 2.9 en la edición de imágenes</a></li><li><a href="http://www.anieto2k.com/2008/12/01/enviate-notificaciones-cuando-las-imagenes-no-carguen/" rel="bookmark" title="Permanent Link: Envíate notificaciones cuando las imagenes no carguen">Envíate notificaciones cuando las imagenes no carguen</a></li><li><a href="http://www.anieto2k.com/2009/09/21/como-usar-los-custom-fields-en-wordpress/" rel="bookmark" title="Permanent Link: Como usar los custom fields en Wordpress">Como usar los custom fields en Wordpress</a></li><li><a href="http://www.anieto2k.com/2008/02/19/classimage-imagenes-mas-faciles-con-php/" rel="bookmark" title="Permanent Link: Class.image, imagenes más fáciles con PHP">Class.image, imagenes más fáciles con PHP</a></li><li><a href="http://www.anieto2k.com/2007/05/29/problema-con-wordpress-22-y-posts-largos-que-no-cargan/" rel="bookmark" title="Permanent Link: Problema con Wordpress 2.2 y posts largos que no cargan">Problema con Wordpress 2.2 y posts largos que no cargan</a></li></ul><p><a href="http://www.anieto2k.com" id="unknown"><img rel="unknown" src="http://www.anieto2k.com/favicon.ico" alt="aNieto2k" /></a></p><img src="http://feeds.feedburner.com/~r/anieto2k/Xzqf/~4/duA352AL2I4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.anieto2k.com/2009/11/17/la-funcionalidad-post-image-de-wordpress-2-9/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.anieto2k.com/2009/11/17/la-funcionalidad-post-image-de-wordpress-2-9/</feedburner:origLink></item>
		<item>
		<title>TimeFrame, selector múltiple de fechas para Prototype</title>
		<link>http://feedproxy.google.com/~r/anieto2k/Xzqf/~3/Iq_7j0NXHlg/</link>
		<comments>http://www.anieto2k.com/2009/11/17/timeframe-selector-multiple-de-fechas-para-prototype/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 11:17:23 +0000</pubDate>
		<dc:creator>aNieto2k</dc:creator>
				<category><![CDATA[Programacion]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[calendarios]]></category>
		<category><![CDATA[prototype]]></category>

		<guid isPermaLink="false">http://www.anieto2k.com/?p=9291</guid>
		<description><![CDATA[TimeFrame es un selector de fechas múltiple desarrollado con Prototype.

(Ver Imagen)

El script nos permite configurar los aspectos básicos de un selector de fechas y además nos permite usar el formato de fechas similar al usado por DateJS.
&#60;script type="text/javascript" charset="utf-8"&#62;
      //&#60;![CDATA[
        new Timeframe('calendars', {
 [...]]]></description>
			<content:encoded><![CDATA[<a href="http://stephencelis.com/projects/timeframe">TimeFrame</a> es un selector de fechas múltiple desarrollado con Prototype.
<p style="text-align: center;"><a rel="lightbox" href="http://www.anieto2k.com/wp-content/uploads/2009/11/timeframe.jpg"><img src="http://www.anieto2k.com/wp-content/uploads/2009/11/timeframe.jpg" alt="timeframe" /></a>
<a href="http://www.anieto2k.com/wp-content/uploads/2009/11/timeframe.jpg"><small>(Ver Imagen)</small></a>

El script nos permite configurar los aspectos básicos de un selector de fechas y además nos permite usar el formato de fechas similar al usado por <a href="http://www.datejs.com/">DateJS</a>.
<pre><code>&lt;script type="text/javascript" charset="utf-8"&gt;
      //&lt;![CDATA[
        new Timeframe('calendars', {
          startField: 'start',
          endField: 'end',
          earliest: new Date(),
          resetButton: 'reset' });
      //]]&gt;
&lt;/script&gt;
</code></pre>
<h3>Parámetros</h3>
Como vemos en el ejemplo anterior, el primer parámetro hace referencia al ID del elemento que usaremos para alojar el calendario y el segúndo parámetro se trata de un objeto con una serie de opciones que especificarán el aspecto que ha de tener el selector.

<dl> <dt><code>months</code></dt> <dd>Número de meses que mostramos (default: <code>2</code>).</dd> <dt><code>format</code></dt> <dd>Formato para las fechas en los elementos <code>&lt;input /&gt;</code> (default: <code>%b %d, %Y</code>)</dd> <dt><code>weekOffset</code></dt> <dd>Fecha de inicio de la semana (usa <code>1</code> para empezar la semana en Lunes).</dd> <dt><code>startField</code>, <code>endField</code></dt> <dd>Declara un rango de inicio y fin. (por defecto lo genera automáticamente) </dd> <dt><code>previousButton</code>, <code>todayButton</code>, <code>nextButton</code>, <code>resetButton</code></dt> <dd>Declara los botones de navegación (por defecto lo genera automáticamente) </dd> <dt><code>earliest</code>, <code>latest</code></dt> <dd>Permite espeficiar los rangos de fechas anteriores o posteriores que no podrán ser seleccionadas</dd> <dt><code>maxRange</code></dt> <dd>Limita el máximo de días a la vez </dd> </dl>
<h3>Demo y Descarga</h3>
Si <a href="http://stephencelis.com/projects/timeframe#example_information">lo quieres ver funcionando</a> o descargarlo para probarlo en tu local <a href="http://github.com/stephencelis/timeframe">puedes hacerlo aquí</a>.</p><h3>Artículos relacionados</h3>
<ul><li><a href="http://www.anieto2k.com/2009/03/06/input-typefile-para-ficheros-multiples-por-fin-en-version-nativa/" rel="bookmark" title="Permanent Link: input type=&#8221;file&#8221; para ficheros múltiples por fin en versión nativa">input type=&#8221;file&#8221; para ficheros múltiples por fin en versión nativa</a></li><li><a href="http://www.anieto2k.com/2006/09/30/fechas-mas-elegantes-con-css/" rel="bookmark" title="Permanent Link: Fechas más elegantes con CSS">Fechas más elegantes con CSS</a></li><li><a href="http://www.anieto2k.com/2006/07/05/mejoras-el-aspecto-de-tus-fechas-con-css/" rel="bookmark" title="Permanent Link: Mejoras el aspecto de tus fechas con CSS">Mejoras el aspecto de tus fechas con CSS</a></li><li><a href="http://www.anieto2k.com/2008/08/21/queryselectorall-nativo-para-firefox-31/" rel="bookmark" title="Permanent Link: querySelectorAll() nativo para Firefox 3.1">querySelectorAll() nativo para Firefox 3.1</a></li><li><a href="http://www.anieto2k.com/2009/01/27/otra-de-enlaces-rapido/" rel="bookmark" title="Permanent Link: Otra de enlaces rápido">Otra de enlaces rápido</a></li></ul><p><a href="http://www.anieto2k.com" id="unknown"><img rel="unknown" src="http://www.anieto2k.com/favicon.ico" alt="aNieto2k" /></a></p><img src="http://feeds.feedburner.com/~r/anieto2k/Xzqf/~4/Iq_7j0NXHlg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.anieto2k.com/2009/11/17/timeframe-selector-multiple-de-fechas-para-prototype/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.anieto2k.com/2009/11/17/timeframe-selector-multiple-de-fechas-para-prototype/</feedburner:origLink></item>
		<item>
		<title>La optimización definitiva de Wordpress</title>
		<link>http://feedproxy.google.com/~r/anieto2k/Xzqf/~3/ceCQq_NV74M/</link>
		<comments>http://www.anieto2k.com/2009/11/17/la-optimizacion-definitiva-de-wordpress/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 08:08:06 +0000</pubDate>
		<dc:creator>aNieto2k</dc:creator>
				<category><![CDATA[Asides]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[optimización]]></category>

		<guid isPermaLink="false">http://www.anieto2k.com/?p=9289</guid>
		<description><![CDATA[Hay que reconocer que aunque Wordpress es un buen software tiene una serie de puntos débiles que hacen que trabajar con él nos dé más de un dolor de cabeza. Entre los problemas que más detectamos es el excesivo consumo de memoria y de recursos en general que necesita para funcionar eficazmente. En estos casos, [...]]]></description>
			<content:encoded><![CDATA[Hay que reconocer que aunque Wordpress es un buen software tiene una serie de puntos débiles que hacen que trabajar con él nos dé más de un dolor de cabeza. Entre los problemas que más detectamos es <a href="http://www.anieto2k.com/2009/09/10/diferentes-formas-de-optimizar-el-consumo-de-memoria-de-wordpress-a-prueba/">el excesivo consumo de memoria</a> y de recursos en general que necesita para funcionar eficazmente. En estos casos, lo mejor es, sin duda, optimizar todo lo que Wordpress necesita para funcionar, desde el servidor web hasta <a href="http://www.anieto2k.com/2009/10/17/cuidando-la-base-de-datos-de-nuestro-wordpress/">el servidor de base de datos</a> pasándo por las imágenes que servimos y el javascript que le hacemos llegar al usuario. Con <a href="http://storecrowd.com/blog/wordpress-optimisation/">esta guía podrás optimizar al milímetro cualquier aspecto de la instalación de tu Wordpress</a>.<h3>Artículos relacionados</h3>
<ul><li><a href="http://www.anieto2k.com/2008/08/26/%c2%bfla-lista-definitiva-para-los-usuarios-de-wordpress/" rel="bookmark" title="Permanent Link: ¿La lista definitiva para los usuarios de Wordpress?">¿La lista definitiva para los usuarios de Wordpress?</a></li><li><a href="http://www.anieto2k.com/2006/11/24/quick-thumbnail-una-solucion-al-problema-de-las-miniaturas/" rel="bookmark" title="Permanent Link: Quick Thumbnail, una solución al problema de las miniaturas">Quick Thumbnail, una solución al problema de las miniaturas</a></li><li><a href="http://www.anieto2k.com/2009/08/17/la-guia-definitiva-sobre-get-vs-post/" rel="bookmark" title="Permanent Link: La guia definitiva sobre GET vs POST">La guia definitiva sobre GET vs POST</a></li><li><a href="http://www.anieto2k.com/2007/06/22/me-voy-ya-ho-aguanto-mas/" rel="bookmark" title="Permanent Link: Me voy!! Ya no aguanto más">Me voy!! Ya no aguanto más</a></li><li><a href="http://www.anieto2k.com/2008/03/14/wp-supercache-nueva-version-06/" rel="bookmark" title="Permanent Link: WP-SuperCache, nueva versión 0.6">WP-SuperCache, nueva versión 0.6</a></li></ul><p><a href="http://www.anieto2k.com" id="unknown"><img rel="unknown" src="http://www.anieto2k.com/favicon.ico" alt="aNieto2k" /></a></p><img src="http://feeds.feedburner.com/~r/anieto2k/Xzqf/~4/ceCQq_NV74M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.anieto2k.com/2009/11/17/la-optimizacion-definitiva-de-wordpress/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.anieto2k.com/2009/11/17/la-optimizacion-definitiva-de-wordpress/</feedburner:origLink></item>
		<item>
		<title>TinyTable v3, la herramienta perfecta para tus tablas</title>
		<link>http://feedproxy.google.com/~r/anieto2k/Xzqf/~3/ZPTIQVPG2ek/</link>
		<comments>http://www.anieto2k.com/2009/11/16/tinytable-v3-la-herramienta-perfecta-para-tus-tablas/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 14:21:39 +0000</pubDate>
		<dc:creator>aNieto2k</dc:creator>
				<category><![CDATA[Programacion]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[tablas]]></category>

		<guid isPermaLink="false">http://www.anieto2k.com/?p=9284</guid>
		<description><![CDATA[Las tablas son los elementos que más han pasado en esta transición que estamos viviendo con Internet, de ser los elemento claves para la construcción de sitios web a ser elementos destinados a mostrar contenidos tabulados de forma semántica. Ahora ya no basta con eso, se han de sobrecargar de funcionalidades para facilitar la tarea [...]]]></description>
			<content:encoded><![CDATA[Las tablas son los elementos que más han pasado en esta transición que estamos viviendo con Internet, de ser los elemento claves para la construcción de sitios web a ser elementos destinados a <a href="http://www.anieto2k.com/2007/03/25/manual-de-buenas-tablas-semanticas/">mostrar contenidos tabulados de forma semántica</a>. Ahora ya no basta con eso, se han de <a href="http://www.anieto2k.com/2009/09/07/15-plugins-jquery-para-la-manipulacion-de-tablas/">sobrecargar de funcionalidades para facilitar la tarea de visualizar estos datos</a>.

Por ello nace <a href="http://www.leigeber.com/2009/11/advanced-javascript-table-sorter/">TinyTable</a>, una herramienta que <a href="http://www.anieto2k.com/2009/03/09/tinytable-25kb-para-unas-tablas-profesionales/">ya hemos visto en aNieto2k</a> y que esta última versión, la 3.0, incorpora mejoras realmente interesantes.
<p style="text-align: center;"><a rel="lightbox" href="http://www.anieto2k.com/wp-content/uploads/2009/11/tinytablev3.jpg"><img src="http://www.anieto2k.com/wp-content/uploads/2009/11/tinytablev3.jpg" alt="tinytablev3" /></a>
<a href="http://www.anieto2k.com/wp-content/uploads/2009/11/tinytablev3.jpg"><small>(Ver Imagen)</small></a>

Entre las mejoras que nos encontramos en esta versión, nos encontramos:
<ul>
	<li>Búsqueda de datos en la tabla</li>
	<li>Promedios de columna y totales</li>
	<li>Efecto onhover</li>
	<li>Cambio de clases de cabecera</li>
	<li>Reconocimiento automático del tipo</li>
	<li>... más</li>
</ul>
Además de todas las funcionalidades disponibles en la versión anterior, como ordenación, paginación,... y <strong>todo en solo 7KB </strong>de nada.
<pre>var sorter = new TINY.table.sorter('sorter','table',{
 headclass:'head', // Header Class //
 ascclass:'asc', // Ascending Class //
 descclass:'desc', // Descending Class //
 evenclass:'evenrow', // Even Row Class //
 oddclass:'oddrow', // Odd Row Class //
 evenselclass:'evenselected', // Even Selected Column Class //
 oddselclass:'oddselected', // Odd Selected Column Class //
 paginate:true, // Paginate? (true or false) //
 size:10, // Initial Page Size //
 colddid:'columns', // Columns Dropdown ID (optional) //
 currentid:'currentpage', // Current Page ID (optional) //
 totalid:'totalpages', // Current Page ID (optional) //
 startingrecid:'startrecord', // Starting Record ID (optional) //
 endingrecid:'endrecord', // Ending Record ID (optional) //
 totalrecid:'totalrecords', // Total Records ID (optional) //
 hoverid:'selectedrow', // Hover Row ID (optional) //
 pageddid:'pagedropdown', // Page Dropdown ID (optional) //
 navid:'tablenav', // Table Navigation ID (optional) //
 sortcolumn:1, // Index of Initial Column to Sort (optional) //
 sortdir:1, // Sort Direction (1 or -1) //
 sum:[8], // Index of Columns to Sum (optional) //
 avg:[6,7,8,9], // Index of Columns to Average (optional) //
 columns:[{index:7, format:'%', decimals:1},{index:8, format:'$', decimals:0}], // Sorted Column Settings (optional) //
 init:true // Init Now? (true or false) //
});</pre>
Al no depender de ninguna librería JS, nos permite incorporarlo en cualquier aplicación web sin prácticamente ningún problema.

Aquí teneis <a href="http://sandbox.leigeber.com/tinytablev3/index.html">un ejemplo</a> para verlo funcionando.</p><h3>Artículos relacionados</h3>
<ul><li><a href="http://www.anieto2k.com/2009/03/09/tinytable-25kb-para-unas-tablas-profesionales/" rel="bookmark" title="Permanent Link: TinyTable, 2.5kb para unas tablas profesionales">TinyTable, 2.5kb para unas tablas profesionales</a></li><li><a href="http://www.anieto2k.com/2008/08/14/10-disenos-de-tablas-espectaculares/" rel="bookmark" title="Permanent Link: 10 diseños de tablas espectaculares">10 diseños de tablas espectaculares</a></li><li><a href="http://www.anieto2k.com/2007/05/30/tablekit-mas-gestion-de-tablas-mediante-javascript/" rel="bookmark" title="Permanent Link: TableKit, más gestión de tablas mediante Javascript">TableKit, más gestión de tablas mediante Javascript</a></li><li><a href="http://www.anieto2k.com/2007/02/26/mootables-tablas-con-funcionalidad/" rel="bookmark" title="Permanent Link: MooTables, tablas con funcionalidad">MooTables, tablas con funcionalidad</a></li><li><a href="http://www.anieto2k.com/2006/12/29/manual-de-tablas-semanticas/" rel="bookmark" title="Permanent Link: Manual de Tablas semánticas">Manual de Tablas semánticas</a></li></ul><p><a href="http://www.anieto2k.com" id="unknown"><img rel="unknown" src="http://www.anieto2k.com/favicon.ico" alt="aNieto2k" /></a></p><img src="http://feeds.feedburner.com/~r/anieto2k/Xzqf/~4/ZPTIQVPG2ek" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.anieto2k.com/2009/11/16/tinytable-v3-la-herramienta-perfecta-para-tus-tablas/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://www.anieto2k.com/2009/11/16/tinytable-v3-la-herramienta-perfecta-para-tus-tablas/</feedburner:origLink></item>
		<item>
		<title>Detecta si una fuente está disponible desde Javascript</title>
		<link>http://feedproxy.google.com/~r/anieto2k/Xzqf/~3/x96BH1M8Ywk/</link>
		<comments>http://www.anieto2k.com/2009/11/16/detecta-si-una-fuente-esta-disponible-desde-javascript/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 08:47:21 +0000</pubDate>
		<dc:creator>aNieto2k</dc:creator>
				<category><![CDATA[Programacion]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[font-face]]></category>

		<guid isPermaLink="false">http://www.anieto2k.com/?p=9275</guid>
		<description><![CDATA[Hace ya tiempo que mediante Javascript es posible detectar la disponibilidad de una fuente en el navegador del usuario.

(Ver Imagen)

Básicamente la idea es comparar el tamaño de un elemento que contega un texto de una fuente usada como base frente a la que queremos testear. Evidentemente este sistema no es infalible, ya que podemos encontrarnos [...]]]></description>
			<content:encoded><![CDATA[Hace ya tiempo que <a href="http://www.lalit.org/lab/javascript-css-font-detect">mediante Javascript es posible detectar la disponibilidad de una fuente</a> en el navegador del usuario.
<p style="text-align: center;"><a rel="lightbox" href="http://www.anieto2k.com/wp-content/uploads/2009/11/fontwidth.gif"><img src="http://www.anieto2k.com/wp-content/uploads/2009/11/fontwidth.gif" alt="fontwidth" /></a>
<a href="http://www.anieto2k.com/wp-content/uploads/2009/11/fontwidth.gif"><small>(Ver Imagen)</small></a>

Básicamente<a href="http://remysharp.com/2008/07/08/how-to-detect-if-a-font-is-installed-only-using-javascript/"> la idea es comparar el tamaño</a> de un elemento que contega un texto de una fuente usada como base frente a la que queremos testear. Evidentemente este sistema no es infalible, ya que podemos encontrarnos con diferentes fuentes que tengan el mismo tamaño.
<h3>jQuery FontAvailable</h3>
Para los que usamos jQuery, tenemos<a href="http://code.google.com/p/jquery-fontavailable/"> un plugin que implementa una versión sobre esta idea</a> y que nos permite detectar fácilmente de una fuente está o no disponible.
<pre><code>$(document).ready(function() {
 if($.fontAvailable('tahoma')) {
 // código aquí
 }
});</code></pre>
<h3>MooTools FontChecker Plugin</h3>
<a href="http://davidwalsh.name/font-check-plugin">David Walsh implementa la versión de MooTools</a> usando la idea de <em>fontAvailable</em> para que los desarrolladores de MooTools tengan esta interesante herramienta.
<pre><code>var fc = new FontChecker();
if (fc.check('Tahoma')) {
 ....
}</code></pre>
<h3>¿Cuando usar esta técnica?</h3>
Esta <a href="http://kilianvalkhof.com/2009/css-xhtml/combining-cufon-and-font-face/">técnica es ideal para complementar el trabajo de Cufón,</a> ya que nos permitirá comprobar si la fuente no existe para ejecutar el script.
<pre><code>$(document).ready(function() {
 if(!$.fontAvailable('Optimer')) {
 Cufon.replace('h1');
 }
});</code></pre>
A la espera de <a href="http://www.anieto2k.com/2008/09/13/firefox-31-incorporara-font-face/">la implantación de todos los navegadores de <code>@font-face</code></a>, estas pequeñas ayudas nos hacen la vida más fácil.</p><h3>Artículos relacionados</h3>
<ul><li><a href="http://www.anieto2k.com/2006/10/02/muestra-codigo-en-tus-posts/" rel="bookmark" title="Permanent Link: Muestra código en tus posts">Muestra código en tus posts</a></li><li><a href="http://www.anieto2k.com/2009/04/25/internet-explorer-8-ahora-disponible-en-43-idiomas/" rel="bookmark" title="Permanent Link: Internet Explorer 8, ahora disponible en 43 idiomas">Internet Explorer 8, ahora disponible en 43 idiomas</a></li><li><a href="http://www.anieto2k.com/2007/04/14/ttf-group-sex-una-fuente-cachonda/" rel="bookmark" title="Permanent Link: TTF Group Sex, una fuente cachonda">TTF Group Sex, una fuente cachonda</a></li><li><a href="http://www.anieto2k.com/2008/10/27/typefacejs-esperando-font-face-con-javascript/" rel="bookmark" title="Permanent Link: typeface.js, esperando font-face con javascript">typeface.js, esperando font-face con javascript</a></li><li><a href="http://www.anieto2k.com/2006/12/11/ajedrez-con-ai-en-javascript/" rel="bookmark" title="Permanent Link: Ajedrez con AI en Javascript">Ajedrez con AI en Javascript</a></li></ul><p><a href="http://www.anieto2k.com" id="unknown"><img rel="unknown" src="http://www.anieto2k.com/favicon.ico" alt="aNieto2k" /></a></p><img src="http://feeds.feedburner.com/~r/anieto2k/Xzqf/~4/x96BH1M8Ywk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.anieto2k.com/2009/11/16/detecta-si-una-fuente-esta-disponible-desde-javascript/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.anieto2k.com/2009/11/16/detecta-si-una-fuente-esta-disponible-desde-javascript/</feedburner:origLink></item>
		<item>
		<title>Preparándonos para la llegada de Wordpress 2.9</title>
		<link>http://feedproxy.google.com/~r/anieto2k/Xzqf/~3/ohY971fhcIY/</link>
		<comments>http://www.anieto2k.com/2009/11/15/preparandonos-para-la-llegada-de-wordpress-2-9/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 21:31:29 +0000</pubDate>
		<dc:creator>aNieto2k</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[2.9]]></category>

		<guid isPermaLink="false">http://www.anieto2k.com/?p=9279</guid>
		<description><![CDATA[Wordpress 2.9 está a la vuelta de la esquina. Inicialmente se propuso el 31 de Octubre como fecha de publicación pero al ver que la fecha era un poco justa para testear todas las novedades que la próxima versión va a introducir se decidió posponer sin especificar fecha, aunque todo apunta a finales de Noviembre, [...]]]></description>
			<content:encoded><![CDATA[Wordpress 2.9 está a la vuelta de la esquina. Inicialmente se propuso el 31 de Octubre como fecha de publicación pero al ver que la fecha era un poco justa para testear todas las novedades que la próxima versión va a introducir se decidió posponer sin especificar fecha, aunque todo apunta a finales de Noviembre, principios de Diciembre.

Esta nueva versión, viene con muchas mejoras y nuevas funcionalidades realmente interesantes. En <a href="http://technosailor.com/2009/11/11/10-things-you-need-to-know-about-wordpress-2-9/">Technosailor publican 10 de las que deberíamos tener en cuenta</a>, aunque yo me quedo con estas:
<h3>1) <code>the_post_image()</code></h3>
Una funcionalidad que los desarrolladores de themes podremos empezar a usar tranquilamente es la de <code>the_post_image() </code>que nos devolverá una imagen asociada a un post. Básicamente se encarga de recoger la tabla de <code>wp_postmeta</code> el valor <code>_thumbnail_id</code> asociado al <code>$post_id</code> que estamos pintando en el theme.
<pre><code>&lt;?php while( have_posts() ) : the_post(); ?&gt;
 &lt;div&gt;
 &lt;h1&gt;&lt;a href="&lt;?php the_permalink() ?&gt;"&gt;&lt;?php the_title() ?&gt;&lt;/a&gt;&lt;/h1&gt;
 &lt;?php the_post_image() ?&gt;
 &lt;?php the_content() ?&gt;
&lt;/div&gt;
&lt;?php endif; ?&gt;</code></pre>
Esta función estará disponible <a href="http://www.anieto2k.com/2006/02/15/el-loop-de-wordpress-en-accion/">dentro del Loop</a> y podremos indicarle mediante parámetros el tamaño de la imágen que deseamos obtener. Además, nos ofrece una mini API de filters y actions que nos permitirá manipular la salida fácilmente.
<pre><code><strong>//Filters
</strong> - post_image_size
 - post_image_html
<strong>// Actions
</strong> - begin_fetch_post_image_html
 - end_fetch_post_image_html</code></pre>
<h3>2) <code>add_theme_support()</code></h3>
Esta funcionalidad permite especificar que nuestros plugins carguen una porción de código si el theme que está usando el Wordpress en el que está corriendo soporta una funcionalidad.

Para ello, el plugin debe especificar el siguiente código que comprobará si el theme permite ejecutar ese código:
<pre><code>if (function_exists('require_if_theme_supports'))
 require_if_theme_supports('funcionalidad','/path/to/funcionalidad.php');</code></pre>
Esta línea comprueba que la función <code>require_if_theme_supports() </code>esté disponible, asegurándonos que no dé error en versiones anteriores a la 2.9, y posteriormente indica que cargará <code>/path/to/funcionalidad.php</code> en caso de que el theme dé soporte a <code>funcionalidad</code>.

Para permitir dar soporte a <code>funcionalidad</code>, el theme tendrá que especificarlo en el fichero <strong>functions.php</strong> (y solo allí) mediante el uso de <code>add_theme_support()</code>;
<pre><code>if ( function_exists( 'add_theme_support' ) )
 add_theme_support( 'funcionalidad' );</code></pre>
Sin duda, una forma muy interesante de profesionalizar nuestros plugins y nuestros themes.
<h3>3) Papelera de reciclaje</h3>
Ya vimos que <a href="http://www.anieto2k.com/2009/08/17/wordpress-2-9-con-papelera-de-reciclaje/">Wordpress 2.9, incluirá una papelera de reciclaje de posts</a> que nos permitirá recuperarlos una vez borrados.
<h3>4) Edición de imágenes</h3>
La subida de imágenes estará complementada con<a href="http://www.anieto2k.com/2009/09/11/nueva-funcionalidad-de-wordpress-2-9-en-la-edicion-de-imagenes/"> una interesante edición de imágenes</a> que nos ayudará a pulir esas imágenes que incrustaremos en nuestros posts.
<h3>5) Metadata API</h3>
Con el fin de unificar funcionalidades comunes <em>nace Metadata API</em>. Todas las funciones que hasta ahora usamos para acceder a los metadatos de comentarios, usuarios y posts comparten la misma funcionalidad salvo la tabla de la base de datos a la que accede.
<pre><code><strong>// Wordpress 2.8-
</strong>add_comment_meta(12345, 'twitter_id', 'someyoungpunk');
<strong>//Wordpress 2.9
</strong>add_metadata('comment', 12345, 'twitter_id', 'someyoungpunk');</code></pre>
<h3>6) Reparar base de datos</h3>
Wordpress 2.9 incorporará <a href="http://www.anieto2k.com/2009/11/13/wordpress-2-9-te-ayudara-a-cuidar-tu-base-de-datos/">un sistema que permita reparar la base de datos.</a><h3>Artículos relacionados</h3>
<ul><li><a href="http://www.anieto2k.com/2008/03/15/nuevos-cambios-en-gravatar/" rel="bookmark" title="Permanent Link: Nuevos cambios en Gravatar">Nuevos cambios en Gravatar</a></li><li><a href="http://www.anieto2k.com/2008/12/06/preparate-para-la-llegada-de-wordpress-27/" rel="bookmark" title="Permanent Link: Preparate para la llegada de Wordpress 2.7">Preparate para la llegada de Wordpress 2.7</a></li><li><a href="http://www.anieto2k.com/2008/03/31/shortcode-api-otra-novedad-de-wordpress-25/" rel="bookmark" title="Permanent Link: ShortCode API, otra novedad de Wordpress 2.5">ShortCode API, otra novedad de Wordpress 2.5</a></li><li><a href="http://www.anieto2k.com/2008/03/03/preparandonos-para-la-llegada-de-wordpress-25/" rel="bookmark" title="Permanent Link: Preparándonos para la llegada de Wordpress 2.5">Preparándonos para la llegada de Wordpress 2.5</a></li><li><a href="http://www.anieto2k.com/2008/12/11/con-todos-ustedes-wordpress-27-coltrane/" rel="bookmark" title="Permanent Link: Con todos ustedes!! Wordpress 2.7, Coltrane">Con todos ustedes!! Wordpress 2.7, Coltrane</a></li></ul><p><a href="http://www.anieto2k.com" id="unknown"><img rel="unknown" src="http://www.anieto2k.com/favicon.ico" alt="aNieto2k" /></a></p><img src="http://feeds.feedburner.com/~r/anieto2k/Xzqf/~4/ohY971fhcIY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.anieto2k.com/2009/11/15/preparandonos-para-la-llegada-de-wordpress-2-9/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://www.anieto2k.com/2009/11/15/preparandonos-para-la-llegada-de-wordpress-2-9/</feedburner:origLink></item>
		<item>
		<title>14 de Noviembre del 2009, un dia para recordar</title>
		<link>http://feedproxy.google.com/~r/anieto2k/Xzqf/~3/LrGuAZ0f504/</link>
		<comments>http://www.anieto2k.com/2009/11/14/14-de-noviembre-del-2009-un-dia-para-recordar/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 22:31:01 +0000</pubDate>
		<dc:creator>aNieto2k</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://www.anieto2k.com/?p=9271</guid>
		<description><![CDATA[Hoy es un día muy especial para mi, además de ser el 4to aniversario de la web (y parece que fué ayer) hoy dos acontecimientos harán que nunca me olvide de esta fecha.

En primer lugar el Premio Bitacoras 2009 al mejor blog de software y seguridad que me habeis otorgado vosotros con vuestros votos y [...]]]></description>
			<content:encoded><![CDATA[Hoy es un día muy especial para mi, además de ser el <strong>4to aniversario de la web</strong> (y parece que fué ayer) hoy dos acontecimientos harán que nunca me olvide de esta fecha.

En primer lugar <a href="http://bitacoras.com/noticias/archivos/ganadores-de-los-premios-bitacoras-com-2009.php"><strong>el Premio Bitacoras 2009 al mejor blog de software y seguridad</strong></a> que me habeis otorgado vosotros con vuestros votos y que recibo con mucho entusiasmo e ilusión. No tengo palabras para expresar lo agradecido que estoy y tan solo puedo prometer que esta alegría y satisfacción que siento ahora servirá como motor para mover esta máquina que entre todos hacemos día a día. No quiero olvidar a <a href="http://www.genbeta.com/">Genbeta</a> y <a href="http://www.xeduced.com/">Xeduced.com</a> que siempre me han servido de inspiración y que se merecen este premio tanto como yo.

En segundo segundo lugar, hoy <strong>ha nacido Marc, el primer hijo de mis mejores amigos</strong> y que hará que me acuerde cada día de lo especial que me sentí el día que él nació. Felicidades papis!!

En fin, solo tengo una palabra, sincera donde las haya, que de mis dedos puede salir:
<h1 style="text-align: center;">Gracias!</h1><h3>Artículos relacionados</h3>
<ul><li><a href="http://www.anieto2k.com/2006/09/11/manifestacion-contra-los-guardarrailes-4-de-noviembre-en-madrid/" rel="bookmark" title="Permanent Link: Manifestación contra los guardarraíles, 4 de Noviembre en Madrid">Manifestación contra los guardarraíles, 4 de Noviembre en Madrid</a></li><li><a href="http://www.anieto2k.com/2005/12/17/el-arte-es-un-arma-cargada-de-futuro/" rel="bookmark" title="Permanent Link: El arte es un arma cargada de futuro">El arte es un arma cargada de futuro</a></li><li><a href="http://www.anieto2k.com/2006/11/16/greybox-40-ha-visto-la-luz/" rel="bookmark" title="Permanent Link: GreyBox 4.0 ha visto la luz">GreyBox 4.0 ha visto la luz</a></li><li><a href="http://www.anieto2k.com/2009/04/21/ie6-update-la-forma-mas-sutil-de-sugerir-que-se-actualizen/" rel="bookmark" title="Permanent Link: IE6 Update, la forma más sutil de sugerir que se actualizen">IE6 Update, la forma más sutil de sugerir que se actualizen</a></li><li><a href="http://www.anieto2k.com/2009/10/15/diferencias-css-entre-internet-explorer-67-y-8/" rel="bookmark" title="Permanent Link: Diferencias CSS entre Internet Explorer 6,7 y 8">Diferencias CSS entre Internet Explorer 6,7 y 8</a></li></ul><p><a href="http://www.anieto2k.com" id="unknown"><img rel="unknown" src="http://www.anieto2k.com/favicon.ico" alt="aNieto2k" /></a></p><img src="http://feeds.feedburner.com/~r/anieto2k/Xzqf/~4/LrGuAZ0f504" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.anieto2k.com/2009/11/14/14-de-noviembre-del-2009-un-dia-para-recordar/feed/</wfw:commentRss>
		<slash:comments>33</slash:comments>
		<feedburner:origLink>http://www.anieto2k.com/2009/11/14/14-de-noviembre-del-2009-un-dia-para-recordar/</feedburner:origLink></item>
	</channel>
</rss>
