hinom 5 Denunciar post Postado Setembro 12, 2009 004 - Library Template app\lib\Template.php <?php /** Template Engine Class * * company: Foo Bar corp. * autor: mr. foo * email: info@foo.bar * website: foo.bar * updated: 2005-03-18 11:55:10 - mr. foo * * Methods Compile */ class Template { public $tag = false; // engine array name public $output = false; // print, read private $path; function Compile( $data, $dir = false, $file = false ) { // verifica o tipo de retorno definido no arquivo de configurações gerais if( !$this->output ) { $this->output = TEMPLATE_OUTPUT; } // verifica a nomenclatura da tag definida no arquivo de configurações gerais if( !$this->tag ) { $this->tag = TEMPLATE_TAG; } $k = $this->tag; $$k = $data; unset( $data ); unset( $k ); // obtém o caminho do diretório base dos arquivos de templates, definido no arquivo de configurações gerais $this->path = TEMPLATE_DIR; // se o parâmetro opcional possui um valor, será adicionado ao caminho do diretório base dos arquivos de templates como subdiretório. if( $dir ) { $this->path .= $dir; } // adiciona o caminho formatado ao core "include_path" ini_set( 'include_path', $this->path . PS . ini_get( 'include_path' ) . PS . TEMPLATE_DIR . LANG . DS ); //echo $this->path . $file; exit; // debug purposes only if( $fp = @fopen( $this->path . $file, 'r' ) ) { $src = ''; while( !feof( $fp ) ) { $src .= fread( $fp, 65536 ); flush(); // this is essential for large files } fclose( $fp ); // compila o conteúdo dentro do eval e atribui a uma variável ob_start(); eval( "?>" . $src ); $__r = ob_get_contents(); ob_end_clean(); unset( $src ); flush(); }else{ $__r = 'ERROR: FILE NOT EXISTS'; } // se o retorno estiver definido como "print", o contrutor echo imprimirá o valor diretamente if( $this->output == 'print' ) { echo $__r; unset( $__r ); return null; } // caso a condicional acima retorne falso, o retorno será o valor da variável $this->output = 'print'; return $__r; } } // end template class ?> http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Índice http://forum.imasters.com.br/public/style_emoticons/default/seta.gif 003 - Inicializadores e Configurações Gerais http://forum.imasters.com.br/public/style_emoticons/default/seta.gif 005 - Módulo "Home" Compartilhar este post Link para o post Compartilhar em outros sites