|
Smarty
WARNING: All discussion is moving to https://reddit.com/r/smarty, please go there! This forum will be closing soon. |
|
View previous topic :: View next topic |
Author |
Message |
zana Smarty n00b
Joined: 30 Oct 2006 Posts: 2
|
Posted: Mon Oct 30, 2006 10:05 pm Post subject: Problema con directorios |
|
|
Hola,
Tengo un problema que no he conseguido solucionar.Vengo utilizando Smarty ya hace un tiempo pero no doy con la solucion a este problema.
Mi problema es que quiro tener en un solo directorio todos los templates, pero los ficheros que llamas a los templates estan organizados en varios fichreros.El problema es que cuando llamo a un template desde un fichero donde no esta la carpeta templates, me lo carga pero las imagenes son relativas al directorio del fichero que lo llama y por lo tanto no las carga correctamente.
Me explico:
/templates
/templates/template1.tpl
/Imagenes
/Imagenes/Imagen.jpg
/templeta_c
/Directorio1
/Directorio1/Fichrero2.php
/Directorio2
Fichero1.php
Suponiendo que tenemos este sistema de archivos y directoriosen el servidor.Y que tenemos un template con una imagen cuya ruta es Imagenes/Imagen.jpg.
Si ela llamada al template la hacemos desde el fichero1.php todo funciona correctamente, ya que al llamar al templete lo hacemos desde la carpeta raiz y la ruta de la imagen que es Imagenes/Imagen.jpg es correcta.
En cambio si la llamada la hacemos desde fichero2.php la llamada se hace desde directorio1 con lo cual no carga la imagen ya que en directorio1 no existe ningun Directorio /Imagenes/Imagen.jpg.
POdria utilizar rutas absolutas en los templates pero cuando uno desarrolla la pagina en casa la ruta sera diferente de la ruta del servidor final y es un palo cambiar todos los templates uno por uno.
Alguien sabe una solucionpara esto o como se hace exactamente. |
|
Back to top |
|
mrtinez Smarty Rookie
Joined: 31 Jan 2005 Posts: 26 Location: Mexico
|
Posted: Wed Nov 01, 2006 6:47 pm Post subject: problema con directorios |
|
|
Hola, mira para poder accesar todos tus templates puedes asignar a las variables.. template_dir y compile_dir la ruta de donde estan tus directorios template y template_c ....
define("SMARTY_DIR","/ruta/Smarty/libs/");
define("TEMPLATE_DIR","/ruta_de_tu_document_root/");
ini_set("include_path",ini_get("include_path").":".SMARTY_DIR);
require_once "Smarty.class.php";
$smarty->Smarty();
$smarty->template_dir="/ruta_donde_esta_el_directorio/templates/";
$smarty->compile_dir="/ruta_donde_esta_el_directorio/templates_c/";
esto para que pueda encontrar todos los templates en la ruta que tu le indiques y los pueda compilar.
en tu programa.php al llamar al template tendras que indicarle en donde se ecuentra el template
$smarty->display("ruta_donde_esta_el_directorio/templates/template1.tpl");
Nota:en teoria si tienes tus carpetas de las imagenes abajo de tu document root, deberias poder accesar a ellas de esta manera
imagenes/imagen.jpg
espero te sirva.. |
|
Back to top |
|
zana Smarty n00b
Joined: 30 Oct 2006 Posts: 2
|
Posted: Wed Nov 01, 2006 9:57 pm Post subject: |
|
|
Hola gracias por la respuesta pero no me ha resuelto el problema.
Mi problema no es llamar al los templates desde otras carpetas, ya que como bien explicaste solo debemos cambiar el template_dir y ya los encuentra.
Mi problema es que si llamanos a el template de direfentes carpetas, las direcciones relativas en el template fallan o por lo menos a mi.
Te vo a poner un sistema de archivos como en el primer mensaje:
/templates
/templates/template1.tpl
/Imagenes
/Imagenes/Imagen.jpg
/templeta_c
/Directorio1
/Directorio1/Fichrero2.php
/Directorio2
Fichero1.php
Y supongamos que el template1 tien una Imagen con una url relativa tal como Imagenes/Imagen.jpg.
Cuando yo llamo al template desde el fichero1.php todo funciona correctamente, pero en cambio si lo llama desde el Fichero2.php ya no funciona ya que la url de la imagen me pone esta:
Directorio1/Imagenes/Imagen.jpg y como podemos ver no existe con lo cual falla.
La unica solucion que se me ocurre son poner direcciones absolutas pero eso es un follon si queremos hacer una aplicacion que se pueda utilizar en muchos host.
No se si me he explicado mejor esta vez
un saludo |
|
Back to top |
|
oso96_2000 Smarty n00b
Joined: 17 Nov 2006 Posts: 2
|
Posted: Fri Nov 17, 2006 7:32 pm Post subject: |
|
|
Usando <base href="http://www.dominio.com/" /> en el head del template, y luego usando rutas absolutas, al dominio, puede que consiga shace rlo que buscas:
Code: | <html>
<head>
<title>Prueba</title>
<base href="http://www.dominio.com/" />
</head>
<body>
<img src="/imagenes/Imagen.jpg" />
</body>
</html> |
|
|
Back to top |
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|