Holaa ah todos.. pues tengo un pequeño problema con una classe y no entiendo porque..
de ves en cuando !! cuando carga el script php que es un Panel "con un login" me aparece esto.
Catchable fatal error: Object of class template could not be converted to string in /home/xxxxxx/public_html/puntos/includes/skin.php on line 57
y la unica forma de que me deje de aparecer el error es borrando todo el historial reciente una ves borrado ya puedes entrar sin ningun tipo de error pero sigo sin entender porque sale eso
Skin.php
Código PHP:
<?php
$url = "skins/".$skin;
if((file_exists($url."/skin.php") == false) && (file_exists("../".$url."/skin.php") == false)) {
$url = "skins/default";
}
/* Configuracion del la Skin Default*/
if(file_exists("./skins/default/skin.php")) {
include("./skins/default/skin.php");
}
elseif(file_exists("./../skins/default/skin.php")) {
include("./../skins/default/skin.php");
}
else {
die("<b>No se pudo carga la skin:</b> \"Default\"");
}
//Cargar COnfiguracion del la Skin
if(file_exists("./skins/".$skin."/skin.php")){
include("./skins/".$skin."/skin.php");
}
elseif(file_exists("./../skins/".$skin."/skin.php")) {
include("./../skins/".$skin."/skin.php");
}
else {
die("No se encontro el archivo Skin.php de la Skin");
}
function theme_login() {
global $sitename,$skin,$head_top,$reversion,$url;
$item["sitename"] = $sitename;
$item["url"] = $url;
$item["version"] = $reversion;
echo $head_top;
if(file_exists("./skins/".$skin."/login.html")) {
$skin = new template("./skins/".$skin."/login.html");
}
else {
$skin = new template("./skins/default/login.html");
}
$skin->replace($item);
$skin->salida();
}
function theme_vote() {
global $sitename,$skin,$head_top,$reversion,$url;
$item = secure();
echo $head_top;
$item["url"] = $url;
$item["version"] = $reversion;
$item["sitename"] = $sitename;
$item["load_vote"] = loadtops();
$item["load_vote_list"] = loadtops(1);
if(file_exists("./skins/".$skin."/votos.html")) {
$skin = new template("./skins/".$skin."/votos.html");
}
else {
$skin = new template("./skins/default/votos.html");
}
$skin->replace($item);
$skin->salida();
}
function theme_login_admin() {
global $sitename,$head_top_admin,$url,$skin,$reversion;
$item["version"] = $reversion;
$item["url"] = "../".$url;
$item["sitename"] = $sitename;
echo $head_top_admin;
if(file_exists("./../skins/".$skin."/login_admin.html")) {
$skin = new template("./../skins/".$skin."/login_admin.html");
}
else {
$skin = new template("./../skins/default/login_admin.html");
}
$skin->replace($item);
$skin->salida();
}
function theme_panel_admin() {
global $sitename,$head_top_admin,$url,$skin,$reversion;
$item["version"] = $reversion;
$item["url"] = "../".$url;
$item["sitename"] = $sitename;
$item["load_tops"] = loadtops_admin();
echo $head_top_admin;
if(file_exists("./../skins/".$skin."/panel_admin.html")) {
$skin = new template("./../skins/".$skin."/panel_admin.html");
}
else {
$skin = new template("./../skins/default/panel_admin.html");
}
$skin->replace($item);
$skin->salida();
}
function theme_addtop_admin() {
global $sitename,$head_top_admin,$url,$skin,$reversion;
$item["version"] = $reversion;
$item["url"] = "../".$url;
$item["sitename"] = $sitename;
echo $head_top_admin;
if(file_exists("./../skins/".$skin."/addtop_admin.html")) {
$skin = new template("./../skins/".$skin."/addtop_admin.html");
}
else {
$skin = new template("./../skins/default/addtop_admin.html");
}
$skin->replace($item);
$skin->salida();
}
function theme_edittop_admin() {
global $sitename,$head_top_admin,$url,$skin,$reversion;
$item["version"] = $reversion;
$item["url"] = "../".$url;
$item["sitename"] = $sitename;
$info = topload_admin();
echo $head_top_admin;
if(file_exists("./../skins/".$skin."/edittop_admin.html")) {
$skin = new template("./../skins/".$skin."/edittop_admin.html");
}
else {
$skin = new template("./../skins/default/edittop_admin.html");
}
$skin->replace($item);
$skin->replace($info);
$skin->salida();
}
?>
la linea 57 es esta:
$skin = new template("./skins/".$skin."/votos.html");
y la Classe es esta:
Código PHP:
<?php
if (eregi("classes.php",$_SERVER["REQUEST_URI"])) {
header("HTTP/1.0 404 Not Found");
die();
}
class template {
var $template;
var $data;
public function __construct($file = NULL) {
if($file != NULL) {
if(is_string($file)) {
if(file_exists($file)) {
$load = file_get_contents($file);
/*
$load = str_replace("'","\'",$load);
$load = str_replace('"','\"',$load);
*/
$this->template = $file;
$this->data = $load;
}
else {
die("Archivo no Encontrado $file");
}
}
else {
die("Contenido No Valido");
}
}
else {
die("Plantilla Vacia");
}
}
function replace($contenido) {
if($contenido != NULL) {
if(is_array($contenido)) {
foreach($contenido as $key => $value) {
$esto['{$'.$key.'}'] = $value;
}
$this->data = strtr($this->data,$esto);
}
else {
die("Contenido no Valido");
}
}
else {
die("Contenido Vacio");
}
}
function salida() {
echo $this->data;
}
function __destruct() {
unset($this->data);
unset($this->template);
}
}
?>
BuenO Gracias de ^^