Re: [SMARTY] Custom resources

[email protected] (boots) Wed, 3 May 2006 22:11:45 -0700 (PDT)
Newsgroups php.smarty.general
Message-ID <[email protected]>
--- Eric Mueller <[email protected]> wrote:
> Hi, hoping someone can help me with this. I am working on a custom resource
> handler must be missing something obvious...? Why is this giving me this
> error: "Warning: Smarty error: unable to read resource: "db:blah" in
> C:\htdocs\cms\libs\Smarty.class.php on line 1095"?
>  
> 
> <?php
>  
> require_once('libs/Smarty.class.php');
>  
> $smarty = new Smarty;
>  
> function db_source($tpl_name, &$tpl_source, &$smarty_obj) {
>      $tpl_source = "You asked for $tpl_name.";
>      return true;
> }
>  
> function db_timestamp($tpl_name, &$tpl_timestamp, &$smarty_obj) {
>      return false;          // it's always new
> }


Hi.

You return false only on failure -- ie: you can't determine the timestamp at
all. The implied condition is then that you can't locate the requested resource
item. Otherwise, you should return true and populate $tpl_timestamp with the
proper timestamp. If you want non-expiring templates and don't intend to
look-up the proper timestamp, set the timestamp for $tpl_timestamp to now
(perhaps with time()).

HTH


> function db_secure($tpl_name, &$smarty_obj) {
>     // assume all templates are secure
>     return true;
> }
>  
> function db_trusted($tpl_name, &$smarty_obj) {
>     // not used for templates
>     return true;
> }
>  
> 
> // register the resource name "db"
> $smarty->register_resource("db", array( "db_source",
>                                    "db_timestamp",
>                                    "db_secure",
>                                    "db_trusted" ) );
>  
> $smarty->display('db:blah');
>  
> ?>


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com