- improvment better error message for undefined templates at {include}

This commit is contained in:
uwe.tews@googlemail.com
2011-09-24 18:20:13 +00:00
parent 5c0d7ad8b4
commit a98d83bbf3
4 changed files with 36 additions and 20 deletions

View File

@@ -2,12 +2,12 @@
/**
* Smarty Internal Plugin Resource PHP
*
*
* Implements the file system as resource for PHP templates
*
*
* @package Smarty
* @subpackage TemplateResources
* @author Uwe Tews
* @author Uwe Tews
* @author Rodney Rehm
*/
class Smarty_Internal_Resource_PHP extends Smarty_Resource_Uncompiled {
@@ -16,7 +16,7 @@ class Smarty_Internal_Resource_PHP extends Smarty_Resource_Uncompiled {
* @var string
*/
protected $short_open_tag;
/**
* Create a new PHP Resource
*
@@ -24,8 +24,8 @@ class Smarty_Internal_Resource_PHP extends Smarty_Resource_Uncompiled {
public function __construct()
{
$this->short_open_tag = ini_get( 'short_open_tag' );
}
}
/**
* populate Source Object with meta data from Resource
*
@@ -41,7 +41,7 @@ class Smarty_Internal_Resource_PHP extends Smarty_Resource_Uncompiled {
if (is_object($source->smarty->security_policy)) {
$source->smarty->security_policy->isTrustedResourceDir($source->filepath);
}
$source->uid = sha1($source->filepath);
if ($source->smarty->compile_check) {
$source->timestamp = @filemtime($source->filepath);
@@ -49,7 +49,7 @@ class Smarty_Internal_Resource_PHP extends Smarty_Resource_Uncompiled {
}
}
}
/**
* populate Source Object with timestamp and exists from Resource
*
@@ -64,7 +64,7 @@ class Smarty_Internal_Resource_PHP extends Smarty_Resource_Uncompiled {
/**
* Load template's source from file into current template object
*
*
* @param Smarty_Template_Source $source source object
* @return string template source
* @throws SmartyException if source cannot be loaded
@@ -75,7 +75,7 @@ class Smarty_Internal_Resource_PHP extends Smarty_Resource_Uncompiled {
return '';
}
throw new SmartyException("Unable to read template {$source->type} '{$source->name}'");
}
}
/**
* Render and output the template (without using the compiler)
@@ -88,22 +88,27 @@ class Smarty_Internal_Resource_PHP extends Smarty_Resource_Uncompiled {
public function renderUncompiled(Smarty_Template_Source $source, Smarty_Internal_Template $_template)
{
$_smarty_template = $_template;
if (!$source->smarty->allow_php_templates) {
throw new SmartyException("PHP templates are disabled");
}
}
if (!$source->exists) {
throw new SmartyException("Unable to load template \"{$source->type} : {$source->name}\"");
}
if ($_template->parent instanceof Smarty_Internal_Template) {
$parent_resource = " in '{$_template->parent->template_resource}'";
} else {
$parent_resource = '';
}
throw new SmartyException("Unable to load template {$source->type} '{$source->name}'{$parent_resource}");
}
// prepare variables
extract($_template->getTemplateVars());
// include PHP template with short open tags enabled
ini_set( 'short_open_tag', '1' );
include($source->filepath);
ini_set( 'short_open_tag', $this->short_open_tag );
}
}
}
}
?>