Sistema de templates PHP
Olha e aqui de novo :assobiando: Vocês vão cansar de me ver aqui pedindo ajuda HEUHUEHE.
Estou tendo uma certa dificuldade com meu sistema de Templates. (Créditos do Érick Master, peguei como base o sistema dele).
Bom este é meu código:
<?php
class Template {
private $TPL_File = NULL;
private $Read_File = NULL;
private $Tags = array();
private $Tags_Count = 0;
private static $_instance;
public static function getInstance() {
if (!isset($_instance)) {
self::$_instance = new self();
}
return self::$_instance;
}
public function Load($TPL_File) {
$this->TPL_File = @fopen($TPL_File, "r");
if ($this->TPL_File == FALSE) {
exit("<span style=\"border:1px dashed #c00; color:#c00; padding:6px; background-color:#ffebe8;\">Error: Arquivo <strong>" . $TPL_File . "</strong> não Encontrado.</span>");
}
$this->Read_File = @fread($this->TPL_File, @filesize($TPL_File));
if ($this->Read_File == FALSE) {
exit("<span style=\"border:1px dashed #c00; color:#c00; padding:6px; background-color:#ffebe8;\">Error: Erro na leitura do Arquivo <strong>" . $TPL_File . "</strong></span>");
}
}
public function Set($Tag, $Value) {
$this->Tags[$this->Tags_Count++] = array(
"Name" => $Tag,
"Value" => $Value
);
}
public function Show() {
global $version;
foreach ($this->Tags as $TPL_Tags) {
$this->Read_File = str_replace("{" . $TPL_Tags["Name"] . "}", $TPL_Tags["Value"], $this->Read_File);
}
eval("?>" . $this->Read_File . "<?");
}
public function TPL_Modules() {
if (isset($_COOKIE["Web_Template"]) == FALSE) {
$Template = constant("THEME_DEFAULT");
} elseif (file_exists("themes/" . pack("H*", $_COOKIE["Web_Template"]) . "/index.tpl.php") == FALSE) {
setcookie("Web_Template", NULL);
$Template = constant("THEME_DEFAULT");
echo("<script>window.alert('Template Invalido, aguarde...'); window.location='?';</script>");
} else {
$Template = pack("H*", $_COOKIE["Web_Template"]);
}
$this->Set("Template_Dir", $Template);
$this->Load("themes/" . $Template . "/index.tpl.php");
if (filter_input(INPUT_GET, "tpl") == TRUE) {
$Set_Template = pack("H*", $_GET["tpl"]);
if ($Set_Template == "TPL_Default") {
setcookie("Web_Template", NULL);
echo("<script>window.location='?';</script>");
} elseif (file_exists("templates/" . $Set_Template . "/index.tpl.php") == FALSE) {
setcookie("Web_Template", NULL);
echo("<script>window.alert('Template Invalido, aguarde...'); window.location='?';</script>");
} else {
setcookie("Web_Template", bin2hex($Set_Template), time() + (1 * 24 * 60 * 60));
exit("<script>window.location='?';</script>");
}
}
}
public function Open() {
if (isset($_COOKIE["Web_Template"]) == FALSE) {
return constant("THEME_DEFAULT");
} else {
return pack("H*", $_COOKIE["Web_Template"]);
}
}
}
Ele está funcionando perfeitamente, meu template é aberto como eu quero, porém estou com dificuldade de abrir as páginas com esse sistema, fiz uma outra classe General.class.php :
<?php
class General {
public function __construct() {
global $Template;
$Template->Set('%title_web%', WEB_TITLE);
$Template->Set('%main_content%', $this->getPages());
var_dump($Template);
}
public function getPages() {
global $Template;
switch (filter_input(INPUT_GET, 'pages')) {
case 'home':
$Template->Load("themes/" . $Template->Open() . "/pages/home.page.php");
break;
default :
$Template->Load("themes/" . $Template->Open() . "/pages/home.page.php");
break;
}
}
}
Só que não está abrindo, quando dou um var_dump na minha variável de objeto $Template recebo isso:
/applications/core/interface/imageproxy/imageproxy.php?img=http://i.imgur.com/3FgskHO.png&key=6e6c04bb3a43f3770902dfea4c79e4c94a73a726eeec22396a2968ab6620e7fa" alt="3FgskHO.png" />
Discussão (4)
Carregando comentários...