<?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>AlvaroVeliz &#187; Snippets</title>
	<atom:link href="http://blog.alvaroveliz.cl/category/desarrollo/snippets/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.alvaroveliz.cl</link>
	<description>Recetas de Desarrollo</description>
	<lastBuildDate>Wed, 01 Feb 2012 15:41:29 +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>Firma Twitter para foros IPB con PHP + GD + SimplePie</title>
		<link>http://blog.alvaroveliz.cl/2009/11/firma-twitter-para-foros-ipb-con-php-gd-simplepie/</link>
		<comments>http://blog.alvaroveliz.cl/2009/11/firma-twitter-para-foros-ipb-con-php-gd-simplepie/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 23:09:51 +0000</pubDate>
		<dc:creator>alvaroveliz</dc:creator>
				<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[snippet]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://blog.alvaroveliz.cl/?p=29</guid>
		<description><![CDATA[Hace mucho tiempo que circulo por foros de internet, el que más visito es Tarreo y como usa Invision Power Board, no puedo poner una firma con imágenes dinámicas. Es por esto que tuve que acudir a una solución, hacer una imágen dinámica que pudiera ser vista en cualquier foro invision protegido. Para lograr este [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.alvaroveliz.cl%2F2009%2F11%2Ffirma-twitter-para-foros-ipb-con-php-gd-simplepie%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.alvaroveliz.cl%2F2009%2F11%2Ffirma-twitter-para-foros-ipb-con-php-gd-simplepie%2F&amp;source=alvaroveliz&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Hace mucho tiempo que circulo por foros de internet, el que más visito es <a href="http://tarreo.com/foro" target="_blank">Tarreo</a> y como usa <a href="http://www.invisionpower.com/" target="_blank">Invision Power Board</a>, no puedo poner una firma con imágenes dinámicas. Es por esto que tuve que acudir a una solución, hacer una imágen dinámica que pudiera ser vista en cualquier foro invision protegido.</p>
<p>Para lograr este objetivo necesitaremos los siguientes <strong>ingredientes</strong>:</p>
<ul>
<li>Tener cuenta <a href="http://twitter.com" target="_blank">Twitter</a> (publica, con protección de twitts no sirve)</li>
<li>Saber <a class="zem_slink" title="PHP" rel="homepage" href="http://www.php.net/">PHP</a></li>
<li>Conocer la librería GD (para PHP)</li>
<li>SimplePie</li>
<li>Servidor para hostear la imagen (con soporte curl)</li>
<li>Conocer de .htaccess</li>
</ul>
<p><span id="more-29"></span>La idea es utilizar <a href="http://simplepie.org/" target="_blank">SimplePie</a> para que se lea el <a class="zem_slink" title="RSS" rel="wikipedia" href="http://en.wikipedia.org/wiki/RSS">RSS</a> de mi cuenta para que con PHP + GD se genere una imagen dinámica, luego con el .htaccess se redireccionan todos los archivos .jpg a.php (esta es la joda para tinelli)</p>
<p><strong>Preparación</strong>:</p>
<ol>
<li>Descargar el amigable <a href="http://github.com/rmccue/simplepie/downloads" target="_blank">SimplePie</a> de su sitio web (vamos a utilizar el archivo <strong>simplepie.inc.php</strong> solamente)</li>
<li>Creamos el archivo twitter.php (con vim, gedit, eclipse, textmate o lo que se les ocurra) con el siguiente código:
<pre class="brush: php; title: ; notranslate">&lt;?php
require 'simplepie.inc.php';
// Configuraciones
$feed_url    = &quot;http://twitter.com/statuses/user_timeline/MI_RSS_DEL_TIMELINE.rss&quot;;
$feed        = new SimplePie($feed_url);
// Configuraciones de la imagen
$im          = imagecreatetruecolor(320, 60);
$text_color  = imagecolorallocate($im, 0, 0, 0);
$tw_color    = imagecolorallocate($im, 56, 204, 255);
$bg_color    = imagecolorallocate($im, 255, 255, 255);
// Despliegue
imagefilledrectangle($im, 1, 1, 318, 58, $bg_color);
imagestring($im, 2, 5, 5, 'Twitter', $tw_color);
// Me traigo el ultimo tweet
foreach ($feed-&gt;get_items(0, 1) as $item)
{
   $twitt = $item-&gt;get_title();
}
// Lo corto y le hago wordwrap
$twitt = wordwrap($twitt, 58, '\n');
$twitt_texts = explode('\n', $twitt);
foreach ($twitt_texts as $i =&gt;; $t)
{
   imagestring($im, 1, 55, 14*($i+1), $t, $text_color);
}
// Muestro la imagen
header('Content-type: image/jpeg');
imagejpeg($im, NULL, 100);
imagedestroy($im);
?&gt;</pre>
</li>
<li>Luego, debemos redireccionar los request a archivos JPG a PHP utilizando un .htaccess
<pre>RewriteEngine On
RewriteRule ^(.*\.jpg(/.*)?)$ twitter.php [L,QSA]</pre>
</li>
<li>Ahora lo subes a tu servidor y lo revisas, deberia ser algo como:<br />
<img class="alignnone" title="Firma twitter" src="http://hypn.eianes.com/twitter_firma/firma.jpg" alt="" width="320" height="60" /></li>
</ol>
<p>Deje cocinar a fuego lento.<br />
Sirva acompañado con galletas de salvado.</p>
<p>Claramente podemos aplicarnos mucho más en el código, pero esto salio de improviso y fue relativamente rápido.</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 336px; width: 1px; height: 1px;">
<pre>&lt;?php
require 'simplepie.inc.php';
// Configuraciones
$feed_url    = "http://twitter.com/statuses/user_timeline/MI_RSS_DEL_TIMELINE.rss";
$feed        = new SimplePie($feed_url);
// Configuraciones de la imagen
$im          = imagecreatetruecolor(320, 60);
$text_color  = imagecolorallocate($im, 0, 0, 0);
$tw_color    = imagecolorallocate($im, 56, 204, 255);
$bg_color    = imagecolorallocate($im, 255, 255, 255);
// Despliegue
imagefilledrectangle($im, 1, 1, 318, 58, $bg_color);
imagestring($im, 2, 5, 5, 'Twitter', $tw_color);
// Me traigo el ultimo tweet
foreach ($feed-&gt;get_items(0, 1) as $item)
{
   $twitt = $item-&gt;get_title();
}
// Lo corto y le hago wordwrap
$twitt = wordwrap($twitt, 58, '\n');
$twitt_texts = explode('\n', $twitt);
foreach ($twitt_texts as $i =&gt;; $t)
{
   imagestring($im, 1, 55, 14*($i+1), $t, $text_color);
}
// Muestro la imagen
header('Content-type: image/jpeg');
imagejpeg($im, NULL, 100);
imagedestroy($im);
?&gt;</pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvaroveliz.cl/2009/11/firma-twitter-para-foros-ipb-con-php-gd-simplepie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

