- Add known_template function (maybe we can change function name).

- Template extensions are working with menubar blocks templates.

git-svn-id: http://piwigo.org/svn/trunk@2712 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
patdenice 2008-10-11 12:55:43 +00:00
parent 9d88e93a99
commit 4fbe0ef666
4 changed files with 66 additions and 25 deletions

View file

@ -79,7 +79,13 @@ $eligible_templates = array(
'mainpage_categories.tpl' => 'index_category_thumbnails',
'thumbnails.tpl' => 'index_thumbnails',
'redirect.tpl' => 'redirect',
// 'menubar.tpl' => 'menubar', // TODO by blocks
'menubar.tpl' => 'menubar',
'menubar_categories.tpl' => 'mbCategories',
'menubar_identification.tpl' => 'mbIdentification',
'menubar_links.tpl' => 'mbLinks',
'menubar_menu.tpl' => 'mbMenu',
'menubar_specials.tpl' => 'mbSpecials',
'menubar_tags.tpl' => 'mbTags',
'header.tpl' => 'header',
'footer.tpl' => 'tail',
'index.tpl' => 'index',

View file

@ -66,6 +66,7 @@ class Template {
$this->smarty->register_modifier( 'explode', array('Template', 'mod_explode') );
$this->smarty->register_block('html_head', array(&$this, 'block_html_head') );
$this->smarty->register_function('known_script', array(&$this, 'func_known_script') );
$this->smarty->register_function('known_template', array(&$this, 'func_known_template') );
$this->smarty->register_prefilter( array('Template', 'prefilter_white_space') );
if ( $conf['compiled_template_cache_language'] )
{
@ -408,6 +409,34 @@ class Template {
}
}
/**
* This smarty "known_template" functions allows to include template
* If extent[$params['id']] exists, include template extension
* else include $params[$file]
*/
function func_known_template($params, &$smarty )
{
if (!isset($params['file']))
{
$smarty->trigger_error("known_template: missing 'file' parameter");
return;
}
if (isset($params['id']) and isset($this->extents[$params['id']]))
{
$file = $this->extents[$params['id']];
}
else
{
$file = $params['file'];
}
return $smarty->_smarty_include(array(
'smarty_include_tpl_file' => $file,
'smarty_include_vars' => array()
));
}
static function prefilter_white_space($source, &$smarty)
{
$ld = $smarty->left_delimiter;

View file

@ -184,7 +184,13 @@ switch ($page['tab'])
'mainpage_categories.tpl',
'thumbnails.tpl',
'redirect.tpl',
// 'menubar.tpl'
'menubar.tpl',
'menubar_categories.tpl',
'menubar_identification.tpl',
'menubar_links.tpl',
'menubar_menu.tpl',
'menubar_specials.tpl',
'menubar_tags.tpl',
'header.tpl',
'footer.tpl',
'index.tpl',

View file

@ -4,7 +4,7 @@
{if ( not empty($block->template) or not empty($block->raw_content) )}
<dl id="{$id}">
{if not empty($block->template)}
{include file=$block->template }
{known_template id=$id file=$block->template }
{else}
{$block->raw_content|@default}
{/if}