Skip to content

CakePHP 1.2: Trabalhando com Temas

by Vinícius Krolow on janeiro 30th, 2009

Uma feature muito interessante que temos na versão 1.2 do CakePHP, é a possibilidade de usarmos temas.

Temas é uma maneira, de podermos fazer distintas apresentações no CakePHP, com ele podemos usar sempre o mesmo controller, porém termos views e layouts distintos para cada tema. Sua utilização pode se dar por exemplo, em portais, onde há necessidade de apresentações diferentes.

Para implementar o mesmo é muito simples, pois o suporte já é nativo, basta informar ao controller que vamos usar 1 tema:

1
2
3
4
5
6
7
8
9
class BbbController extends AppController {
 
	public $name = 'Bbbs';
	public $view = 'Theme';
	public $theme = 'big_brother_brasil';
	public $helpers = array('Html', 'Form');
 
	.//Continuação do controller
}

Podemos ver que foi adicionado um atributo novo na classe o $theme, e que o atributo $view recebeu o valor default de Theme.

Feito isso já temos suporte a utilização de temas, se você acessar novamente sua aplicação vai perceber que nada aconteceu, isso porque ele é inteligente, se não tivermos nenhuma view no tema relatado ele ignora e busca a padrão.

Para criarmos as alterações nos temas temos que criar 1 diretório novo na nossa aplicação, vá até ..app/views/ e crie um diretório ..app/views/themed/, esse é um diretório padrão onde vai abrigar nossos temas.

Criado ele agora podemos criar nossos temas dentro dele, no caso o teme que o controller Bbb está usando é o tema big_brother_brasil, então dentro de ..app/views/themed/ criamos o diretório big_brother_brasil ficando assim ..app/views/themed/big_brother_brasil.

Criado o diretório do nossa tema, agora basta criar as views da tua aplicação assim como os layouts. Por exemplo:

File: ..app/views/themed/big_brother_brasil/layouts/default.ctp

1
< ?php echo 'BBB: Big Brother Brasil with CakePHP 1.2 =)'; ?>

Assim como qualquer view da sua aplicação pode ser criada dentro do seu tema, e usada no controller que quiser.

E mais uma vez, rápido, fácil, simples, como só o CakePHP oferece!

From → cakephp, php, web

4 Comments
  1. Big Brother Brasil cara? iuhae

    Ótimo post.

    Pessoalmente, modifico somente a var $layout.

    Este Automagic é que mais me encanta. Tudo se torna ágil.

    Abração.

  2. Vinícius Krolow permalink

    opa não entendi o comentário sobre o var $layout, o cakephp quando não definimos o atributo layout, trás ele com o valor padrão que é default…

  3. Kaio Cesar permalink

    Eae cara blz?
    então segui seus passos, e obtive sucesso para a FW 1.2
    porém na 2.0.6 não teve nenhum retorno, por que será que está acontecendo isso?
    tem algo de muito diferente, como por exemplo convenções de configuração que tenham mudado?

    tem como me reotrnar pelo meu email? vlww ae

  4. Vinícius Krolow permalink

    opa no 2.0.6 o muda um pouco…

    o folder fica em: app/Views/Themed/MeuTema

    Ai lá no teu controller segue tudo igual..

    abraço

Leave a Reply

Note: XHTML is allowed. Your email address will never be published.

Subscribe to this comment feed via RSS