Revision: 63387
Updated Code
at May 2, 2013 02:54 by phptrampos
Updated Code
<?php //************************************* //Arquivo: application/config/hooks.php //************************************* if ( ! defined('BASEPATH')) exit('No direct script access allowed'); $hook['post_controller_constructor'] = array( "class" => "frontController", "function" => "onApplicationStart", "filename" => "frontController.php", "filepath" => "hooks" ); $hook['post_controller'] = array( "class" => "frontController", "function" => "onApplicationEnd", "filename" => "frontController.php", "filepath" => "hooks" ); ?> <?php //********************************************** //Arquivo: applicatoin/hooks/frontController.php //********************************************** class frontController { function onApplicationStart() { $CI =& get_instance(); if(!$this->isAjax() && !@in_array($CI->uri->rsegment(2), $CI->noRender)) $CI->load->view("_header"); } function onApplicationEnd() { $CI =& get_instance(); if(!$this->isAjax() && !@in_array($CI->uri->rsegment(2), $CI->noRender)) $CI->load->view("_footer"); } function isAjax() { if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == "XMLHttpRequest") { return true; } else { return false; } } } ?>
Revision: 63386
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at May 2, 2013 02:48 by phptrampos
Initial Code
<?php //************************************* //Arquivo: application/config/hooks.php //************************************* if ( ! defined('BASEPATH')) exit('No direct script access allowed'); $hook['post_controller_constructor'] = array( "class" => "frontController", "function" => "onApplicationStart", "filename" => "frontController.php", "filepath" => "hooks" ); $hook['post_controller'] = array( "class" => "frontController", "function" => "onApplicationEnd", "filename" => "frontController.php", "filepath" => "hooks" ); ?> <?php //********************************************** //Arquivo: applicatoin/hooks/frontController.php //********************************************** class frontController { function onApplicationStart() { $CI =& get_instance(); if(!$this->isAjax() && !@in_array($CI->uri->rsegment(2), $CI->noRender)){ $CI->load->view("_header"); } } function onApplicationEnd() { $CI =& get_instance(); if(!$this->isAjax() && !@in_array($CI->uri->rsegment(2), $CI->noRender)){ $CI->load->view("_footer"); } function isAjax() { if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == "XMLHttpRequest") { return true; } else { return false; } } } ?>
Initial URL
Initial Description
Este é um hook que utilizo para evitar de carregar headers e footers em cada view que carrego nos meus projetos. Tem me sido muito útil desde que comecei a utiliza-lo. O que ele faz? -------- Basicamente a cada chamada ($this->load->view('arquivo');) que faço nos controllers, o hook irá carregar junto 2 outros views um header e um footer (respectivamente os arquivos _header.php e _footer.php na pasta /view). Um antes da minha chamada , no caso o _header, e um depois que a view principal carregar, no caso o _footer. Como usar? -------- 1º - Modifique o arquivo /config/hooks.php com o código informado mais abaixo; 2º - Crie o arquivo frontController.php na pasta /hooks e cole o código informado no Source; 3º - Habilite os hooks no arquivo config.php mudando o parâmetro: $config['enable_hooks'] = TRUE; 4º - Crie 2 arquivos na pasta /application/views/_header.php e _footer.php e os modifique de acordo com o seu site. Colocando o conteúdo de Header (meta tags, styles e javascripts fixos) no arquivo _header.php até a abertura da tag body; No arquivo _footer.php o fechamento do </body></html> e qualquer outro conteúdo que queira deixar fixo no rodapé do seu site. Chamadas AJAX: Não se preocupe com as suas chamadas AJAX. Este Hook irá perceber isso e não irá carregar as views. Se tiver dúvidas, entre em contato comigo pelo email : phptrampos[at]gmail[dot]com
Initial Title
Hooks - frontController
Initial Tags
Initial Language
PHP