O módulo de layout de página do Zend Framework - Zend_Layout - pode ser usado em conjunto com MVC ou sozinho. Este artigo discute apenas o uso com MVC.
1. O script de layout
cria uma pasta de layouts em application/views. O código layout.phtml do script de layout principal é o seguinte:
<?php echo $this->doctype('XHTML1_STRICT') ?>
<html>
<cabeça>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php echo $this->headTitle() ?>
<?php
$this->headLink()->appendStylesheet("/styles/main.css");
//adiciona mais links...
?>
<?php echo $this->headLink() ?>
</head>
<corpo>
<div id="cabeçalho">
<?php echo $this->partial('header.phtml') ?>
</div>
<tabela>
<tr>
<td valign=top>
<div id="coluna esquerda">
<?php echo $this->partial('leftcolumn.phtml') ?>
</div>
</td>
<td valign=top>
<div id="conteúdo">
<?php echo $this->layout()->conteúdo ?>
</div>
</td>
</tr>
</tabela>
<div id="rodapé">
<?php echo $this->partial('footer.phtml') ?>
</div>
</body>
</html>
Além do layout.phtml, você também precisa escrever arquivos como header.phtml, leftcolumn.phtml, footer.phtml e main.css.
A documentação do Zend Framework usa uma visualização para representar a aplicação do layout da página.
2. Definir o layout da página
Definir o layout da página no MVC é muito simples. Edite html/index.php e adicione as duas linhas de código a seguir:
/** Setuplayout*/.
require_once 'Zend/Layout.php';
Zend_Layout::startMvc($rootPath . '/application/views/layouts');
Nota: Após iniciar o layout da página, você precisa ajustar as páginas existentes e remover elementos html desnecessários, como <header> <title> <body > Espere para remover. Além disso, você pode definir o título da página através de $this->headTitle().
Alterar o layout da página também é muito simples, basta usar o seguinte código no controlador:
$this->_helper->layout->setLayout('new_layout')
; pode ser definido através da função de inicialização do controlador:
public function init() {
pai::init();
$this->_helper->layout->setLayout('new_layout');
}