Smarty Forum Index Smarty
WARNING: All discussion is moving to https://reddit.com/r/smarty, please go there! This forum will be closing soon.

Problema con directorios

 
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Smarty Forum Index -> Language: Spanish
View previous topic :: View next topic  
Author Message
zana
Smarty n00b


Joined: 30 Oct 2006
Posts: 2

PostPosted: Mon Oct 30, 2006 10:05 pm    Post subject: Problema con directorios Reply with quote

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
View user's profile Send private message
mrtinez
Smarty Rookie


Joined: 31 Jan 2005
Posts: 26
Location: Mexico

PostPosted: Wed Nov 01, 2006 6:47 pm    Post subject: problema con directorios Reply with quote

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
View user's profile Send private message Visit poster's website
zana
Smarty n00b


Joined: 30 Oct 2006
Posts: 2

PostPosted: Wed Nov 01, 2006 9:57 pm    Post subject: Reply with quote

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
View user's profile Send private message
oso96_2000
Smarty n00b


Joined: 17 Nov 2006
Posts: 2

PostPosted: Fri Nov 17, 2006 7:32 pm    Post subject: Reply with quote

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
View user's profile Send private message Visit poster's website
Display posts from previous:   
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Smarty Forum Index -> Language: Spanish All times are GMT
Page 1 of 1

 
Jump to:  
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
Protected by Anti-Spam ACP