mirror of
https://github.com/smarty-php/smarty.git
synced 2025-08-05 10:54:27 +02:00
- improvment better error message for undefined templates at {include}
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
- removed internal muteExpectedErrors() calls in favor of having the implementor call this once from his application
|
||||
- optimized muteExpectedErrors() to pass errors to the latest registered error handler, if appliccable
|
||||
- added compile_dir and cache_dir to list of muted directories
|
||||
- improvment better error message for undefined templates at {include}
|
||||
|
||||
23.09.2011
|
||||
- remove unused properties
|
||||
|
@@ -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 );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
@@ -137,7 +137,12 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase {
|
||||
public function mustCompile()
|
||||
{
|
||||
if (!$this->source->exists) {
|
||||
throw new SmartyException("Unable to load template {$this->source->type} '{$this->source->name}'");
|
||||
if ($this->parent instanceof Smarty_Internal_Template) {
|
||||
$parent_resource = " in '$this->parent->template_resource}'";
|
||||
} else {
|
||||
$parent_resource = '';
|
||||
}
|
||||
throw new SmartyException("Unable to load template {$this->source->type} '{$this->source->name}'{$parent_resource}");
|
||||
}
|
||||
if ($this->mustCompile === null) {
|
||||
$this->mustCompile = (!$this->source->uncompiled && ($this->smarty->force_compile || $this->source->recompiled || $this->compiled->timestamp === false ||
|
||||
|
@@ -116,7 +116,12 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
|
||||
}
|
||||
// checks if template exists
|
||||
if (!$_template->source->exists) {
|
||||
throw new SmartyException("Unable to load template {$_template->source->type} '{$_template->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 {$_template->source->type} '{$_template->source->name}'{$parent_resource}");
|
||||
}
|
||||
// read from cache or render
|
||||
if (!($_template->caching == Smarty::CACHING_LIFETIME_CURRENT || $_template->caching == Smarty::CACHING_LIFETIME_SAVED) || !$_template->cached->valid) {
|
||||
|
Reference in New Issue
Block a user