Safely handle fatal missing plugin/function errors?
Cameron Perry <[email protected]> Mon, 9 Jul 2007 01:15:26 -0700
| Newsgroups | gmane.comp.php.smarty.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi everyone,
Maybe I'm missing something somewhere, but is there any way to
gracefully handle the fatal errors if a requested template function
doesn't exist? For example, if {myfunc} is written into the template
but function.myfunc.php doesn't exist there is a fatal error that
kills the remainder of the page render. Is there any built-in
functionality in Smarty (though I didn't find it doesn't mean it
doesn't exist) that would allow the script to catch that error and
treat it almost as if the {myfunc} function was never requested in
the first place? I could see it being as simple as returning NULL for
functions, or returning the text contained within the block function
tags. If there's nothing like that in Smarty, is it something the dev
team could/would consider implementing in a future release?
For me it matters because I'm writing an app that allows users/
content editors to add small page plugins to content areas. At the
moment I simply plan on using a wrapper function that safely handles
the above problem, but is still not my ideal work-around.
For example (forgive any errors - this is just off the top of my
head for demonstration purposes... and it's pretty late at night :-)
{* in the template *}
{callfunc name="weather"}
//---- function.callfun.php --
smarty_function_callfunc($params, &$smarty){
if(function_exists("smarty_function_".$params['name']) {
// call the function and continue
// return output to template
} else {
return NULL; //there would be an empty spot where that plugin was
placed.
}
}
//---- function.weather.php --
smarty_function_weather($params, &$smarty){
//get local weather
//fetch template & return
}
Any input is appreciated!
Thanks,
Cameron
--
Smarty Development Mailing List (http://smarty.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php