<?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>FlavioMuniz » Blog &#187; Projects</title>
	<atom:link href="http://flaviomuniz.com/blog/category/projects/feed/" rel="self" type="application/rss+xml" />
	<link>http://flaviomuniz.com/blog</link>
	<description>Simples assim</description>
	<lastBuildDate>Sat, 31 Jul 2010 00:50:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Alternativa para o uso do siFR com o cakephp</title>
		<link>http://flaviomuniz.com/blog/alternativa-para-o-uso-do-sifr-com-o-cakephp/</link>
		<comments>http://flaviomuniz.com/blog/alternativa-para-o-uso-do-sifr-com-o-cakephp/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 03:42:35 +0000</pubDate>
		<dc:creator>flaviomuniz</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[CakePhp]]></category>
		<category><![CDATA[Funções]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[base]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[font-flash]]></category>
		<category><![CDATA[sifr]]></category>

		<guid isPermaLink="false">http://flaviomuniz.com/blog/?p=260</guid>
		<description><![CDATA[Olá, Recentemente em alguns projetos, a nossa equipe precisou usar fontes que não são de sistemas em titulos e textos espalhados pelo site, tentamos usar o siFR mas não deu muito certo, pois a gente precisava trocar algumas labels com ajax e não funcionaria ja que ele cria o embed da font assim que o]]></description>
			<content:encoded><![CDATA[<p>Olá,<br />
Recentemente em alguns projetos, a nossa equipe precisou usar fontes que não são de sistemas em titulos e textos espalhados pelo site, tentamos usar o <a href="http://malsup.com/jquery/media/sifr.html?v2" target="blank">siFR</a> mas não deu muito certo, pois a gente precisava trocar algumas labels com ajax e não funcionaria ja que ele cria o embed da font assim que o site é carregado.<br />
Então, devido a esse grande problemas que encontramos pela frente, resolvi utilizar um helper do cakephp para transformar aquele texto em imagens de 4k cada.<br />
Depois da ideia ter sido aprovada, então começei a criar, vamos la.<br />
<span id="more-260"></span><br />
Primeiramente vamos utilizar 2 helpers do cakephp encontrados no bakery do cakephp<br />
<a href="http://bakery.cakephp.org/articles/download_code/131/block/15" target="blank">text_image.php</a> e o </a><a href="http://bakery.cakephp.org/articles/download_code/131/block/14" target="blank">font_site.php</a>.<br />
Depois de ter baixado os helpers acima e colocado no diretório helpers dentro de views,<br />
vamos chamar o nosso helper na controller da página que vamos usar, eu precisei colocar na app_controller<br />
pois precisei usar em todo site, mas para página especificas, o bom é usar somente na controller da página.</p>
<div class="codecolorer-container php vibrant" style="overflow:auto;white-space:nowrap;width:700px"><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="kw2">var</span> <span class="re0">$helpers</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="st0">&quot;...&quot;</span><span class="sy0">,</span> <span class="st0">&quot;FontSite&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></div>
<p>Bom, continuando&#8230;<br />
Depois de chamar o helper na app_controller, precisamos criar um diretório &#8220;fonts&#8221; dentro do diretório da nossa app<br />
<img class="alignnone size-full wp-image-261" title="Fonts" src="http://flaviomuniz.com/blog/wp-content/uploads/2010/02/Picture-1.png" alt="Fonts" width="260" height="278" /><br />
Dentro desse diretório, vamos colocar as fontes que vamos usar no projeto no meu caso foi a ITC Avant Garde PRO, mas podemos usar qualquer uma, claro, não vamos usar uma fonte de sistema para fazer isso.<br />
Depois de criado, vamos criar dentro do nosso diretório &#8220;webroot -> <strong>img</strong>&#8221; um diretório para deixar as imagens geradas, eu criei um font_site, isso a gente altera dentro do helper.</p>
<div class="codecolorer-container php vibrant" style="overflow:auto;white-space:nowrap;width:700px"><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="co1">//Nome do diretório onde vão ficar as imagens geradas.</span><br />
<span class="kw2">var</span> <span class="re0">$__imagePath</span> <span class="sy0">=</span> <span class="st_h">'font_site'</span><span class="sy0">;</span></div></div>
<p><img src="http://flaviomuniz.com/blog/wp-content/uploads/2010/02/Picture-4.png" alt="Diretório font_site" title="Diretório font_site" width="412" height="220" class="alignnone size-full wp-image-262" /><br />
Depois de tudo certo, vamos chamar o helper para gerar a nossa imagem.<br />
A gente pode criar um método no nosso helper para não precisar chamar em todas as páginas a função que gera a imagem, mas vou postar aqui do modo simples, ai fica de cada um fazer de um modo melhor.<br />
Vamos la,</p>
<div class="codecolorer-container php vibrant" style="overflow:auto;white-space:nowrap;width:700px"><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="co1">//Nome da fonte</span><br />
<span class="re0">$textImage</span><span class="sy0">-&gt;</span><span class="me1">fontFile</span> <span class="sy0">=</span> <span class="st0">&quot;Avant.ttf&quot;</span><span class="sy0">;</span><br />
<span class="co1">//Tamanho da fonte</span><br />
<span class="re0">$textImage</span><span class="sy0">-&gt;</span><span class="me1">setPointSize</span><span class="br0">&#40;</span><span class="nu0">36</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="co1">//Cor da fonte</span><br />
<span class="re0">$textImage</span><span class="sy0">-&gt;</span><span class="me1">setColor</span><span class="br0">&#40;</span><span class="st0">&quot;#818181&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="co1">//BG da fonte</span><br />
<span class="re0">$textImage</span><span class="sy0">-&gt;</span><span class="me1">setBgColor</span><span class="br0">&#40;</span><span class="st0">&quot;#ffffff&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="co1">//Texto para ser transformado em imagem</span><br />
<span class="kw3">echo</span> <span class="re0">$textImage</span><span class="sy0">-&gt;</span><span class="me1">image</span><span class="br0">&#40;</span><span class="st0">&quot;www.flaviomuniz.com&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></div>
<p>Podemos tambem, utilizar um background, setBgColor.</p>
<p>Vejam alguns resultados com as fontes geradas.<br />
<img src="http://flaviomuniz.com/blog/wp-content/uploads/2010/02/Picture-8.png" alt="Gare_de_Chambord " title="Gare de Chambord" width="316" height="40" class="alignnone size-full wp-image-273" /><br />
<br />
<img src="http://flaviomuniz.com/blog/wp-content/uploads/2010/02/Picture-7.png" alt="INFECTED" title="INFECTED" width="347" height="45" class="alignnone size-full wp-image-272" /><br />
<br />
<img src="http://flaviomuniz.com/blog/wp-content/uploads/2010/02/Picture-6.png" alt="ITC Avant Garde PRO" title="ITC Avant Garde PRO" width="371" height="37" class="alignnone size-full wp-image-271" /></p>
<p>Não é necessário instalar as fontes, basta copiar para dentro do diretório fonts sitado a cima.</p>
<p>Espero ter ajudado.<br />
Até a próxima.<br />
<div class="clear-block"><div class="ad aligncenter"><script type="text/javascript">baixaki.load(null,10);</script></div></div></p>
]]></content:encoded>
			<wfw:commentRss>http://flaviomuniz.com/blog/alternativa-para-o-uso-do-sifr-com-o-cakephp/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Helper para upload com cakephp.</title>
		<link>http://flaviomuniz.com/blog/helper-para-upload-com-cakephp/</link>
		<comments>http://flaviomuniz.com/blog/helper-para-upload-com-cakephp/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 23:31:09 +0000</pubDate>
		<dc:creator>flaviomuniz</dc:creator>
				<category><![CDATA[CakePhp]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Html]]></category>

		<guid isPermaLink="false">http://flaviomuniz.com/blog/?p=131</guid>
		<description><![CDATA[Olá, estou fazendo um projeto, que tem muitas áreas que fazem upload de imagens, então, ao invés de criar muitos helpers, fiz algo legal, e útil, economiza muito código. Criando um helper simples, você teria os seguintes códigos. &#60;?php &#160; &#160; class HImagesHelper extends Helper&#123; &#160; &#160; &#160; &#160; var $helpers = array&#40;&#34;Html&#34;&#41;; &#160; &#160;]]></description>
			<content:encoded><![CDATA[<p>Olá, estou fazendo um projeto, que tem muitas áreas que fazem upload de imagens, então, ao invés de criar muitos helpers, fiz algo legal, e útil, economiza muito código.</p>
<p>Criando um helper simples, você teria os seguintes códigos.</p>
<div class="codecolorer-container php vibrant" style="overflow:auto;white-space:nowrap;width:700px"><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="kw2">&lt;?php</span><br />
&nbsp; &nbsp; <span class="kw2">class</span> HImagesHelper <span class="kw2">extends</span> Helper<span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> <span class="re0">$helpers</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="st0">&quot;Html&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">function</span> image<span class="br0">&#40;</span><span class="re0">$id</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">Html</span><span class="sy0">-&gt;</span><span class="me1">image</span><span class="br0">&#40;</span><span class="st0">&quot;/files/images/<span class="es4">{$id}</span>/image/origin.png&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="sy1">?&gt;</span></div></div>
<p><span id="more-131"></span><br />
Repare que no &#8220;return&#8221; você passa o caminho &#8220;/files/<strong>images</strong>/{$id}/image/origin.png<br />
Esse diterório &#8220;images&#8221; seria no caso, onde o upload das imagens seriam feitas.<br />
Isso você fez manualmente, mas essa forma que vou mostrar, é simples, porém eficaz.</p>
<p>O upload da imagem, é feito pela controller, onde você passa a extenção, o tamanho e o nome da imagem.<br />
Como vou mostrar passo-a-passo, vou criar também a controller, que foi onde me surgiu a idéia.</p>
<div class="codecolorer-container php vibrant" style="overflow:auto;white-space:nowrap;width:700px"><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="kw2">&lt;?php</span><br />
<span class="kw2">class</span> ImagesController <span class="kw2">extends</span> AdminController <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw2">var</span> <span class="re0">$name</span> <span class="sy0">=</span> <span class="st0">&quot;Images&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw2">var</span> <span class="re0">$helpers</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="st0">&quot;HImages&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
&nbsp; &nbsp; <span class="kw2">var</span> <span class="re0">$files</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;image&quot;</span> <span class="sy0">=&gt;</span> <span class="kw3">array</span><span class="br0">&#40;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;thumb&quot;</span> <span class="sy0">=&gt;</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="st0">&quot;type&quot;</span> &nbsp;<span class="sy0">=&gt;</span> <span class="st0">&quot;crop&quot;</span><span class="sy0">,</span> <span class="st0">&quot;ext&quot;</span> <span class="sy0">=&gt;</span> <span class="st0">&quot;jpg&quot;</span><span class="sy0">,</span> <span class="st0">&quot;width&quot;</span> <span class="sy0">=&gt;</span> <span class="nu0">124</span><span class="sy0">,</span> <span class="st0">&quot;height&quot;</span> <span class="sy0">=&gt;</span> <span class="nu0">86</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#41;</span><br />
&nbsp; &nbsp; <span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw2">function</span> index<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span><br />
<span class="sy1">?&gt;</span><br />
?&gt;</div></div>
<p>Com a controller criada, temos o $name, que é isso que vamos usar para o nosso helper.<br />
Bom, vamos la?</p>
<p>Agora vamos criar o helper.</p>
<p>vou usar o $name da nossa controller para criar o diterório, passando o name da controller.<br />
No caso, temos que trocar o $name por $controller, pois do contrário não será possivel mostrar a image, já que quando formos mostrar na view, ela não vai saber o que é, passando a $controller, fica mais facil de identificar, desse modo, em nossa view, passamos um parametro para ela, assim ela saberá qual é a controller que irá usar, $this->params["controller"], esse é o parametro que temos que passar, para que seja mostrada a imagem exatamente.</p>
<div class="codecolorer-container php vibrant" style="overflow:auto;white-space:nowrap;width:700px"><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="kw2">&lt;?php</span> <span class="kw3">echo</span> <span class="re0">$hImages</span><span class="sy0">-&gt;</span><span class="me1">image</span><span class="br0">&#40;</span><span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">params</span><span class="br0">&#91;</span><span class="st0">&quot;controller&quot;</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="re0">$page</span><span class="br0">&#91;</span><span class="st0">&quot;Page&quot;</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&quot;id&quot;</span><span class="br0">&#93;</span><span class="sy1">?&gt;</span></div></div>
<p>Temos o seguinte código.</p>
<div class="codecolorer-container php vibrant" style="overflow:auto;white-space:nowrap;width:700px"><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="kw2">&lt;?php</span><br />
&nbsp; &nbsp; <span class="kw2">class</span> HImagesHelper <span class="kw2">extends</span> Helper<span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> <span class="re0">$helpers</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="st0">&quot;Html&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">function</span> image<span class="br0">&#40;</span><span class="re0">$controller</span><span class="sy0">,</span> <span class="re0">$id</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">Html</span><span class="sy0">-&gt;</span><span class="me1">image</span><span class="br0">&#40;</span><span class="st0">&quot;/files/<span class="es4">{$controller}</span>/<span class="es4">{$id}</span>/image/origin.png&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="sy1">?&gt;</span></div></div>
<p>Repare que eu passo mais um parametro para o método image, a ($controller},<br />
neste caso, vai servir para criar o ditetório do upload com o $name da controller,  e passamos esse parametro para o caminho, trocando o &#8220;images&#8221; por &#8220;{$controller}&#8221;, isso faz com que se crie o diterório automaticamente<br />
com o nome da controller, deste modo, não precisamos ficar criando um helper para cada página que terá um upload.</p>
<p>Gostaram?<br />
Então, até a próxima.</p>
]]></content:encoded>
			<wfw:commentRss>http://flaviomuniz.com/blog/helper-para-upload-com-cakephp/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
