<?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>Joaquín Nuñez &#187; css</title>
	<atom:link href="http://joaquinnunez.cl/blog/tag/css/feed/" rel="self" type="application/rss+xml" />
	<link>http://joaquinnunez.cl/blog</link>
	<description>web2.0, symfony, jquery, javascript, php, web, develpment</description>
	<lastBuildDate>Thu, 06 Oct 2011 19:44:07 +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>jquery css cleaner</title>
		<link>http://joaquinnunez.cl/blog/2009/10/06/jquery-css-cleaner/</link>
		<comments>http://joaquinnunez.cl/blog/2009/10/06/jquery-css-cleaner/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 14:45:34 +0000</pubDate>
		<dc:creator>Joaquín Núñez</dc:creator>
				<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[cleaner]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[light]]></category>
		<category><![CDATA[loading time]]></category>
		<category><![CDATA[optimizing css]]></category>
		<category><![CDATA[unused css]]></category>

		<guid isPermaLink="false">http://joaquinnunez.cl/blog/?p=520</guid>
		<description><![CDATA[this helper it&#8217;ll help you with the recognition of unused css selectors and properties/values, so you could delete this lines of your css file in order to make it lighter. if you are this kind of person worried about the loading time, optimizing everything, you would find this script very useful and you&#8217;ll love it. [...]]]></description>
			<content:encoded><![CDATA[<p>this helper it&#8217;ll help you with the recognition of unused css selectors and properties/values, so you could delete this lines of your css file in order to make it lighter.</p>
<p>if you are this kind of person worried about the loading time, optimizing everything, you would find this script very useful and you&#8217;ll love it.</p>
<p>i&#8217;ve improved the style of this script and the last one for make it more presentable and useful, so enjoy it</p>
<p>(again) this script with a css compressor like <a title="css compressor" href="http://www.cssdrive.com/index.php/main/csscompressor">this</a> or <a title="another css compressor" href="http://www.cleancss.com/">this</a> are a complet and useful tools for make your css files lighter</p>
<p><strong style="font-size:18px;">put this code in your html to try the script, you will see a box with the list of unused css in the right bottom</strong></p>
<div class="codesnip-container" >
<div class="html4strict codesnip" style="font-family:monospace;"><span class="sc2">&lt;<a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;http://joaquinnunez.cl/download/jquery.css.cleaner.js&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a>&gt;</span></div>
</div>
<p>greetings</p>
]]></content:encoded>
			<wfw:commentRss>http://joaquinnunez.cl/blog/2009/10/06/jquery-css-cleaner/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Horizontal ul li menu</title>
		<link>http://joaquinnunez.cl/blog/2009/06/08/horizontal-ul-li-menu/</link>
		<comments>http://joaquinnunez.cl/blog/2009/06/08/horizontal-ul-li-menu/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 00:55:25 +0000</pubDate>
		<dc:creator>Joaquín Núñez</dc:creator>
				<category><![CDATA[html]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[li]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[menu]]></category>
		<category><![CDATA[ul]]></category>

		<guid isPermaLink="false">http://joaquinnunez.cl/blog/?p=640</guid>
		<description><![CDATA[&#60;style&#62; &#60;!-- ul li&#123; display:inline; list-style-type:none; &#125; --&#62; &#60;/style&#62;]]></description>
			<content:encoded><![CDATA[<pre>
<div class="codesnip-container" >
<div class="css codesnip" style="font-family:monospace;">&lt;style<span class="sy0">&gt;</span>
&lt;!--
ul li<span class="br0">&#123;</span>
<span class="kw1">display</span><span class="sy0">:</span><span class="kw2">inline</span><span class="sy0">;</span>
<span class="kw1">list-style-type</span><span class="sy0">:</span><span class="kw2">none</span><span class="sy0">;</span>
<span class="br0">&#125;</span> --<span class="sy0">&gt;</span>
&lt;/style<span class="sy0">&gt;</span></div>
</div>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://joaquinnunez.cl/blog/2009/06/08/horizontal-ul-li-menu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to get a background image into an html link</title>
		<link>http://joaquinnunez.cl/blog/2009/06/08/how-to-get-a-background-image-into-an-html-link/</link>
		<comments>http://joaquinnunez.cl/blog/2009/06/08/how-to-get-a-background-image-into-an-html-link/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 00:44:24 +0000</pubDate>
		<dc:creator>Joaquín Núñez</dc:creator>
				<category><![CDATA[html]]></category>
		<category><![CDATA[background image]]></category>
		<category><![CDATA[button]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[link]]></category>

		<guid isPermaLink="false">http://joaquinnunez.cl/blog/?p=637</guid>
		<description><![CDATA[&#60;style&#62; &#60;!-- a &#123; background:#FFFFFF none no-repeat scroll 5% 40%; border:0 none; color:#666666; font-size:11px; padding:2px 4px 3px 26px; background-image: url&#40;/images/email.png&#41;; &#125; --&#62; &#60;/style&#62; &#60;a href=&#34;email.html&#34;&#62;Enviar email&#60;/a&#62; Es con una imagen de 16&#215;16, se ve bastante bien.]]></description>
			<content:encoded><![CDATA[<pre>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="sy0">&lt;</span>style<span class="sy0">&gt;</span>
<span class="sy0">&lt;!</span>--
a <span class="br0">&#123;</span>
background:<span class="co0">#FFFFFF none no-repeat scroll 5% 40%;</span>
border:0 none;
color:<span class="co0">#666666;</span>
font-size:11px;
padding:2px 4px 3px 26px;
background-image: url<span class="br0">&#40;</span><span class="sy0">/</span>images<span class="sy0">/</span>email.png<span class="br0">&#41;</span>;
<span class="br0">&#125;</span>
--<span class="sy0">&gt;</span>
<span class="sy0">&lt;/</span>style<span class="sy0">&gt;</span>
<span class="sy0">&lt;</span>a <span class="re2">href</span>=<span class="st0">&quot;email.html&quot;</span><span class="sy0">&gt;</span>Enviar email<span class="sy0">&lt;/</span>a<span class="sy0">&gt;</span></div>
</div>
</pre>
<p>Es con una imagen de 16&#215;16, se ve bastante bien.</p>
]]></content:encoded>
			<wfw:commentRss>http://joaquinnunez.cl/blog/2009/06/08/how-to-get-a-background-image-into-an-html-link/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>estilos para cajas de mensajes</title>
		<link>http://joaquinnunez.cl/blog/2009/03/06/estilos-para-cajas-de-mensajes/</link>
		<comments>http://joaquinnunez.cl/blog/2009/03/06/estilos-para-cajas-de-mensajes/#comments</comments>
		<pubDate>Fri, 06 Mar 2009 22:23:15 +0000</pubDate>
		<dc:creator>Joaquín Núñez</dc:creator>
				<category><![CDATA[html]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[mensajes informativos]]></category>

		<guid isPermaLink="false">http://joaquinnunez.cl/blog/?p=378</guid>
		<description><![CDATA[Un post cortito, si no te gustaron los estilos para cajas de los post anteriores o si los has usado mucho y quieres cambiarlos aquí, aquí, aquí, aquí y aquí hay muchas alternativas para variados gustos. Incluso si quieres te puedes robar los estilos de la wikipedia que me imagino deben estar bajo licencia CC. [...]]]></description>
			<content:encoded><![CDATA[<p>Un post cortito, si no te gustaron los estilos para cajas de los <a href="http://joaquinnunez.cl/blog/2009/03/04/sistema-de-mensajes-para-symfony-parte-2-demo/">post</a> <a href="http://joaquinnunez.cl/blog/2009/02/12/sistema-de-mensajes-para-symfony-parte-1/">anteriores</a> o si los has usado mucho y quieres cambiarlos <a href="http://woork.blogspot.com/2008/03/css-message-box-collection.html">aquí</a>, <a href="http://www.bioneural.net/2006/04/01/create-a-valid-css-alert-message/">aquí</a>, <a href="http://www.mattvarone.com/web-design/message-box-with-css/">aquí</a>, <a href="http://www.templamatic.com/blog.asp?BlogID=18">aquí</a> y <a href="http://www.eburhan.com/araclar/css-message-boxes/demo/">aquí</a> hay muchas alternativas para variados gustos.</p>
<p>Incluso si quieres te puedes robar los <a href="http://en.wikipedia.org/wiki/Wikipedia:Article_message_boxes">estilos de la wikipedia</a> que me imagino deben estar bajo licencia CC.</p>
<p>Si quieres sólo jugar un rato quizás <a href="http://www.warninglabelgenerator.com/">este</a> o <a href="http://atom.smasher.org/error/">este</a> te sirva. Si eres vago, dejalo así no más &#8230; es menos trabajo que hacer y si eres diseñador haz el tuyo propio y compartelo =)</p>
]]></content:encoded>
			<wfw:commentRss>http://joaquinnunez.cl/blog/2009/03/06/estilos-para-cajas-de-mensajes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sistema de mensajes para Symfony, parte 2 + demo</title>
		<link>http://joaquinnunez.cl/blog/2009/03/04/sistema-de-mensajes-para-symfony-parte-2-demo/</link>
		<comments>http://joaquinnunez.cl/blog/2009/03/04/sistema-de-mensajes-para-symfony-parte-2-demo/#comments</comments>
		<pubDate>Wed, 04 Mar 2009 21:05:06 +0000</pubDate>
		<dc:creator>Joaquín Núñez</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[mensajes informativos]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://joaquinnunez.cl/blog/?p=361</guid>
		<description><![CDATA[Tal como lo había comentado hace 3 semanas atrás, aquí esta la segunda parte del sistema de mensajes para symfony. Ya habia comentado como hacer mensajes de acciones exitosa y mensajes de error de validaciones pues me quedan los warnings y los mensajes informativos. Con respecto a los warnings, no son nada muy dificil, sólo [...]]]></description>
			<content:encoded><![CDATA[<p>Tal como lo <a href="http://joaquinnunez.cl/blog/2009/02/12/sistema-de-mensajes-para-symfony-parte-1/">había comentado hace 3 semanas atrás</a>, aquí esta la segunda parte del sistema de mensajes para symfony.</p>
<p>Ya habia comentado como hacer mensajes de acciones exitosa y mensajes de error de validaciones pues me quedan los warnings y los mensajes informativos.</p>
<p>Con respecto a los warnings, no son nada muy dificil, sólo un div que advierta al usuario sobre X cosa. Las razones para mostrar un warning pueden ser variadas. Desde que una tarea no se puede ejecutar por X motivos, una tarea que fue ejecutada pero con ciertos problemas menores, una advertencia para ser precavido en lo que haga el usuario, etc.</p>
<p>El código para mostrar un warning es este:</p>
<pre>
<div class="codesnip-container" >
<div class="html4strict codesnip" style="font-family:monospace;"><span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;warning&quot;</span>&gt;</span>
&nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/ul.html"><span class="kw2">ul</span></a>&gt;</span>
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span>Oh no! hemos encontrado un problema acerca de xxYYzz solucionalo, e intentalo de nuevo<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span>
&nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/ul.html"><span class="kw2">ul</span></a>&gt;</span>
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span></div>
</div>
</pre>
<p>Finalmente con los mensajes informativos la cosa se pone un poco más entretenida.</p>
<p>La idea detrás de los mensajes informativos es que cierta información se muestre a los usuarios cuando esta se crea, pero a medida que los usuarios vayan cerrando estos mensajes/información, no les aparezcan más a ellos.</p>
<p>Esto sirve principalmente para un usuario que conoce un sitio nuevo y se le da la información necesaria para que aprenda a usar las funcionalidades básicas, o para mostrar noticias o cosas similares.</p>
<p>Un buen ejemplo es el que me tope hoy en facebook, cuando me conecte salia este mensaje:</p>
<p><img class="aligncenter size-full wp-image-365" title="mensaje-info-facebook" src="http://joaquinnunez.cl/blog/wp-content/uploads/2009/03/mensaje-info-facebook.png" alt="mensaje-info-facebook" width="602" height="84" />Curiosamente aprete en cerrar y no apareció más =)</p>
<p>La implementación que use en el <a href="http://joaquinnunez.cl/mensajes-symfony/">demo</a> es bastante sencilla, la verdad no quise <acronym title="solo de vago">complicarme mucho para hacerlo</acronym>, pero si necesitan algo un poco más serio en la <a href="http://cli.gs/mensajes-symfony">descarga</a> hay un schema.yml tentativo que podrás usar y también deberás reescribir los metodos del myUser.class.php.</p>
<p>Para obtener mensajes como estos, se necesitan 2 cosas, 1.- poner los mensajes en donde se quiere que aparezcan y 2.- gestionar que mensajes le aparecen a que usuarios.</p>
<p>Para poner un mensaje informativo como el anterior se puede hacer lo siguiente:</p>
<pre>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="kw2">&lt;?php</span> <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$sf_user</span><span class="sy0">-&gt;</span><span class="me1">hasInfo</span><span class="br0">&#40;</span><span class="nu0">2</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">:</span> <span class="sy1">?&gt;</span>
&nbsp; &lt;div class=&quot;info&quot; id=&quot;2&quot;&gt;
&nbsp; &nbsp; &lt;img src=&quot;/images/close.png&quot; class=&quot;close&quot;/&gt;
&nbsp; &nbsp; &lt;ul&gt;
&nbsp; &nbsp; &nbsp; &lt;li&gt;Vamos a hacer cambios en la página de inicio muy pronto.&lt;/li&gt;
&nbsp; &nbsp; &nbsp; &lt;li&gt;Familiarizate con las nuevas funciones. Estos cambios van a producirse muy ponto ... bla bla ...&lt;/li&gt;
&nbsp; &nbsp; &lt;/ul&gt;
&nbsp; &lt;/div&gt;
<span class="kw2">&lt;?php</span> <span class="kw1">endif</span><span class="sy0">;</span> <span class="sy1">?&gt;</span></div>
</div>
</pre>
<p>Y estos metodos en el myUser.class.php:</p>
<pre>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="kw2">public</span> <span class="kw2">function</span> init<span class="br0">&#40;</span><span class="re0">$force</span> <span class="sy0">=</span> <span class="kw4">false</span><span class="br0">&#41;</span>
<span class="br0">&#123;</span>
&nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$force</span> <span class="sy0">||</span> <span class="sy0">!</span><span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">hasAttribute</span><span class="br0">&#40;</span>1<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
&nbsp; &nbsp; <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">setAttribute</span><span class="br0">&#40;</span>1<span class="sy0">,</span> <span class="kw4">true</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">setAttribute</span><span class="br0">&#40;</span>2<span class="sy0">,</span> <span class="kw4">true</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; <span class="br0">&#125;</span>
<span class="br0">&#125;</span>

<span class="kw2">public</span> <span class="kw2">function</span> hasInfo<span class="br0">&#40;</span><span class="re0">$info_id</span><span class="br0">&#41;</span>
<span class="br0">&#123;</span>
&nbsp; <span class="kw1">return</span> <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">getAttribute</span><span class="br0">&#40;</span><span class="re0">$info_id</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span>

<span class="kw2">public</span> <span class="kw2">function</span> delInfo<span class="br0">&#40;</span><span class="re0">$info_id</span><span class="br0">&#41;</span>
<span class="br0">&#123;</span>
&nbsp; <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">setAttribute</span><span class="br0">&#40;</span><span class="re0">$info_id</span><span class="sy0">,</span> <span class="kw4">false</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span></div>
</div>
</pre>
<p>También para quitar los info se necesita el siguiente código jQuery en el partial _messages.php:</p>
<pre>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;">$<span class="br0">&#40;</span><span class="st0">'.info .close'</span><span class="br0">&#41;</span>.<span class="me1">click</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
&nbsp; <span class="kw2">var</span> id <span class="sy0">=</span> $<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">parent</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">attr</span><span class="br0">&#40;</span><span class="st0">'id'</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; $<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">parent</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">fadeOut</span><span class="br0">&#40;</span><span class="st0">'slow'</span><span class="sy0">,</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
&nbsp; &nbsp; $.<span class="me1">ajax</span><span class="br0">&#40;</span><span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; type<span class="sy0">:</span><span class="st0">'POST'</span><span class="sy0">,</span>
&nbsp; &nbsp; &nbsp; dataType<span class="sy0">:</span><span class="st0">'html'</span><span class="sy0">,</span>
&nbsp; &nbsp; &nbsp; url<span class="sy0">:</span><span class="st0">'/id/'</span><span class="sy0">+</span>id
&nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; $<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">remove</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
</pre>
<p>Todo esto lo puedes encontrar en la <a href="http://cli.gs/mensajes-symfony">descarga</a> y para verlo funcionar acá el <a href="http://joaquinnunez.cl/mensajes-symfony/">demo</a>.</p>
<p>Les recuerdo que la descarga y el demo estan con  SYMFONY 1.0 (obviamente es completamente migrable) &#8230;&#8230; y esta sin freeze, las funcionalidades para que desaparezcan los mensajes estan escritas en jQuery por lo que si alguien las puede hacer en prototype u otro se agradecerá.</p>
]]></content:encoded>
			<wfw:commentRss>http://joaquinnunez.cl/blog/2009/03/04/sistema-de-mensajes-para-symfony-parte-2-demo/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Sistema de mensajes para Symfony, parte 1</title>
		<link>http://joaquinnunez.cl/blog/2009/02/12/sistema-de-mensajes-para-symfony-parte-1/</link>
		<comments>http://joaquinnunez.cl/blog/2009/02/12/sistema-de-mensajes-para-symfony-parte-1/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 23:28:32 +0000</pubDate>
		<dc:creator>Joaquín Núñez</dc:creator>
				<category><![CDATA[jquery]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[symfony]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://joaquinnunez.cl/blog/?p=346</guid>
		<description><![CDATA[Que es? Este sistema de mensajes para symfony es simplemente una manera fácil y sencilla de tener mensajes como los de acá incorporados en tus acciones. Si más de una vez envidiaste el mensaje del &#8220;admin-generator&#8221; que dice en una linda cajita verde &#8220;Your modifications have been saved&#8221;, este post es para ti. Que obtendré [...]]]></description>
			<content:encoded><![CDATA[<h2>Que es?</h2>
<p>Este sistema de mensajes para symfony es simplemente una manera fácil y sencilla de tener mensajes como los de <a href="http://css.dzone.com/news/css-message-boxes-different-me">acá</a> incorporados en tus acciones. Si más de una vez envidiaste el mensaje del &#8220;admin-generator&#8221; que dice  en una linda cajita verde &#8220;Your modifications have been saved&#8221;, este post es para ti.</p>
<h2>Que obtendré con esto?</h2>
<p>Obtendrás mensajes de acciones exitosas, mensajes de errores, warnings y mensajes informativos con un diseño <a href="http://css.dzone.com/news/css-message-boxes-different-me">bastante decente</a> (aunque lo puedes cambiar si quieres), faciles de usar y con un código de uso menor. Además evitarás tener que crear acciones nuevas o agregar mayor lógica a las acciones para mostrar mensajes.</p>
<h2>Que necesito?</h2>
<p>Solo un par de minutos para implementarlo y entenderlo&#8230;. nada más.</p>
<p>Bueno basta de blabla y vamos a lo que nos interesa.</p>
<p>En esta primera parte y para no tener un post muy largo, sólo pondre el código necesario para los mensajes de errores (errores de validación) y los mensajes de acciones exitosas.</p>
<p>Tal como había comentado tomé de <a href="http://css.dzone.com/news/css-message-boxes-different-me">esta página</a> el diseño para los mensajes al que agregue sólo un cambio que mencionaré más adelante&#8230;. aquí necesitarás el código css y las imagenes para las cajas de mensajes. (Cuando publique la segunda parte habilito la descarga de todo el contenido&#8230; pero si estas ansioso, puedes descargar las imagenes de la página con el css).</p>
<p>El código css es el siguiente:</p>
<pre>
<div class="codesnip-container" >
<div class="css codesnip" style="font-family:monospace;"><span class="co1">@CHARSET &quot;UTF-8&quot;;</span>

<span class="re1">.info</span><span class="sy0">,</span> <span class="re1">.success</span><span class="sy0">,</span> <span class="re1">.warning</span><span class="sy0">,</span> <span class="re1">.error</span><span class="sy0">,</span> <span class="re1">.validation</span> <span class="br0">&#123;</span>
<span class="kw1">border</span><span class="sy0">:</span> <span class="re3">1px</span> <span class="kw2">solid</span><span class="sy0">;</span>
<span class="kw1">margin</span><span class="sy0">:</span> <span class="re3">10px</span> <span class="re3">0px</span><span class="sy0">;</span>
<span class="kw1">padding</span><span class="sy0">:</span><span class="re3">15px</span> <span class="re3">10px</span> <span class="re3">15px</span> <span class="re3">50px</span><span class="sy0">;</span>
<span class="kw1">background-repeat</span><span class="sy0">:</span> <span class="kw2">no-repeat</span><span class="sy0">;</span>
<span class="kw1">background-position</span><span class="sy0">:</span> <span class="re3">10px</span> <span class="kw2">center</span><span class="sy0">;</span>
<span class="br0">&#125;</span>

<span class="re1">.info</span> ul<span class="sy0">,</span> <span class="re1">.success</span> ul<span class="sy0">,</span> <span class="re1">.warning</span> ul<span class="sy0">,</span> <span class="re1">.error</span> ul<span class="sy0">,</span> <span class="re1">.validation</span> ul <span class="br0">&#123;</span>
<span class="kw1">margin</span><span class="sy0">:</span> <span class="re3">0px</span><span class="sy0">;</span>
<span class="br0">&#125;</span>

<span class="re1">.info</span> <span class="br0">&#123;</span>
<span class="kw1">color</span><span class="sy0">:</span> <span class="re0">#00529B</span><span class="sy0">;</span>
<span class="kw1">background-color</span><span class="sy0">:</span> <span class="re0">#BDE5F8</span><span class="sy0">;</span>
<span class="kw1">background-image</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">'/images/info.png'</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
<span class="re1">.success</span> <span class="br0">&#123;</span>
<span class="kw1">color</span><span class="sy0">:</span> <span class="re0">#4F8A10</span><span class="sy0">;</span>
<span class="kw1">background-color</span><span class="sy0">:</span> <span class="re0">#DFF2BF</span><span class="sy0">;</span>
<span class="kw1">background-image</span><span class="sy0">:</span><span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">'/images/success.png'</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
<span class="re1">.warning</span> <span class="br0">&#123;</span>
<span class="kw1">color</span><span class="sy0">:</span> <span class="re0">#9F6000</span><span class="sy0">;</span>
<span class="kw1">background-color</span><span class="sy0">:</span> <span class="re0">#FEEFB3</span><span class="sy0">;</span>
<span class="kw1">background-image</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">'/images/warning.png'</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
<span class="re1">.error</span> <span class="br0">&#123;</span>
<span class="kw1">color</span><span class="sy0">:</span> <span class="re0">#D8000C</span><span class="sy0">;</span>
<span class="kw1">background-color</span><span class="sy0">:</span> <span class="re0">#FFBABA</span><span class="sy0">;</span>
<span class="kw1">background-image</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">'/images/error.png'</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span>

<span class="re1">.info</span> img<span class="re1">.close</span><span class="sy0">,</span> <span class="re1">.success</span> img<span class="re1">.close</span><span class="sy0">,</span> <span class="re1">.warning</span> img<span class="re1">.close</span><span class="sy0">,</span> <span class="re1">.error</span> img<span class="re1">.close</span><span class="sy0">,</span> <span class="re1">.validation</span> img<span class="re1">.closes</span> <span class="br0">&#123;</span>
<span class="kw1">float</span><span class="sy0">:</span><span class="kw1">right</span><span class="sy0">;</span>
<span class="kw1">margin-right</span><span class="sy0">:</span><span class="re3">-2px</span><span class="sy0">;</span>
<span class="kw1">margin-top</span><span class="sy0">:</span><span class="re3">-5px</span><span class="sy0">;</span>
<span class="br0">&#125;</span></div>
</div>
</pre>
<p>Este código php puede ir directamente en el layout, aunque prefiero ponerlo en un partial aparte e incluirlo en el layout.</p>
<p>Para que el script funcione debe incluirse jQuery.</p>
<pre>
<div class="codesnip-container" >
<div class="html4strict codesnip" style="font-family:monospace;"><span class="sc2">&lt;<a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span>&gt;</span>
<span class="sc-1">&lt;!--</span>
<span class="sc-1">$(document).ready(function(){</span>
<span class="sc-1"> &nbsp;// mensaje de exito, si clickean en la cruz se saca</span>
<span class="sc-1"> &nbsp;$('.success .close').click(function(){</span>
<span class="sc-1"> &nbsp; &nbsp;$(this).parent().fadeOut('slow', function(){</span>
<span class="sc-1">&nbsp; &nbsp; &nbsp; $(this).remove(); </span>
<span class="sc-1"> &nbsp; &nbsp;});</span>
<span class="sc-1"> &nbsp;});</span>

<span class="sc-1"> &nbsp;// descomentar esto para activar el auto-quitado del mensaje en 5 segundos</span>
<span class="sc-1"> &nbsp;// si el usuario no lo a quitado primero =)</span>
<span class="sc-1"> &nbsp;//setTimeout('$(&quot;.success .close&quot;).trigger(&quot;click&quot;)', 5000);</span>
<span class="sc-1">});</span>
<span class="sc-1">//--&gt;</span>
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a>&gt;</span>

<span class="sc2">&lt;?php <span class="sy0">//</span>se muestran los errores ?&gt;</span>
<span class="sc2">&lt;?php if <span class="br0">&#40;</span>$sf_request-&gt;</span>hasErrors()): ?&gt;
<span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;error&quot;</span>&gt;</span>
&nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/ul.html"><span class="kw2">ul</span></a>&gt;</span>
&nbsp; &nbsp; <span class="sc2">&lt;?php foreach <span class="br0">&#40;</span>$sf_request-&gt;</span>getErrors() as $error): ?&gt;
&nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;?php echo $error ?&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span>
&nbsp; &nbsp; <span class="sc2">&lt;?php endforeach; ?&gt;</span>
&nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/ul.html"><span class="kw2">ul</span></a>&gt;</span>
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span>
<span class="sc2">&lt;?php endif; ?&gt;</span>

<span class="sc2">&lt;?php <span class="sy0">//</span> se muestra el mensaje de acción exitosa, si es que lo hay ?&gt;</span>
<span class="sc2">&lt;?php if <span class="br0">&#40;</span>$sf_flash-&gt;</span>has('success')): ?&gt;
&nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;success&quot;</span>&gt;</span>
&nbsp; &nbsp; <span class="sc2">&lt;?php <span class="sy0">//</span> imagen usada para cerrar el mensaje de exito ?&gt;</span>
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/img.html"><span class="kw2">img</span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;/images/close.png&quot;</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;close&quot;</span><span class="sy0">/</span>&gt;</span>
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/ul.html"><span class="kw2">ul</span></a>&gt;</span>
&nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;&lt;?php echo $sf_flash-&gt;</span>get('success') ?&gt;<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span>
&nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/ul.html"><span class="kw2">ul</span></a>&gt;</span>
&nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span>
<span class="sc2">&lt;?php <span class="sy0">//</span> lo quito manualmente de la sesion porque si se hizo un forward no se sale ?&gt;</span>
<span class="sc2">&lt;?php $sf_flash-&gt;</span>remove('success') ?&gt;
<span class="sc2">&lt;?php endif; ?&gt;</span>
<span class="sc2">&lt;?php $sf_flash-&gt;</span>clear() ?&gt;</div>
</div>
</pre>
<p>Finalmente con este código fuente puedes tener tus errores de validación en una caja bastante presentable.</p>
<p>Para agregar un mensaje de acción exitosa sólo debes agregar a la acción el siguiente código:<br />
<span class="code">$this-&gt;setFlash(&#8216;success&#8217;, &#8216;Mensaje de acción exitosa&#8217;);</span><br />
En la segunda parte subiré el código fuente, explicaré como implementar un sistema para mostrar información de ayuda a los usuarios en el cual los mensajes no vuelven a aparecer si el usuario ha cerrado el mensaje y mencionaré como usar los mensajes de warning.</p>
<p>Saludos</p>
]]></content:encoded>
			<wfw:commentRss>http://joaquinnunez.cl/blog/2009/02/12/sistema-de-mensajes-para-symfony-parte-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CSS Table Gallery</title>
		<link>http://joaquinnunez.cl/blog/2008/11/18/css-table-gallery/</link>
		<comments>http://joaquinnunez.cl/blog/2008/11/18/css-table-gallery/#comments</comments>
		<pubDate>Tue, 18 Nov 2008 12:59:25 +0000</pubDate>
		<dc:creator>Joaquín Núñez</dc:creator>
				<category><![CDATA[html]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://joaquinnunez.cl/blog/?p=58</guid>
		<description><![CDATA[Un post bien cortito&#8230;&#8230;, les dejo un enlace de una galeria de diseños de tablas html, 98 diseños para elegir y aunque le cambiaría la navegación, me ha servido mucho en más de una ocasión.]]></description>
			<content:encoded><![CDATA[<p>Un post bien cortito&#8230;&#8230;, les dejo un enlace de una <a title="Css Table Gallery" href="http://icant.co.uk/csstablegallery/index.php" target="_blank">galeria de diseños de tablas html</a>, 98 diseños para elegir y aunque le cambiaría la navegación, me ha servido mucho en más de una ocasión.</p>
]]></content:encoded>
			<wfw:commentRss>http://joaquinnunez.cl/blog/2008/11/18/css-table-gallery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

