Foros del Web » Programando para Internet » PHP » Zend »

Duda Zend_Layout y helper, por ejemplo HeadTitle

Estas en el tema de Duda Zend_Layout y helper, por ejemplo HeadTitle en el foro de Zend en Foros del Web. Hola amigos, En el manual de referencia de Zend Framework, concretamente en el apartado "26.2.1. Layout scripts" que habla sobre los "placeholder helpers" en el ...
  #1 (permalink)  
Antiguo 30/11/2008, 12:27
 
Fecha de Ingreso: diciembre-2007
Mensajes: 42
Antigüedad: 17 años
Puntos: 1
Duda Zend_Layout y helper, por ejemplo HeadTitle

Hola amigos,

En el manual de referencia de Zend Framework, concretamente en el apartado "26.2.1. Layout scripts" que habla sobre los "placeholder helpers" en el segundo script aparece esto:

Código PHP:
<!DOCTYPE html
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <?= $this->headTitle() ?>
    <?= $this->headScript() ?>
    <?= $this->headStyle() ?>
</head>
<body>
    <?= $this->render('header.phtml'?>

    <div id="nav"><?= $this->placeholder('nav'?></div>

    <div id="content"><?= $this->layout()->content ?></div>

    <?= $this->render('footer.phtml'?>
</body>
</html>
Este layout se carga al principio cuando inicia el sistema... luego ¿ este iría atado a cada vista por defecto ?

Según el manual de ZF, podemos cambiar el layout o sus estados mediante el mismo objeto o uno de sus placeholders.

Y también dice que si en concreto el alguna de las implementaciones de "placeholder helpers" es llamada sin parametros, como $this->headTitle(); por ejemplo, esta retorna el elemento al que se refiere.

Para que $this->headTitle(); retornase algo, o por lo menos algo diferente a "Documento sin título"... este debería ser definido explicitamente antes en alguna acción(init por ejemplo), no ?

Asias ; )
  #2 (permalink)  
Antiguo 30/11/2008, 21:13
Avatar de ArrauKano  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago
Mensajes: 664
Antigüedad: 22 años, 1 mes
Puntos: 4
Respuesta: Duda Zend_Layout y helper, por ejemplo HeadTitle

Puedes definirlo en uno de los "eventos" que soportan los action Plugins.

Por defecto, en el "evento" postDispatch se "pegan" los placeholders al layout.
__________________
Blog | Tecnosquad
  #3 (permalink)  
Antiguo 01/12/2008, 03:10
 
Fecha de Ingreso: diciembre-2007
Mensajes: 42
Antigüedad: 17 años
Puntos: 1
Respuesta: Duda Zend_Layout y helper, por ejemplo HeadTitle

Conciso pero útil, gracias. Ahhh, le eché un vistazo rápido al manual y esto son los 'Hooks' no ? ; )

Ese tipo de "eventos" jeje... me ha recordado a ASPx.NET 2.0 este lenguaje tiene su montoncito de Eventos propiamente dichos que hacen ese tipo de funciones. Pfff... Pero ya entiendo xD ke akí el rollito en PHP es diferente. ; ) JajaJaja ! (risa malevola...).

Ufff es que ahora lo que tengo son solo conceptos de aplicación (como se hace)... Pero poquito poquito de como funciona internamente (que hace), supongo ke para esto lo mejor es ir asimilando con la práctica.
  #4 (permalink)  
Antiguo 05/12/2008, 08:12
 
Fecha de Ingreso: diciembre-2007
Mensajes: 42
Antigüedad: 17 años
Puntos: 1
Respuesta: Duda Zend_Layout y helper, por ejemplo HeadTitle

Preguntas:

"$this->placeholder('nav')" sería lo mismo que "$this->layout()->nav" ?

"$this->layout()->content" recibe por defecto en mvc el contenido de la vista... Pero... No acabo de entender muy bién como añadiría contenido a por ejemplo $this->layout()->nav o header o menu...

He visto en un sitio que hacen así:

