<?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>zenphp :: blog &#187; Funcionalidades</title>
	<atom:link href="http://blog.zenphp.es/category/funcionalidades/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.zenphp.es</link>
	<description>Escribre tu aplicación como si fuera la última que escribieras</description>
	<lastBuildDate>Tue, 02 Feb 2010 09:03:52 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>XCSS : reinventar la rueda del CSS dinámico</title>
		<link>http://blog.zenphp.es/2010/01/10/xcss-reinventar-la-rueda-del-css-dinamico/</link>
		<comments>http://blog.zenphp.es/2010/01/10/xcss-reinventar-la-rueda-del-css-dinamico/#comments</comments>
		<pubDate>Sun, 10 Jan 2010 22:26:07 +0000</pubDate>
		<dc:creator>juaxix</dc:creator>
				<category><![CDATA[Funcionalidades]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Sistema Gestor Contenidos]]></category>
		<category><![CDATA[clases]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[framework css]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programador php]]></category>
		<category><![CDATA[xcs]]></category>
		<category><![CDATA[xcss]]></category>

		<guid isPermaLink="false">http://blog.zenphp.es/?p=241</guid>
		<description><![CDATA[En Febrero del 2008 diseñé una clase llamada XCS que utilizaba PHP para generar CSS dinámicamente, con la posibilidad de utilizar variables dentro del mismo fichero de reglas de estilo para hacer webs con contenido modificable fácilmente.
Hace poco he encontrado el &#8220;primer framework CSS orientado a objetos&#8221; como lo nombra a sí mismo Anton Pawlik [...]]]></description>
			<content:encoded><![CDATA[<p>En <a href="http://blog.zenphp.es/2008/04/11/construyendo-un-sistema-gestor-de-contenidos-con-zenphp/" target="_blank">Febrero del 2008</a> diseñé <a title="Ver la clase XCS" href="https://forja.rediris.es/plugins/scmsvn/viewcvs.php/trunk/zenphp/clases/clase_zen_xcs.php?root=csl2-zenphp&amp;view=markup" target="_blank">una clase llamada XCS</a> que utilizaba PHP para generar CSS dinámicamente, con la posibilidad de utilizar variables dentro del mismo fichero de <strong>reglas de estilo</strong> para hacer webs con contenido modificable fácilmente.</p>
<p>Hace poco he encontrado el &#8220;primer framework CSS orientado a objetos&#8221; como lo nombra a sí mismo Anton Pawlik su autor, <a href="http://xcss.antpaw.org/">http://xcss.antpaw.org/</a> y que hace precisamente eso,&#8230;sin embargo ha tenido mucho éxito <img src='http://blog.zenphp.es/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>A pesar de su sencillez, (la clase principal no es muy complicada) no se diferencia demasiado de la que escribí basándome en otra al mismo tiempo&#8230;aunque no la he llegado a usar como <a href="http://programadorphp.org">programador php</a>&#8230;</p>
<span class="akst_link"><a href="http://blog.zenphp.es/?p=241&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_241"  class="akst_share_link">Compártelo</a>
</span>]]></content:encoded>
			<wfw:commentRss>http://blog.zenphp.es/2010/01/10/xcss-reinventar-la-rueda-del-css-dinamico/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Complementos de software libre para optimización de webs</title>
		<link>http://blog.zenphp.es/2009/12/11/complementos-de-software-libre-para-optimizacion-de-webs/</link>
		<comments>http://blog.zenphp.es/2009/12/11/complementos-de-software-libre-para-optimizacion-de-webs/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 12:51:12 +0000</pubDate>
		<dc:creator>juaxix</dc:creator>
				<category><![CDATA[Funcionalidades]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[ingeniería del Software]]></category>
		<category><![CDATA[análisis]]></category>
		<category><![CDATA[aplicacion web]]></category>
		<category><![CDATA[complementos]]></category>
		<category><![CDATA[firebug]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[optimización]]></category>
		<category><![CDATA[page speed]]></category>
		<category><![CDATA[pagespeed]]></category>
		<category><![CDATA[programador php]]></category>
		<category><![CDATA[software libre]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[yslow]]></category>

		<guid isPermaLink="false">http://blog.zenphp.es/?p=230</guid>
		<description><![CDATA[
Hace tiempo escribí un artículo sobre complementos de optimización, pero en ese momento no existía Page Speed,  si queréis saber lo que es podéis (si sabéis inglés) escuchar al autor en este vídeo:

Para instarlo ir a la web de Page Speed, previamente debéis haber instalado en vuestro Firefox el componente Firebug.
Es una herramienta genial para [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="size-medium wp-image-231 aligncenter" title="Page Speed for the people!" src="http://blog.zenphp.es/wp-content/uploads/2009/12/people-running-and-jumping-300x211.jpg" alt="Page Speed for the people!" width="300" height="211" /></p>
<p>Hace tiempo escribí un artículo sobre <a title="Ver el artículo ahora!" href="http://blog.zenphp.es/2008/02/17/optimizacion/">complementos de optimización</a>, pero en ese momento no existía <a href="http://code.google.com/intl/es-ES/speed/page-speed/" target="_blank">Page Speed</a>,  si queréis saber lo que es podéis (si sabéis inglés) escuchar al autor en este vídeo:</p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="500" height="405" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/a-9pCfyYPdQ&amp;hl=es_ES&amp;fs=1&amp;color1=0x006699&amp;color2=0x54abd6&amp;border=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="500" height="405" src="http://www.youtube.com/v/a-9pCfyYPdQ&amp;hl=es_ES&amp;fs=1&amp;color1=0x006699&amp;color2=0x54abd6&amp;border=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p style="text-align: left;">Para instarlo ir a la <a href="http://code.google.com/intl/es-ES/speed/page-speed/download.html" target="_blank">web de Page Speed</a>, previamente debéis haber instalado en vuestro <a href="http://www.getfirefox.com">Firefox</a> el componente <a href="http://www.getfirebug.com">Firebug</a>.</p>
<p style="text-align: left;">Es una herramienta genial para conocer los consejos de optimización más técnicos, como por ejemplo, usar diferentes dominios y subdominios para cada parte de la web, por ejemplo, podemos crear un directorio media y hacer un subdominio para alojar allí el contenido, o mejor, uno para cada tipo de multimedia: video.dominio.es, img.dominio.com, etc. , además explica brevemente por qué vuestra página carga tan lenta, y qué podéis hacer para solucionarlo. Si queréis ver algún ejemplo podéis pasaros por la web de un <a href="http://programadorphp.org"><strong>programador php</strong></a>. <img src='http://blog.zenphp.es/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align: left;">Recomendado! 5 stars jeje</p>
<span class="akst_link"><a href="http://blog.zenphp.es/?p=230&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_230"  class="akst_share_link">Compártelo</a>
</span>]]></content:encoded>
			<wfw:commentRss>http://blog.zenphp.es/2009/12/11/complementos-de-software-libre-para-optimizacion-de-webs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Prioridad lineal de los procesos de una aplicación web</title>
		<link>http://blog.zenphp.es/2009/08/03/prioridad-lineal-de-los-procesos-de-una-aplicacion-web/</link>
		<comments>http://blog.zenphp.es/2009/08/03/prioridad-lineal-de-los-procesos-de-una-aplicacion-web/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 09:35:18 +0000</pubDate>
		<dc:creator>juaxix</dc:creator>
				<category><![CDATA[Funcionalidades]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Sistema Gestor Contenidos]]></category>
		<category><![CDATA[!important]]></category>
		<category><![CDATA[administrador]]></category>
		<category><![CDATA[aplicación]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[divisiones]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[prioridad]]></category>
		<category><![CDATA[proceso]]></category>

		<guid isPermaLink="false">http://blog.zenphp.es/?p=206</guid>
		<description><![CDATA[
Cuando estamos manteniendo una aplicación web suele ocurrir que el usuario final nos pide cambios que rompen el esquema inicial de la misma, es decir, se quieren saltar todas las reglas del diseño en el que nos habíamos &#8220;partido los cuernos&#8221; de forma que fuera todo fácilmente mantenible y estable asi como escalable.
En estos momentos [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="size-full wp-image-207  aligncenter" title="prioridad_arriba" src="http://blog.zenphp.es/wp-content/uploads/2009/08/prioridad_arriba.jpg" alt="" width="346" height="346" /></p>
<p>Cuando estamos manteniendo una aplicación web suele ocurrir que el usuario final nos pide cambios que rompen el esquema inicial de la misma, es decir, se quieren saltar todas las reglas del diseño en el que nos habíamos &#8220;partido los cuernos&#8221; de forma que fuera todo fácilmente mantenible y estable asi como escalable.</p>
<p>En estos momentos tenemos dos opciones: cabrearnos mucho y quejarnos con el usuario para que lo haga a &#8220;nuestra manera o carretera&#8221;, o bien, mucho mejor, que la prioridad forme parte de todo este asunto.</p>
<p>Es ahora cuando decidimos que la segunda opción favorece nuestro trabajo de forma que podemos ir todavía más un paso adelante, es decir, si después de realizar todas las tareas necesarias para generar una página de una aplicación el contenido generado requiere un cambio de última hora, podemos utilizar una prioridad para construir/destruir dicho contenido. Un ejemplo es utilizar CSS, la prioridad se establece con la opción &#8220;!important&#8221; ,entonces, si en el HTML de nuestro primer diseño de la web tenemos un listado de hoteles y necesitamos que en uno de los hoteles del listado se muestre una división de forma distinta, simplemente vamos a permitir que en el editor HTML WYSYWYG se puedan introducir etiquetas de estilo: &lt;style&gt; [ extended_valid_elements: "style" en tinymce ]y ahora vamos a reescribir la regla donde se necesita que se muestre de otra forma el contenido, en lugar de cambiar toda la lógica de la programación, entonces ,usando &#8220;!important&#8221; al lado de las reglas, por ejemplo para el ancho :</p>
<blockquote><p>&lt;style&gt; #midivision { width: 350px <strong>!important</strong>;} &lt;/style&gt;</p></blockquote>
<p>de esa forma le damos prioridad a esta regla, lo mismo se puede hacer con javascript y el argumento &#8220;defer&#8221; de la etiqueta &lt;script&gt;, y lo mismo se puede utilizar en PHP si especificamos el orden de carga de las clases, etc etc.</p>
<span class="akst_link"><a href="http://blog.zenphp.es/?p=206&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_206"  class="akst_share_link">Compártelo</a>
</span>]]></content:encoded>
			<wfw:commentRss>http://blog.zenphp.es/2009/08/03/prioridad-lineal-de-los-procesos-de-una-aplicacion-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tratamiento dinámico avanzado con etiquetas entre dominios</title>
		<link>http://blog.zenphp.es/2009/05/05/tratamiento-dinamico-avanzado-con-etiquetas-entre-dominios/</link>
		<comments>http://blog.zenphp.es/2009/05/05/tratamiento-dinamico-avanzado-con-etiquetas-entre-dominios/#comments</comments>
		<pubDate>Tue, 05 May 2009 11:53:38 +0000</pubDate>
		<dc:creator>juaxix</dc:creator>
				<category><![CDATA[Algoritmos]]></category>
		<category><![CDATA[Funcionalidades]]></category>
		<category><![CDATA[etiqueta]]></category>
		<category><![CDATA[etiquetado]]></category>
		<category><![CDATA[etiquetas]]></category>
		<category><![CDATA[modelo de datos]]></category>
		<category><![CDATA[modelos]]></category>
		<category><![CDATA[tags]]></category>
		<category><![CDATA[visualizador]]></category>
		<category><![CDATA[visualizadores]]></category>

		<guid isPermaLink="false">http://blog.zenphp.es/?p=201</guid>
		<description><![CDATA[

Para compartir el uso de etiquetas entre varios dominios lo que se suele hacer es compartir una base de datos en un servidor y utilizar varias aplicaciones que comparten modelos de datos y modifican las vistas (visualizadores) para mostrar los resultados en una sinergía creada por los usuarios que rellenan artículos, contenido, noticias, productos, etc. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.zenphp.es/wp-content/uploads/2009/05/tipos_etiquetas.jpg"><img src="http://blog.zenphp.es/wp-content/uploads/2009/05/tipos_etiquetas-300x265.jpg" alt="" title="tipos_etiquetas" width="300" height="265" class="aligncenter size-medium wp-image-202" /></a><br />
<br />
Para compartir el uso de etiquetas entre varios dominios lo que se suele hacer es compartir una base de datos en un servidor y utilizar varias aplicaciones que comparten modelos de datos y modifican las vistas (visualizadores) para mostrar los resultados en una sinergía creada por los usuarios que rellenan artículos, contenido, noticias, productos, etc. y establecen las etiquetas asociadas a toda esta información&#8230;</p>
<p>La función que va en la clase tags del modelo de datos de zenphp es:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"> <span style="color: #009933; font-style: italic;">/**
  * Devuelve un array con todos los tags de todas las tablas que coinciden con $nombre
  **@TODO: Es inestable, no carga bien los modelos de datos que no estuvieran ya cargados...
  *
  * @param str $nombre
  * @param str $modelos
  * @return array
  */</span>
 <span style="color: #000000; font-weight: bold;">function</span> obtener_lista<span style="color: #009900;">&#40;</span><span style="color: #000088;">$nombre</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$modelos</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #000088;">$nombre</span>    <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;_&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;-&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$nombre</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$modelos</span>   <span style="color: #339933;">=</span> <span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$modelos</span><span style="color: #009900;">&#41;</span>?<span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;noticias&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;contenidos&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span><span style="color: #990000;">split</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;,&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$modelos</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">is_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$modelos</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$etiquetas</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$modelos</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$modelo</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
   <span style="color: #000088;">$unset</span> <span style="color: #339933;">=</span><span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
   <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">padre</span><span style="color: #339933;">-&gt;</span><span style="color: #000088;">$modelo</span> instanceof zen_modelo_datos<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>zen___importar_modelos<span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">padre</span><span style="color: #339933;">,</span><span style="color: #000088;">$modelo</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   		<span style="color: #b1b100;">continue</span><span style="color: #339933;">;</span>
   	<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
   		<span style="color: #000088;">$unset</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
   	<span style="color: #009900;">&#125;</span>
   <span style="color: #009900;">&#125;</span>
   <span style="color: #000088;">$c</span> <span style="color: #339933;">=</span> <span style="color: #990000;">split</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;,&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">padre</span><span style="color: #339933;">-&gt;</span><span style="color: #000088;">$modelo</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">campos</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">padre</span><span style="color: #339933;">-&gt;</span><span style="color: #000088;">$modelo</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">poner_campos_al_modelo</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #000088;">$r</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">padre</span><span style="color: #339933;">-&gt;</span><span style="color: #000088;">$modelo</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">obtener</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$c</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;,tags&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #000088;">$n</span> <span style="color: #339933;">=</span> <span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$r</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">&lt;</span><span style="color: #000088;">$n</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
   	<span style="color: #000088;">$tags</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot; ,&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;, &quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;,&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$r</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'tags'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$tags</span> <span style="color: #339933;">=</span> <span style="color: #990000;">split</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;,&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$tags</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$tags</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$tag</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
     <span style="color: #000088;">$tag</span> <span style="color: #339933;">=</span> <span style="color: #990000;">html_entity_decode</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$tag</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$nombre</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">//No buscamos un tag en concreto sino todos:</span>
      <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">in_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$tag</span><span style="color: #339933;">,</span><span style="color: #000088;">$etiquetas</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #666666; font-style: italic;">//Insertar en la lista</span>
       <span style="color: #000088;">$etiquetas</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$tag</span><span style="color: #339933;">;</span>
      <span style="color: #b1b100;">continue</span><span style="color: #339933;">;</span>
     <span style="color: #009900;">&#125;</span>
     <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>zen_codifica_nombre_para_url<span style="color: #009900;">&#40;</span><span style="color: #000088;">$tag</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">==</span>
    	zen_codifica_nombre_para_url<span style="color: #009900;">&#40;</span><span style="color: #000088;">$nombre</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
     <span style="color: #009900;">&#123;</span>
      <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">in_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$r</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$c</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #000088;">$etiquetas</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
     	<span style="color: #990000;">array_push</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$etiquetas</span><span style="color: #339933;">,</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
     	 <span style="color: #0000ff;">&quot;modelo&quot;</span><span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$modelo</span><span style="color: #339933;">,</span>
     	 <span style="color: #0000ff;">&quot;id&quot;</span>   <span style="color: #339933;">=&gt;</span>  <span style="color: #000088;">$r</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$c</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span>
        <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">//comprobacion de si se estaba repetida</span>
     <span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">//comprobacion de si es la buscada</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">//bucle foreach de tags</span>
   <span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">//bucle for que recorre todos los tags de este campo</span>
   <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$unset</span><span style="color: #009900;">&#41;</span> <span style="color: #990000;">unset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">padre</span><span style="color: #339933;">-&gt;</span><span style="color: #000088;">$modelo</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">//bucle for que recorre todos los modelos especificados</span>
  <span style="color: #b1b100;">return</span> <span style="color: #000088;">$etiquetas</span><span style="color: #339933;">;</span>
 <span style="color: #009900;">&#125;</span></pre></div></div>

<p>Para utilizar una función dinámica que un visualizador (html_tags extends zen_html_modelo_datos) interprete usando diferentes plantillas para cada dominio podemos usar la siguiente :</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"> <span style="color: #009933; font-style: italic;">/**
  * Mostrara una pagina con un listado de tags, que enlazan a los distintos dominios,
  * se especifica el $dominio para ver cual de los contenidos han de rellenarse
  *
  * @param str $tag
  * @param str $dominio
  */</span>
 <span style="color: #000000; font-weight: bold;">function</span> ver<span style="color: #009900;">&#40;</span><span style="color: #000088;">$tag</span><span style="color: #339933;">,</span><span style="color: #000088;">$dominio</span><span style="color: #339933;">=</span>ZF_SITIO_WEB<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #666666; font-style: italic;">//Intentemos encontrar el tag</span>
  <span style="color: #000088;">$tags</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">padre</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">obtener_lista</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$tag</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$p</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> zen_plantilla<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 <span style="color: #666666; font-style: italic;">// if (!count($tags)) die(sprintf(&quot;no hay ningun elemento con el tag %s&quot;,$tag));//header(&quot;Location: &quot;.ZF_SITIO_WEB);</span>
  <span style="color: #000088;">$r</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'tag'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;_&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;-&quot;</span><span style="color: #339933;">,</span>zen_sanar<span style="color: #009900;">&#40;</span><span style="color: #000088;">$tag</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$r</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'enlaces'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$tags</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$tag</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
   <span style="color: #b1b100;">switch</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$tag</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'modelo'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
   	<span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'noticias'</span><span style="color: #339933;">:</span> <span style="color: #666666; font-style: italic;">//Noticias a la web del grupo (corporativa)</span>
   	 <span style="color: #000088;">$tit</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">padre</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">padre</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">noticias</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">obtener_campo</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$tag</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;titular&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   	 <span style="color: #000088;">$r</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'enlaces'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'Noticia: &lt;a href=&quot;'</span><span style="color: #339933;">.</span>ZF_SITIO_WEB<span style="color: #339933;">.</span><span style="color: #0000ff;">'noticias/ver/'</span><span style="color: #339933;">.</span><span style="color: #000088;">$tag</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'/'</span><span style="color: #339933;">.</span>zen_codifica_nombre_para_url<span style="color: #009900;">&#40;</span><span style="color: #000088;">$tit</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>
   	 	<span style="color: #0000ff;">'/&quot;&gt;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$tit</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/a&gt;&lt;br&gt;'</span><span style="color: #339933;">;</span>
   	 <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
   	<span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'contenidos'</span><span style="color: #339933;">:</span> <span style="color: #666666; font-style: italic;">//Presentacion.. (informacion corporativa)</span>
   	 <span style="color: #000088;">$tit</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">padre</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">padre</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">contenidos</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">obtener_campo</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$tag</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;nombre&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   	 <span style="color: #000088;">$zona</span><span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">padre</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">padre</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">contenidos</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">obtener_campo</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$tag</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;zona&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   	 <span style="color: #000088;">$r</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'enlaces'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'Presentaci&amp;oacute;n: &lt;a href=&quot;'</span><span style="color: #339933;">.</span>ZF_SITIO_WEB<span style="color: #339933;">.</span><span style="color: #0000ff;">'presentacion/'</span><span style="color: #339933;">.</span>
   	 	<span style="color: #000088;">$tag</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'/'</span><span style="color: #339933;">.</span>zen_codifica_nombre_para_url<span style="color: #009900;">&#40;</span><span style="color: #000088;">$tit</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>
   	 	<span style="color: #0000ff;">'/&quot;&gt;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$tit</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/a&gt;&lt;br&gt;'</span><span style="color: #339933;">;</span>
   	 <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
   <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">padre</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">padre</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">contenido</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'contenido'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$p</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">contenido_reemplaza</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;etiquetas/indice.html&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$r</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">switch</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$dominio</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
   <span style="color: #b1b100;">case</span> ZF_SITIO_WEB<span style="color: #339933;">:</span>
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span>
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">padre</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">padre</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">contenido</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'columna_izda1'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">listar</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">padre</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">padre</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">html</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">mostrar_web</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Etiqueta &quot;</span><span style="color: #339933;">.</span>
  	 zen_sanar<span style="color: #009900;">&#40;</span><span style="color: #000088;">$r</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'tag'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;sel_inicio&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;cab_contacto.html&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;rut_etiqueta.html&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
  	<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
   <span style="color: #b1b100;">default</span><span style="color: #339933;">:</span>
    <span style="color: #666666; font-style: italic;">//$titulo,$menu,$ruta=&quot;&quot;,$col_izda=&quot;indice&quot;</span>
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">padre</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">padre</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">html</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">mostrar_web</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Etiqueta &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$tag</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;sel_indice&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;rut_etiqueta.html&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;indice&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
  	<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span> 
 <span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">//fin-ver</span></pre></div></div>

<span class="akst_link"><a href="http://blog.zenphp.es/?p=201&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_201"  class="akst_share_link">Compártelo</a>
</span>]]></content:encoded>
			<wfw:commentRss>http://blog.zenphp.es/2009/05/05/tratamiento-dinamico-avanzado-con-etiquetas-entre-dominios/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automatizando Flash mediante XHTML, DHTML,ActionScript y PHP</title>
		<link>http://blog.zenphp.es/2009/03/17/automatizando-flash-mediante-xhtml-dhtmlactionscript-y-php/</link>
		<comments>http://blog.zenphp.es/2009/03/17/automatizando-flash-mediante-xhtml-dhtmlactionscript-y-php/#comments</comments>
		<pubDate>Tue, 17 Mar 2009 09:16:28 +0000</pubDate>
		<dc:creator>juaxix</dc:creator>
				<category><![CDATA[Funcionalidades]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[actioscript]]></category>
		<category><![CDATA[animacion]]></category>
		<category><![CDATA[animaciones]]></category>
		<category><![CDATA[dhtml]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[funciones]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://blog.zenphp.es/?p=193</guid>
		<description><![CDATA[
Primero deberemos preparar el Flash, con un poco de código en ActionScript para cargar el XML y guardar las variables Flash en el nodo root de la película de forma que así activaremos las animaciones

Después diseñamos el XML como plantilla para zenphp:

así como el JavaScript en otra plantilla, que escribirá el objeto Flash con las [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="size-medium wp-image-199 aligncenter" title="star-big" src="http://blog.zenphp.es/wp-content/uploads/2009/03/star-big-222x300.jpg" alt="" width="222" height="300" /></p>
<p>Primero deberemos preparar el Flash, con un poco de código en ActionScript para cargar el XML y guardar las variables Flash en el nodo root de la película de forma que así activaremos las animaciones</p>
<p><a href="http://blog.zenphp.es/wp-content/uploads/2009/03/flash.png"><img class="alignnone size-medium wp-image-194" title="flash" src="http://blog.zenphp.es/wp-content/uploads/2009/03/flash-285x300.png" alt="" width="285" height="300" /></a></p>
<p>Después diseñamos el XML como plantilla para zenphp:</p>
<p><a href="http://blog.zenphp.es/wp-content/uploads/2009/03/xml.png"><img class="alignnone size-medium wp-image-195" title="xml" src="http://blog.zenphp.es/wp-content/uploads/2009/03/xml-300x55.png" alt="" width="300" height="55" /></a></p>
<p>así como el JavaScript en otra plantilla, que escribirá el objeto Flash con las variables mediante PHP</p>
<p><a href="http://blog.zenphp.es/wp-content/uploads/2009/03/javascript.png"><img class="alignnone size-medium wp-image-196" title="javascript" src="http://blog.zenphp.es/wp-content/uploads/2009/03/javascript-300x234.png" alt="" width="300" height="234" /></a></p>
<p>sólo queda el PHP, una función simplísima para escribir los contenidos:</p>
<p><a href="http://blog.zenphp.es/wp-content/uploads/2009/03/php.png"><img class="alignnone size-medium wp-image-197" title="php" src="http://blog.zenphp.es/wp-content/uploads/2009/03/php-300x203.png" alt="" width="300" height="203" /></a></p>
<p>Y ya tenemos funcionando el conjunto para cualquier entrada de la base de datos:</p>
<p><a href="http://blog.zenphp.es/wp-content/uploads/2009/03/animacion_banos.gif"><img class="alignnone size-full wp-image-198" title="animacion_banos" src="http://blog.zenphp.es/wp-content/uploads/2009/03/animacion_banos.gif" alt="" width="300" height="147" /></a></p>
<span class="akst_link"><a href="http://blog.zenphp.es/?p=193&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_193"  class="akst_share_link">Compártelo</a>
</span>]]></content:encoded>
			<wfw:commentRss>http://blog.zenphp.es/2009/03/17/automatizando-flash-mediante-xhtml-dhtmlactionscript-y-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Encontrar el equilibrio en las cosas pequeñas</title>
		<link>http://blog.zenphp.es/2008/11/07/encontrar-el-equilibrio-en-las-cosas-pequenas/</link>
		<comments>http://blog.zenphp.es/2008/11/07/encontrar-el-equilibrio-en-las-cosas-pequenas/#comments</comments>
		<pubDate>Fri, 07 Nov 2008 12:44:52 +0000</pubDate>
		<dc:creator>juaxix</dc:creator>
				<category><![CDATA[Documentación]]></category>
		<category><![CDATA[Funcionalidades]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[equilibrio]]></category>
		<category><![CDATA[imagen]]></category>
		<category><![CDATA[miniatura]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[thumbs]]></category>

		<guid isPermaLink="false">http://blog.zenphp.es/?p=183</guid>
		<description><![CDATA[
Siendo detallista y equilibrado encontraremos que nuestro trabajo se ha convertido en algo sumamente sencillo de mantener.
El caso más fundamental de lo que estoy hablando es cuando un cliente nos pide un nuevo cambio que requiere modificar, en este caso añadir un campo nuevo de imagen de miniatura a una tabla de noticias y,bien, ahora [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="size-medium wp-image-184 aligncenter" title="ying_yang_sillon" src="http://blog.zenphp.es/wp-content/uploads/2008/11/ying_yang_sillon-300x202.jpg" alt="" width="300" height="202" /></p>
<p>Siendo detallista y equilibrado encontraremos que nuestro trabajo se ha convertido en algo sumamente sencillo de mantener.</p>
<p>El caso más fundamental de lo que estoy hablando es cuando un cliente nos pide un nuevo cambio que requiere modificar, en este caso añadir un campo nuevo de imagen de miniatura a una tabla de noticias y,bien, ahora tenemos que añadirlo en la interfaz de administración además de en la BD y en el cliente que habíamos escrito&#8230;</p>
<p>Sabemos que podemos implementar la lógica de administración fácilmente haciendo copio y pego de la parte del formulario de edición de la noticia cambiando el nombre por el del campo de la imagen ,guardado de ficheros, procesamiento de imágenes &#8220;thumbs&#8221; , etc.</p>
<p>Lo que debemos recordar es que podemos encontrar el equilibrio en el funcionamiento por medio de las sentencias IF de SQL, de modo que si ya teníamos un campo imagen y ahora lo que necesitamos es mostrar una miniatura pero no queremos cambiar el resto, simplemente modificamos la línea en la que se nombran los campos para realizar las operaciones de la siguiente forma:</p>
<p>si antes se hacia un &#8220;Select imagen from noticias&#8221; ,ahora sólo tenemos que cambiar &#8220;imagen&#8221; por</p>
<p>IF(miniatura=&#8221;,imagen,miniatura) as imagen</p>
<p>de forma que el resto de la lógica del programa se mantiene intacta, sólo hemos hecho un cambio más las operaciones básicas para administrar los datos con el campo <img src='http://blog.zenphp.es/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p style="text-align: center;"><img class="size-medium wp-image-185 aligncenter" title="panda" src="http://blog.zenphp.es/wp-content/uploads/2008/11/panda-300x295.jpg" alt="" width="300" height="295" /></p>
<p>Ahora sólo queda relajarse sabiendo que todo funciona sin quebrarnos demasiado la cabeza jeje</p>
<span class="akst_link"><a href="http://blog.zenphp.es/?p=183&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_183"  class="akst_share_link">Compártelo</a>
</span>]]></content:encoded>
			<wfw:commentRss>http://blog.zenphp.es/2008/11/07/encontrar-el-equilibrio-en-las-cosas-pequenas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Howto: filtrar datos de forma avanzada pero pensando como un principiante</title>
		<link>http://blog.zenphp.es/2008/09/30/howto-filtrar-datos-de-forma-avanzada-pero-pensando-como-un-principiante/</link>
		<comments>http://blog.zenphp.es/2008/09/30/howto-filtrar-datos-de-forma-avanzada-pero-pensando-como-un-principiante/#comments</comments>
		<pubDate>Tue, 30 Sep 2008 11:14:34 +0000</pubDate>
		<dc:creator>juaxix</dc:creator>
				<category><![CDATA[Algoritmos]]></category>
		<category><![CDATA[Documentación]]></category>
		<category><![CDATA[Funcionalidades]]></category>
		<category><![CDATA[Sistema Gestor Contenidos]]></category>
		<category><![CDATA[datos]]></category>
		<category><![CDATA[filtrado]]></category>
		<category><![CDATA[filtros]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[imagen]]></category>
		<category><![CDATA[joker]]></category>
		<category><![CDATA[modelo de datos]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[swf]]></category>
		<category><![CDATA[trucos]]></category>
		<category><![CDATA[tupla]]></category>

		<guid isPermaLink="false">http://blog.zenphp.es/?p=173</guid>
		<description><![CDATA[
En principio, parece que el título del post es algo de lo más paradójico, pero nada más lejos de la realidad, en zenphp siempre hay un Joker, y éstos son los trucos que enseño en este blog, triquiñuelas rápidas y complejas pero fáciles de entender y modificar en poco tiempo.

Al escribir clases que reutilizan el [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="alignnone size-full wp-image-174" title="joker" src="http://blog.zenphp.es/wp-content/uploads/2008/09/joker.jpg" alt="" width="380" height="380" /></p>
<p>En principio, parece que el título del post es algo de lo más paradójico, pero nada más lejos de la realidad, en zenphp siempre hay un Joker, y <strong>éstos son los trucos</strong> que enseño en este blog, triquiñuelas rápidas y complejas pero fáciles de entender y modificar en <em>poco tiempo</em>.</p>
<p><span id="more-173"></span></p>
<p>Al escribir clases que reutilizan el código de un modelo de datos de zenphp, uno se da cuenta de la facilidad con la que se pueden realizar ciertos aspectos técnicos como los filtrados de datos avanzados, de una forma realmente sencilla: en una línea de PHP.</p>
<p>Veamos como podemos diferenciar cuando un usuario manda un fichero mediante un modelo de datos (y su interfaz: el visualizador HTML) flash o una imagen y después representarlo con la plantilla que sea adecuada.</p>
<p>El campo imagen tiene el nombre del fichero .jpg,.png,.gif, o bien .swf. por lo tanto sólo tenemos que escribir una función donde queramos, por ejemplo, en mi caso me gusta ponerlas en el visualizador ya que el filtrado devuelto es una cadena HTML que escribe el &#8216;&lt;img src=&#8221;&#8230;&#8221;&gt;&#8217; o bien el HTML del código flash en javascript o el objeto que sea&#8230;</p>
<p>Veamos la función:</p>
<table class="hl-table" border="0" width="100%">
<tbody>
<tr>
<td class="hl-gutter" align="right" valign="top"> </td>
<td class="hl-main" valign="top">
<pre><span class="hl-reserved">function </span><span class="hl-identifier">detectar_imagen_o_flash</span><span class="hl-brackets">(</span><span class="hl-var">$campo</span><span class="hl-brackets">){
  </span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">strtolower</span><span class="hl-brackets">(</span><span class="hl-identifier">substr</span><span class="hl-brackets">(</span><span class="hl-var">$campo</span><span class="hl-code">,-</span><span class="hl-number">3</span><span class="hl-code">,</span><span class="hl-number">3</span><span class="hl-brackets">))</span><span class="hl-code">==</span><span class="hl-quotes">"</span><span class="hl-string">swf</span><span class="hl-quotes">"</span><span class="hl-brackets">){
   </span><span class="hl-var">$p</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">zen_plantilla</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">flash/producto.html</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
   </span><span class="hl-var">$p</span><span class="hl-code">-&gt;</span><span class="hl-identifier">reemplazar</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">flash</span><span class="hl-quotes">"</span><span class="hl-code">,</span><span class="hl-identifier">substr</span><span class="hl-brackets">(</span><span class="hl-var">$campo</span><span class="hl-code">,</span><span class="hl-number">0</span><span class="hl-code">,</span><span class="hl-identifier">strlen</span><span class="hl-brackets">(</span><span class="hl-var">$campo</span><span class="hl-brackets">)</span><span class="hl-code">-</span><span class="hl-number">4</span><span class="hl-brackets">))</span><span class="hl-code">;
   </span><span class="hl-reserved">return </span><span class="hl-var">$p</span><span class="hl-code">-&gt;</span><span class="hl-reserved">contenido</span><span class="hl-code">;
  </span><span class="hl-brackets">} </span><span class="hl-reserved">else </span><span class="hl-brackets">{
   </span><span class="hl-reserved">return </span><span class="hl-quotes">'</span><span class="hl-string">&lt;img src="/media/img/productos/</span><span class="hl-quotes">'</span><span class="hl-code">.</span><span class="hl-var">$campo</span><span class="hl-code">.</span><span class="hl-quotes">'</span><span class="hl-string">"&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;
  </span><span class="hl-brackets">}
 }
</span><span class="hl-inlinetags">?&gt;</span></pre>
</td>
</tr>
</tbody>
</table>
<p> </p>
<p>Ahora, desde donde queramos podemos llamar al modelo de datos donde está la imagen y representarla por medio de su visualizador html, por ejemplo, desde el visualizador html principal de la aplicación de nuestro sistema, donde hemos definido el modelo de datos en una variable llamada $productos en la aplicación, por lo tanto las dos líneas que necesitamos son:</p>
<p> </p>
<p>$this-&gt;padre-&gt;productos-&gt;filtros_postprocesamiento = array(&#8220;imagen&#8221; =&gt; array($this-&gt;padre-&gt;productos-&gt;html,&#8221;detectar_imagen_o_flash&#8221;));</p>
<p><span> </span> $this-&gt;c['contenido'] = $this-&gt;padre-&gt;productos-&gt;html-&gt;mostrar($datos[1],&#8221;productos/ver_producto.html&#8221;);</p>
<p>La primera especifica para el padre de este visualizador html de la aplicación, en su variable productos que es el modelo, los filtros para después de cargar los datos de una tupla, al campo imagen le vamos a pasar el filtro de la función que hemos creado en el paso anterior, pero tenemos que especificar dónde está desde aquí, la ruta por la jerarquía de nuestra aplicación es tan sencilla como ir al padre luego al modelo y a su visualizador, allí está la función.</p>
<p>La segunda línea guarda en el array de contenido (puntero al array de la aplicacion-&gt;contenido) en la etiqueta del contenido de nuestra web, la visualización de datos de una tupla especificada por el id numérico que es la llave principal de la tabla del modelo de productos y le decimos la plantilla que vamos a usar, donde habrá un hueco para el campo llamado &#8220;#imagen#&#8221;.</p>
<p>Y así concluye este ejemplo, algo tan sencillo puede verse <a title="Ejemplo del filtrado" href="http://www.empresayjuventud.com/productos/frescos/9/Acelgas.html" target="_blank">funcionando.</a></p>
<p>Al detectarse una imagen ,se muestra &lt;img&gt; ,si es un flash se escribe el &lt;object&gt; con un &lt;script&gt;.</p>
<p>A triunfar!!</p>
<span class="akst_link"><a href="http://blog.zenphp.es/?p=173&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_173"  class="akst_share_link">Compártelo</a>
</span>]]></content:encoded>
			<wfw:commentRss>http://blog.zenphp.es/2008/09/30/howto-filtrar-datos-de-forma-avanzada-pero-pensando-como-un-principiante/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Como hacer la semántica web fácil con zenphp</title>
		<link>http://blog.zenphp.es/2008/08/08/como-hacer-la-semantica-web-facil-con-zenphp/</link>
		<comments>http://blog.zenphp.es/2008/08/08/como-hacer-la-semantica-web-facil-con-zenphp/#comments</comments>
		<pubDate>Fri, 08 Aug 2008 09:55:28 +0000</pubDate>
		<dc:creator>juaxix</dc:creator>
				<category><![CDATA[Funcionalidades]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Sistema Gestor Contenidos]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[aplicaciones]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[plantillas]]></category>
		<category><![CDATA[redirecciones]]></category>
		<category><![CDATA[semantic]]></category>
		<category><![CDATA[semántica]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.zenphp.es/?p=161</guid>
		<description><![CDATA[Semántica web

Si tenemos nuestra aplicación web montada, lo único que tenemosque hacer es configurar los activadores (rutas de .htaccess de Apache) de las acciones (funciones PHP) de los modelos (clases PHP que extienden de zen_modelo_datos) de datos o las funciones de los visualizadores (clases PHP) de forma que podemos incluso crear nuestra propia gramática: loquesea.es/hablar/con/Manolo [...]]]></description>
			<content:encoded><![CDATA[<h2>Semántica web</h2>
<p><img class="alignnone size-full wp-image-162 alignleft" style="float: left;" title="semantic web w3c" src="http://blog.zenphp.es/wp-content/uploads/2008/08/rdfwrap2.png" alt="" width="246" height="267" /></p>
<p>Si tenemos nuestra aplicación web montada, lo único que tenemosque hacer es configurar los activadores (rutas de .htaccess de Apache) de las acciones (funciones PHP) de los modelos (clases PHP que extienden de zen_modelo_datos) de datos o las funciones de los visualizadores (clases PHP) de forma que podemos incluso crear nuestra propia gramática: loquesea.es/hablar/con/Manolo &#8211;&gt; nos contactaría con Manolo <img src='http://blog.zenphp.es/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h3>Ejemplo</h3>
<p>Como siempre, veamos un ejemplo para comprender mejor la idea:</p>
<p>Tenemos una aplicación (zen_aplicacion) instanciada en index.php con la variable $app , ahora ,dentro de esta hay un visualizador por defecto llamado html_aplicacion en $app-&gt;html, bien, pues ahora sólo tenemos que decirle a Apache que nos redirija las entradas de direcciones con un .html al final, a las funciones de $app-&gt;html , como por ejemplo: Una típica función para ver un producto:</p>
<p>* En tu .htaccess (después de poner &#8220;Options +FollowSymLinks&#8221; y &#8220;RewriteEngine on&#8221; ):</p>
<blockquote><p>RewriteRule ^productos\/(.*)\.html index.php/ver_producto/$1/</p></blockquote>
<p>Con esta regla se llama a index.php donde se instancia $app y se llama a $app-&gt;enrutador-&gt;delegar() que analiza el resto de la dirección, es decir, productos/fichero.html&#8230;de forma que llama a la función productos ,si no existe llama al modelo con nombre productos, en nuestro caso es una función del visualizador de la aplicación (más sencillo),</p>
<p style="text-align: center;"><img class="alignnone size-medium wp-image-163" style="border: 0pt none;" title="semantic" src="http://blog.zenphp.es/wp-content/uploads/2008/08/semantic-300x223.png" alt="" width="300" height="223" /></p>
<h4>Código</h4>
<p>* Esto es lo único que tiene la función</p>
<blockquote><p>echo $this-&gt;plantilla-&gt;devolver_contenido(&#8220;productos/&#8221;.zen_sanar($datos[1]).&#8221;.html&#8221;);</p></blockquote>
<p>si queréis ser más profesionales, crear una plantilla HTML y meterle los datos usando las #etiquetas# ya explicadas en otros posts, asi como hacer comprobaciones de existencia del fichero .HTML y poner una plantilla tipo  producto_inexistente.html si no se encuentra&#8230; (típico)</p>
<blockquote><p>$p = new zen_plantilla();<br />
$this-&gt;c =&amp; $this-&gt;padre-&gt;padre-&gt;contenido; //array de contenido de la web<br />
if ($p-&gt;cargar(&#8220;productos/&#8221;.zen_sanar($datos[1]).&#8221;.html&#8221;))<br />
$this-&gt;c['contenido'] = $p-&gt;devolver_contenido(&#8220;productos/&#8221;.zen_sanar($datos[1]).&#8221;.html&#8221;);<br />
else<br />
$this-&gt;c['contenido'] = $p-&gt;devolver_contenido(&#8220;productos/no_encontrado.html&#8221;);<br />
parent::index(); //Muestra la plantilla base_web.html y reemplaza etiquetas, etc.</p></blockquote>
<p>Y así tendréis algo como lo siguiente:</p>
<p><a href="http://www.empresayjuventud.com/productos/frescos/sandias.html">http://www.empresayjuventud.com/productos/frescos/sandias.html</a></p>
<p>Seguramente ,se puede hacer mucho más fácil, pero ,también seguramente habrá alguien por ahi que lo escriba, saludos!<br />
El conjunto de administración está siendo terminado, espero poder publicarlo pronto&#8230;</p>
<span class="akst_link"><a href="http://blog.zenphp.es/?p=161&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_161"  class="akst_share_link">Compártelo</a>
</span>]]></content:encoded>
			<wfw:commentRss>http://blog.zenphp.es/2008/08/08/como-hacer-la-semantica-web-facil-con-zenphp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sobre compatibilidades entre versiones de PHP y zenphp</title>
		<link>http://blog.zenphp.es/2008/07/16/sobre-compatibilidades-entre-versiones-de-php-y-zenphp/</link>
		<comments>http://blog.zenphp.es/2008/07/16/sobre-compatibilidades-entre-versiones-de-php-y-zenphp/#comments</comments>
		<pubDate>Wed, 16 Jul 2008 09:02:47 +0000</pubDate>
		<dc:creator>juaxix</dc:creator>
				<category><![CDATA[Funcionalidades]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[compatibilidad]]></category>
		<category><![CDATA[enrutador]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[reglas]]></category>
		<category><![CDATA[rewrite]]></category>
		<category><![CDATA[rutas]]></category>
		<category><![CDATA[servidor]]></category>

		<guid isPermaLink="false">http://blog.zenphp.es/?p=157</guid>
		<description><![CDATA[Sólo un pequeño detalle a tener en cuenta con el fichero .htaccess para que siga funcionando en PHP5]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="alignnone size-full wp-image-158 aligncenter" src="http://blog.zenphp.es/wp-content/uploads/2008/07/cursor_mano.jpg" alt="" width="304" height="210" /></p>
<p style="text-align: center;">
<p>Hace un tiempo que cambié la versión de mi host dedicado de PHP4.2 a 5.2.6 y zenphp no ha tenido ningún problema para funcionar. Sólo un pequeño detalle a tener en cuenta con el fichero .htaccess&#8230;</p>
<p>Cuando escribimos redirecciones como por ejemplo:</p>
<blockquote><p>AddDefaultCharset UTF-8<br />
Options +FollowSymLinks<br />
RewriteEngine on<br />
RewriteRule ^noticias index.php/noticias<br />
RewriteRule ^noticia\/(.*) index.php/noticias/leer/$1</p></blockquote>
<p>en la que queremos que las www.midominio.com/noticias se redirija a www.midominio.com/index.php/noticias/ para encontrar el controlador por defecto, en PHP5 ahora se usa en lugar de &lt;$_SERVER['REQUEST_URI']&gt; el parámetro &lt;$_SERVER['PHP_SELF']&gt; dentro de</p>
<p><a title="Ver la clase" href="https://forja.rediris.es/websvn/wsvn/csl2-zenphp/trunk/zenphp/clases/clase_zen_enrutador.php?op=file&amp;rev=0&amp;sc=0" target="_blank">zenphp/clases/clase_zen_enrutador.php</a></p>
<p>de forma que estas redirecciones más complejas sean bien encauzadas sin tener que reescribir el módulo del enrutador que proporciona el framework&#8230;recordar que se puede escribir un enrutador y asociarlo a cualquiera de la s aplicaciones que estemos usando en el sistema y lanzarlo por medio de una función tipo &#8220;delegar()&#8221;.</p>
<p>Seguimos informando!</p>
<span class="akst_link"><a href="http://blog.zenphp.es/?p=157&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_157"  class="akst_share_link">Compártelo</a>
</span>]]></content:encoded>
			<wfw:commentRss>http://blog.zenphp.es/2008/07/16/sobre-compatibilidades-entre-versiones-de-php-y-zenphp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Detalles del Modelo Visualizador VS MVC</title>
		<link>http://blog.zenphp.es/2008/07/08/detalles-del-modelo-visualizador-vs-mvc/</link>
		<comments>http://blog.zenphp.es/2008/07/08/detalles-del-modelo-visualizador-vs-mvc/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 11:31:41 +0000</pubDate>
		<dc:creator>juaxix</dc:creator>
				<category><![CDATA[Documentación]]></category>
		<category><![CDATA[Funcionalidades]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[controlador]]></category>
		<category><![CDATA[detalles]]></category>
		<category><![CDATA[diferencia]]></category>
		<category><![CDATA[modelo]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[vista]]></category>
		<category><![CDATA[visualizador]]></category>

		<guid isPermaLink="false">http://blog.zenphp.es/?p=154</guid>
		<description><![CDATA[
Acabo de estar mirando el nuevo modelo de datos de Joomla 1.5 junto con su controladores y vistas&#8230;es interesante sin embargo complicado y necesitas tener el manual cerca (a &#8220;mano&#8221;  ) porque no sabes nada de nada al estar dentro de una vista&#8230;si estás en una vista tipo &#8220;blog&#8221; de una categoría, cómo puedes [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="alignnone size-medium wp-image-156 aligncenter" title="mvc" src="http://blog.zenphp.es/wp-content/uploads/2008/07/mvc2_es-300x190.png" alt="" width="300" height="190" /></p>
<p>Acabo de estar mirando el nuevo modelo de datos de Joomla 1.5 junto con su controladores y vistas&#8230;es interesante sin embargo complicado y necesitas tener el manual cerca (a &#8220;mano&#8221; <img src='http://blog.zenphp.es/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> ) porque no sabes nada de nada al estar dentro de una vista&#8230;si estás en una vista tipo &#8220;blog&#8221; de una categoría, cómo puedes conseguir la sección a la que pertenece? En algunos foros se discute el tema, acabando por hacer un nuevo y completo módulo o extensión también llamado para cubrir las necesidades&#8230;sólo por necesitar un identificador? &#8230;como veis parece absurdo tener una división que no te da libertad y crea más confusión&#8230;</p>
<p style="text-align: center;"><img class="alignnone size-medium wp-image-155 aligncenter" title="talisman-idea" src="http://blog.zenphp.es/wp-content/uploads/2008/07/talisman-idea-300x199.jpg" alt="" width="300" height="199" /></p>
<p>En zenphp está el modelo de datos donde están todos los datos que está comunicado con punteros con el resto de modelos de la aplicación y por otro lado está, asociado al modelo ,el visualizador, nunca perdemos nada de vista y todo es parametrizable y accesible fácilmente, casi no tenemos ni que usar el manual o la documentación&#8230;veis la pauta? notais la diferencia? ahi radica la potencia de hacer algo simple y que funciona&#8230;</p>
<p>Saludos!</p>
<span class="akst_link"><a href="http://blog.zenphp.es/?p=154&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_154"  class="akst_share_link">Compártelo</a>
</span>]]></content:encoded>
			<wfw:commentRss>http://blog.zenphp.es/2008/07/08/detalles-del-modelo-visualizador-vs-mvc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
