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.


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
    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:

  1. [production]
  2. phpSettings.display_startup_errors = 0
  3. phpSettings.display_errors = 0
  4. includePaths.library = APPLICATION_PATH "/../library"
  5. bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
  6. bootstrap.class = "Bootstrap"
  7. appnamespace = "Application"
  8. resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
  9. resources.frontController.params.displayExceptions = 0
  10. resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
  11.  
  12. [staging : production]
  13.  
  14. [testing : production]
  15. phpSettings.display_startup_errors = 1
  16. phpSettings.display_errors = 1
  17.  
  18. [development : production]
  19. phpSettings.display_startup_errors = 1
  20. phpSettings.display_errors = 1
  21. resources.frontController.params.displayExceptions = 1


layout.phtml
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
  3. <head>
  4.     <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
  5.     <title>Zend_Layout: Templates no Zend Framework</title>
  6.  
  7.     <style type="text/css">
  8.         *{
  9.           margin:0;
  10.           padding:0;
  11.         }
  12.  
  13.         body{
  14.           padding:10px;
  15.         }
  16.  
  17.         #wrapper{
  18.           border:1px solid black;
  19.           margin:0 auto;
  20.           width:900px;
  21.         }
  22.  
  23.         #header, #footer{
  24.           background-color:#f0f0f0;
  25.           height:150px;
  26.         }
  27.  
  28.         #content{
  29.           border:1px solid black;
  30.         }
  31.     </style>
  32.  
  33. </head>
  34. <body>
  35.  
  36.     <div id="wrapper">
  37.         <div id="header">
  38.             <h1>Header Layout 1</h1>
  39.         </div>
  40.         <div id="content">
  41.             <?php echo $this->layout()->content; ?>
  42.         </div>
  43.         <div id="footer">
  44.             Footer
  45.         </div>
  46.     </div>
  47.  
  48. </body>
  49. </html>

layout2.phtml
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
  3. <head>
  4.     <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
  5.     <title>Zend_Layout: Templates no Zend Framework</title>
  6.  
  7.     <style type="text/css">
  8.         *{
  9.           margin:0;
  10.           padding:0;
  11.         }
  12.  
  13.         body{
  14.           padding:10px;
  15.         }
  16.  
  17.         #wrapper{
  18.           border:1px solid black;
  19.           margin:0 auto;
  20.           width:900px;
  21.         }
  22.  
  23.         #header, #footer{
  24.           background-color:#f0f0f0;
  25.           height:150px;
  26.         }
  27.  
  28.         #content{
  29.           border:1px solid black;
  30.         }
  31.     </style>
  32.  
  33. </head>
  34. <body>
  35.  
  36.     <div id="wrapper">
  37.         <div id="header">
  38.             <h1>Header Layout 2</h1>
  39.         </div>
  40.         <div id="content">
  41.             <?php echo $this->layout()->content; ?>
  42.         </div>
  43.         <div id="footer">
  44.             Footer
  45.         </div>
  46.     </div>
  47.  
  48. </body>
  49. </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:

<?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

Postagens mais visitadas deste blog

Função para Formatar CEP, CPF, CNPJ e TELEFONE

Sem som no Ubuntu. Resolvido!

Definir / Midificar / Resetar senha root no MySQL