Foros del Web » Programando para Internet » PHP »

problemas con smarty

Estas en el tema de problemas con smarty en el foro de PHP en Foros del Web. Buenas estoy intentando implementar smarty en mi sitio web, la estructura de directorios es asi: Cita: admin ----modulo ---------index -------------index.php -------------templates ---------------------index.html ---------------------addEdit.html ---------------------login.html ----template ...
  #1 (permalink)  
Antiguo 12/01/2010, 18:20
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 20 años
Puntos: 43
problemas con smarty

Buenas estoy intentando implementar smarty en mi sitio web, la estructura de directorios es asi:
Cita:
admin
----modulo
---------index
-------------index.php
-------------templates
---------------------index.html
---------------------addEdit.html
---------------------login.html
----template
----------hedaer.html
----------sidebar.html
----------footer.html
website
----modulo
---------noticias
-------------noticias.php
-------------templates
---------------------index.html
---------------------ver.html
el error que me tira es:
Cita:
Warning: require_once(/smarty/) [function.require-once]: failed to open stream: No such file or directory in D:\xampp\htdocs\punk\core\clases\class.smarty.php on line 1455

Fatal error: require_once() [function.require]: Failed opening required '/smarty/' (include_path='.;D:\xampp\php\pear\') in D:\xampp\htdocs\punk\core\clases\class.smarty.php on line 1455
el codigo que uso es este:
Código PHP:
Ver original
  1. class Vistas  
  2. {
  3.     private $Template;
  4.    
  5.     function __construct()
  6.     {
  7.         $config = Config::singleton();
  8.         $this->Template = new Smarty();    
  9.         $this->Template->template_dir = $config->get('path')."/templates/";
  10.         $this->Template->compile_dir = $config->get('root')."/temp/templates_c/";
  11.         $this->Template->config_dir = $config->get('root')."/core/clases/smarty/configs";
  12.         $this->Template->compiler_file ="/smarty/";
  13.         $this->Template->cache_dir = $config->get('root')."/core/clases/smarty/cache";
  14.         $this->Template->caching = false;
  15.  
  16.     }
  17.    
  18.     public function show($vista,$data){
  19.         //cargo el hedaer y el sidebar
  20.         $this->Template->fetch('header.php');
  21.         $this->Template->fetch('sidebar.php');
  22.        
  23.         //cargo la nueva vista
  24.         $config = Config::singleton();
  25.         $this->Template->assign('datos',$data);
  26.         $pathVista=$config->get('vista').$vista;
  27.             $this->Template->fetch($pathVista);    
  28.         //cargo el footer
  29.         $this->Template->fetch('header.php');
  30.        
  31.     }
si yo comento esta linea
$this->Template->fetch($pathVista);
no me muestra nada, pero si la dejo me salta ese error.
si hago un echo de $pathVista me devuelve:
D:/xampp/htdocs/punk/admin/modulo/index/templates/login.html
que es el path correcto donde esta el login.html

si me pueden dar una mano con esto estaré muy agradecido.

Última edición por destor77; 13/01/2010 a las 08:35
  #2 (permalink)  
Antiguo 12/01/2010, 18:27
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 16 años, 3 meses
Puntos: 105
Respuesta: problemas con smarty

ps claramente el error es que el archivo no existe......

la ruta es correctamente..... estas seguro ???

por que en el listado que muestras
Cita:
admin
modulo
index
index.php
templates
index.html
addEdit.html
template
hedaer.html
sidebar.html
footer.html
website
modulo
noticias
noticias.php
templates
index.html
ver.html
no aparece login.html

Suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #3 (permalink)  
Antiguo 13/01/2010, 08:34
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 20 años
Puntos: 43
Respuesta: problemas con smarty

si es correcta la estructura que puse era de ejemplo para mostrar como tengo armado los directorios
  #4 (permalink)  
Antiguo 13/01/2010, 09:02
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: problemas con smarty

Esta línea no es necesaria: $this->Template->compiler_file ="/smarty/"; ya que con eso sobreescribes el compiler default de Smarty.

Ahora en tu fetch, lo que hace $smarty->fetch es regresar un template (este tiene que ser .tpl) por lo que tus lineas $this->Template->fetch() no harán nada ya que el output no se asigna o no se imprime, tienes que hacer en dado caso echo $this->Template->fetch('template.tpl');

Saludos.
  #5 (permalink)  
Antiguo 13/01/2010, 11:49
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 16 años, 3 meses
Puntos: 105
Respuesta: problemas con smarty

por que usas fetch y no display ????
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #6 (permalink)  
Antiguo 14/01/2010, 10:02
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 20 años
Puntos: 43
Respuesta: problemas con smarty

Cita:
Iniciado por GatorV Ver Mensaje
Esta línea no es necesaria: $this->Template->compiler_file ="/smarty/"; ya que con eso sobreescribes el compiler default de Smarty.
Ok, lo sacare

Cita:
Iniciado por GatorV Ver Mensaje
Ahora en tu fetch, lo que hace $smarty->fetch es regresar un template (este tiene que ser .tpl) por lo que tus lineas $this->Template->fetch() no harán nada ya que el output no se asigna o no se imprime, tienes que hacer en dado caso echo $this->Template->fetch('template.tpl');

Saludos.
hay algun metodo para cambiar las extensión para que tome los .html y no los .tpl?

Cita:
Iniciado por masterojitos Ver Mensaje
por que usas fetch y no display ????
Porque lo saque de un tutorial que habia en la red que lo hacia así.

salu2
  #7 (permalink)  
Antiguo 14/01/2010, 10:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: problemas con smarty

La extensión no importa mucho, el chiste es que sigan la nomenclatura de Smarty de {$var}.

Saludos.

Etiquetas: smarty
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:07.