Gracias
masterpuppet !
Parece una tonteria, pero me hiciste volver a revisar la funcion hasta sacarle el jugo y pude corregir el problema !
Pero, ahora me viene otro tema... No se que sucede con la plantilla, ya que yo le hago un die(); al error para ver hasta donde llega el problema y me encuentro con que la funcion de leer la plantilla le llegan las mismas rutas hacia distintos archivos pero uno no los lee y el otro si, cuando las rutas son correctas y los dos ficheros existen:
Código PHP:
$this->tpl_file = 'directorio/' . $_DIR . '/' . $template_file . '.tpl';
Yo mas adelante le hago un die($this->tpl_file); para ver la ruta de la plantilla a cargar, y en ambos casos figuran ficheros validos y existentes.
En el raiz de mi sitio cargo la plantilla por ejemplo en el fichero register.php asi:
Código PHP:
<?php
include_once("template.php");
$Contenido=new Plantilla("register");
$Contenido->asigna_variables(array(
"w_register_msg" => "Registrate Gratis en la Web"
));
$ContenidoString = $Contenido->muestra();
echo $ContenidoString;
?>
Ahora, dentro del directorio de las plantillas html tengo el fichero register.tpl en el cual muestro el html con esas variables (w_register_msg) y todo va bien.
Y funciona perfecto! En el die($this->tpl_file); me muestra el directorio perfectamente: directorio/14251/register.tpl
Ahora, quiero cargar otra plantilla, pero en vez de estar en el raiz del sitio, esta en otra carpeta, ya que intenta ser un bloque aparte:
/bloques/hello.php
Y esta todo igual que en el register.php salvo el path hacia los ficheros, ya que esta nivel por encima:
Código PHP:
<?php
include_once("../template.php");
$Contenido=new Plantilla("hello");
$Contenido->asigna_variables(array(
"w_hello" => "Hola Mundo !!!"
));
$ContenidoString = $Contenido->muestra();
echo $ContenidoString;
?>
Y en el directorio tengo tambien su respectivo directorio/14251/hello.tpl donde muestro la variable en php como antes:
Pero en este caso, si bien el die($this->tpl_file); me muestra la ruta correctamente, la mencionada arriba y existe tambien, pero me da error asi:
Código:
Warning: fopen(directorio/14251/hello.tpl) [function.fopen]: failed to open stream: No such file or directory in C:\...
Ahora me quede sorprendido... No se donde estoy fallando, a ver si me pueden dar una manita y soluciono esto que me tiene despierto de hace dias
Gracias nuevamente, un saludon