For Programmers: Free Programming Magazines  


Home > Archive > PHP Smarty Templates > September 2006 > RE: [SMARTY] Same template filename in multiple directories in path









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author RE: [SMARTY] Same template filename in multiple directories in path
Saliga Gábor

2006-09-22, 4:22 am

| -----Original Message-----
| From: Mark Rogers [mailto:mark@quarella.co.uk]
| Sent: Friday, September 22, 2006 11:33 AM
| To: smarty-general@lists.php.net
| Subject: [SMARTY] Same template filename in multiple=20
| directories in path
|=20
|=20
| I'm sure I should know the answer to this, but I can't find it:
|=20
| I have multiple directories in my template path, which will
| vary on multiple calls to my script, but there's always a=20
| default template directory. All of them contain a file=20
| "index.tpl", so depending on the template path for any given=20
| call to my script I will be targetting a different index.tpl.
|=20
| It seems [*] that they all compile to the same file in
| templates_c, so I generally get the last compiled version of=20
| the wrong template.
|=20
| How do I fix this?
|=20
| [*] I'm debugging this remotely and that's the conclusion
| I've reached; the site is currently using v2.6.3. If an=20
| upgrade will fix it or this just shouldn't be happening=20
| anyway I'll look for other problems in my code.
|=20
| --
| Mark Rogers
| More Solutions Ltd

Hello,

It think you should set a different templates_c directory for each =
template
directory.

I mean:
$smarty->compile_dir =3D 'different in every case';

Regards,=20
G=E1bor Saliga
Owen Cole

2006-09-22, 7:03 pm

If you are not using caching you simply need to set a $compile_id that
is based upon the current template directory that you are using.
http://smarty.php.net/manual/en/variable.compile.id.php

If you are using caching and could possibly have multiple sets of data
displayed from the same template (under the same $compile_id), then you
would add in a custom $cache_id.

This will allow for multiple caches of the same template, but with
different versions.

http://smarty.php.net/manual/en/cac...iple.caches.php

Good luck!

Owen


Saliga Gábor wrote:
> | -----Original Message-----
> | From: Mark Rogers [mailto:mark@quarella.co.uk]
> | Sent: Friday, September 22, 2006 11:33 AM
> | To: smarty-general@lists.php.net
> | Subject: [SMARTY] Same template filename in multiple
> | directories in path
> |
> |
> | I'm sure I should know the answer to this, but I can't find it:
> |
> | I have multiple directories in my template path, which will
> | vary on multiple calls to my script, but there's always a
> | default template directory. All of them contain a file
> | "index.tpl", so depending on the template path for any given
> | call to my script I will be targetting a different index.tpl.
> |
> | It seems [*] that they all compile to the same file in
> | templates_c, so I generally get the last compiled version of
> | the wrong template.
> |
> | How do I fix this?
> |
> | [*] I'm debugging this remotely and that's the conclusion
> | I've reached; the site is currently using v2.6.3. If an
> | upgrade will fix it or this just shouldn't be happening
> | anyway I'll look for other problems in my code.
> |
> | --
> | Mark Rogers
> | More Solutions Ltd
>
> Hello,
>
> It think you should set a different templates_c directory for each template
> directory.
>
> I mean:
> $smarty->compile_dir = 'different in every case';
>
> Regards,
> Gábor Saliga
>
>

messju mohr

2006-09-22, 7:03 pm

On Fri, Sep 22, 2006 at 10:03:13AM -0400, Owen Cole wrote:
> If you are not using caching you simply need to set a $compile_id that
> is based upon the current template directory that you are using.
> http://smarty.php.net/manual/en/variable.compile.id.php
>
> If you are using caching and could possibly have multiple sets of data
> displayed from the same template (under the same $compile_id), then you
> would add in a custom $cache_id.


not really. you can work around the problem by using a distinct
$compile_id regardless of caching. (it works transparently with caching enabled).

nevertheless I'd prefer to use different compile_dirs for different
template_dirs. or just use one template_dir and use
display('subdir1/index.tpl') and display('subdir2/index.tpl') which
are then distinct inside *one* compile_die.

greetings
messju

> This will allow for multiple caches of the same template, but with
> different versions.
>
> http://smarty.php.net/manual/en/cac...iple.caches.php
>
> Good luck!
>
> Owen
>
>
> Saliga Gábor wrote:
>
> --
> Smarty General Mailing List (http://smarty.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php

Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com