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.

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:





Queremos criar melhores conteúdos:

Criamos uma pesquisa sobre o seu perfil profissional:
  1. Principais objetivos;
  2. Principais Problemas no seu dia a dia;
  3. Principais Alegrias.
Participe: Pesquisa Ramos da Informática – Queremos te conhecer melhor.
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:  Mibew – Instale e Configure uma Central de Atendimento Online

Email Format


E-Zine Ramos da Informática

* indicates required

View previous campaigns.