$response = $this->getResponse();
$response->insert('header', $this->view->render('header.phtml'));

Lo hacen con el "response"... ( el cual todavía no tengo el placer de conocer muy bién).

Es que el problema es que no sé muy bién que utilizar para definir las partes del layout. No sé si sería más apropiado usar $this->render("x.phtml"), o action(), o partial(), o placeholders... si hacerlo con el response, si no...

pfff estoy algo confundido. Alguién me ilumina un poco ?

Merciiii
  #5 (permalink)  
Antiguo 05/12/2008, 09:35
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Duda Zend_Layout y helper, por ejemplo HeadTitle

Mmm lo quieres inyectar manualmente?, no te sirve definirlo en la vista principal y ahi hacer uso??

Creo la forma más "limpia" de hacerlo es usando $response en un plugin.

Saludos
  #6 (permalink)  
Antiguo 05/12/2008, 11:07
 
Fecha de Ingreso: diciembre-2007
Mensajes: 42
Antigüedad: 17 años
Puntos: 1
Respuesta: Duda Zend_Layout y helper, por ejemplo HeadTitle

Cita:
Iniciado por GatorV Ver Mensaje
Mmm lo quieres inyectar manualmente?, no te sirve definirlo en la vista principal y ahi hacer uso??
Perdona GatorV, soy algo duro... Quieres decir hacer un layout integrando esas partes como propias del layout, en vez de incluirle/añadirle/renderizarle vistas o cosas externas ?

Ay... sin falta tengo ke mirarme, que son (como concepto) y como funcionan los plugins en zend framework y lo del response, que parece ser algo super util.
  #7 (permalink)  
Antiguo 05/12/2008, 11:19
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Duda Zend_Layout y helper, por ejemplo HeadTitle

Pues depende, como te digo lo mejor es hacer un plugin para el frontController y mejor desde cada Controller activas/desactivas el plugin que necesites.

A mi parecer es una forma de atacarlo mas limpio...
  #8 (permalink)  
Antiguo 05/12/2008, 16:36
 
Fecha de Ingreso: diciembre-2007
Mensajes: 42
Antigüedad: 17 años
Puntos: 1
Respuesta: Duda Zend_Layout y helper, por ejemplo HeadTitle

Lo que quieres decir con los plugins no es exactamente lo que hacen aki ?

http://framework.zend.com/manual/en/zend.controller.response.html#zend.controller.resp onse.namedsegments
La url sale con un espacio en "resp onse" y no puedo poner links - Disculpad : (

Ahí desde un plugin mete en el response header y footer las vistas. Luego... Esto en la layout respondería a $this->layout()->header y $this->layout()->footer si no entendí mal cuando leí zend_layout xDDD

Se podría tmb crear un action en el plugin ke defina x contenido para poder llamarlo o no desde los action controllers ? Es así ?

Última edición por irilien; 05/12/2008 a las 16:42
  #9 (permalink)  
Antiguo 05/12/2008, 16:40
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Duda Zend_Layout y helper, por ejemplo HeadTitle

En efecto es eso, si te fijas estan creando un plugin para renderear el contenido directamente, y lo llaman como propones.

Saludos.
  #10 (permalink)  
Antiguo 05/12/2008, 16:54
 
Fecha de Ingreso: diciembre-2007
Mensajes: 42
Antigüedad: 17 años
Puntos: 1
Respuesta: Duda Zend_Layout y helper, por ejemplo HeadTitle

Jajaja no he terminado de editar la url... y ya respondiste.

Entendido GatorV, Muchas gracias !!!

Pfff pero de momento casi no sé como aplicar muchas cosas... me falta familiarizarme mucho con cosas como, response, plugins, router, el ciclo ese de dispatch ke va desde el router al postdispatch... controller, helpers fu fu a ver si no salgo mal parado xD
  #11 (permalink)  
Antiguo 05/12/2008, 17:34
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Duda Zend_Layout y helper, por ejemplo HeadTitle

Cualquier duda, aqui te podemos apoyar

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:11.