<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comentarios en: Zend framework, como hacer un layout para cada modulo</title>
	<atom:link href="http://www.backtheweb.com/php/zend-framework-como-hacer-un-layout-para-cada-modulo.html/feed" rel="self" type="application/rss+xml" />
	<link>http://www.backtheweb.com/php/zend-framework-como-hacer-un-layout-para-cada-modulo.html</link>
	<description>Notas y recursos de un desarrollador web</description>
	<lastBuildDate>Wed, 25 Aug 2010 09:29:34 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>Por: admin</title>
		<link>http://www.backtheweb.com/php/zend-framework-como-hacer-un-layout-para-cada-modulo.html/comment-page-1#comment-135</link>
		<dc:creator>admin</dc:creator>
		<pubDate>Sun, 24 Jan 2010 14:47:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.backtheweb.com/?p=211#comment-135</guid>
		<description>Hola YoGuu,

Si, tienes razón en todo... el código presentado pero no es más que ilustrativo, reducido y funcional. Luego es importante hacerse uno mismo la reflexión que tu has hecho. Mejorar y adaptar a las necesidades de cada uno. Para nada este el código que uso, pues el que suelo usar es algo más largo y hace alunas cosillas más (por seo se me coló la linea innecesaria)

Lo malo de Zend Framework es su documentación, lo mejor, tal vez, es que todo se puede hacer y rehacer de muchas formas (y creo que por eso la documentación falla mucho, y más ahora con la versión 1.10)

En cuanto a lo del coding... bueno... soy muy maniático de los estándares, pero odio el formato propuesto por Zend, por lo que en mis trabajos uso el mío propio. Por otra parte,  con worpress me suele costar bastante codificar claramente el código, el espacio es limitado y no es fácil tabular... 

