Source for file sm.classe.php
Documentation is available at sm.classe.php
* Extende e configura a classe smarty para internacionalização
* Destina-se a adaptar a classe smarty sem modificações para as necessidades
* - Configura o smarty (compile_dir, template_dir, delimitadores, etc)
* - Provê o mecanismo para internacionalização dos templates
* - Remove comentários HTML <!-- -->
* - Esconde endereços de email de ferramentas pró-spam
* - Funções customizadas para paginação
* Caso o idioma solicitado não esteja disponível será utilizada a string do template
* @author Marcio Merlone <mmerlone@gmail.com>
* @todo criar plugin para o FCKeditor
/* $Id: sm.classe.php,v 1.11 2007/05/04 18:07:24 mmerlone Exp $ */
die('Este script nao pode ser acessado diretamente!');
require_once(CFG_LOCAL_FRAMEWORK.
'smarty/Smarty.class.php');
* require_once('smarty.classe.php');
* $sm->assign('var', $var);
* $sm->display('index.tpl');
* @todo rever $this->use_sub_dirs -> automatizar cfme plataforma
* @var string armazena a string com o idioma a ser utilizado
* conforme $_SERVER['HTTP_ACCEPT_LANGUAGE'] (ex: pt)
* @var object $instance instância da classe
private static $instance =
null;
public static function getInstance($template_dir =
null, $compile_dir =
null){
if (self::$instance ==
null){
if(isset
($_SESSION['sm'])){
self::$instance =
unserialize($_SESSION['sm']);
self::$instance->__construct($template_dir, $compile_dir);
self::$instance =
new sm($template_dir, $compile_dir);
* se null procura, NA ORDEM:
* - config.php:CFG_PATH.'/t'
* - config.php:CFG_LOCAL_FRAMEWORK.'/t'
* @param string $template_dir diretório para templates
* @param string $compile_dir diretório de armazenamento de templates compilados
public function __construct($template_dir =
null, $compile_dir =
null){
$this->force_compile =
(defined('CFG_DEBUG') &&
CFG_DEBUG);
$this->error_reporting =
defined('CFG_DEBUG') ?
E_ALL :
0;
$this->left_delimiter =
"{!";
$this->right_delimiter =
"}";
$this->use_sub_dirs =
false;
$this->template_dir =
$template_dir;
* Traduz mensagens geradas pelo sistema e envia para o template
* $_SESSION['msgs'][] = array('id' => 16,
* 'value' => 'Já existe um usuário com o username "{!$username}"!',
* 'vars' => array('username', 'juca'));
if(!empty($_SESSION['msgs'])){
foreach($_SESSION['msgs'] as $arrMsg){
$tplMsgs[$string] =
$arrMsg['classe'];
$this->assign('msgs', $tplMsgs);
$this->display('msgs.tpl');
$_SESSION['msgs'] =
array();
* Exibe um código de javascript completo baseado em um template
* <script type="text/javascript">
* @param string $tplName nome do template com o código js
* @param boolean $custom indica se o js é do framework (false) ou do projeto (true)
public function js($tplName, $custom =
false){
$projectTemplateDir =
$this->template_dir;
$this->display($tplName);
if(!$custom) $this->template_dir =
$projectTemplateDir;
* Gera a tag <script src="$src"> para um arquivo de javascript.
* @param string $src nome do arquivo com o código js da área web.
public function jsSrc($src){
$projectTemplateDir =
$this->template_dir;
$this->assign('src', $src);
$this->display('jsSrc.tpl');
$this->template_dir =
$projectTemplateDir;
* Define o diretório de templates
* @param string $template_dir diretório para templates
trigger_error('FATAL: não foi possível encontrar os templates!', E_USER_WARNING);
trigger_error('FATAL: Diretório "'.
$template_dir.
'" inválido!', E_USER_WARNING);
$this->template_dir =
$template_dir;
* Define o idioma do smarty baseado no que a classe idioma salvou na sessão
private function _setLang(){
$this->strLang = isset
($_SESSION['lang']) ?
$_SESSION['lang'] :
'pt';
* Carrega plugins e funções (que não sejam automáticos)
* @link http://smarty.php.net/manual/en/plugins.php#plugins.howto
private function _loadFilters(){
$this->load_filter('pre', 'strip_coments');
* Assigns automágicos pro smarty
private function _autoAssigns(){
$this->assign('lang', $this->strLang);
$this->assign('csss', array());
$this->assign('scripts', array());
Documentation generated on Sun, 09 Mar 2008 23:53:05 -0300 by phpDocumentor 1.4.0