valkhan / codeigniter-template
Custom template with codeigniter support
Requires
- php: >=5.3.0
This package is auto-updated.
Last update: 2024-12-23 03:30:04 UTC
README
Este fork foi gerado para compatibilidade com o framework Codeigniter, para maiores detalhes peço que veja a o repositório original mantido pelo criador da classe Rael.
Suporte para classe será oferecido de acordo com meu entendimento sobre a classe original e aos recursos que eu adicionei listados abaixo:
1 - dieOnError - Habilita/desabilita alguns erros disparados por não encontrar blocos e variáveis.
2 - caseInsensitiveVars - Habilita/desabilita o preenchimento de variáveis/blocos sem considerar o 'case' na qual foram originadas.
3 - CodeIgniter - Dúvidas em relação à utilização e instalação em conjunto com o framework CodeIgniter e alterações pertinentes.
4 - funções: blockArr, varsArr, addArray - Estas funções foram adicionadas, e posso oferecer suporte a elas também.
Histórico
16/07/2016 - v2.3 - Geração de pacote inicial de compatibilidade com o CodeIgniter.
Download
Para baixar a biblioteca escolha entre:
- Usar o git para clonar o repositório (
git clone git@github.com:raelgc/template.git
) ou - Baixar o arquivo .zip.
Licença
Faço das palavras do Rael as minhas:
A licença desta biblioteca é regida pela licença LGPL. Ou seja, você pode utilizá-la, como biblioteca, mesmo em projetos comerciais.
Lembre-se apenas de ser uma pessoa legal e enviar de volta eventuais modificações, correções ou melhorias.
Requisitos Necessários
É preciso usar qualquer versão do PHP igual ou superior a 5.3.
Instalação e Uso
1 - Descompacte o arquivo .zip dentro da raiz do projeto do CodeIgniter
2 - Carregue a biblioteca utilizando o método load do codeigniter
3 - Configure os parametros iniciais e use a classe conforme necessidade (ver exemplo abaixo)
Arquivo PHP
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Tests extends CI_Controller { public function teste() { //-- Desired config $config = array( 'dieonerror' => false, //-- Disables some errors 'accurate' => false, //-- Disable accurate 'caseinsensitivevars' => true, //-- Enable case sensitive sets of variables and blocks /*'filename' => VIEWPATH.'tests/tests_template_valkhan.html'*/ //-- Load file (I do not recommend using this argument as it can break script execution if file does not exist, see how to manually load file below) ); //-- Load library $this->load->library( 'template', //-- Library name $config, //-- Config array 'myTpl' //-- Desired alias ); //-- Manually load template file: use dot as first argument $this->myTpl->addFile('.',VIEWPATH.'tests/tests_template_valkhan.html'); //-- Folder data to output $folders = array( 'disk1' => array( 'musics' => array('rock','symphonic metal','soundtrack'), 'images' => array('wallpapers','family') ), 'disk2' => array( 'programs' => array('sublime_text','xampp'), 'games' => array('watch_dogs','assassins_creed','nba 2k16') ) ); //-- Old fashion way of populating the template: foreach($folders as $nest1 => $next){ foreach($next as $nest2 => $next2){ $this->myTpl->NAME_NEST2 = $nest2; foreach($next2 as $nest3){ $this->myTpl->nAmE_nEsT1 = $nest1; $this->myTpl->NAME_nest3 = $nest3; $this->myTpl->block('NEST3'); } $this->myTpl->block('NesT2'); } $this->myTpl->nAmE_nEsT1 = $nest1; $this->myTpl->block('nest1'); } //-- An anxiliary method for single blocks or variables setters $vehicles = array( array('name' => 'Car', 'type' => 'land'), array('name' => 'Motorbike', 'type' => 'land'), array('name' => 'Truck', 'type' => 'land'), array('name' => 'Boat', 'type' => 'sea'), array('name' => 'Battleship', 'type' => 'sea'), array('name' => 'Airplane', 'type' => 'air'), array('name' => 'Rocket', 'type' => 'space') ); $this->myTpl->title = 'Template example on CI'; $this->myTpl->addArray($vehicles,'vehicles'); $this->myTpl->show(); } }
Arquivo HTML
<!DOCTYPE html> <html> <head> <title>{TITLE}</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style> fleft{ float: left; } </style> </head> <body> <h1>Folders</h1> <!-- BEGIN NEST1 --> /{NAME_NEST1}<br> <!-- BEGIN NEST2 --> /{NAME_NEST1}/{NAME_NEST2}<br> <!-- BEGIN NEST3 --> /{NAME_NEST1}/{NAME_NEST2}/{NAME_NEST3}<br> <!-- END NEST3 --> <!-- END NEST2 --> <br> <!-- END NEST1 --> <hr> <h1>Vehicles</h1> <!-- BEGIN VEHICLES --> <div class="fleft">{NAME} / {TYPE}</div> <!-- END VEHICLES --> <hr> <!-- BEGIN FINALLYEXAMPLE --> {SOMEVAR} <!-- END FINALLYEXAMPLE --> Nothing sent to 'FINALLYEXAMPLE' block. <!-- FINALLY --> </body> </html>
Qualquer dúvida quanto ao funcionamento da classe em si, por gentileza atentar aos exemplos deixados pelo Rael em seu repositório ou pelo site: http://raelcunha.com/template/