Gracias por tu aportación, las aportaciones siempre son bienvenidas!</description>
		<content:encoded><![CDATA[<p>Hola YoGuu,</p>
<p>Si, tienes razón en todo&#8230; el código presentado pero no es más que ilustrativo, reducido y funcional. Luego es importante hacerse uno mismo la reflexión que tu has hecho. Mejorar y adaptar a las necesidades de cada uno. Para nada este el código que uso, pues el que suelo usar es algo más largo y hace alunas cosillas más (por seo se me coló la linea innecesaria)</p>
<p>Lo malo de Zend Framework es su documentación, lo mejor, tal vez, es que todo se puede hacer y rehacer de muchas formas (y creo que por eso la documentación falla mucho, y más ahora con la versión 1.10)</p>
<p>En cuanto a lo del coding&#8230; bueno&#8230; soy muy maniático de los estándares, pero odio el formato propuesto por Zend, por lo que en mis trabajos uso el mío propio. Por otra parte,  con worpress me suele costar bastante codificar claramente el código, el espacio es limitado y no es fácil tabular&#8230; </p>
<p>Gracias por tu aportación, las aportaciones siempre son bienvenidas!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: YoGuuu</title>
		<link>http://www.backtheweb.com/php/zend-framework-como-hacer-un-layout-para-cada-modulo.html/comment-page-1#comment-134</link>
		<dc:creator>YoGuuu</dc:creator>
		<pubDate>Sun, 24 Jan 2010 12:25:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.backtheweb.com/?p=211#comment-134</guid>
		<description>Comentar que para mi la linea:

$moduleDir = Zend_Controller_Front::getInstance()-&gt;getModuleDirectory();

Ha sido innecesaria. Debido a que no se veo que se use en ningún momento.

He pensado que si la primera comprobación IF del plugin se cambia por esta otra:

if (isset($config[$moduleName][&#039;resources&#039;][&#039;layout&#039;][&#039;layout&#039;]) &amp;&amp; ($config[$moduleName][&#039;resources&#039;][&#039;layout&#039;][&#039;layout&#039;] != &#039;layout&#039;)) {
// Código aquí
}

Solo añadirá el script del layout en caso que este no sea el script por defecto que establece ZF, es decir, por nombre &quot;layout&quot;. Evitando hacer una instancia a objeto innecesaria en esos casos. Es importante si tenemos en cuenta que el layout por defecto será el más usado por norma. Y así también nos podemos ahorrar las lineas del application.ini:

resources.layout.layout = layout
admin.resources.layout.layout = layout

Ya que ZF automáticamente lo coge así para todos los módulos, me he molestado en hacer la comprobación, y el único inconveniente es que si cambias el nombre del layout de una forma no explicita (sin especificar &quot;default.resources...&quot;) este no lo cambiará, por que no asignará ningun layout ya que se basa en modulos y aquí no se especifica a que modulo:

resources.layout.layout = CustomLayout 

Si se usa la segunda comprobación del IF hay pues, en caso de que se cambie el nombre del layout por defecto hacerlo de forma explicita:

default.resources.layout.layout = CustomLayout

Entonces si lo cambiaría...

Conseguimos dos cosas, que trabaje estrictamente por módulos, pudiendo ponerlos o no. Y si ponemos &quot;layout&quot; (nombre por defecto de los layouts para ZF) o omitimos este dato que no haga de nuevo la asignación y que directamente cargue &quot;layout&quot; para el módulo/path que toke en el segundo IF

Por último, recalcar que para seguir los coding standards de Zend los bracers &quot;{&quot; y &quot;}&quot; hacen un salto de linea despues de la comprobación.

A pesar de lo enrrevesado de mis divagaciones... Son sugerencias, no cambios absolutos y necesarios. ¿ Opiniones ?

Un saludo !!! : )</description>
		<content:encoded><![CDATA[<p>Comentar que para mi la linea:</p>
<p>$moduleDir = Zend_Controller_Front::getInstance()-&gt;getModuleDirectory();</p>
<p>Ha sido innecesaria. Debido a que no se veo que se use en ningún momento.</p>
<p>He pensado que si la primera comprobación IF del plugin se cambia por esta otra:</p>
<p>if (isset($config[$moduleName]['resources']['layout']['layout']) &amp;&amp; ($config[$moduleName]['resources']['layout']['layout'] != &#8216;layout&#8217;)) {<br />
// Código aquí<br />
}</p>
<p>Solo añadirá el script del layout en caso que este no sea el script por defecto que establece ZF, es decir, por nombre &#8220;layout&#8221;. Evitando hacer una instancia a objeto innecesaria en esos casos. Es importante si tenemos en cuenta que el layout por defecto será el más usado por norma. Y así también nos podemos ahorrar las lineas del application.ini:</p>
<p>resources.layout.layout = layout<br />
admin.resources.layout.layout = layout</p>
<p>Ya que ZF automáticamente lo coge así para todos los módulos, me he molestado en hacer la comprobación, y el único inconveniente es que si cambias el nombre del layout de una forma no explicita (sin especificar &#8220;default.resources&#8230;&#8221;) este no lo cambiará, por que no asignará ningun layout ya que se basa en modulos y aquí no se especifica a que modulo:</p>
<p>resources.layout.layout = CustomLayout </p>
<p>Si se usa la segunda comprobación del IF hay pues, en caso de que se cambie el nombre del layout por defecto hacerlo de forma explicita:</p>
<p>default.resources.layout.layout = CustomLayout</p>
<p>Entonces si lo cambiaría&#8230;</p>
<p>Conseguimos dos cosas, que trabaje estrictamente por módulos, pudiendo ponerlos o no. Y si ponemos &#8220;layout&#8221; (nombre por defecto de los layouts para ZF) o omitimos este dato que no haga de nuevo la asignación y que directamente cargue &#8220;layout&#8221; para el módulo/path que toke en el segundo IF</p>
<p>Por último, recalcar que para seguir los coding standards de Zend los bracers &#8220;{&#8221; y &#8220;}&#8221; hacen un salto de linea despues de la comprobación.</p>
<p>A pesar de lo enrrevesado de mis divagaciones&#8230; Son sugerencias, no cambios absolutos y necesarios. ¿ Opiniones ?</p>
<p>Un saludo !!! : )</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: admin</title>
		<link>http://www.backtheweb.com/php/zend-framework-como-hacer-un-layout-para-cada-modulo.html/comment-page-1#comment-84</link>
		<dc:creator>admin</dc:creator>
		<pubDate>Fri, 09 Oct 2009 23:44:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.backtheweb.com/?p=211#comment-84</guid>
		<description>Hola Carlos,

A tu pregunta si se puede hacer, es no. No es fácil resolver tu problema de una forma limpia y comoda. Te díria que mejor busques otras opciones. Principalmente el problema ha todo esto es la carpeta &lt;em&gt;public&lt;/em&gt;, por las demás no hay problema en replicarlas.

Tu &lt;em&gt;virtual host&lt;/em&gt; o el &lt;em&gt;alias&lt;/em&gt; que te han generado solo puede apuntar a una carpeta &lt;em&gt;public&lt;/em&gt; por lo que deberias hacer que todas las aplicaciones colgaran en diferntes carpetas dentro de públic y no usar módulos si son aplicaciones independientes.

No se si alguien podrá aportarte una solución que desconozca, quizás algo con &lt;em&gt;mod_rewrite&lt;/em&gt;, no se...  pero sea lo que sea,  creo merjo será no complicarse la vida. Por eso te recomeindo usar una carpeta para cada aplicación.

Otra cosa, si para tu trabajo te ponen limitaciones técnicas, pon tu también tus limitaciones ;)</description>
		<content:encoded><![CDATA[<p>Hola Carlos,</p>
<p>A tu pregunta si se puede hacer, es no. No es fácil resolver tu problema de una forma limpia y comoda. Te díria que mejor busques otras opciones. Principalmente el problema ha todo esto es la carpeta <em>public</em>, por las demás no hay problema en replicarlas.</p>
<p>Tu <em>virtual host</em> o el <em>alias</em> que te han generado solo puede apuntar a una carpeta <em>public</em> por lo que deberias hacer que todas las aplicaciones colgaran en diferntes carpetas dentro de públic y no usar módulos si son aplicaciones independientes.</p>
<p>No se si alguien podrá aportarte una solución que desconozca, quizás algo con <em>mod_rewrite</em>, no se&#8230;  pero sea lo que sea,  creo merjo será no complicarse la vida. Por eso te recomeindo usar una carpeta para cada aplicación.</p>
<p>Otra cosa, si para tu trabajo te ponen limitaciones técnicas, pon tu también tus limitaciones <img src='http://www.backtheweb.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Carlos</title>
		<link>http://www.backtheweb.com/php/zend-framework-como-hacer-un-layout-para-cada-modulo.html/comment-page-1#comment-81</link>
		<dc:creator>Carlos</dc:creator>
		<pubDate>Fri, 09 Oct 2009 21:24:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.backtheweb.com/?p=211#comment-81</guid>
		<description>Agradezco sus valiosos aportes en los cuales me han ayudado a despejar dudas acerca del Zend Framework, sin embargo tengo una consulta que espero me pueda ayudar a resolverla.

En los proyectos que he desarrollado, utilizo el Alias para redireccionar las peticiones a la carpeta /public, y reescribir la url para las funciones que se encuentran en los controladores.

En la empresa donde trabajo, me configuraron un Alias para mi primer proyecto, pero me dicen que esto fue una excepción y que no me volverán a configurar nuevos alias para nuevas aplicaciones, sino que debo subir mis siguientes desarrollos como &quot;modulos&quot; del primer proyecto.

Es posible que se pueda configurar mi aplicación inicial para que tenga una estructura:

http://localhost/programa_default/controller/action  // como si nada pasara!!!
http://localhost/programa_default/programa_2/controller_programa2/action_programa2.  // llamando a un segundo programa totalmente distinto!!

Claro esta, teniendo en cuenta que debo montar mi programa_2 con su public, con sus controllers, con sus modelos, con sus layout. etc, practicamente  un programa independiente dentro de otro programa.

Agradezco tu respuesta y los comentarios con respecto a esta tarea loca que por &quot;politicas&quot; organizacionales colocan conflictos.</description>
		<content:encoded><![CDATA[<p>Agradezco sus valiosos aportes en los cuales me han ayudado a despejar dudas acerca del Zend Framework, sin embargo tengo una consulta que espero me pueda ayudar a resolverla.</p>
<p>En los proyectos que he desarrollado, utilizo el Alias para redireccionar las peticiones a la carpeta /public, y reescribir la url para las funciones que se encuentran en los controladores.</p>
<p>En la empresa donde trabajo, me configuraron un Alias para mi primer proyecto, pero me dicen que esto fue una excepción y que no me volverán a configurar nuevos alias para nuevas aplicaciones, sino que debo subir mis siguientes desarrollos como &#8220;modulos&#8221; del primer proyecto.</p>
<p>Es posible que se pueda configurar mi aplicación inicial para que tenga una estructura:</p>
<p><a href="http://localhost/programa_default/controller/action" rel="nofollow">http://localhost/programa_default/controller/action</a>  // como si nada pasara!!!<br />
<a href="http://localhost/programa_default/programa_2/controller_programa2/action_programa2" rel="nofollow">http://localhost/programa_default/programa_2/controller_programa2/action_programa2</a>.  // llamando a un segundo programa totalmente distinto!!</p>
<p>Claro esta, teniendo en cuenta que debo montar mi programa_2 con su public, con sus controllers, con sus modelos, con sus layout. etc, practicamente  un programa independiente dentro de otro programa.</p>
<p>Agradezco tu respuesta y los comentarios con respecto a esta tarea loca que por &#8220;politicas&#8221; organizacionales colocan conflictos.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: admin</title>
		<link>http://www.backtheweb.com/php/zend-framework-como-hacer-un-layout-para-cada-modulo.html/comment-page-1#comment-44</link>
		<dc:creator>admin</dc:creator>
		<pubDate>Tue, 29 Sep 2009 16:17:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.backtheweb.com/?p=211#comment-44</guid>
		<description>Hola, si la documentació de zend deja mucho que desear.
Ahora mismo no puedo darte mucho detalles del problema ( no estoy en casa ) pero te daré una pista: ActionStacks</description>
		<content:encoded><![CDATA[<p>Hola, si la documentació de zend deja mucho que desear.<br />
Ahora mismo no puedo darte mucho detalles del problema ( no estoy en casa ) pero te daré una pista: ActionStacks</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Milena</title>
		<link>http://www.backtheweb.com/php/zend-framework-como-hacer-un-layout-para-cada-modulo.html/comment-page-1#comment-43</link>
		<dc:creator>Milena</dc:creator>
		<pubDate>Tue, 29 Sep 2009 14:09:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.backtheweb.com/?p=211#comment-43</guid>
		<description>Hola que tal!!! Soy nueva con esto del zend, bale la ultima version y en la parte del layout estoy intentando hacer el ejemplo de la pagina oficial que reaccione lo que tengo en un controlador pero no me funciona, pareciera que no sabe que hay un controlador... Sera que me falta poner algo en aplication.ini? esto es lo que tengo:

 
  
  
      
     My Site 
  
  

  layout ()-&gt; content ; 
 
 // fetch &#039;foo&#039; key using placeholder helper: 
 echo $this -&gt; placeholder ( &#039;Zend_Layout&#039; )-&gt; foo ; 

echo $this-&gt;layout()-&gt;title; 

 // fetch layout object and retrieve various keys from it: 
 $layout = $this -&gt; layout (); 
     echo $layout -&gt; bar ; 
     echo $layout -&gt; baz ; 
 ?&gt; 
  
  

y el controlador es el sigiente:

view-&gt;title = &#039;Validaci&#243;n&#039;;
	}
     public function barAction() 
     { 
	$this-&gt;view-&gt;title = &#039;Validaci&#243;n&#039;;
         // disable layouts for this action: 
         $this-&gt;_helper-&gt;layout-&gt;disableLayout(); 
     } 
 
     public function bazAction() 
     { 
	$this-&gt;view-&gt;title = &#039;Validaci&#243;n&#039;;
         // use different layout script with this action: 
         $this-&gt;_helper-&gt;layout-&gt;setLayout(&#039;foobaz&#039;); 
     }
 } 

Gracias Hasta Pronto...</description>
		<content:encoded><![CDATA[<p>Hola que tal!!! Soy nueva con esto del zend, bale la ultima version y en la parte del layout estoy intentando hacer el ejemplo de la pagina oficial que reaccione lo que tengo en un controlador pero no me funciona, pareciera que no sabe que hay un controlador&#8230; Sera que me falta poner algo en aplication.ini? esto es lo que tengo:</p>
<p>     My Site </p>
<p>  layout ()-&gt; content ; </p>
<p> // fetch &#8216;foo&#8217; key using placeholder helper:<br />
 echo $this -&gt; placeholder ( &#8216;Zend_Layout&#8217; )-&gt; foo ; </p>
<p>echo $this-&gt;layout()-&gt;title; </p>
<p> // fetch layout object and retrieve various keys from it:<br />
 $layout = $this -&gt; layout ();<br />
     echo $layout -&gt; bar ;<br />
     echo $layout -&gt; baz ;<br />
 ?&gt; </p>
<p>y el controlador es el sigiente:</p>
<p>view-&gt;title = &#8216;Validaci&oacute;n&#8217;;<br />
	}<br />
     public function barAction()<br />
     {<br />
	$this-&gt;view-&gt;title = &#8216;Validaci&oacute;n&#8217;;<br />
         // disable layouts for this action:<br />
         $this-&gt;_helper-&gt;layout-&gt;disableLayout();<br />
     } </p>
<p>     public function bazAction()<br />
     {<br />
	$this-&gt;view-&gt;title = &#8216;Validaci&oacute;n&#8217;;<br />
         // use different layout script with this action:<br />
         $this-&gt;_helper-&gt;layout-&gt;setLayout(&#8216;foobaz&#8217;);<br />
     }<br />
 } </p>
<p>Gracias Hasta Pronto&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: admin</title>
		<link>http://www.backtheweb.com/php/zend-framework-como-hacer-un-layout-para-cada-modulo.html/comment-page-1#comment-37</link>
		<dc:creator>admin</dc:creator>
		<pubDate>Thu, 03 Sep 2009 17:47:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.backtheweb.com/?p=211#comment-37</guid>
		<description>¡Muchas Gracias!</description>
		<content:encoded><![CDATA[<p>¡Muchas Gracias!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: lisandro</title>
		<link>http://www.backtheweb.com/php/zend-framework-como-hacer-un-layout-para-cada-modulo.html/comment-page-1#comment-36</link>
		<dc:creator>lisandro</dc:creator>
		<pubDate>Thu, 03 Sep 2009 14:05:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.backtheweb.com/?p=211#comment-36</guid>
		<description>Muy bueno viejo ;)</description>
		<content:encoded><![CDATA[<p>Muy bueno viejo <img src='http://www.backtheweb.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: admin</title>
		<link>http://www.backtheweb.com/php/zend-framework-como-hacer-un-layout-para-cada-modulo.html/comment-page-1#comment-24</link>
		<dc:creator>admin</dc:creator>
		<pubDate>Thu, 20 Aug 2009 13:46:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.backtheweb.com/?p=211#comment-24</guid>
		<description>¡Gracias por tu comentario! Espero en breve publicar mas cosas de Zend. Gracias</description>
		<content:encoded><![CDATA[<p>¡Gracias por tu comentario! Espero en breve publicar mas cosas de Zend. Gracias</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Olagato</title>
		<link>http://www.backtheweb.com/php/zend-framework-como-hacer-un-layout-para-cada-modulo.html/comment-page-1#comment-23</link>
		<dc:creator>Olagato</dc:creator>
		<pubDate>Thu, 20 Aug 2009 07:43:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.backtheweb.com/?p=211#comment-23</guid>
		<description>Gracias por el artículo....me ha clarificado muchas cosas. Me parece muy útil. Con el desarrollo Zend Framework veo cada vez más necesaria la separación de modulos: un modulo default para la zona pública y otro módulo admin para la privada. Tu artículo es excelente para realizar el switcher de modulos/layouts. Saludos.</description>
		<content:encoded><![CDATA[<p>Gracias por el artículo&#8230;.me ha clarificado muchas cosas. Me parece muy útil. Con el desarrollo Zend Framework veo cada vez más necesaria la separación de modulos: un modulo default para la zona pública y otro módulo admin para la privada. Tu artículo es excelente para realizar el switcher de modulos/layouts. Saludos.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
