Sistemas de Temas do CakePHP

Sistemas de Temas do CakePHP

3 de janeiro de 2015 Off Por Ramos de Souza Janones

O Google lançou uma funcionalidade de alteração de temas da interface do seu WebMail. Isto me fez lembrar que eu tinha visto algo sobre temas no CakePHP. Motivado pela inclusão desta funcionalidade no Gmail e triste por não poder usufruir (ainda), escrevo este artigo explicando como trabalhar com temas no CakePHP.

O sistema é relativamente simples e é composto somente de uma adição nas convenções de pastas e arquivos. Na verdade, vamos ter que fazer algumas alterações no nosso Controller, mais isso já era esperado, não é?

Curso de PHP ERP com NFe.

A grande sacada é a adição de novos PATHs de procura. Com o sistema de temas acionado, o CakePHP irá procurar primeiro nas pastas relacionadas aos temas, caso não encontre, ele procura nas pastas normais. Portanto, acredito ser algo bem simples de implementar temas nas aplicações, até mesmo em já existentes.

Recomendamos a leitura:
- 14 Hábitos de Desenvolvedores Altamente Produtivos eBook Kindle
- Kwai dá dinheiro aos usuários, como ganhar?

Lançamento do jogo Returnal para PlayStation 5
Guia de Compras em PC Gaming

Primeiro vou ensinar como acionar o sistema de temas em sua aplicação. A modificação tem que ser feita no seu Controller, portanto o mais sensato é colocar no seu AppController. Os dois atributos que devem ser alterados são o Controller::theme e Controller::view, ficaria algo como:

class AppController extends Controller {
    // Habilita os temas
    var $view = 'theme';
    // Seleciona o tema
    var $theme = 'azul';
}

Com isto, sua aplicação já estará habilitada a utilizar os temas, agora é só entender a convenção de pastas. Todos os temas deverão estar na pasta themed dentro da pasta view. Para cada tema, deverá existir uma pasta com o seu respectivo nome. Dentro desta pasta, é só seguir a convenção padrão, pasta com nome do Model no plural, arquivos .CTP correspondente à action, elementos dentro das pasta elements e arquivos de layout dentro da pasta layouts. Ficaria algo assim:

- app
    \- views
    |   \- themed
    |   |   \- tema_1
    |   |   |   \- elements
    |   |   |   \- controller1
    |   |   |   |   \- action1.ctp
    |   |   |       \- action2.ctp
    |   |   |   \- controller2
    |   |          \- action1.ctp
    |   |   \- tema_2
    |   |   |   \- elements
    |   |   |   \- controller1
    |   |   |   |   \- action1.ctp
    |   |   |       \- action2.ctp
    |   |   |   \- controller2
    |               \- action1.ctp
    |   \- elements
    |   \- controller1
    |   |   \- action1.ctp
    |       \- action2.ctp
    |   \- controller2
            \- action1.ctp

Só que um sistema de temas não estaria completo se nós não pudéssemos mudar os arquivos que ficam no webroot, na verdade os mais importantes para alterar um tema! Mas a idéia é a mesma, uma pasta chamada themed, pastas com o nome do tema e dentro, as pastas padrões do webroot, como: css, js, img, etc..

Vocês podem encontrar um pouco de documentação no Book do CakePHP, mais informações no blog PseudoCoder.com e se ainda não estiver satisfeito, pode olhar o blog rodoTelmi.

Outros tutoriais e dicas sobre PHP:

Subscribe to our mailing list

* indicates required


Além de PHP e MySQL, deseja receber outro tema?

LEIA TAMBÉM:  Como exportar uma página HTML para PDF com PHP?

Email Format