mirror of
https://github.com/smarty-php/smarty.git
synced 2025-10-14 21:15:20 +02:00
- improvment better error message for undefined templates at {include}
This commit is contained in:
@@ -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 );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
Reference in New Issue
Block a user