Ver Mensaje Individual
  #11 (permalink)  
Antiguo 21/11/2009, 03:28
malakana
 
Fecha de Ingreso: junio-2005
Mensajes: 11
Antigüedad: 19 años, 6 meses
Puntos: 0
Respuesta: ActionStack y Layout

Pues siguiendo el ejemplo de Rodrigo, he creado los view helper para cada una de las secciones de la página.

Código:

<?php

class Zend_View_Helper_SidebarLeft
{
	function sidebarLeft()
	{	
    
	echo "Left";   	
    		    	    	
	    	    	    	    	      
    }
}
Código:

<?php

class Zend_View_Helper_SidebarRight
{
	function sidebarRight()
	{	
    
	echo "Right";   	
    		    	    	
	    	    	    	    	      
    }
}
Y así con Header y Footer también.

Mi layout

Código:
<?php echo $this->doctype(); ?>
<html xmlns="" xml:lang="es" lang="es"> 
<head>
    <?php echo $this->HeadMeta(); ?> 
    <?php echo $this->headTitle(); ?> 
    <?php echo $this->headLink()->prependStylesheet($this->baseUrl().'/css/estilo.css'); ?>
    <?php echo $this->headLink()->prependStylesheet($this->baseUrl().'/css/estilo.css'); ?>
    <?php echo $this->headScript()->appendFile($this->baseUrl().'/js/jquery-1.3.2.js')?>
             
</head>
<body>

	<div id="header">
	<?php echo $this->header(); ?>    		
	</div>

	<div id="content">
		<div id="sidebarLeft">
		<?php echo $this->sidebarLeft(); ?>  		
	    </div>
	 			
		<div id="sidebarRight">    
  		<?php echo $this->sidebarRight(); ?>  		    	
	 	</div>
 	</div>
 	
	<div id="footer">    
	<?php echo $this->footer(); ?>
	</div>

</body>
</html>
Y desde la vista en el index intento llamar a dos acciones de UserController

Código:
<p>Esto es una prueba de la vista</p>

<p><a href="<?php echo $this->url(array('controller'=>'index', 
        'action'=>'add'));?>">Add new album</a></p>
<table>
<tr>
    <th>Nombre</th>
    <th>Password</th>
    <th>&nbsp;</th>
</tr>
<?php foreach($this->users as $user) : ?>
<tr>
    <td><?php echo $this->escape($user->username);?></td>
    <td><?php echo $this->escape($user->password);?></td>
    <td>
        <a href="<?php echo $this->url(array('controller'=>'index', 
            'action'=>'edit', 'id'=>$album->id));?>">Edit</a>
        <a href="<?php echo $this->url(array('controller'=>'index', 
            'action'=>'delete', 'id'=>$album->id));?>">Delete</a>
    </td>
</tr>
<?php endforeach; ?>

</table>



 

<?php echo $this->action('register', 'user'); ?>
<?php echo $this->action('list', 'user'); ?>
Pero no consigo mostrar nada. Lo que si se ve cuando este mismo código lo coloco directamente en el layout por defecto.

Código:
<?php echo $this->doctype(); ?>
<html xmlns="" xml:lang="es" lang="es"> 
<head>
    <?php echo $this->HeadMeta(); ?> 
    <?php echo $this->headTitle(); ?> 
    <?php echo $this->headLink()->prependStylesheet($this->baseUrl().'/css/estilo.css'); ?>
    <?php echo $this->headLink()->prependStylesheet($this->baseUrl().'/css/estilo.css'); ?>
    <?php echo $this->headScript()->appendFile($this->baseUrl().'/js/jquery-1.3.2.js')?>
             
</head>
<body>

	<div id="header">
	<?php echo $this->header(); ?>    		
	</div>

	<div id="content">
		<div id="sidebarLeft">
		<?php echo $this->sidebarLeft(); ?>  		
	    </div>
	 			
		<div id="sidebarRight">    
  		<?php echo $this->sidebarRight(); ?>
  		
		<?php echo $this->action('register', 'user'); ?>
		<?php echo $this->action('list', 'user'); ?>
  		
  		
  		  		    	
	 	</div>
 	</div>
 	
	<div id="footer">    
	<?php echo $this->footer(); ?>
	</div>

</body>
</html>
Saben a que se puede deber??