<?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>ZonaW &#187; APIs Web</title>
	<atom:link href="http://www.zonaw.com/apis-web/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.zonaw.com</link>
	<description>Información práctica, consejos y recursos de interés para webmasters, desarrolladores y diseñadores web de todos los niveles.</description>
	<lastBuildDate>Mon, 14 May 2012 08:54:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Speech Javascript API</title>
		<link>http://www.zonaw.com/speech-javascript-api/</link>
		<comments>http://www.zonaw.com/speech-javascript-api/#comments</comments>
		<pubDate>Fri, 02 Mar 2012 16:15:00 +0000</pubDate>
		<dc:creator>ZonaW</dc:creator>
				<category><![CDATA[APIs Web]]></category>
		<category><![CDATA[Scripts Javascript]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[w3c]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.zonaw.com/?p=1824</guid>
		<description><![CDATA[Desde la página de W3C publican un borrador llevado a cabo por el equipo de Google, con especificacione para dotar de voz y hacer que nuestras páginas &#8220;nos entiendan&#8221;. Con esto se intenta conseguir poder hablar con las páginas web y que estas nos respondan, muy al estilo del modelo Siri para iPhone. &#160; Esta [...]]]></description>
			<content:encoded><![CDATA[<p>Desde la página de <strong>W3C</strong> publican un <em><a href="http://lists.w3.org/Archives/Public/public-webapps/2011OctDec/att-1696/speechapi.html">borrador</a></em> llevado a cabo por el equipo de Google, con especificacione para <strong>dotar de voz</strong> y hacer que nuestras páginas &#8220;nos entiendan&#8221;. Con esto se intenta conseguir <em>poder hablar con las páginas web y que estas nos respondan</em>, muy al estilo del modelo Siri para iPhone.</p>
<p>&nbsp;</p>
<p><a href="http://www.zonaw.com/wp-content/uploads/2012/03/Speech-JavaScript-API.png"><img class="aligncenter size-full wp-image-1827" title="Speech-JavaScript-API" src="http://www.zonaw.com/wp-content/uploads/2012/03/Speech-JavaScript-API.png" alt="Speech-JavaScript-API" width="389" height="153" /></a></p>
<p>Esta <strong>API</strong> consta de 2 interfaces:</p>
<ul>
<li><strong>SpeechReco()</strong>, permite grabar la voz del usuario directamente desde el navegador.</li>
<li><strong>TTS()</strong>, permite convertir texto en voz directamente.</li>
</ul>
<p>La siguiente es una <em><a href="http://www.anieto2k.com/2012/01/08/speech-javascript-api-habla-con-las-paginas-web/">muestra</a></em> de cómo se podrian adaptar nuestro site a estas tecnologías:</p>
<p>&nbsp;</p>
<h2>SpeechReco</h2>
<blockquote>
<pre>&lt;script type="text/javascript"&gt;
	var sr = new SpeechReco(); // Nuevo interface
	sr.onresult = function(event) {
	  var q = document.getElementById("q");
	  q.value = event.result[0].transcript;
// Devolvemos la transcripción del mensaje
	  q.form.submit();
	}
  &lt;/script&gt;
  &lt;form action="http://www.example.com/search"&gt;
  &lt;input type="search" id="q" name="q"/&gt;
  &lt;input type="button" value="Speak" onclick="sr.start()"/&gt;
// Iniciamos la grabación
  &lt;/form&gt;</pre>
</blockquote>
<h2> TTS</h2>
<blockquote>
<pre>&lt;script type="text/javascript"&gt;
	 var tts = new TTS(); //Nuevo interface
	 function speak(text, lang) {
		tts.text = text; // Indicamos el texto
		tts.lang = lang; // Indicamos el idioma
		tts.play(); // Hacemos hablar a nuestro navegador
	 }
	 speak("Hello world.", "en-US"); // Hola mundo
  &lt;/script&gt;</pre>
</blockquote>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zonaw.com/speech-javascript-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cómo detectar el país de nuestras visitas</title>
		<link>http://www.zonaw.com/detectar-pais-visitas/</link>
		<comments>http://www.zonaw.com/detectar-pais-visitas/#comments</comments>
		<pubDate>Tue, 13 Dec 2011 09:15:49 +0000</pubDate>
		<dc:creator>ZonaW</dc:creator>
				<category><![CDATA[APIs Web]]></category>
		<category><![CDATA[Programación Web]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[json]]></category>

		<guid isPermaLink="false">/?p=1549</guid>
		<description><![CDATA[Existe una gran cantidad de opciones que podemos utilizar para detectar el país de nuestros visitantes o usuarios. Una forma de conseguirlo (sin necesidad de utilizar PHP) es averiguar su dirección IP utilizando la API de wipmania por medio de jQuery. Podemos consultar los datos que obtendremos introduciendo la siguiente URL directamente en el navegador [...]]]></description>
			<content:encoded><![CDATA[<p>Existe una gran cantidad de opciones que podemos utilizar para <strong>detectar el país de nuestros visitantes o usuarios</strong>. Una forma de conseguirlo (sin necesidad de utilizar PHP) es averiguar su dirección IP utilizando la API de<strong> wipmania</strong> por medio de <strong>jQuery</strong>.</p>
<p>Podemos consultar los datos que obtendremos introduciendo la siguiente URL directamente en el navegador &#8220;<em>http://api.wipmania.com/jsonp?callback=?</em>&#8221; Entre otros parámetros obtendremos: latitud, longitud, zoom, dirección, ciudad, país,  códido del país y región.</p>
<p>Por último, utilizando JSON los recuperamos con  jQuery</p>
<blockquote>
<div>&lt;script src=&#8221;http://code.jquery.com/jquery-latest.js&#8221;&gt;&lt;/script&gt;<br />
&lt;script&gt;<br />
$.getJSON(&#8216;http://api.wipmania.com/jsonp?callback=?&#8217;, function (data) {<br />
alert(&#8216;País: &#8216; + data.address.country);<br />
});<br />
&lt;/script&gt;</div>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.zonaw.com/detectar-pais-visitas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cómo obtener los artículos recientes de una red de blogs en WordPress</title>
		<link>http://www.zonaw.com/obtener-articulos-recientes-red-de-blogs-wordpress/</link>
		<comments>http://www.zonaw.com/obtener-articulos-recientes-red-de-blogs-wordpress/#comments</comments>
		<pubDate>Wed, 30 Nov 2011 15:05:06 +0000</pubDate>
		<dc:creator>ZonaW</dc:creator>
				<category><![CDATA[APIs Web]]></category>
		<category><![CDATA[Programación Web]]></category>
		<category><![CDATA[Tutoriales Web]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[trucos]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">/?p=1507</guid>
		<description><![CDATA[Si hemos creado toda una red de blogs con WordPress nos puede ser de utilidad el siguiente manual para crear un nuevo sitio donde se reúnan todos los artículos más recientes que se publican en dicha red de blogs. Por desgracia aún no existe una función interna en WordPress con la que poder llevarlo a [...]]]></description>
			<content:encoded><![CDATA[<p>Si hemos creado toda una <strong>red de blogs</strong> con <strong>WordPress</strong> nos puede ser de utilidad el siguiente manual para crear un nuevo sitio donde se reúnan <strong>todos los artículos más recientes que se publican en dicha red de blogs</strong>. Por desgracia aún no existe una función interna en WordPress con la que poder llevarlo a cabo. Para solucionar esto existe la clase <code>$wpdb database</code> con la que podemos crear una petición a nuestra base de datos de las <strong>últimas entradas de toda la red de blogs</strong>.</p>
<p>Al ser una petición SQL bastante grande, debemos utilizar la <a href="http://codex.wordpress.org/Transients_API" target="_blank">API Transients</a>, de forma similar a como la utilizamos en la función <code>wp_list_sites()</code>.</p>
<p>Estos son los<strong> pasos para obtener los artículos recientes de nuestra red</strong> de blogs:</p>
<p>Añadir la función <code>wp_recent_across_network()</code> al archivo <code>functions.php</code> de nuestro theme.</p>
<ul></ul>
<blockquote>
<pre>/**
 * Lista de entradas recientes en toda la red Multisitio
 *
 * @uses get_blog_list(), get_blog_permalink()
 *
 * @param int $size El número de resultados a obtener
 * @param int $expires Segundos hasta que expire la cache transient
 * @return object Contiene el blog_id, post_id, post_date y post_title
 */
function wp_recent_across_network( $size = 10, $expires = 7200 ) {
   if( !is_multisite() ) return false;

   // Se cachean los resultados con la API Transients de WordPress
   // Obtenemos una copia existente de nuestros datos transient
   if ( ( $recent_across_network = get_site_transient
( 'recent_across_network' ) ) === false ) {

      // Si no hay transient regeneramos los datos y
guardamos una nueva transient
      // Preparamos la query SQL con $wpdb
      global $wpdb;

      $base_prefix = $wpdb-&gt;get_blog_prefix(0);
      $base_prefix = str_replace( '1_', '' , $base_prefix );

      // A causa de que la función get_blog_list()
está actualmente abandonada
      // debido al alto consumo de recursos usaremos
      // $wpdb para ejecutar nuestra query SQL. Como la query puede
      // consumir mucha memoria almacenaremos los resultados
usando la API Transients
      if ( false === ( $site_list =
get_site_transient( 'multisite_site_list' ) ) ) {
         global $wpdb;
         $site_list = $wpdb-&gt;get_results
( $wpdb-&gt;prepare('SELECT * FROM wp_blogs ORDER BY blog_id') );
         set_site_transient( 'multisite_site_list', $site_list, $expires );
      }
      $limit = absint($size);
      // Unificamos los resultados de wp_posts
en todos los sitios del Multisitio en un solo resultado con MySQL "UNION"
      foreach ( $site_list as $site ) {
         if( $site == $site_list[0] ) {
            $posts_table = $base_prefix . "posts";
         } else {
            $posts_table = $base_prefix . $site-&gt;blog_id . "_posts";
         }

         $posts_table = esc_sql( $posts_table );
         $blogs_table = esc_sql( $base_prefix .
'&lt;a target="_blank" title="blogs"
href="%20http://semanticae.es"&gt;blogs&lt;/a&gt;' );

         $query .= "(SELECT $posts_table.ID,
$posts_table.post_title, $posts_table.post_date, $blogs_table.blog_id FROM
$posts_table, $blogs_tablen";
         $query .= "tWHERE $posts_table.post_type = 'post'n";
         $query .= "tAND $posts_table.post_status = 'publish'n";
         $query .= "tAND $blogs_table.blog_id = {$site-&gt;blog_id})n";

         if( $site !== end($site_list) )
            $query .= "UNIONn";
         else
            $query .= "ORDER BY post_date DESC LIMIT 0, $limit";
      }

      // Un poco de limpieza y ejecutamos la query
      $query = $wpdb-&gt;prepare($query);
      $recent_across_network = $wpdb-&gt;get_results( $query );

      // Ajustamos la cache Transients para que espire cada dos horas
      set_site_transient( 'recent_across_network',
$recent_across_network, 60*60*2 );
   }
   // Damos formato a la salida HTML
   $html = '
    '; foreach ( $recent_across_network as $post ) { $html .= '
    ' . $post-&gt;post_title . '
    '; } $html .= '
';
   return $html;
}</pre>
</blockquote>
<p>Nos aseguramos de comprobar el valor <code>return</code> en la salida HTML para evitar conflictos con instalaciones que no sean multisitio.</p>
<p>Por último, añadimos el siguiente código con el que recuperar los datos de la función en nuestro site:</p>
<blockquote>
<pre>&lt;?php
// Mostramos las entradas recientes de toda la red
$recent_network_posts = wp_recent_across_network();
if( $recent_network_posts ):
?&gt;
&lt;?php echo $recent_network_posts; ?&gt;
&lt;?php endif; ?&gt;
</pre>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.zonaw.com/obtener-articulos-recientes-red-de-blogs-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>API: mostrar perfiles de Xbox Live en tu sitio web</title>
		<link>http://www.zonaw.com/api-mostrar-perfiles-de-xbox-live-en-tu-sitio-web/</link>
		<comments>http://www.zonaw.com/api-mostrar-perfiles-de-xbox-live-en-tu-sitio-web/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 14:40:49 +0000</pubDate>
		<dc:creator>ZonaW</dc:creator>
				<category><![CDATA[APIs Web]]></category>
		<category><![CDATA[Programación Web]]></category>
		<category><![CDATA[api]]></category>

		<guid isPermaLink="false">/?p=1491</guid>
		<description><![CDATA[A pesar de no disponer de API oficial de Microsoft para acceder a la información de los perfiles de usuarios de Xbox Live, en XBoxLeaders.com han logrado crear una API que muestra parte de la información de los perfiles de usuarios de Xbox Live en nuestro sitio web. Entre los datos que se muestran están: [...]]]></description>
			<content:encoded><![CDATA[<p>A pesar de no disponer de <strong>API </strong>oficial de Microsoft para acceder a la información de los <strong>perfiles de usuarios de Xbox Live</strong>, en XBoxLeaders.com han logrado crear una API que muestra parte de la información de los perfiles de usuarios de Xbox Live en nuestro sitio web. Entre los datos que se muestran están: ID de usuario, avatar, nombre, bio, localización, estados&#8230; y lo más interesante, los 5 últimos juegos de XBOX 360 a los que hemos jugado.</p>
<p>Este es el aspecto de la ficha que conseguiremos mostrar con la siguiente API (<a href="http://davidwalsh.name/dw-content/xbox-api.php">ver demostración de la ficha</a>)</p>
<p><a href="http://www.zonaw.com/wp-content/uploads/2011/11/usuario-XBox-Live.jpg"><img class="aligncenter size-full wp-image-1492" title="usuario-XBox-Live" src="http://www.zonaw.com/wp-content/uploads/2011/11/usuario-XBox-Live.jpg" alt="usuario-XBox-Live" width="580" height="523" /></a></p>
<p>Por suerte es muy sencilla de utilizar: enviamos el gamertag ID de usuario en Xbox Live) y el tipo de respuesta que deseas:</p>
<blockquote><p>// Configuración (aquí debes reemplazar &#8220;gamer&#8221; por el gamertag que desees)<br />
$gamertag = &#8216;gamer&#8217;;<br />
$profileUrl = &#8216;http://api.xboxleaders.com/v2/?format=json&amp;gamertag=&#8217;.$gamertag;<br />
// Información sobre gamertag<br />
$info = file_get_contents($profileUrl);<br />
// Para JSON<br />
$json = json_decode($info);<br />
$user = $json-&gt;user;</p></blockquote>
<p>La respuesta se mostrará de la siguiente forma:</p>
<blockquote><p>{<br />
&#8220;user&#8221;:{<br />
&#8220;gamertag&#8221;:&#8221;gamer&#8221;,<br />
&#8220;is_valid&#8221;:1,<br />
&#8220;profile_link&#8221;:&#8221;http:\/\/live.xbox.com\/member\/gamer&#8221;,<br />
&#8220;launch_team&#8221;:{<br />
&#8220;xbl&#8221;:0,<br />
&#8220;nxe&#8221;:0,<br />
&#8220;kinect&#8221;:0<br />
},<br />
&#8220;account_status&#8221;:&#8221;Gold&#8221;,<br />
&#8220;gender&#8221;:&#8221;Male&#8221;,<br />
&#8220;is_cheater&#8221;:0,<br />
&#8220;online&#8221;:0,<br />
&#8220;online_status&#8221;:&#8221;Last seen 2 minutes ago playing Xbox.com&#8221;,<br />
&#8220;avatars&#8221;:{<br />
&#8220;gamer_tile&#8221;:&#8221;http:\/\/image.xboxlive.com\/global\/t.fffe07d1\/tile\/0\/2000b&#8221;,<br />
&#8220;small_gamerpic&#8221;:&#8221;http:\/\/avatar.xboxlive.com\/avatar\/gamer\/avatarpic-s.png&#8221;,<br />
&#8220;large_gamerpic&#8221;:&#8221;http:\/\/avatar.xboxlive.com\/avatar\/gamer\/avatarpic-l.png&#8221;,<br />
&#8220;body_gamerpic&#8221;:&#8221;http:\/\/avatar.xboxlive.com\/avatar\/gamer\/avatar-body.png&#8221;<br />
},<br />
&#8220;reputation&#8221;:100,<br />
&#8220;gamerscore&#8221;:300,<br />
&#8220;location&#8221;:&#8221;Madison, WI, US&#8221;,<br />
&#8220;motto&#8221;:&#8221;Watch your head.&#8221;,<br />
&#8220;name&#8221;:&#8221;David Walsh&#8221;,<br />
&#8220;bio&#8221;:&#8221;There is, and only can be, Call of Duty.&#8221;,<br />
&#8220;recent_games&#8221;:{<br />
&#8220;1&#8243;:{<br />
&#8220;title&#8221;:&#8221;Modern Warfare® 3&#8243;,<br />
&#8220;tid&#8221;:1096157387,<br />
&#8220;marketplace_url&#8221;:&#8221;http:\/\/marketplace.xbox.com\/Title\/1096157387&#8243;,<br />
&#8220;compare_url&#8221;:&#8221;http:\/\/live.xbox.com\/en-US\/GameCenter\/Achievements?title=1096157387&amp;compareTo=gamer&#8221;,<br />
&#8220;image&#8221;:&#8221;http:\/\/tiles.xbox.com\/tiles\/63\/-y\/0mdsb2JhbA9ECgQJGgYfViwhL2ljb24vMC84MDAwIAAAAAAAAP3df-Q=.jpg&#8221;,<br />
&#8220;large_boxart&#8221;:&#8221;http:\/\/tiles.xbox.com\/consoleAssets\/415608cb\/en-US\/largeboxart.jpg&#8221;,<br />
&#8220;small_boxart&#8221;:&#8221;http:\/\/tiles.xbox.com\/consoleAssets\/415608cb\/en-US\/smallboxart.jpg&#8221;,<br />
&#8220;last_played&#8221;:&#8221;1321660800&#8243;,<br />
&#8220;earned_gamerscore&#8221;:0,<br />
&#8220;available_gamerscore&#8221;:1000,<br />
&#8220;earned_achievements&#8221;:0,<br />
&#8220;available_achievements&#8221;:50,<br />
&#8220;percentage_complete&#8221;:0<br />
},<br />
&#8220;2&#8243;:{<br />
&#8220;title&#8221;:&#8221;Call of Duty ELITE&#8221;,<br />
&#8220;tid&#8221;:1096157336,<br />
&#8220;marketplace_url&#8221;:&#8221;http:\/\/marketplace.xbox.com\/Title\/1096157336&#8243;,<br />
&#8220;compare_url&#8221;:&#8221;http:\/\/live.xbox.com\/en-US\/GameCenter\/Achievements?title=1096157336&amp;compareTo=gamer&#8221;,<br />
&#8220;image&#8221;:&#8221;http:\/\/tiles.xbox.com\/tiles\/S9\/J4\/0mdsb2JhbA9ECgQJGgYfVlZbL2ljb24vMC84MDAwIAAAAAAAAP1X0lQ=.jpg&#8221;,<br />
&#8220;large_boxart&#8221;:&#8221;http:\/\/tiles.xbox.com\/consoleAssets\/41560898\/en-US\/largeboxart.jpg&#8221;,<br />
&#8220;small_boxart&#8221;:&#8221;http:\/\/tiles.xbox.com\/consoleAssets\/41560898\/en-US\/smallboxart.jpg&#8221;,<br />
&#8220;last_played&#8221;:&#8221;1321488000&#8243;,<br />
&#8220;earned_gamerscore&#8221;:0,<br />
&#8220;available_gamerscore&#8221;:0,<br />
&#8220;earned_achievements&#8221;:0,<br />
&#8220;available_achievements&#8221;:0,<br />
&#8220;percentage_complete&#8221;:0<br />
},<br />
&#8220;3&#8243;:{<br />
&#8220;title&#8221;:&#8221;Call of Duty Black Ops&#8221;,<br />
&#8220;tid&#8221;:1096157269,<br />
&#8220;marketplace_url&#8221;:&#8221;http:\/\/marketplace.xbox.com\/Title\/1096157269&#8243;,<br />
&#8220;compare_url&#8221;:&#8221;http:\/\/live.xbox.com\/en-US\/GameCenter\/Achievements?title=1096157269&amp;compareTo=gamer&#8221;,<br />
&#8220;image&#8221;:&#8221;http:\/\/tiles.xbox.com\/tiles\/RX\/0w\/1Wdsb2JhbA9ECgQJGgYfVlpWL2ljb24vMC84MDAwIAAAAAAAAPoffVo=.jpg&#8221;,<br />
&#8220;large_boxart&#8221;:&#8221;http:\/\/tiles.xbox.com\/consoleAssets\/41560855\/en-US\/largeboxart.jpg&#8221;,<br />
&#8220;small_boxart&#8221;:&#8221;http:\/\/tiles.xbox.com\/consoleAssets\/41560855\/en-US\/smallboxart.jpg&#8221;,<br />
&#8220;last_played&#8221;:&#8221;1320710400&#8243;,<br />
&#8220;earned_gamerscore&#8221;:0,<br />
&#8220;available_gamerscore&#8221;:1700,<br />
&#8220;earned_achievements&#8221;:0,<br />
&#8220;available_achievements&#8221;:71,<br />
&#8220;percentage_complete&#8221;:0<br />
},<br />
&#8220;4&#8243;:{<br />
&#8220;title&#8221;:&#8221;FIFA 10&#8243;,<br />
&#8220;tid&#8221;:1161889980,<br />
&#8220;marketplace_url&#8221;:&#8221;http:\/\/marketplace.xbox.com\/Title\/1161889980&#8243;,<br />
&#8220;compare_url&#8221;:&#8221;http:\/\/live.xbox.com\/en-US\/GameCenter\/Achievements?title=1161889980&amp;compareTo=gamer&#8221;,<br />
&#8220;image&#8221;:&#8221;http:\/\/tiles.xbox.com\/tiles\/ak\/w3\/1Wdsb2JhbA9ECgQNGwEfVi0gL2ljb24vMC84MDAwIAAAAAAAAPoYTHU=.jpg&#8221;,<br />
&#8220;large_boxart&#8221;:&#8221;http:\/\/tiles.xbox.com\/consoleAssets\/454108bc\/en-US\/largeboxart.jpg&#8221;,<br />
&#8220;small_boxart&#8221;:&#8221;http:\/\/tiles.xbox.com\/consoleAssets\/454108bc\/en-US\/smallboxart.jpg&#8221;,<br />
&#8220;last_played&#8221;:&#8221;1289088000&#8243;,<br />
&#8220;earned_gamerscore&#8221;:15,<br />
&#8220;available_gamerscore&#8221;:1250,<br />
&#8220;earned_achievements&#8221;:1,<br />
&#8220;available_achievements&#8221;:54,<br />
&#8220;percentage_complete&#8221;:1<br />
},<br />
&#8220;5&#8243;:{<br />
&#8220;title&#8221;:&#8221;Rock Band&#8221;,<br />
&#8220;tid&#8221;:1161889833,<br />
&#8220;marketplace_url&#8221;:&#8221;http:\/\/marketplace.xbox.com\/Title\/1161889833&#8243;,<br />
&#8220;compare_url&#8221;:&#8221;http:\/\/live.xbox.com\/en-US\/GameCenter\/Achievements?title=1161889833&amp;compareTo=gamer&#8221;,<br />
&#8220;image&#8221;:&#8221;http:\/\/tiles.xbox.com\/tiles\/IE\/Td\/0Gdsb2JhbA9ECgQNGwEfVl1aL2ljb24vMC84MDAwIAAAAAAAAP-yRD8=.jpg&#8221;,<br />
&#8220;large_boxart&#8221;:&#8221;http:\/\/tiles.xbox.com\/consoleAssets\/45410829\/en-US\/largeboxart.jpg&#8221;,<br />
&#8220;small_boxart&#8221;:&#8221;http:\/\/tiles.xbox.com\/consoleAssets\/45410829\/en-US\/smallboxart.jpg&#8221;,<br />
&#8220;last_played&#8221;:&#8221;1302912000&#8243;,<br />
&#8220;earned_gamerscore&#8221;:10,<br />
&#8220;available_gamerscore&#8221;:1000,<br />
&#8220;earned_achievements&#8221;:1,<br />
&#8220;available_achievements&#8221;:50,<br />
&#8220;percentage_complete&#8221;:2<br />
}<br />
}<br />
}<br />
}</p></blockquote>
<p>Como podemos ver, podemos obtener la información básica de la cuenta  (nombre de usuario, bio, avatar, etc) pero también existe otra mucha información acerca de los juegos  que el usuario ha estado jugando recientemente. También puede obtener enlaces a imágenes tanto del usuario como de estos juegos.</p>
<p>Este es un ejemplo de <strong>cómo crear una gamecard</strong> con la ficha del perfil Xbox Live de un usuario:</p>
<blockquote><p>&lt;style&gt;<br />
.gamercard {<br />
border: 1px solid #bdbec1;<br />
padding: 10px;<br />
width: 600px;<br />
font-family: arial, sans-serif;<br />
font-size: 12px;<br />
color: #bdbec1;<br />
background-image: -webkit-linear-gradient(#ddd, #fff, #e9fdce);<br />
background-image: -moz-linear-gradient(top, #ddd, #fff, #e9fdce);<br />
background-image: -ms-linear-gradient(#ddd, #fff, #e9fdce);<br />
background-image: -o-linear-gradient(#ddd, #fff, #e9fdce);<br />
background-image: linear-gradient(#ddd, #fff, #e9fdce);<br />
}<br />
.gamercard img {<br />
display: block;<br />
}<br />
.gamercard .avatar {<br />
float: right;<br />
width: 150px;<br />
height: 300px;<br />
margin: -60px 0 0 50px;<br />
}<br />
.gamercard h1 {<br />
font-weight: normal;<br />
}<br />
.gamercard h1 img {<br />
display: inline-block;<br />
padding-right: 10px;<br />
width: 24px;<br />
height: 24px;<br />
}<br />
.gamercard h1 a {<br />
text-decoration: none;<br />
}<br />
.gamercard h1 a:hover {<br />
background: #bbe6a6;<br />
color: #333;<br />
}<br />
.gamercard h2 {<br />
color: #111;<br />
font-size: 16px;<br />
font-weight: normal;<br />
margin-top: 15px;<br />
}<br />
.gamercard ul {<br />
list-style-type: none;<br />
}<br />
.gamercard ul li {<br />
padding-top: 8px;<br />
}<br />
.gamercard ul li strong {<br />
color: #666;<br />
}<br />
.gamercard ul.games li {<br />
display: inline-block;<br />
margin-right: 20px;<br />
text-align: center;<br />
font-weight: bold;<br />
width: 85px;<br />
vertical-align: top;<br />
}<br />
.gamercard ul.games li img {<br />
margin: 0 auto;<br />
width: 85px;<br />
}<br />
.gamercard a {<br />
color: #78bb58;<br />
}<br />
.gamercard .clear {<br />
clear: both;<br />
}<br />
&lt;/style&gt;<br />
&lt;!&#8211; gamercard &#8211;&gt;<br />
&lt;div&gt;<br />
&lt;!&#8211; profile image &#8211;&gt;<br />
&lt;img src=&#8221;&lt;?php echo $user-&gt;avatars-&gt;body_gamerpic; ?&gt;&#8221; alt=&#8221;&lt;?php echo $user-&gt;gamertag; ?&gt;&#8221; /&gt;<br />
&lt;!&#8211; gamer name &#8211;&gt;<br />
&lt;h1&gt;&lt;img src=&#8221;&lt;?php echo $user-&gt;avatars-&gt;gamer_tile; ?&gt;&#8221; alt=&#8221;&lt;?php echo $user-&gt;gamertag; ?&gt;&#8221; /&gt;&lt;a href=&#8221;&lt;?php echo $user-&gt;profile_link; ?&gt;&#8221;&gt;&lt;?php echo $user-&gt;gamertag; ?&gt;&lt;/a&gt;&lt;/h1&gt;<br />
&lt;!&#8211; personal info &#8211;&gt;<br />
&lt;h2&gt;The Legend&lt;/h2&gt;<br />
&lt;ul&gt;<br />
&lt;li&gt;&lt;strong&gt;Name:&lt;/strong&gt; &lt;?php echo $user-&gt;name; ?&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;strong&gt;Bio:&lt;/strong&gt; &lt;?php echo $user-&gt;bio; ?&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;strong&gt;Location:&lt;/strong&gt; &lt;?php echo $user-&gt;location; ?&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;strong&gt;Gender:&lt;/strong&gt; &lt;?php echo $user-&gt;gender; ?&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;strong&gt;Motto:&lt;/strong&gt; &lt;?php echo $user-&gt;motto; ?&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;strong&gt;Online:&lt;/strong&gt; &lt;?php echo $user-&gt;online ? &#8220;Online&#8221; : &#8220;Offline&#8221;; ?&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;strong&gt;Status:&lt;/strong&gt; &lt;?php echo $user-&gt;online ? $user-&gt;online_status : &#8220;(none)&#8221;; ?&gt;&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;!&#8211; recent games &#8211;&gt;<br />
&lt;h2&gt;Recent Games&lt;/h2&gt;<br />
&lt;ul&gt;<br />
&lt;?php foreach($user-&gt;recent_games as $game): ?&gt;<br />
&lt;li&gt;&lt;a href=&#8221;&lt;?php echo $game-&gt;marketplace_url; ?&gt;&#8221;&gt;&lt;img src=&#8221;&lt;?php echo $game-&gt;small_boxart; ?&gt;&#8221; alt=&#8221;&lt;?php echo $game-&gt;title; ?&gt;&#8221; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;?php echo $game-&gt;title; ?&gt;&lt;/li&gt;<br />
&lt;?php endforeach; ?&gt;<br />
&lt;/ul&gt;<br />
&lt;div&gt;&lt;/div&gt;<br />
&lt;/div&gt;</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.zonaw.com/api-mostrar-perfiles-de-xbox-live-en-tu-sitio-web/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Smush.it API para comprimir imagenes</title>
		<link>http://www.zonaw.com/smush-it-api-para-comprimir-imagenes/</link>
		<comments>http://www.zonaw.com/smush-it-api-para-comprimir-imagenes/#comments</comments>
		<pubDate>Mon, 21 Nov 2011 09:33:39 +0000</pubDate>
		<dc:creator>ZonaW</dc:creator>
				<category><![CDATA[APIs Web]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[compresion]]></category>
		<category><![CDATA[herramientas web]]></category>
		<category><![CDATA[imagen]]></category>

		<guid isPermaLink="false">/?p=1475</guid>
		<description><![CDATA[Yahoo ofrece la API de su servicio grauito de compresión &#8220;sin pérdida&#8221; Smush.it. Es especialmente interesante ya que utiliza técnicas de optimización específicas para imágenes sin cambiar su aspecto o calidad original. También podemos utilizarlo desde su web, donde se nos ofrece un cargador de imagenes o ruta para imagenes ya alojadas en internet, obtenemos [...]]]></description>
			<content:encoded><![CDATA[<p>Yahoo ofrece la <strong>API </strong>de su servicio grauito de <strong>compresión &#8220;sin pérdida&#8221; </strong><a href="http://www.smushit.com/ysmush.it/" target="_blank">Smush.it</a>. Es especialmente interesante ya que utiliza técnicas de optimización específicas para imágenes <strong>sin cambiar su aspecto o calidad original.</strong></p>
<p><strong><a href="http://www.zonaw.com/wp-content/uploads/2011/11/smushit.jpg"><img class="aligncenter size-full wp-image-1476" title="Smush.it Optimiza imágenes para tu web" src="http://www.zonaw.com/wp-content/uploads/2011/11/smushit.jpg" alt="Smush.it" width="580" height="460" /></a></strong></p>
<p>También podemos utilizarlo desde su web, donde se nos ofrece un cargador de imagenes o ruta para imagenes ya alojadas en internet, obtenemos de una pestaña los resultados del porcentaje comprimido y espacio que nos ahorramos.</p>
<p>Otra forma de utilizarlo es con la API modificada smushit.net que lo que hace es simplificar la API existente eliminando los datos poco útiles.</p>
<p>Forma de utilizar la <strong>API simplificada de smushit</strong>:</p>
<p>Después de pasarle la siguiente URL con nuestra imagen.</p>
<blockquote><p>http://smushit.net/?img=<strong>http://www.zonaw.com/wp-content/themes/</strong></p>
<p><strong>Zengi/images/logo_negro_ZonaW.png</strong></p></blockquote>
<p>Obtendremos un código con la imagen ya optimizada (recordar descargar la imagen y alojarla en un servidor propio).<strong><br />
</strong></p>
<blockquote>
<pre>http://ysmushit.zenfs.com/results/11a6f06f/smush/wp-content/themes/
Zengi/images/logo_negro_ZonaW.png</pre>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.zonaw.com/smush-it-api-para-comprimir-imagenes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mostrar tweets de un determinado hashtag</title>
		<link>http://www.zonaw.com/mostrar-tweets-de-un-determinado-hashtag/</link>
		<comments>http://www.zonaw.com/mostrar-tweets-de-un-determinado-hashtag/#comments</comments>
		<pubDate>Wed, 16 Nov 2011 08:52:27 +0000</pubDate>
		<dc:creator>ZonaW</dc:creator>
				<category><![CDATA[APIs Web]]></category>
		<category><![CDATA[Programación Web]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[trucos]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">/?p=1464</guid>
		<description><![CDATA[En Twitter se puede encontrar gente experta haciendo comentarios sobre cualquier tema, los hashtag nacieron por la necedidad de agrupar esas conversaciones de forma sencilla, para que cualquier usuario con una simple búsqueda pudiera tener acceso a todos los tweets de una temática determina. Para utilizar los hashtags sólo tienes que añadir al tweet antes [...]]]></description>
			<content:encoded><![CDATA[<p>En Twitter se puede encontrar gente experta haciendo comentarios sobre cualquier tema, los <strong>hashtag </strong>nacieron por la necedidad de agrupar esas conversaciones de forma sencilla, para que cualquier usuario con una simple búsqueda pudiera tener <strong>acceso a todos los tweets de una temática determina</strong>. Para utilizar los hashtags sólo tienes que añadir al tweet antes de lanzarlo &#8220;#&#8221; y seguido el tema o la categoría del tweet. Por ejemplo, en nuestro Twitter se hablaría de: #webmasters, #HTML5, #RecursosWebmasters, #CSS, #hosting&#8230;</p>
<p>Una buena idea para muchos blogs o páginas web es recoger todos los tweets de una categoría determinada y mostrarlos directamente en su site. En el lateral del blog <strong><a title="Diario de un navegante pasota" href="http://www.yopaso.com/">yopaso.com</a></strong> hay una demostración de lo que podemos hacer con un hashtag similar al de la temática de nuestro site.</p>
<h3>Pasos para mostrar los tweets de un determinado hashtag en tu blog</h3>
<p>Copiar el siguiente código en la página <em>sidebar.php</em> o en la sección donde quieras que aparezcan los hashtag recogidos de Twitter:</p>
<blockquote><p>showTwetts (&#8220;&lt;h3&gt;#hashtag en Twitter&lt;/h3&gt;&#8221;, &#8220;<strong>#hashtag</strong>&#8220;, 5);</p></blockquote>
<p>En el fichero <em>functions.php</em> pegar el siguiente código</p>
<blockquote><p>function showTwetts($title, $hashtag, $max_items)</p>
<p>{</p>
<p>$results = searchTwitter (urldecode($hashtag), $max_items);</p>
<p>$items = array();</p>
<p>if (count($results) &gt; 0)</p>
<p>{</p>
<p>echo $title;</p>
<p>echo &#8220;&lt;ul class=&#8217;twitter_li&#8217;&gt;\n&#8221;;</p>
<p>foreach ($results as $item)</p>
<p>{</p>
<p>echo &#8220;&lt;li&gt;\n&#8221;;</p>
<p>echo &#8220;&lt;p&gt;&lt;a href=&#8217;http://twitter.com/&#8221;.$item-&gt;from_user.&#8221;&#8216;&gt;@&#8221;.$item-&gt;from_user.&#8221;&lt;/a&gt; &#8220;.date(&#8220;d/m/Y H:i&#8221;, strtotime($item-&gt;created_at)).&#8221;&lt;/p&gt;\n&#8221;;</p>
<p>echo &#8220;&lt;p&gt;&#8221;.$item-&gt;text.&#8221;&lt;/p&gt;\n&#8221;;</p>
<p>echo &#8220;&lt;/li&gt;\n&#8221;;</p>
<p>}</p>
<p>echo &#8220;&lt;/ul&gt;\n&#8221;;</p>
<p>}</p>
<p>} # function showTwetts</p>
<p>function searchTwitter ($keyword, $max_items = 5)</p>
<p>{</p>
<p>$url = &#8220;http://search.twitter.com/search.json?q=&#8221;.urlencode($keyword).&#8221;&amp;lang=all&#8221;;</p>
<p>if ($max_items &gt; 0) $url .= &#8220;&amp;rpp=&#8221;.$max_items;</p>
<p>$list = array();</p>
<p>$json = file_get_contents($url);</p>
<p>$array = json_decode($json);</p>
<p>return $array-&gt;results;</p>
<p>}#function searchTwitter</p></blockquote>
<p>Sólo es necesario cambiar <strong>#hashtag</strong> por el hashtag elegido y elegir el número de tweets a mostrar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zonaw.com/mostrar-tweets-de-un-determinado-hashtag/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Generador de códigos QR</title>
		<link>http://www.zonaw.com/generador-de-codigos-qr/</link>
		<comments>http://www.zonaw.com/generador-de-codigos-qr/#comments</comments>
		<pubDate>Fri, 11 Nov 2011 18:50:16 +0000</pubDate>
		<dc:creator>ZonaW</dc:creator>
				<category><![CDATA[APIs Web]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[google chart]]></category>
		<category><![CDATA[herramientas web]]></category>
		<category><![CDATA[qrcode]]></category>

		<guid isPermaLink="false">/?p=1452</guid>
		<description><![CDATA[Hace casi un año que publicamos nuestro primer plugin para WordPress, el plugin realizaba el trabajo de meter QR Codes en cada uno de los posts de tu blog, de modo que al acercar el teléfono móvil o tablet, pudieses dirigirte directamente al artículo. Ahora existen muchas forma de introducir un código QR en tu [...]]]></description>
			<content:encoded><![CDATA[<p>Hace casi un año que publicamos nuestro primer <strong>plugin para WordPress</strong>, el plugin realizaba el trabajo de <strong><a href="http://www.zonaw.com/2010/11/17/plugin-para-meter-qr-codes-en-tus-posts/">meter QR Codes en cada uno de los posts de tu blog</a></strong>, de modo que al acercar el teléfono móvil o tablet, pudieses dirigirte directamente al artículo.</p>
<p>Ahora existen muchas forma de introducir un <strong>código QR</strong> en tu blog o sitio web, como por ejemplo QRumpy,<strong> </strong>que destaca del resto de <strong>generadores de código QR</strong> ya que con el puedes generar el código sobre  <strong>cualquier texto</strong>, no es necesarío que sea un URL.</p>
<p>Los códigos son generados en 4 tamaños:</p>
<ul>
<li>Pequeño &#8211; 150×150 px</li>
<li>Mediano &#8211; 200×200 px</li>
<li>Grande &#8211; 250×250 px</li>
<li>Extra grande &#8211; 300×300 px</li>
</ul>
<p>Ejemplo de código QR de 300×300 px</p>
<p><a href="http://www.zonaw.com/wp-content/uploads/2011/11/zonaw.com-qr.png"><img class="aligncenter size-full wp-image-1453" title="zonaw.com-qr" src="http://www.zonaw.com/wp-content/uploads/2011/11/zonaw.com-qr.png" alt="zonaw.com-qr" width="300" height="300" /></a></p>
<p>La generación del código está basado en la <strong>API de <a href="http://code.google.com/intl/es-419/apis/chart/">Google Charts</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zonaw.com/generador-de-codigos-qr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>reCAPTCHA con PHP</title>
		<link>http://www.zonaw.com/recaptcha-con-php/</link>
		<comments>http://www.zonaw.com/recaptcha-con-php/#comments</comments>
		<pubDate>Wed, 07 Sep 2011 15:43:09 +0000</pubDate>
		<dc:creator>ZonaW</dc:creator>
				<category><![CDATA[APIs Web]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[herramientas web]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[spam]]></category>

		<guid isPermaLink="false">/?p=1259</guid>
		<description><![CDATA[En alguna otra ocasión ya hemos hablado de cómo meter un captcha en tu web utilizando el servicio gratuito que nos ofrece Google reCAPTCHA. En el siguiente artículo vamos a ver cómo podemos utilizar reCAPTCHA con PHP. Incluir reCAPTCHA a un Formulario Para utilizar la protección mediante captcha, necesitamos añadir reCAPTCHA a nuestro formulario, por [...]]]></description>
			<content:encoded><![CDATA[<p>En alguna otra ocasión ya hemos hablado de <strong><a href="http://www.zonaw.com/2010/08/03/meter-u-captcha-en-tu-web/">cómo meter un captcha en tu web</a></strong> utilizando el servicio gratuito que nos ofrece Google <a href="http://recaptcha.net/">reCAPTCHA</a>. En el siguiente artículo vamos a ver cómo podemos<strong> utilizar reCAPTCHA con PHP</strong>.</p>
<h3>Incluir reCAPTCHA a un Formulario</h3>
<p>Para utilizar la protección mediante captcha, necesitamos añadir reCAPTCHA a nuestro formulario, por lo tanto incluimos el archivo <strong>recaptchalib.php</strong> y agregamos variables con los valores de nuestros key recién obtenidos.</p>
<div>
<div id="php-1">
<div>
<blockquote>
<div>require_once(&#8216;recaptchalib.php&#8217;);</div>
<div>$publickey = &#8220;2LdB4goAArAOFRtfrtRlvfyrE-_zv6RETDfgdgdkj&#8221;;</div>
<div>$privatekey = &#8220;2LdB4goAgdgdfAAAF1GFHFghfhftrtrydgfdUfghkj&#8221;;</div>
<div>$error = null;</div>
</blockquote>
<p>Ahora utilizamos la función <em>recaptcha_get_html</em> para mostrar el captcha.</p>
<div>
<div id="html-2">
<div>
<blockquote>
<div><a href="http://december.com/html/4/element/form.html">&lt;form</a> method=&#8221;post&#8221;&gt;</div>
<div><a href="http://december.com/html/4/element/label.html">&lt;label</a> for=&#8221;username&#8221;&gt;Usuario&lt;/label&gt;<a href="http://december.com/html/4/element/br.html">&lt;br</a> /&gt;</div>
<div><a href="http://december.com/html/4/element/input.html">&lt;input</a> name=&#8221;username&#8221; type=&#8221;text&#8221; class=&#8221;casilla&#8221; id=&#8221;username&#8221; /&gt;<a href="http://december.com/html/4/element/br.html">&lt;br</a> /&gt;</div>
<div><a href="http://december.com/html/4/element/label.html">&lt;label</a> for=&#8221;usermail&#8221;&gt;Email&lt;/label&gt;<a href="http://december.com/html/4/element/br.html">&lt;br</a> /&gt;</div>
<div><a href="http://december.com/html/4/element/input.html">&lt;input</a> name=&#8221;usermail&#8221; type=&#8221;text&#8221; class=&#8221;casilla&#8221; id=&#8221;usermail&#8221; /&gt;<a href="http://december.com/html/4/element/br.html">&lt;br</a> /&gt;</div>
<div><a href="http://december.com/html/4/element/label.html">&lt;label</a> for=&#8221;usercheck&#8221;&gt;Verificaci&amp;oacute;n&lt;/label&gt;<a href="http://december.com/html/4/element/br.html">&lt;br</a> /&gt;</div>
<div>&lt;?php echo recaptcha_get_html($publickey, $error); ?&gt;</div>
<div><a href="http://december.com/html/4/element/input.html">&lt;input</a> type=&#8221;hidden&#8221; name=&#8221;action&#8221; value=&#8221;register&#8221; /&gt;</div>
<div><a href="http://december.com/html/4/element/input.html">&lt;input</a> type=&#8221;submit&#8221; name=&#8221;btsend&#8221; value=&#8221;Enviar&#8221; /&gt;</div>
<div>&lt;/form&gt;</div>
</blockquote>
<h3>Validar Captcha</h3>
<p>Cuando el formulario haya sido enviado verificamos que el  texto de captcha se ha ingresado correctamente en cuyo caso procesamos  los datos del formulario de lo contrario mostramos un mensaje de error.</p>
<div>
<div id="php-3">
<div>
<blockquote>
<div>if ($_POST['action'] == &#8220;register&#8221;) {</div>
<div>$re_ip = $_SERVER["REMOTE_ADDR"];</div>
<div>$re_challenge = $_POST["recaptcha_challenge_field"];</div>
<div>$re_response = $_POST["recaptcha_response_field"];</div>
<div>$re_valid = recaptcha_check_answer($privatekey, $re_ip, $re_challenge, $re_response);</div>
<div>if ($re_valid-&gt;is_valid) {</div>
<div>// procesar registro</div>
<div>} else {</div>
<div>$error = $resp-&gt;error;</div>
<div>}</div>
<div>}</div>
</blockquote>
<div>Uniendo estos pasos en un archivo, se obtiene una <strong>buena protección anti-spam</strong>.</div>
<div><a href="http://www.zonaw.com/wp-content/uploads/2011/09/reCAPTCHA.jpg"><img class="aligncenter size-full wp-image-1260" title="reCAPTCHA" src="http://www.zonaw.com/wp-content/uploads/2011/09/reCAPTCHA.jpg" alt="reCAPTCHA" width="324" height="265" /></a></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.zonaw.com/recaptcha-con-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Poner un mapa de Google Maps como fondo en una web</title>
		<link>http://www.zonaw.com/poner-un-mapa-de-google-maps-como-fondo-en-una-web/</link>
		<comments>http://www.zonaw.com/poner-un-mapa-de-google-maps-como-fondo-en-una-web/#comments</comments>
		<pubDate>Thu, 21 Jul 2011 11:02:24 +0000</pubDate>
		<dc:creator>ZonaW</dc:creator>
				<category><![CDATA[APIs Web]]></category>
		<category><![CDATA[Cómo diseñar una web]]></category>
		<category><![CDATA[Tutoriales Web]]></category>
		<category><![CDATA[absolute]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[diseño]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[google maps]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[z-index]]></category>

		<guid isPermaLink="false">/?p=1179</guid>
		<description><![CDATA[Una idea para mostrar la ubicación de un punto en un mapa, por ejemplo: una tienda, una oficina, la ubicación de varias franquicias&#8230; es utilizar un mapa de Google Maps a tamaño completo como fondo de la página web. Además en la misma página podrás añadir: textos, imagenes y hasta botones de compartir en redes [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.zonaw.com/wp-content/uploads/2011/07/Fondo-Google-Maps.jpg"><img class="aligncenter size-full wp-image-1180" title="Fondo Google Maps" src="http://www.zonaw.com/wp-content/uploads/2011/07/Fondo-Google-Maps.jpg" alt="Fondo Google Maps" width="590" height="349" /></a></p>
<p>Una idea para mostrar la ubicación de un punto en un mapa, por ejemplo: una tienda, una oficina, la ubicación de varias franquicias&#8230; es utilizar un <strong>mapa</strong> de <strong>Google Maps</strong> <strong>a tamaño completo</strong> como <strong>fondo de la página web.</strong> Además en la misma página podrás añadir: textos, imagenes y hasta botones de compartir en redes sociales.</p>
<p>A continuación tienes los pasos para <strong>poner un mapa de Google Maps como fondo de una web</strong> utilizando las <strong></strong>propiedades de CSS  como<strong> z-index</strong> y <strong>position: absolute</strong>:</p>
<ul>
<li>El primer paso será obtener una <a href="http://code.google.com/apis/maps/signup.html">una clave API para utilizar Google Maps</a>, la clave se generará al momento y sólo es válida una por dominio.</li>
</ul>
<ul>
<li>Lo siguiente será descargar y configurar los archivos: CSS, HTML y JavaScript, los códigos los puedes encontrar en: <a href="http://cl.ly/5H4F">documento HTML</a>, <a href="http://cl.ly/5CZv">hoja de estilos CSS</a>, <a href="http://cl.ly/5DEP">fichero map en JavaScript</a>.</li>
</ul>
<ol>Para poder <strong>mostrar el mapa como fondo</strong> de nuestra web utilizaremos las propiedades <strong>absolute</strong> y <strong>z-index. </strong>Para obtener dicho efecto, le daremos al <strong>id</strong> <em>map_ canvas</em> (que será el que generará el mapa) algunos parámetros de estilo en forma<em> inline</em>, de la siguiente manera:</p>
<blockquote><p>&lt;div id=&#8221;map_canvas&#8221; style=&#8221;position: absolute; top: 0; bottom: 0; left: 0; right: 0; z-index: 0;&#8221;&gt;&lt;/div&gt;</p></blockquote>
</ol>
<p>Nos fijaremos en que todas las propiedades queden configuradas en &#8217;0&#8242; e indispensable que este sea el último elemento que añadamos antes de cerrar el<em> tag</em> <strong>body</strong>.</p>
<p>Para los demás elementos <em>div</em> que contenga la página, como pueden ser: textos, imagenes, cuenta regresiva, etc ha sido creado un <em>div </em>contenedor (llamado <strong>#countdown_dashboard</strong>) al que se le ha dado <strong>position : absolute</strong> y su <strong>z-index</strong> colocado en <em>100</em> o más alto en caso de ser necesario pero lo importante es que no sea <em>cero.</em></p>
<ul>
<li>Por último, recordar que la <em>API</em> de <strong>Google Maps</strong> nos permite personalizar el mapa de fondo añadiendo marcadores en diversos puntos para señalizar el mapa, etc.</li>
</ul>
<p>Puedes ver un ejemplo del resultado final con un <strong>mapa como fondo en una web</strong> en <a href="http://wadehammes.com/dewey-beach/">wadehammes.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zonaw.com/poner-un-mapa-de-google-maps-como-fondo-en-una-web/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cómo añadir el botón +1 de Google</title>
		<link>http://www.zonaw.com/como-anadir-el-boton-1-de-google/</link>
		<comments>http://www.zonaw.com/como-anadir-el-boton-1-de-google/#comments</comments>
		<pubDate>Thu, 09 Jun 2011 10:21:23 +0000</pubDate>
		<dc:creator>ZonaW</dc:creator>
				<category><![CDATA[APIs Web]]></category>
		<category><![CDATA[Cómo posicionar una web]]></category>
		<category><![CDATA[Cómo promocionar una web]]></category>
		<category><![CDATA[Scripts Javascript]]></category>
		<category><![CDATA[Tags HTML]]></category>
		<category><![CDATA[Tutoriales Web]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[Blogger]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Joomla]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[posicionamiento]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">/?p=1095</guid>
		<description><![CDATA[Desde hace ya unas semanas el nuevo botón +1 de Google está disponible de forma oficial para implementar directamente en nuestros sitios web. La función de este botón dentro de Google es la de indicar de una forma rápida que una web o un artículo es interesante y merece la pena ser recomendado, tu como [...]]]></description>
			<content:encoded><![CDATA[<p>Desde hace ya unas semanas el nuevo <a href="http://code.google.com/intl/es-ES/apis/+1button/"><strong>botón +1 de Google</strong></a> está disponible de forma oficial para implementar directamente en nuestros sitios web. <span id="more-1095"></span>La función de este botón dentro de Google es la de indicar de una forma rápida que una web o un artículo es interesante y merece la pena ser recomendado, tu como webbmaster conseguirás que tu web destaque sobre las demás.</p>
<p>Recuerda que para poder hacer +1 en el botón necesitas un <strong>perfil público de Google</strong>,  además los contactos que conozcan tu dirección de email podrán ver tus recomendaciones desde una nueva pestaña en tu perfil público de Google (también existe la posibilidad de configurarlo como privado).</p>
<h3>Cómo añadir el botón +1 de Google</h3>
<p>Si estás buscando algo rápido para <strong>integrar el botón de google</strong> en tu site puedes ayudarte de la genial <a href="http://www.google.com/webmasters/+1button">herramienta de configuración</a> que google pone a nuestra disposición. También si tienes alguno de los CMS más utilizados, comienzan a ser publicados plugins que te permitirán implementar el botón simplemente subiendo al FTP y activándolo desde tu panel.</p>
<ul>
<li><a href="http://wordpress.org/extend/plugins/google-1/">Google +1 Button</a> para <strong>WordPress</strong></li>
<li><a href="http://www.analyticsforjoomla.com/updates/google-1-button-for-joomla.html">Google +1 Button</a> para <strong>Joomla</strong></li>
<li><a href="http://www.bloggerplugins.tk/2011/06/add-1-button-to-your-blog_4773.html">+1 Button</a> para <strong>Blogger</strong></li>
</ul>
<p>Para webmasters más avanzados, Google ha publicado una guía de conceptos básicos para la configuración del botón así como información sobre la <a href="http://code.google.com/intl/es-ES/apis/+1button/#jsapi">API de JavaScript</a> y <a href="http://code.google.com/intl/es-ES/apis/+1button/#examples">ejemplos</a>.</p>
<p>Código de implementación en página básica:</p>
<blockquote>
<pre>&lt;html&gt;
  &lt;head&gt;
    &lt;title&gt;Demostración de +1: página básica&lt;/title&gt;
    &lt;link rel="canonical" href="http://www.example.com" /&gt;
    &lt;script type="text/javascript" src="https://apis.google.com/js/plusone.js"&gt;
    &lt;/script&gt;
  &lt;/head&gt;
  &lt;body&gt;
    &lt;g:plusone&gt;&lt;/g:plusone&gt;
  &lt;/body&gt;
&lt;/html&gt;</pre>
</blockquote>
<p>Nota: el botón +1 está sujeto a las <a href="http://www.google.com/webmasters/+1/button/policy.html">políticas para editores sobre el botón +1 de Google</a> entre las cuales se encuentra la prohibición de promocionar premios, dinero o equivalentes monetarios a         cambio de hacer clic en el Botón +1.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zonaw.com/como-anadir-el-boton-1-de-google/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

