<?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>Quenerapú &#187; template</title>
	<atom:link href="http://quenerapu.com/etiquetas/template/feed/" rel="self" type="application/rss+xml" />
	<link>http://quenerapu.com</link>
	<description>Sentado delante de un ordenador desde 1982. ¿De qué voy a hablar, si no?</description>
	<lastBuildDate>Mon, 12 Jul 2010 09:09:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>El layout con columnas más simple del mundo (probablemente)</title>
		<link>http://quenerapu.com/css/el-layout-con-columnas-mas-simple-del-mundo-probablemente/</link>
		<comments>http://quenerapu.com/css/el-layout-con-columnas-mas-simple-del-mundo-probablemente/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 16:19:54 +0000</pubDate>
		<dc:creator>Quenerapú</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[crossbrowser]]></category>
		<category><![CDATA[minimal]]></category>
		<category><![CDATA[template]]></category>

		<guid isPermaLink="false">http://quenerapu.com/?p=125</guid>
		<description><![CDATA[Hace tiempo que deseaba terminar con mis quebraderos de cabeza al diseñar sitios web con columnas. Y creo que al fin lo he conseguido.]]></description>
			<content:encoded><![CDATA[<p>Hace mucho tiempo que deseaba dar definitivamente por cerrados mis quebraderos de cabeza al diseñar sitios web con columnas. Y creo que al fin lo he conseguido.</p>
<pre class="brush: xml;">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;
 &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html;charset=utf-8&quot; /&gt;
&lt;title&gt;TinyCSS&lt;/title&gt;
&lt;style type=&quot;text/css&quot;&gt;
*{margin:0;padding:0;}
h1{font-size:1em;}
.header{border-bottom:1px solid #aaa;}
.container{overflow:hidden;height:100% !important;}
.main{width:500px;margin-bottom:-1000px;padding-bottom:1000px;float:left;}
.sideBar{margin-bottom:-1000px;padding-bottom:1000px;float:right;}
.s1{width:160px;border-left:1px solid #aaa;}
.s2{width:300px;border-left:1px solid #aaa;}
.footer{border-top:1px solid #aaa;}
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div class=&quot;header&quot;&gt;&lt;h1&gt;Header&lt;/h1&gt;&lt;/div&gt;
&lt;div class=&quot;container&quot;&gt;
	&lt;div class=&quot;sideBar s2&quot;&gt;&lt;h1&gt;Sidebar 2&lt;/h1&gt;&lt;/div&gt;
	&lt;div class=&quot;sideBar s1&quot;&gt;&lt;h1&gt;Sidebar 1&lt;/h1&gt;&lt;/div&gt;
	&lt;div class=&quot;main&quot;&gt;&lt;h1&gt;Main&lt;/h1&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;footer&quot;&gt;&lt;h1&gt;Footer&lt;/h1&gt;&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Si bien el resultado final es bastante feo (<a href="http://quenerapu.com/ejemplos/tinycss/01/">puedes ver una demo aquí</a>) el peso de este documento es de menos de 1Kb. y es compatible con <strong>Internet Explorer</strong> (versión 6 incluída), <strong>Firefox</strong>, <strong>Chrome</strong>, <strong>Opera</strong> y <strong>Safari</strong> (<a href="http://browsershots.org/http://quenerapu.com/ejemplos/tinycss/02/">Browsershots.org</a>).</p>
<p>No será difícil para un diseñador hábil con las CSS partir de este esqueleto para crear algo mucho más agradable a la vista.</p>
<p>Lo que más me gusta es que los <strong>&lt;div&gt;</strong> de las columnas pueden crecer al alto tanto como quieras sin preocuparte por sus vecinas, que se prolongarán en lo vertical para que todas sean iguales (<a href="http://quenerapu.com/ejemplos/tinycss/02/">con unos ejemplos me explico mejor</a>). Para ello no he usado ni javaScript ni el conocido método <a href="http://www.alistapart.com/articles/fauxcolumns/">Faux Columns</a>, sino un truco CSS que consiste en atribuir</p>
<pre class="brush: css; gutter: false;">
margin-bottom:-1000px; padding-bottom:1000px;
</pre>
<p>a cada una de las columnas, y</p>
<pre class="brush: css; gutter: false;">
overflow:hidden;
</pre>
<p>al <strong>&lt;div&gt;</strong> que las contiene.</p>
<p>Y para terminar, es importante recordar que en la línea</p>
<pre class="brush: css; gutter: false;">
.container{overflow:hidden;height:100% !important;}
</pre>
<p><strong>height:100% !important;</strong> son necesarios para que el sistema sea compatible con IE6. <a href="http://ie6update.com">El glorioso día en que IE6 sea desterrado</a> ya no será necesario incluir ese código.</p>
<p>Me ha ayudado mucho un viejo post de <a href="http://www.ejeliot.com/blog/61">Ed Elliot</a>. Gracias Ed!</p>
]]></content:encoded>
			<wfw:commentRss>http://quenerapu.com/css/el-layout-con-columnas-mas-simple-del-mundo-probablemente/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>El sistema de plantillas más simple del mundo (probablemente)</title>
		<link>http://quenerapu.com/php/el-sistema-de-plantillas-mas-simple-del-mundo-probablemente/</link>
		<comments>http://quenerapu.com/php/el-sistema-de-plantillas-mas-simple-del-mundo-probablemente/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 04:23:11 +0000</pubDate>
		<dc:creator>Quenerapú</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[arrays]]></category>
		<category><![CDATA[función]]></category>
		<category><![CDATA[template]]></category>

		<guid isPermaLink="false">http://quenerapu.local/?p=42</guid>
		<description><![CDATA[Un método muy sencillo de separar forma de contenido, con lo que el diseñador web y el programador podrán trabajar simultáneamente.]]></description>
			<content:encoded><![CDATA[<p>Supongamos que acabo de diseñar en HTML una ficha tipo (voy a hacer algo muy básico, sólo para ilustrar):</p>
<pre class="brush: xml;">
&lt;html&gt;
&lt;head&gt;[NOMBRE] [APELLIDO]&lt;/head&gt;
&lt;body&gt;
	&lt;h1&gt;Ficha número    [ID]&lt;/h1&gt;
	&lt;p&gt;&lt;b&gt;Nombre:&lt;/b&gt;   [NOMBRE] [APELLIDO]&lt;/p&gt;
	&lt;p&gt;&lt;b&gt;Edad:&lt;/b&gt;     [EDAD] años&lt;/p&gt;
	&lt;p&gt;&lt;b&gt;Teléfono:&lt;/b&gt; [TELÉFONO]&lt;/p&gt;
	&lt;p&gt;&lt;b&gt;eMail:&lt;/b&gt;    &lt;a href=&quot;mailto:[EMAIL]&quot;&gt;[EMAIL]&lt;/a&gt;&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Y ahora convierto las variables a sintaxis PHP básica, manteniendo el HTML intacto:</p>
<pre class="brush: php;">
&lt;html&gt;
&lt;head&gt;&lt;?=$nombre.' '.$apellido;?&gt;&lt;/head&gt;
&lt;body&gt;
	&lt;h1&gt;Ficha número    &lt;?=$id;?&gt;&lt;/h1&gt;
	&lt;p&gt;&lt;b&gt;Nombre:&lt;/b&gt;   &lt;?=$nombre.' '.$apellido;?&gt;&lt;/p&gt;
	&lt;p&gt;&lt;b&gt;Edad:&lt;/b&gt;     &lt;?=$edad;?&gt; años&lt;/p&gt;
	&lt;p&gt;&lt;b&gt;Teléfono:&lt;/b&gt; &lt;?=$telefono;?&gt;&lt;/p&gt;
	&lt;p&gt;&lt;b&gt;eMail:&lt;/b&gt;    &lt;a href=&quot;mailto:&lt;?=$eMail;?&gt;&quot;&gt;&lt;?=$eMail;?&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>LLamo a esta plantilla «ficha.php» y la guardo en una carpeta «plantillas», por ejemplo. A continuación, en un documento nuevo (que llamaré «index.php», para ser original) declaro la función que sirve para crear contenidos en base a plantillas.</p>
<pre class="brush: php;">
&lt;?php
function tpl($p,$d=array())
	{
	extract($d);
	ob_start();
	require('plantillas/'.$p.'.php');
	return ob_get_clean();
	}
?&gt;
</pre>
<p>Y ya está: No tengo más que llamar a esa función con la info obtenida de la base de datos cada vez que quiera volcarla en pantalla utilizando esa plantilla.</p>
<pre class="brush: php;">
&lt;?php
echo tpl('ficha',
			array(
				'id'=&gt;      123,
				'nombre'=&gt;  'Juan',
				'apellido'=&gt;'Gómez',
				'edad'=&gt;    33,
				'telefono'=&gt;'987654321',
				'eMail'=&gt;   'foo@bar.es'
				)
		);
?&gt;
</pre>
<p>Con ese PHP generamos este HTML:</p>
<pre class="brush: xml;">
&lt;html&gt;
&lt;head&gt;Juan Gómez&lt;/head&gt;
&lt;body&gt;
	&lt;h1&gt;Ficha número    123&lt;/h1&gt;
	&lt;p&gt;&lt;b&gt;Nombre:&lt;/b&gt;   Juan Gómez&lt;/p&gt;
	&lt;p&gt;&lt;b&gt;Edad:&lt;/b&gt;     33 años&lt;/p&gt;
	&lt;p&gt;&lt;b&gt;Teléfono:&lt;/b&gt; 987654321&lt;/p&gt;
	&lt;p&gt;&lt;b&gt;eMail:&lt;/b&gt;    &lt;a href=&quot;mailto:foo@bar.es&quot;&gt;foo@bar.es&lt;/a&gt;&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>La principal ventaja que presenta este método es que estoy separando en la medida de lo posible la forma del contenido. El documento «ficha.php» es fácilmente editable por un diseñador web sin conocimientos de programación PHP (Tan sólo ha de comprender la sintaxis <strong>&lt;?=$variable;?&gt;</strong>, que no es mucho pedir), mientras que el documento «index.php» sólo contiene programación PHP, sin una sola etiqueta HTML molestando por medio, de modo que el programador se centra exclusivamente en la programación.</p>
]]></content:encoded>
			<wfw:commentRss>http://quenerapu.com/php/el-sistema-de-plantillas-mas-simple-del-mundo-probablemente/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
