function smarty_resource_db_tplinfo( $tpl_name ) {
static $cache = array();
global $xoopsConfig;
if ( isset( $cache[$tpl_name] ) ) {
return $cache[$tpl_name];
}
$tplset = $xoopsConfig['template_set'];
$theme = isset( $xoopsConfig['theme_set'] ) ? $xoopsConfig['theme_set'] : 'default';
$tplfile_handler =& xoops_gethandler('tplfile');
// If we're not using the "default" template set, then get the templates from the DB
if ( $tplset != "default" ) {
$tplobj = $tplfile_handler->find( $tplset, null, null, null, $tpl_name, true);
if ( count( $tplobj ) ) {
return $cache[$tpl_name] = $tplobj[0];
}
}
// If we'using the default tplset, get the template from the filesystem
$tplobj = $tplfile_handler->find( "default", null, null, null, $tpl_name, true);
if ( !count( $tplobj ) ) {
return $cache[$tpl_name] = false;
}
$tplobj = $tplobj[0];
$module = $tplobj->getVar( 'tpl_module', 'n' );
$type = $tplobj->getVar( 'tpl_type', 'n' );
$blockpath = ( $type == 'block' ) ? 'blocks/' : '';
// First, check for an overloaded version within the theme folder
$filepath = XOOPS_THEME_PATH . "/$theme/modules/$module/$blockpath$tpl_name";
if ( !file_exists( $filepath ) ) {
// If no custom version exists, get the tpl from its default location
$filepath = XOOPS_ROOT_PATH . "/modules/$module/templates/$blockpath$tpl_name";
if ( !file_exists( $filepath ) ) {
return $cache[$tpl_name] = $tplobj ;
}
}
return $cache[$tpl_name] = $filepath;
}