<?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>Aprendiz de Ilusiones</title>
	<atom:link href="http://www.aprendizdeilusiones.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.aprendizdeilusiones.com</link>
	<description></description>
	<lastBuildDate>Tue, 09 Mar 2010 13:36:02 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Como crear un widget en Wordpress con Widget API</title>
		<link>http://www.aprendizdeilusiones.com/2010/03/07/wordpress/como-crear-un-widget-en-wordpress-con-widget-api/</link>
		<comments>http://www.aprendizdeilusiones.com/2010/03/07/wordpress/como-crear-un-widget-en-wordpress-con-widget-api/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 18:45:29 +0000</pubDate>
		<dc:creator>Aprendiz de Ilusiones</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Plug-in]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[widget]]></category>

		<guid isPermaLink="false">http://www.aprendizdeilusiones.com/?p=35</guid>
		<description><![CDATA[Con la versión de Wordpress 2.8 se incorpora una API que facilita la tarea de crear un widget.
Con la intención de mostrar una imagen aleatoria en la barra lateral me dije voy a descargarme un widget que lo haga pero los que probé tenian alguna que otra pega y para no andar modificandolos dije: &#8220;Hagamos [...]]]></description>
			<content:encoded><![CDATA[<p>Con la versión de Wordpress 2.8 se incorpora una <a href="http://codex.wordpress.org/Widgets_API">API</a> que facilita la tarea de crear un widget.</p>
<p>Con la intención de mostrar una imagen aleatoria en la barra lateral me dije voy a descargarme un widget que lo haga pero los que probé tenian alguna que otra pega y para no andar modificandolos dije: &#8220;Hagamos uno&#8221; y eso haremos.</p>
<p>Lo que mostrare aquí como la intención básica es crear el widget en sí más que lo que muestre hagamos un simple Hola Mundo Widget.</p>
<p>No llevará mas de un archivo php y se podría crear un simple plugin formado por un solo archivo pero por si acaso en un futuro se añadiesen mas ficheros lo mejor sería crear un directorio con el nombre del plugin y dentro el fichero.</p>
<p>En nuestro caso llamamos al directorio y fichero <em>adi-hola-mundo-widget</em> (el nombre es lo de menos pongo adi delante para evitar que ningún otro plugin se llame así)</p>
<p>Y dentro del empezamos a escribir:</p>
<p>Primero añadimos la información de nuestro widget que sera la que se mostrara en el listado de widget de nuestro wordpress</p>
<div id="wpshdo_1" class="wp-synhighlighter-outer"><div id="wpshdt_1" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_1"></a><a id="wpshat_1" class="wp-synhighlighter-title" href="#codesyntax_1"  onClick="javascript:wpsh_toggleBlock(1)" title="Click to show/hide code block">Expandir/Contraer código</a></td><td align="right"><a href="#codesyntax_1" onClick="javascript:wpsh_code(1)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.aprendizdeilusiones.com/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_1" onClick="javascript:wpsh_print(1)" title="Print code"><img border="0" style="border: 0 none" src="http://www.aprendizdeilusiones.com/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="#codesyntax_1" onClick="javascript:wpsh_about(1)" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.aprendizdeilusiones.com/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_1" class="wp-synhighlighter-inner" style="display: block;"><pre class="php" style="font-family:monospace;"><span class="kw2">&lt;?php</span>
<span class="coMULTI">/*
 * Plugin Name: Hola Mundo Widget
 * Version: 1.0
 * Plugin URI: http://www.aprendizdeilusiones.com/2010/03/07/otros/como-crear-un-widget-en-wordpress-con-widget-api/
 * Description: Widget de ejemplo con la nueva API Widget
 * Author: Aprendiz de Ilusiones
 * Author URI: http://www.aprendizdeilusiones.com
 */</span>
<span class="sy1">?&gt;</span></pre></div></div>
<p><span id="more-35"></span></p>
<p>Ahora crearemos nuestro widget. Con la esta API podemos crear una clase que extienda de WP_Widget con tres funciones (constructor (que sera igual que el nombre de la clase), widget, update y form)<br />
<div id="wpshdo_2" class="wp-synhighlighter-outer"><div id="wpshdt_2" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_2"></a><a id="wpshat_2" class="wp-synhighlighter-title" href="#codesyntax_2"  onClick="javascript:wpsh_toggleBlock(2)" title="Click to show/hide code block">Expandir/Contraer código</a></td><td align="right"><a href="#codesyntax_2" onClick="javascript:wpsh_code(2)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.aprendizdeilusiones.com/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_2" onClick="javascript:wpsh_print(2)" title="Print code"><img border="0" style="border: 0 none" src="http://www.aprendizdeilusiones.com/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="#codesyntax_2" onClick="javascript:wpsh_about(2)" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.aprendizdeilusiones.com/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_2" class="wp-synhighlighter-inner" style="display: block;"><pre class="php" style="font-family:monospace;"><span class="kw2">&lt;?php</span>
<span class="kw2">class</span> AdiHolaMundoWidget <span class="kw2">extends</span> WP_Widget <span class="br0">&#123;</span>
	<span class="co1">//Constructor</span>
	<span class="kw2">function</span> AdiHolaMundoWidget <span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp;
	<span class="br0">&#125;</span>
	<span class="co1">//Como se mostrara el widget en la web</span>
	<span class="kw2">function</span> widget<span class="br0">&#40;</span><span class="re0">$args</span><span class="sy0">,</span> <span class="re0">$instance</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
	<span class="br0">&#125;</span>
	<span class="co1">//Función para guardar la configuración del widget en el panel de control</span>
	<span class="kw2">function</span> update<span class="br0">&#40;</span><span class="re0">$new_instance</span><span class="sy0">,</span> <span class="re0">$old_instance</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp;
	<span class="br0">&#125;</span>
	<span class="co1">//Muestra el formulario del widget en el panel de control</span>
	<span class="kw2">function</span> form<span class="br0">&#40;</span><span class="re0">$instance</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp;
	<span class="br0">&#125;</span>
<span class="br0">&#125;</span>
<span class="sy1">?&gt;</span></pre></div></div></p>
<p>Ahora veamos las funciones paso por paso.</p>
<div id="wpshdo_3" class="wp-synhighlighter-outer"><div id="wpshdt_3" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_3"></a><a id="wpshat_3" class="wp-synhighlighter-title" href="#codesyntax_3"  onClick="javascript:wpsh_toggleBlock(3)" title="Click to show/hide code block">Expandir/Contraer código</a></td><td align="right"><a href="#codesyntax_3" onClick="javascript:wpsh_code(3)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.aprendizdeilusiones.com/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_3" onClick="javascript:wpsh_print(3)" title="Print code"><img border="0" style="border: 0 none" src="http://www.aprendizdeilusiones.com/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="#codesyntax_3" onClick="javascript:wpsh_about(3)" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.aprendizdeilusiones.com/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_3" class="wp-synhighlighter-inner" style="display: block;"><pre class="php" style="font-family:monospace;"><span class="kw2">&lt;?php</span>
	<span class="kw2">function</span> AdiHolaMundoWidget<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
		<span class="co1">//Clase CSS que usara el widghet y la descripción que se mostrará en la selección de widget en el Panel de Control</span>
		<span class="re0">$widget_ops</span> <span class="sy0">=</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span> <span class="st_h">'classname'</span> <span class="sy0">=&gt;</span> <span class="st_h">'adiHolaMundo'</span><span class="sy0">,</span> <span class="st_h">'description'</span> <span class="sy0">=&gt;</span> __<span class="br0">&#40;</span><span class="st_h">'Widget de ejemplo'</span><span class="br0">&#41;</span> <span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
		<span class="co1">//Configuración del widget en el panel de control.</span>
		<span class="re0">$control_ops</span> <span class="sy0">=</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span> <span class="st_h">'width'</span> <span class="sy0">=&gt;</span> <span class="nu0">200</span><span class="sy0">,</span> <span class="st_h">'height'</span> <span class="sy0">=&gt;</span> 350<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
		<span class="co1">// Creamos el widget. El idbase que se usa en el formulario de configuración, Titulo del Widget en el panel de control,</span>
		<span class="co1">// y las opciones del widget y en control</span>
		<span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">WP_Widget</span><span class="br0">&#40;</span> <span class="st_h">'idAdiHolaMundoWidget'</span><span class="sy0">,</span> __<span class="br0">&#40;</span><span class="st_h">'Adi Hola Mundo Widget'</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="re0">$widget_ops</span><span class="sy0">,</span> <span class="re0">$control_ops</span> <span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="br0">&#125;</span>
<span class="sy1">?&gt;</span></pre></div></div>
<p>El detalle a tener en cuenta como ya he dicho antes es que el constructor tenga el mismo nombre de la clase (como en casi cualquier lenguaje de programación), lo demás tampoco hay que darle mucha mas vuelta&#8230;. Copiar, Pegar y Editar con lo que se quiera <img src='http://www.aprendizdeilusiones.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<div id="wpshdo_4" class="wp-synhighlighter-outer"><div id="wpshdt_4" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_4"></a><a id="wpshat_4" class="wp-synhighlighter-title" href="#codesyntax_4"  onClick="javascript:wpsh_toggleBlock(4)" title="Click to show/hide code block">Expandir/Contraer código</a></td><td align="right"><a href="#codesyntax_4" onClick="javascript:wpsh_code(4)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.aprendizdeilusiones.com/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_4" onClick="javascript:wpsh_print(4)" title="Print code"><img border="0" style="border: 0 none" src="http://www.aprendizdeilusiones.com/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="#codesyntax_4" onClick="javascript:wpsh_about(4)" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.aprendizdeilusiones.com/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_4" class="wp-synhighlighter-inner" style="display: block;"><pre class="php" style="font-family:monospace;"><span class="kw2">&lt;?php</span>
	<span class="co4">/**
	 * Como se mostrara el widget en la web
	 */</span>
	<span class="kw2">function</span> widget<span class="br0">&#40;</span> <span class="re0">$args</span><span class="sy0">,</span> <span class="re0">$instance</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span>
		<a href="http://www.php.net/extract"><span class="kw3">extract</span></a><span class="br0">&#40;</span> <span class="re0">$args</span> <span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
		<span class="re0">$title</span> <span class="sy0">=</span> apply_filters<span class="br0">&#40;</span><span class="st_h">'widget_title'</span><span class="sy0">,</span> <span class="re0">$instance</span><span class="br0">&#91;</span><span class="st_h">'title'</span><span class="br0">&#93;</span> <span class="br0">&#41;</span><span class="sy0">;</span>
		<span class="re0">$nombre</span><span class="sy0">=</span> <span class="re0">$instance</span><span class="br0">&#91;</span><span class="st_h">'nombre'</span><span class="br0">&#93;</span><span class="sy0">;</span>
&nbsp;
		<span class="kw1">echo</span> <span class="re0">$before_widget</span><span class="sy0">;</span>
&nbsp;
		<span class="coMULTI">/* Nuestro widget */</span>
		<span class="kw1">if</span> <span class="br0">&#40;</span> <span class="re0">$title</span> <span class="br0">&#41;</span>
			<span class="kw1">echo</span> <span class="re0">$before_title</span> <span class="sy0">.</span> <span class="re0">$title</span> <span class="sy0">.</span> <span class="re0">$after_title</span><span class="sy0">;</span>
&nbsp;
		<span class="kw1">echo</span> <span class="st0">&quot;Hola Mundo soy &quot;</span><span class="sy0">.</span><span class="re0">$nombre</span><span class="sy0">;</span>
&nbsp;
		<span class="kw1">echo</span> <span class="re0">$after_widget</span><span class="sy0">;</span>
	<span class="br0">&#125;</span>
<span class="sy1">?&gt;</span></pre></div></div>
<p>Con esta función configuramos el widget como aparecerá en la barra de widget de la página web.  Las opciones <em>$before_widget</em>,<em>$after_widget</em>,<em>$before_title</em> y <em>$after_title</em> son valores que se configuran el theme cuando registras las sidebar. (Siempre las he visto en el fichero <em>functions.php</em>)</p>
<div id="wpshdo_5" class="wp-synhighlighter-outer"><div id="wpshdt_5" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_5"></a><a id="wpshat_5" class="wp-synhighlighter-title" href="#codesyntax_5"  onClick="javascript:wpsh_toggleBlock(5)" title="Click to show/hide code block">Expandir/Contraer código</a></td><td align="right"><a href="#codesyntax_5" onClick="javascript:wpsh_code(5)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.aprendizdeilusiones.com/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_5" onClick="javascript:wpsh_print(5)" title="Print code"><img border="0" style="border: 0 none" src="http://www.aprendizdeilusiones.com/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="#codesyntax_5" onClick="javascript:wpsh_about(5)" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.aprendizdeilusiones.com/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_5" class="wp-synhighlighter-inner" style="display: block;"><pre class="php" style="font-family:monospace;"><span class="kw2">&lt;?php</span>
	 <span class="co4">/**
	 * Funcion para guardar la configuración del widget en el panel de control
	 */</span>
	<span class="kw2">function</span> update<span class="br0">&#40;</span> <span class="re0">$new_instance</span><span class="sy0">,</span> <span class="re0">$old_instance</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span>
		<span class="re0">$instance</span> <span class="sy0">=</span> <span class="re0">$old_instance</span><span class="sy0">;</span>
&nbsp;
		<span class="co1">//Usar strip_tags y stripslases para controlar el texto insertado en los campos de texto</span>
		<span class="re0">$instance</span><span class="br0">&#91;</span><span class="st_h">'title'</span><span class="br0">&#93;</span> <span class="sy0">=</span> <a href="http://www.php.net/strip_tags"><span class="kw3">strip_tags</span></a><span class="br0">&#40;</span> <a href="http://www.php.net/stripslashes"><span class="kw3">stripslashes</span></a><span class="br0">&#40;</span><span class="re0">$new_instance</span><span class="br0">&#91;</span><span class="st_h">'title'</span><span class="br0">&#93;</span> <span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
		<span class="re0">$instance</span><span class="br0">&#91;</span><span class="st_h">'nombre'</span><span class="br0">&#93;</span> <span class="sy0">=</span> <a href="http://www.php.net/strip_tags"><span class="kw3">strip_tags</span></a><span class="br0">&#40;</span> <a href="http://www.php.net/stripslashes"><span class="kw3">stripslashes</span></a><span class="br0">&#40;</span><span class="re0">$new_instance</span><span class="br0">&#91;</span><span class="st_h">'nombre'</span><span class="br0">&#93;</span> <span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
		<span class="kw1">return</span> <span class="re0">$instance</span><span class="sy0">;</span>
	<span class="br0">&#125;</span>
<span class="sy1">?&gt;</span></pre></div></div>
<p>Una función muy sencillita que lo unico que tenemos que hacer es actualizar los nuevos valores de la configuración. Aquí es donde tenemos que comprobar que los datos introducidos sean los correctos. Si pide un valor que el usuario no introduzca un texto&#8230; esos fallos que nunca se comprobaban en programación y la profesora te echaba bronca y tu decías.</p>
<p>&#8220;Pero profe no creo que el usuario sea tan estúpido, si pone introduce un número y pulsa una letra&#8230; ajo y agua.&#8221; Pero no, no colaba <img src='http://www.aprendizdeilusiones.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<div id="wpshdo_6" class="wp-synhighlighter-outer"><div id="wpshdt_6" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_6"></a><a id="wpshat_6" class="wp-synhighlighter-title" href="#codesyntax_6"  onClick="javascript:wpsh_toggleBlock(6)" title="Click to show/hide code block">Expandir/Contraer código</a></td><td align="right"><a href="#codesyntax_6" onClick="javascript:wpsh_code(6)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.aprendizdeilusiones.com/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_6" onClick="javascript:wpsh_print(6)" title="Print code"><img border="0" style="border: 0 none" src="http://www.aprendizdeilusiones.com/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="#codesyntax_6" onClick="javascript:wpsh_about(6)" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.aprendizdeilusiones.com/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_6" class="wp-synhighlighter-inner" style="display: block;"><pre class="php" style="font-family:monospace;"><span class="kw2">&lt;?php</span>
	<span class="co4">/**
	 * Muestra el formulario del widget en el panel de control
	 */</span>
	<span class="kw2">function</span> form<span class="br0">&#40;</span> <span class="re0">$instance</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp;
		<span class="co1">//Establecemos algunos datos por defecto</span>
		<span class="re0">$defaults</span> <span class="sy0">=</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span> <span class="st_h">'title'</span> <span class="sy0">=&gt;</span> __<span class="br0">&#40;</span><span class="st_h">'Ejemplo del Hola Mundo'</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="st_h">'nombre'</span> <span class="sy0">=&gt;</span> __<span class="br0">&#40;</span><span class="st_h">'Aprendiz'</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
		<span class="re0">$instance</span> <span class="sy0">=</span> wp_parse_args<span class="br0">&#40;</span> <span class="br0">&#40;</span><a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#41;</span> <span class="re0">$instance</span><span class="sy0">,</span> <span class="re0">$defaults</span> <span class="br0">&#41;</span><span class="sy0">;</span>
<span class="sy1">?&gt;</span>
&nbsp;
		&lt;p&gt;
			&lt;label for=&quot;<span class="kw2">&lt;?php</span> <span class="kw1">echo</span> <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">get_field_id</span><span class="br0">&#40;</span> <span class="st_h">'title'</span> <span class="br0">&#41;</span><span class="sy0">;</span> <span class="sy1">?&gt;</span>&quot;&gt;<span class="kw2">&lt;?php</span> _e<span class="br0">&#40;</span><span class="st_h">'Titulo:'</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="sy1">?&gt;</span>&lt;/label&gt;
			&lt;input id=&quot;<span class="kw2">&lt;?php</span> <span class="kw1">echo</span> <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">get_field_id</span><span class="br0">&#40;</span> <span class="st_h">'title'</span> <span class="br0">&#41;</span><span class="sy0">;</span> <span class="sy1">?&gt;</span>&quot; name=&quot;<span class="kw2">&lt;?php</span> <span class="kw1">echo</span> <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">get_field_name</span><span class="br0">&#40;</span> <span class="st_h">'title'</span> <span class="br0">&#41;</span><span class="sy0">;</span> <span class="sy1">?&gt;</span>&quot; value=&quot;<span class="kw2">&lt;?php</span> <span class="kw1">echo</span> <span class="re0">$instance</span><span class="br0">&#91;</span><span class="st_h">'title'</span><span class="br0">&#93;</span><span class="sy0">;</span> <span class="sy1">?&gt;</span>&quot; style=&quot;width:100%;&quot; /&gt;
		&lt;/p&gt;
		&lt;p&gt;
			&lt;label for=&quot;<span class="kw2">&lt;?php</span> <span class="kw1">echo</span> <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">get_field_id</span><span class="br0">&#40;</span> <span class="st_h">'nombre'</span> <span class="br0">&#41;</span><span class="sy0">;</span> <span class="sy1">?&gt;</span>&quot;&gt;<span class="kw2">&lt;?php</span> _e<span class="br0">&#40;</span><span class="st_h">'nombre:'</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="sy1">?&gt;</span>&lt;/label&gt;
			&lt;input id=&quot;<span class="kw2">&lt;?php</span> <span class="kw1">echo</span> <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">get_field_id</span><span class="br0">&#40;</span> <span class="st_h">'nombre'</span> <span class="br0">&#41;</span><span class="sy0">;</span> <span class="sy1">?&gt;</span>&quot; name=&quot;<span class="kw2">&lt;?php</span> <span class="kw1">echo</span> <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">get_field_name</span><span class="br0">&#40;</span> <span class="st_h">'nombre'</span> <span class="br0">&#41;</span><span class="sy0">;</span> <span class="sy1">?&gt;</span>&quot; value=&quot;<span class="kw2">&lt;?php</span> <span class="kw1">echo</span> <span class="re0">$instance</span><span class="br0">&#91;</span><span class="st_h">'nombre'</span><span class="br0">&#93;</span><span class="sy0">;</span> <span class="sy1">?&gt;</span>&quot; style=&quot;width:100%;&quot; /&gt;
		&lt;/p&gt;
	<span class="kw2">&lt;?php</span>
	<span class="br0">&#125;</span>
<span class="sy1">?&gt;</span></pre></div></div><br />
Y el método que faltaba, que sirve para mostrar la configuración del widget en el panel de control.</p>
<p>Primero creamos los valores por defecto y los inicializamos en la instancia y luego el formulario con las etiquetas y campos que queramos sin preocuparnos por los botones de guardar ni borrar. Para las id y nombres del campo mejor usar las nuevas funciones <em>get_field_id()</em> y <em>get_field_name()</em>.</p>
<p>Finalmente debemos decirle a Wordpress que registre nuestro widget cuando inicialice los widget.</p>
<p><div id="wpshdo_7" class="wp-synhighlighter-outer"><div id="wpshdt_7" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_7"></a><a id="wpshat_7" class="wp-synhighlighter-title" href="#codesyntax_7"  onClick="javascript:wpsh_toggleBlock(7)" title="Click to show/hide code block">Expandir/Contraer código</a></td><td align="right"><a href="#codesyntax_7" onClick="javascript:wpsh_code(7)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.aprendizdeilusiones.com/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_7" onClick="javascript:wpsh_print(7)" title="Print code"><img border="0" style="border: 0 none" src="http://www.aprendizdeilusiones.com/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="#codesyntax_7" onClick="javascript:wpsh_about(7)" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.aprendizdeilusiones.com/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_7" class="wp-synhighlighter-inner" style="display: block;"><pre class="php" style="font-family:monospace;"><span class="kw2">&lt;?php</span>
add_action<span class="br0">&#40;</span> <span class="st_h">'widgets_init'</span><span class="sy0">,</span> <span class="st_h">'adiHolaMundoWidget_load'</span> <span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<span class="kw2">function</span> adiHolaMundoWidget_load<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
	register_widget<span class="br0">&#40;</span> <span class="st_h">'AdiHolaMundoWidget'</span> <span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
<span class="sy1">?&gt;</span></pre></div></div><br />
Cuando wordpress inicialice los widgets con <em>widgets_ini</em> llamara a nuestra función y con <em>register_widget</em> registrará el nuestro</p>
<p>El código completo:</p>
<p><div id="wpshdo_8" class="wp-synhighlighter-outer"><div id="wpshdt_8" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_8"></a><a id="wpshat_8" class="wp-synhighlighter-title" href="#codesyntax_8"  onClick="javascript:wpsh_toggleBlock(8)" title="Click to show/hide code block">Expandir/Contraer código</a></td><td align="right"><a href="#codesyntax_8" onClick="javascript:wpsh_code(8)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.aprendizdeilusiones.com/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_8" onClick="javascript:wpsh_print(8)" title="Print code"><img border="0" style="border: 0 none" src="http://www.aprendizdeilusiones.com/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="#codesyntax_8" onClick="javascript:wpsh_about(8)" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.aprendizdeilusiones.com/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_8" class="wp-synhighlighter-inner" style="display: block;"><pre class="php" style="font-family:monospace;"><ol><li class="li1"><div class="de1"><span class="kw2">&lt;?php</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">/*</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;* Plugin Name: Adi Hola Mundo Widget</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;* Version: 1.0</span></div></li><li class="li2"><div class="de2"><span class="coMULTI">&nbsp;* Plugin URI: http://www.aprendizdeilusiones.com/2010/03/07/otros/como-crear-un-widget-en-wordpress-con-widget-api/</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;* Description: Widget de ejemplo con la nueva API Widget</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;* Author: Aprendiz de Ilusiones</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;* Author URI: http://www.aprendizdeilusiones.com</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;*/</span></div></li><li class="li2"><div class="de2"><span class="sy1">?&gt;</span></div></li><li class="li1"><div class="de1"><span class="kw2">&lt;?php</span></div></li><li class="li1"><div class="de1"><span class="kw2">class</span> AdiHolaMundoWidget <span class="kw2">extends</span> WP_Widget <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">	<span class="kw2">function</span> AdiHolaMundoWidget<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li2"><div class="de2">		<span class="co1">//Clase CSS que usara el widghet y la descripción que se mostrará en la selección de widget en el Panel de Control</span></div></li><li class="li1"><div class="de1">		<span class="re0">$widget_ops</span> <span class="sy0">=</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span> <span class="st_h">'classname'</span> <span class="sy0">=&gt;</span> <span class="st_h">'adiHolaMundo'</span><span class="sy0">,</span> <span class="st_h">'description'</span> <span class="sy0">=&gt;</span> __<span class="br0">&#40;</span><span class="st_h">'Widget de ejemplo'</span><span class="br0">&#41;</span> <span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">		<span class="co1">//Configuración del widget en el panel de control.</span></div></li><li class="li1"><div class="de1">		<span class="re0">$control_ops</span> <span class="sy0">=</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span> <span class="st_h">'width'</span> <span class="sy0">=&gt;</span> <span class="nu0">200</span><span class="sy0">,</span> <span class="st_h">'height'</span> <span class="sy0">=&gt;</span> 350<span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1">		<span class="co1">// Creamos el widget. El idbase que se usa en el formulario de configuración, Titulo del Widget en el panel de control,</span></div></li><li class="li1"><div class="de1">		<span class="co1">// y las opciones del widget y en control</span></div></li><li class="li1"><div class="de1">		<span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">WP_Widget</span><span class="br0">&#40;</span> <span class="st_h">'idAdiHolaMundoWidget'</span><span class="sy0">,</span> __<span class="br0">&#40;</span><span class="st_h">'Adi Hola Mundo Widget'</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="re0">$widget_ops</span><span class="sy0">,</span> <span class="re0">$control_ops</span> <span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">	<span class="br0">&#125;</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1">	<span class="co4">/**</span></div></li><li class="li1"><div class="de1"><span class="co4">	 * Como se mostrara el widget en la web</span></div></li><li class="li1"><div class="de1"><span class="co4">	 */</span></div></li><li class="li1"><div class="de1">	<span class="kw2">function</span> widget<span class="br0">&#40;</span> <span class="re0">$args</span><span class="sy0">,</span> <span class="re0">$instance</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li2"><div class="de2">		<a href="http://www.php.net/extract"><span class="kw3">extract</span></a><span class="br0">&#40;</span> <span class="re0">$args</span> <span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">		<span class="re0">$title</span> <span class="sy0">=</span> apply_filters<span class="br0">&#40;</span><span class="st_h">'widget_title'</span><span class="sy0">,</span> <span class="re0">$instance</span><span class="br0">&#91;</span><span class="st_h">'title'</span><span class="br0">&#93;</span> <span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">		<span class="re0">$nombre</span><span class="sy0">=</span> <span class="re0">$instance</span><span class="br0">&#91;</span><span class="st_h">'nombre'</span><span class="br0">&#93;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2">		<span class="kw1">echo</span> <span class="re0">$before_widget</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">		<span class="coMULTI">/* Nuestro widget */</span></div></li><li class="li1"><div class="de1">		<span class="kw1">if</span> <span class="br0">&#40;</span> <span class="re0">$title</span> <span class="br0">&#41;</span></div></li><li class="li1"><div class="de1">			<span class="kw1">echo</span> <span class="re0">$before_title</span> <span class="sy0">.</span> <span class="re0">$title</span> <span class="sy0">.</span> <span class="re0">$after_title</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1">		<span class="kw1">echo</span> <span class="st0">&quot;Hola Mundo soy &quot;</span><span class="sy0">.</span><span class="re0">$nombre</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">		<span class="kw1">echo</span> <span class="re0">$after_widget</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">	<span class="br0">&#125;</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1">	 <span class="co4">/**</span></div></li><li class="li1"><div class="de1"><span class="co4">	 * Funcion para guardar la configuración del widget en el panel de control</span></div></li><li class="li1"><div class="de1"><span class="co4">	 */</span></div></li><li class="li1"><div class="de1">	<span class="kw2">function</span> update<span class="br0">&#40;</span> <span class="re0">$new_instance</span><span class="sy0">,</span> <span class="re0">$old_instance</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li2"><div class="de2">		<span class="re0">$instance</span> <span class="sy0">=</span> <span class="re0">$old_instance</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">		<span class="co1">//Usar strip_tags y stripslases para controlar el texto insertado en los campos de texto</span></div></li><li class="li1"><div class="de1">		<span class="re0">$instance</span><span class="br0">&#91;</span><span class="st_h">'title'</span><span class="br0">&#93;</span> <span class="sy0">=</span> <a href="http://www.php.net/strip_tags"><span class="kw3">strip_tags</span></a><span class="br0">&#40;</span> <a href="http://www.php.net/stripslashes"><span class="kw3">stripslashes</span></a><span class="br0">&#40;</span><span class="re0">$new_instance</span><span class="br0">&#91;</span><span class="st_h">'title'</span><span class="br0">&#93;</span> <span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">		<span class="re0">$instance</span><span class="br0">&#91;</span><span class="st_h">'nombre'</span><span class="br0">&#93;</span> <span class="sy0">=</span> <a href="http://www.php.net/strip_tags"><span class="kw3">strip_tags</span></a><span class="br0">&#40;</span> <a href="http://www.php.net/stripslashes"><span class="kw3">stripslashes</span></a><span class="br0">&#40;</span><span class="re0">$new_instance</span><span class="br0">&#91;</span><span class="st_h">'nombre'</span><span class="br0">&#93;</span> <span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1">		<span class="kw1">return</span> <span class="re0">$instance</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">	<span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">	<span class="co4">/**</span></div></li><li class="li2"><div class="de2"><span class="co4">	 * Muestra el formulario del widget en el panel de control</span></div></li><li class="li1"><div class="de1"><span class="co4">	 */</span></div></li><li class="li1"><div class="de1">	<span class="kw2">function</span> form<span class="br0">&#40;</span> <span class="re0">$instance</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">		<span class="co1">//Establecemos algunos datos por defecto</span></div></li><li class="li2"><div class="de2">		<span class="re0">$defaults</span> <span class="sy0">=</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span> <span class="st_h">'title'</span> <span class="sy0">=&gt;</span> __<span class="br0">&#40;</span><span class="st_h">'Ejemplo del Hola Mundo'</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="st_h">'nombre'</span> <span class="sy0">=&gt;</span> __<span class="br0">&#40;</span><span class="st_h">'Aprendiz'</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">		<span class="re0">$instance</span> <span class="sy0">=</span> wp_parse_args<span class="br0">&#40;</span> <span class="br0">&#40;</span><a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#41;</span> <span class="re0">$instance</span><span class="sy0">,</span> <span class="re0">$defaults</span> <span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1"><span class="sy1">?&gt;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">		&lt;p&gt;</div></li><li class="li2"><div class="de2">			&lt;label for=&quot;<span class="kw2">&lt;?php</span> <span class="kw1">echo</span> <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">get_field_id</span><span class="br0">&#40;</span> <span class="st_h">'title'</span> <span class="br0">&#41;</span><span class="sy0">;</span> <span class="sy1">?&gt;</span>&quot;&gt;<span class="kw2">&lt;?php</span> _e<span class="br0">&#40;</span><span class="st_h">'Titulo:'</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="sy1">?&gt;</span>&lt;/label&gt;</div></li><li class="li1"><div class="de1">			&lt;input id=&quot;<span class="kw2">&lt;?php</span> <span class="kw1">echo</span> <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">get_field_id</span><span class="br0">&#40;</span> <span class="st_h">'title'</span> <span class="br0">&#41;</span><span class="sy0">;</span> <span class="sy1">?&gt;</span>&quot; name=&quot;<span class="kw2">&lt;?php</span> <span class="kw1">echo</span> <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">get_field_name</span><span class="br0">&#40;</span> <span class="st_h">'title'</span> <span class="br0">&#41;</span><span class="sy0">;</span> <span class="sy1">?&gt;</span>&quot; value=&quot;<span class="kw2">&lt;?php</span> <span class="kw1">echo</span> <span class="re0">$instance</span><span class="br0">&#91;</span><span class="st_h">'title'</span><span class="br0">&#93;</span><span class="sy0">;</span> <span class="sy1">?&gt;</span>&quot; style=&quot;width:100%;&quot; /&gt;</div></li><li class="li1"><div class="de1">		&lt;/p&gt;</div></li><li class="li1"><div class="de1">		&lt;p&gt;</div></li><li class="li1"><div class="de1">			&lt;label for=&quot;<span class="kw2">&lt;?php</span> <span class="kw1">echo</span> <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">get_field_id</span><span class="br0">&#40;</span> <span class="st_h">'nombre'</span> <span class="br0">&#41;</span><span class="sy0">;</span> <span class="sy1">?&gt;</span>&quot;&gt;<span class="kw2">&lt;?php</span> _e<span class="br0">&#40;</span><span class="st_h">'Nombre:'</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="sy1">?&gt;</span>&lt;/label&gt;</div></li><li class="li2"><div class="de2">			&lt;input id=&quot;<span class="kw2">&lt;?php</span> <span class="kw1">echo</span> <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">get_field_id</span><span class="br0">&#40;</span> <span class="st_h">'nombre'</span> <span class="br0">&#41;</span><span class="sy0">;</span> <span class="sy1">?&gt;</span>&quot; name=&quot;<span class="kw2">&lt;?php</span> <span class="kw1">echo</span> <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">get_field_name</span><span class="br0">&#40;</span> <span class="st_h">'nombre'</span> <span class="br0">&#41;</span><span class="sy0">;</span> <span class="sy1">?&gt;</span>&quot; value=&quot;<span class="kw2">&lt;?php</span> <span class="kw1">echo</span> <span class="re0">$instance</span><span class="br0">&#91;</span><span class="st_h">'nombre'</span><span class="br0">&#93;</span><span class="sy0">;</span> <span class="sy1">?&gt;</span>&quot; style=&quot;width:100%;&quot; /&gt;</div></li><li class="li1"><div class="de1">		&lt;/p&gt;</div></li><li class="li1"><div class="de1">	<span class="kw2">&lt;?php</span></div></li><li class="li1"><div class="de1">	<span class="br0">&#125;</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li><li class="li2"><div class="de2">add_action<span class="br0">&#40;</span> <span class="st_h">'widgets_init'</span><span class="sy0">,</span> <span class="st_h">'adiHolaMundoWidget_load'</span> <span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1"><span class="kw2">function</span> adiHolaMundoWidget_load<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">	register_widget<span class="br0">&#40;</span> <span class="st_h">'AdiHolaMundoWidget'</span> <span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li><li class="li2"><div class="de2"><span class="sy1">?&gt;</span></div></li></ol></pre></div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.aprendizdeilusiones.com/2010/03/07/wordpress/como-crear-un-widget-en-wordpress-con-widget-api/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Unity3D</title>
		<link>http://www.aprendizdeilusiones.com/2010/03/06/unity/unity3d/</link>
		<comments>http://www.aprendizdeilusiones.com/2010/03/06/unity/unity3d/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 13:56:38 +0000</pubDate>
		<dc:creator>Aprendiz de Ilusiones</dc:creator>
				<category><![CDATA[Unity]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[videojuegos]]></category>

		<guid isPermaLink="false">http://www.aprendizdeilusiones.com/?p=22</guid>
		<description><![CDATA[Hace un mes me hablaron de esta herramienta, bueno miento, me hablaron hace ya hace un tiempecillo pero por falta de tiempo lo dejé ignorado, pero entonces me enseñaron un videojuego que habían realizado para un trabajo de clase y la verdad que me volvió el gusanillo de intentar hacer videojuegos. Antes ya lo había [...]]]></description>
			<content:encoded><![CDATA[<p>Hace un mes me hablaron de esta herramienta, bueno miento, me hablaron hace ya hace un tiempecillo pero por falta de tiempo lo dejé ignorado, pero entonces me enseñaron un videojuego que habían realizado para un trabajo de clase y la verdad que me volvió el gusanillo de intentar hacer videojuegos. Antes ya lo había intentado en flash, pero al final como todo por falta de tiempo&#8230;. esperemos conseguir esta vez algo fructífero, la programación no sera problema (espero) pero el modelado y demás&#8230;</p>
<p><a href="http://unity3d.com/">Unity3D</a> es una herramienta de desarrollo de videojuegos tanto 3d como 2d que en un principio fue realizada para MAC pero hace un año la implementaron también para Windows, puedes hacer juegos para MAC, para PC, para poder jugar en una web como se harían en flash (evidentemente hay que descargar un pequeño plug-in), para el iphone e incluso para la Wii  y lo mejor es que desde hace unos meses es <strong>gratis</strong>, bueno la versión básica pero se puede hacer casi de todo, tiene algunas <a href="http://unity3d.com/unity/licenses">limitaciones</a>, como no se pueden poner reflejos (espejos, agua..) no hay se permiten sobras tiempo real, si haces un juego web saldrá un pequeño logotipo los primeros segundos y no puedes ganar con estos juegos un dinero superior a 100.000$ al año&#8230; que bueno&#8230; si ganas 100.000$ te puedes permitir el lujo de pagar 2000$ por la versión PRO. Bueno y para programar para el Iphone también hay que comprar una versión especial y en la wii primero tienes que ser desarrollador certificado.</p>
<p>Si queréis ver ejemplos podéis encontrarlos en <a href="http://unity3d.com/gallery/live-demos/">http://unity3d.com/gallery/live-demos/</a></p>
<p>Dentro puedes ver el ejemplo del proyecto que viene por defecto en Unity. Una Isla paradisiaca donde puedes moverte con el teclado y el ratón como cualquier FPS.</p>
<p><span id="more-22"></span></p>
<p><em>Please view the full post to see the Unity content.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.aprendizdeilusiones.com/2010/03/06/unity/unity3d/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Comenzamos (Otra vez)</title>
		<link>http://www.aprendizdeilusiones.com/2010/03/02/otros/comenzamos-otra-vez/</link>
		<comments>http://www.aprendizdeilusiones.com/2010/03/02/otros/comenzamos-otra-vez/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 22:07:06 +0000</pubDate>
		<dc:creator>Aprendiz de Ilusiones</dc:creator>
				<category><![CDATA[Otros]]></category>

		<guid isPermaLink="false">http://www.aprendizdeilusiones.com/?p=1</guid>
		<description><![CDATA[Debe ser la tercera o cuarta vez que intento empezar este blog y siendo realista no creo que sea la última aunque intentaré que no sea así.
Ilusión (segun la RAE)
(Del lat. illusĭo, -ōnis).
1. f. Concepto, imagen o representación sin verdadera realidad, sugeridos por la imaginación o causados por engaño de los sentidos.
2. f. Esperanza cuyo [...]]]></description>
			<content:encoded><![CDATA[<p>Debe ser la tercera o cuarta vez que intento empezar este blog y siendo realista no creo que sea la última aunque intentaré que no sea así.</p>
<p><a href="http://buscon.rae.es/draeI/SrvltConsulta?TIPO_BUS=3&#038;LEMA=ilusión">Ilusión (segun la RAE)</a><br />
(Del lat. illusĭo, -ōnis).<br />
1. f. Concepto, imagen o representación sin verdadera realidad, sugeridos por la imaginación o causados por engaño de los sentidos.<br />
2. f. Esperanza cuyo cumplimiento parece especialmente atractivo.<br />
3. f. Viva complacencia en una persona, una cosa, una tarea, etc.<br />
4. f. Ret. Ironía viva y picante.</p>
<p>Todos en esta vida tenemos algún tipo de ilusiones y hay que tener una cosa en cuenta&#8230; </p>
<p><strong>No hay nada imposible, tan solo improbable</strong></p>
<p>Suerte y bienvenido</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aprendizdeilusiones.com/2010/03/02/otros/comenzamos-otra-vez/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

