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

cambiar el index del layout en Zend

Estas en el tema de cambiar el index del layout en Zend en el foro de Zend en Foros del Web. hola: he logrado concluir un ABM del manual demo , pero ahora quiero hacer otro abm por lo que he creado otro controlador, otras acciones, ...
  #1 (permalink)  
Antiguo 04/10/2012, 14:53
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 3 meses
Puntos: 12
cambiar el index del layout en Zend

hola:

he logrado concluir un ABM del manual demo, pero ahora quiero hacer otro abm por lo que he creado otro controlador, otras acciones, y otras vistas en la carpeta menu.

Actualmente la vista por defecto se encuentra en views/scripts/index/index.phtml, pero yo quiero jalar por defecto la vista ubicada en views/scripts/menu/index.phtml, el layout es como sigue:

Código HTML:
Ver original
  1. <?php echo $this->doctype(); ?>
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  3.     <head>
  4.         <?php echo $this->headMeta()."n"; ?>
  5.         <?php echo $this->headTitle()."n"; ?>
  6.         <?php echo $this->headLink()->prependStylesheet($this->baseUrl()."/css/biblioteca.css")."n"; ?>
  7.     </head>
  8.     <body>
  9.       <div id="cont">
  10.          <h1><?php echo $this->escape($this->title); ?></h1>
  11.          <?php echo $this->layout()->content; ?>  
  12.       </div>
  13.     </body>
  14. </html>
entiendo que en <?php echo $this->layout()->content; ?> jala la vista views/scripts/index/index.phtml, pero yo quiero jalar views/scripts/menu/index.phtml, exactamente no entiendo esta lógica, que es content, por como puedo cambiar para usar otra página por defecto, por favor si alguien podría explicarme.

Gracias
  #2 (permalink)  
Antiguo 04/10/2012, 16:30
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: cambiar el index del layout en Zend

La vista que carga el layout depende del controller, con solo entrar a otro controller, se va a cambiar la vista, eso no lo cambias en el layout, ya que el layout se procesa después de que ya se generó toda la vista.

Saludos.
  #3 (permalink)  
Antiguo 05/10/2012, 07:21
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 3 meses
Puntos: 12
Respuesta: cambiar el index del layout en Zend

este es application/controllers/IndexController.php, dónde debo cambiar que?

Código PHP:
class IndexController extends Zend_Controller_Action
{
    public function 
init()
    {
        
/* Initialize action controller here */
    
}
    public function 
indexAction()
    {
        
//Título de la vista
        
$this->view->title 'Mis Libros';
        
//Añadimos el título a la vista
        
$this->view->headTitle($this->view->title'PREPEND');
        
//Creamos el modelo, para la consulta de libros
        
$lib = new Model_DbTable_Libros();
        
//Devolvemos a la vista todos los libros
        
$this->view->libros $lib->fetchAll();
     }

gracias
  #4 (permalink)  
Antiguo 05/10/2012, 08:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: cambiar el index del layout en Zend

No tienes que cambiar nada, cuando creas otro controller, automaticamente va a buscar la otra lista, por ejemplo, si tienes:
Código PHP:
Ver original
  1. class FooController extends Zend_Controller_Action
  2. {
  3.         public function barAction()
  4.         {
  5.  
  6.         }
  7. }

Va a usar tu layout y va a buscar foo/bar.phtml de forma automática.

Saludos.
  #5 (permalink)  
Antiguo 05/10/2012, 09:15
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: cambiar el index del layout en Zend

Creo que lo que quiere hacer es cambiar el module/controller/action que se ejecuta por defecto, si es asi basta con configurar el resource frontController en tu application.ini(las key que te interesan son: defaultModule, defaultControllerName, defaultAction).

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #6 (permalink)  
Antiguo 05/10/2012, 11:45
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 3 meses
Puntos: 12
Respuesta: cambiar el index del layout en Zend

Entonces como cambiaría considerando que mis controladores son:
application/controllers/LibroController.php
application/controllers/MenuController.php
application/controllers/IndexController.php

por defecto llama IndexController.php, y quiero cambiar a MenuController.php,

en application.ini he agregado:

Cita:
resources.frontController.defaultModule = "menu"
resources.frontController.defaultControllerName = "menu"
resources.frontController.defaultAction = "index"
gracias
  #7 (permalink)  
Antiguo 05/10/2012, 11:51
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: cambiar el index del layout en Zend

Tienes un modulo menu ?, porque por lo que muestras MenuController esta bajo default, con lo que solo deberías agregar la key defaultControllerName.

Código PHP:
Ver original
  1. resources.frontController.defaultControllerName = "menu"
__________________
http://es.phptherightway.com/
thats us riders :)
  #8 (permalink)  
Antiguo 05/10/2012, 12:17
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 3 meses
Puntos: 12
Respuesta: cambiar el index del layout en Zend

No no estoy manejando módulos, todo está dentro de application, pero entendí lo que quisiste decir.

tenía que agregar esto:
Cita:
resources.frontController.defaultControllerName = "menu"
y ya funciona menu como página por defecto, gracias por tu ayuda

Etiquetas: framework, index, layout, php
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 18:32.