O nascimento de um site com Codeigniter - Estrutura e Preparação do Site - Parte III - Episódio 1 de 3

imagem de mem

Olá uma vez mais. :-)

Este é um assunto bem grande. Bem, no fundo, todos são assuntos bem grandes, dependendo apenas da profundidade com que os estudamos. Mas neste, eu tive que perceber bem, como funciona isto das Views. Nesta altura, ainda não percebi tudo. Mas o suficiente para as fazer funcionar. Vamos ver.
Existem muitas maneiras de lidar com as views. Podemos estender o controller, podemos usar um sistema de templates tipo smarty ou outro. Na Wiki do CI haverá ainda algumas outras opções. Mas, como eu gosto de manter tudo muito simples quando estou aprendendo, optei por seguir a sugestão dada aqui:
(http://codeigniter.com/forums/viewthread/97702/)

1) - O template:
A dificuldade deste tópico prende-se, não tanto com as próprias views e modo como nós podemos vê-las a funcionar pois, felizmente, a gooracle está cheio de exemplos desse tipo, a dificuldade está em como estruturar essas várias views que haveremos de ter, de maneira eficiente. É na resposta a esta eficiência que esta questão se torna complicada, contudo, apesar das várias formas de resolver a questão apontadas em cima, nós optamos aqui por usar templates.

1.1)
Conceptualmente, deveremos imaginar um template como um molde, onde as várias páginas do nosso site irão se adequar. Dito isto, deveremos analisar (olhando para o layout das páginas que estamos a desenvolver) quais as partes que vão se manter e quais vão mudar, de página para página.
Imaginemos que, na nossa estrutura, temos um cabeçalho sempre igual e um rodapé sempre igual mas que, contudo, a parte central vai-se modificando de página para página.
Detectamos então 3 partes:
Um $header; um $main e um $footer.

Vejamos o nosso template chamado geral_tpl.php :

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4.         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5.        
  6.         <!--Esta é a uma parte dinâmica do nosso template. -->
  7.         <title><?php echo $titulo;?></title>
  8.        
  9. </head>
  10.  
  11. <body>
  12.         <div id="container">
  13.                
  14.                
  15.                         <!--Chamada estática a uma view-->
  16.                         <?php $this->load->view('v_header'); ?>
  17.                
  18.                         <!--Esta é outra parte dinâmica do nosso template. -->
  19.                         <?php $this->load->view($main); ?>
  20.                
  21.                        
  22.                         <!--Chamada estática do footer-->
  23.                         <?php $this->load->view('v_footer'); ?>
  24.                
  25.                
  26.         </div><!--EO Container-->
  27. </body>
  28. </html>

1.2) A explicação - as views v_header e v_footer:
Esta é a nossa primeira view. :-)
Em vez de chamarmos o cabeçalho e o rodapé em cada página, optamos por chamá-los apenas no template. Assim, de cada vez que um controlador chamar uma view, ele poderá chamar a view template que, por sua vez, chamará as views do cabeçalho e do rodapé.

<?php $this->load->view('v_header'); ?>

<?php $this->load->view('v_footer'); ?>

O nosso cabeçalho e o nosso rodapé não poderiam ser mais simples:
Cabeçalho:

  1. <div id="header">
  2.         <p>Eu sou um cabeçalho.</p>
  3. </div>

Rodapé:

  1. <div id="footer">
  2.         <p>Eu sou um rodapé.</p>
  3. </div>

No próximo episódio da série das views, tentaremos explicar as partes dinâmicas do nosso template. Próximo episódio:
O nascimento de um site com Codeigniter - Estrutura e Preparação do Site - Parte III - Episódio 2 de 3