Criando layout no Zend
Voltando a cena, realmente já faz tempo que eu não posto, mas voltando das ferias vou voltar a postar frequentemente, hoje eu gostaria de falar para vocês de uma ferramenta muito legalzinha, o esquema de Layout o zend, po imagine que vc quer fazer 1 site e quer ele tenha varias aparências, digamos que esta chegando perto do natal e você ou sua equipe tem que realizar um layout novo para o Natal apenas, então você percebe o seguinte: 
1º Como você pode realizar esta alteração sem gerar nenhum impacto no seu sistema
2º Você quer evitar o menor numero de alterações em código já existente.
Agora podemos editar os dois arquivos que criamos, layout.phtml e layout2.phtml deixando os da seguinte forma:

1º Como você pode realizar esta alteração sem gerar nenhum impacto no seu sistema
2º Você quer evitar o menor numero de alterações em código já existente.
Então o seu problema acabou, o Zend conta com uma ferramenta de layout de simples alteração e manutenção vamos la então começar a configuração.
A primeira coisa a fazer é criar um novo projeto, e então vamos fazer o seguinte dentro da sua pasta application, você ira criar uma pasta chamada layouts, dentro da pasta layouts crie uma pasta chamada scripts e então crei 2 arquivos, deixando a hierarquia de pastas da seguinte maneira:
-application
+configs +controller
-layouts
-layouts
layout.phtml
layout2.phtml
E alterando o arquivo configs>application.ini deixando ele da seguinte forma
Agora podemos editar os dois arquivos que criamos, layout.phtml e layout2.phtml deixando os da seguinte forma:
[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
[staging : production]
[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1
layout.phtml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title>Zend_Layout: Templates no Zend Framework</title>
<style type="text/css">
*{
margin:0;
padding:0;
}
body{
padding:10px;
}
#wrapper{
border:1px solid black;
margin:0 auto;
width:900px;
}
#header, #footer{
background-color:#f0f0f0;
height:150px;
}
#content{
border:1px solid black;
}
</style>
</head>
<body>
<div id="wrapper">
<div id="header">
<h1>Header Layout 1</h1>
</div>
<div id="content">
<?php echo $this->layout()->content; ?>
</div>
<div id="footer">
Footer
</div>
</div>
</body>
</html>
layout2.phtml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title>Zend_Layout: Templates no Zend Framework</title>
<style type="text/css">
*{
margin:0;
padding:0;
}
body{
padding:10px;
}
#wrapper{
border:1px solid black;
margin:0 auto;
width:900px;
}
#header, #footer{
background-color:#f0f0f0;
height:150px;
}
#content{
border:1px solid black;
}
</style>
</head>
<body>
<div id="wrapper">
<div id="header">
<h1>Header Layout 2</h1>
</div>
<div id="content">
<?php echo $this->layout()->content; ?>
</div>
<div id="footer">
Footer
</div>
</div>
</body>
</html>
Agora já criamos os 2 esquemas de layout e adicionamos a pasta layouts a ser carregada pelo framework, precisamos chamar os layouts então vamos até o nosso arquivo em views > scripts > index > index.phtml e vamos edita-lo:
E finalmente, para que você possa carregar o layout que quiser, simples apenas utilize o codigo:
Agora pronto você define o layout que deseja que seja carregado e, pronto, você o tem carregado, qualquer duvida galera, só postar que eu dou uma ajuda.
<?php
/* application/views/scripts/index/index.phtml */
?>
<br /><br /><center>View script
for
controller <b>Index</b>
and
script/action name <b>index</b></center><br /><br />
E finalmente, para que você possa carregar o layout que quiser, simples apenas utilize o codigo:
$this
->_helper->layout->setLayout(
'layout2
'
);
Agora pronto você define o layout que deseja que seja carregado e, pronto, você o tem carregado, qualquer duvida galera, só postar que eu dou uma ajuda.
Comentários
Postar um comentário