sexta-feira, 28 de outubro de 2011

Codeigniter 2 + Hooks + Layouts (parte 6)



Habilitar os hooks no arquivo application/config/config.php
$config['enable_hooks'] = TRUE;
Denifir um novo hook no arquivo application/config/hooks.php
$hook['display_override'][] = array('class' => 'Layout',
    'function'  => 'init',
    'filename'  => 'Layout.php',
    'filepath'  => 'hooks'
);
Criar a classe application/hook/Layout.php

Incluir constantes com os caminhos no arquivo application/config/constants.php
define('LAYOUTPATH', APPPATH .'/views/layouts/');
define('JSPATH', APPPATH . '../assets/js/');
define('CSSPATH', APPPATH . '../assets/css/');
Organizar o diretório público para os Assets do projeto
Criar um arquivo que será o template default do site em application/views/layouts/application.php

Criar uma classe centralizada para extender CI_Controller em application/core/MY_Controller.php

Baixar os frameworks css e javascript de sua preferência e colocá-los no diretórios assets/js/libs e assets/css/libs.  No projeto estão sendo usados os seguintes: http://www.blueprintcss.org , http://jquery.com , http://www.modernizr.com


Referências:
http://flaviosilveira.com/2010/habilitando-layouts-no-codeigniter-template-engine-1

2 comentários:

  1. Estou tentando dividir o layout em partes assim:
    {layout_header} — dentro dele eu chamo o {css_for_layout}
    {content_for_layout}
    {js_for_layout}
    {layout_footer}

    Porem não estou conseguindo….
    Pode esclarecer de como dividir ele em partes.
    Obrigado

    ResponderExcluir
  2. Opa João, a classe de Layout (application/hook/Layout.php) , funciona como um parser, alterando uma lista definida de variaveis que estão entre {} por outro conteúdo. As variáveis layout_header, layout_footer não são conhecidas da classe, para isso você teria que alterar o funcionamento da mesma.

    Uma sugestão para você “fatiar” o seu layout html em partes menores é você usar as partials, Assim você pode criar partes de html referentes ao header e ao footer. O próximo post fala sobre isso e explica como usar partials no codeigniter acredito que pode te ajudar … Abraço!

    ResponderExcluir