mirror of
https://github.com/smarty-php/smarty.git
synced 2025-08-07 11:54:26 +02:00
- cache modified check implemented
This commit is contained in:
@@ -1,3 +1,6 @@
|
|||||||
|
26/02/2010
|
||||||
|
- cache modified check implemented
|
||||||
|
|
||||||
24/02/2010
|
24/02/2010
|
||||||
- bugfix on expressions in doublequoted string enclosed in backticks
|
- bugfix on expressions in doublequoted string enclosed in backticks
|
||||||
- added security property $static_classes for static class security
|
- added security property $static_classes for static class security
|
||||||
|
@@ -232,7 +232,8 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
/**
|
/**
|
||||||
* Class constructor, initializes basic smarty properties
|
* Class constructor, initializes basic smarty properties
|
||||||
*/
|
*/
|
||||||
public function __construct() {
|
public function __construct()
|
||||||
|
{
|
||||||
// self reference needed by other classes methods
|
// self reference needed by other classes methods
|
||||||
$this->smarty = $this;
|
$this->smarty = $this;
|
||||||
|
|
||||||
@@ -253,8 +254,7 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
if (!$this->debugging && $this->debugging_ctrl == 'URL') {
|
if (!$this->debugging && $this->debugging_ctrl == 'URL') {
|
||||||
if (isset($_SERVER['QUERY_STRING'])) {
|
if (isset($_SERVER['QUERY_STRING'])) {
|
||||||
$_query_string = $_SERVER['QUERY_STRING'];
|
$_query_string = $_SERVER['QUERY_STRING'];
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
$_query_string = '';
|
$_query_string = '';
|
||||||
}
|
}
|
||||||
if (false !== strpos($_query_string, $this->smarty_debug_id)) {
|
if (false !== strpos($_query_string, $this->smarty_debug_id)) {
|
||||||
@@ -262,18 +262,15 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
// enable debugging for this browser session
|
// enable debugging for this browser session
|
||||||
setcookie('SMARTY_DEBUG', true);
|
setcookie('SMARTY_DEBUG', true);
|
||||||
$this->debugging = true;
|
$this->debugging = true;
|
||||||
}
|
} elseif (false !== strpos($_query_string, $this->smarty_debug_id . '=off')) {
|
||||||
elseif (false !== strpos($_query_string, $this->smarty_debug_id . '=off')) {
|
|
||||||
// disable debugging for this browser session
|
// disable debugging for this browser session
|
||||||
setcookie('SMARTY_DEBUG', false);
|
setcookie('SMARTY_DEBUG', false);
|
||||||
$this->debugging = false;
|
$this->debugging = false;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
// enable debugging for this page
|
// enable debugging for this page
|
||||||
$this->debugging = true;
|
$this->debugging = true;
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
if (isset($_COOKIE['SMARTY_DEBUG'])) {
|
if (isset($_COOKIE['SMARTY_DEBUG'])) {
|
||||||
$this->debugging = true;
|
$this->debugging = true;
|
||||||
}
|
}
|
||||||
@@ -287,7 +284,8 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
/**
|
/**
|
||||||
* Class destructor
|
* Class destructor
|
||||||
*/
|
*/
|
||||||
public function __destruct() {
|
public function __destruct()
|
||||||
|
{
|
||||||
// restore to previous exception handler, if any
|
// restore to previous exception handler, if any
|
||||||
if (!empty($this->exception_handler))
|
if (!empty($this->exception_handler))
|
||||||
restore_exception_handler();
|
restore_exception_handler();
|
||||||
@@ -302,7 +300,8 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
* @param object $ |null $parent next higher level of Smarty variables
|
* @param object $ |null $parent next higher level of Smarty variables
|
||||||
* @return string rendered template output
|
* @return string rendered template output
|
||||||
*/
|
*/
|
||||||
public function fetch($template, $cache_id = null, $compile_id = null, $parent = null) {
|
public function fetch($template, $cache_id = null, $compile_id = null, $parent = null, $display = false)
|
||||||
|
{
|
||||||
if (is_object($cache_id)) {
|
if (is_object($cache_id)) {
|
||||||
$parent = $cache_id;
|
$parent = $cache_id;
|
||||||
$cache_id = null;
|
$cache_id = null;
|
||||||
@@ -316,17 +315,49 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
$_template = $this->createTemplate ($template, $cache_id, $compile_id, $parent);
|
$_template = $this->createTemplate ($template, $cache_id, $compile_id, $parent);
|
||||||
$_smarty_old_error_level = $this->debugging ? error_reporting() : error_reporting(isset($this->error_reporting)
|
$_smarty_old_error_level = $this->debugging ? error_reporting() : error_reporting(isset($this->error_reporting)
|
||||||
? $this->error_reporting : error_reporting() &~E_NOTICE);
|
? $this->error_reporting : error_reporting() &~E_NOTICE);
|
||||||
|
// obtain data for cache modified check
|
||||||
|
if ($this->cache_modified_check && $this->caching && $display) {
|
||||||
|
$_isCached = $_template->isCached() && !$_template->has_nocache_code;
|
||||||
|
if ($_isCached) {
|
||||||
|
$_gmt_mtime = gmdate('D, d M Y H:i:s', $_template->getCachedTimestamp()) . ' GMT';
|
||||||
|
} else {
|
||||||
|
$_gmt_mtime = '';
|
||||||
|
}
|
||||||
|
}
|
||||||
// return redered template
|
// return redered template
|
||||||
if (isset($this->autoload_filters['output']) || isset($this->registered_filters['output'])) {
|
if (isset($this->autoload_filters['output']) || isset($this->registered_filters['output'])) {
|
||||||
$_output = Smarty_Internal_Filter_Handler::runFilter('output', $_template->getRenderedTemplate(), $this);
|
$_output = Smarty_Internal_Filter_Handler::runFilter('output', $_template->getRenderedTemplate(), $this);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
$_output = $_template->getRenderedTemplate();
|
$_output = $_template->getRenderedTemplate();
|
||||||
}
|
}
|
||||||
$_template->rendered_content = null;
|
$_template->rendered_content = null;
|
||||||
error_reporting($_smarty_old_error_level);
|
error_reporting($_smarty_old_error_level);
|
||||||
|
// display or fetch
|
||||||
|
if ($display) {
|
||||||
|
if ($this->caching && $this->cache_modified_check) {
|
||||||
|
$_last_modified_date = @substr($_SERVER['HTTP_IF_MODIFIED_SINCE'], 0, strpos($_SERVER['HTTP_IF_MODIFIED_SINCE'], 'GMT') + 3);
|
||||||
|
if ($_isCached && $_gmt_mtime == $_last_modified_date) {
|
||||||
|
if (php_sapi_name() == 'cgi')
|
||||||
|
header('Status: 304 Not Modified');
|
||||||
|
else
|
||||||
|
header('HTTP/1.1 304 Not Modified');
|
||||||
|
} else {
|
||||||
|
header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $_template->getCachedTimestamp()) . ' GMT');
|
||||||
|
echo $_output;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
echo $_output;
|
||||||
|
}
|
||||||
|
// debug output
|
||||||
|
if ($this->debugging) {
|
||||||
|
Smarty_Internal_Debug::display_debug($this);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
// return fetched content
|
||||||
return $_output;
|
return $_output;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* displays a Smarty template
|
* displays a Smarty template
|
||||||
@@ -336,14 +367,10 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
* @param mixed $compile_id compile id to be used with this template
|
* @param mixed $compile_id compile id to be used with this template
|
||||||
* @param object $parent next higher level of Smarty variables
|
* @param object $parent next higher level of Smarty variables
|
||||||
*/
|
*/
|
||||||
public function display($template, $cache_id = null, $compile_id = null, $parent = null) {
|
public function display($template, $cache_id = null, $compile_id = null, $parent = null)
|
||||||
|
{
|
||||||
// display template
|
// display template
|
||||||
echo $this->fetch ($template, $cache_id, $compile_id, $parent);
|
$this->fetch ($template, $cache_id, $compile_id, $parent, true);
|
||||||
// debug output
|
|
||||||
if ($this->debugging) {
|
|
||||||
Smarty_Internal_Debug::display_debug($this);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -354,7 +381,8 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
* @param mixed $compile_id compile id to be used with this template
|
* @param mixed $compile_id compile id to be used with this template
|
||||||
* @return boolean cache status
|
* @return boolean cache status
|
||||||
*/
|
*/
|
||||||
public function isCached($template, $cache_id = null, $compile_id = null) {
|
public function isCached($template, $cache_id = null, $compile_id = null)
|
||||||
|
{
|
||||||
if (!($template instanceof $this->template_class)) {
|
if (!($template instanceof $this->template_class)) {
|
||||||
$template = $this->createTemplate ($template, $cache_id, $compile_id, $this);
|
$template = $this->createTemplate ($template, $cache_id, $compile_id, $this);
|
||||||
}
|
}
|
||||||
@@ -368,7 +396,8 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
* @param object $parent next higher level of Smarty variables
|
* @param object $parent next higher level of Smarty variables
|
||||||
* @returns object data object
|
* @returns object data object
|
||||||
*/
|
*/
|
||||||
public function createData($parent = null) {
|
public function createData($parent = null)
|
||||||
|
{
|
||||||
return new Smarty_Data($parent, $this);
|
return new Smarty_Data($parent, $this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -381,7 +410,8 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
* @param mixed $compile_id compile id to be used with this template
|
* @param mixed $compile_id compile id to be used with this template
|
||||||
* @returns object template object
|
* @returns object template object
|
||||||
*/
|
*/
|
||||||
public function createTemplate($template, $cache_id = null, $compile_id = null, $parent = null) {
|
public function createTemplate($template, $cache_id = null, $compile_id = null, $parent = null)
|
||||||
|
{
|
||||||
if (is_object($cache_id) || is_array($cache_id)) {
|
if (is_object($cache_id) || is_array($cache_id)) {
|
||||||
$parent = $cache_id;
|
$parent = $cache_id;
|
||||||
$cache_id = null;
|
$cache_id = null;
|
||||||
@@ -389,8 +419,7 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
if (is_array($parent)) {
|
if (is_array($parent)) {
|
||||||
$data = $parent;
|
$data = $parent;
|
||||||
$parent = null;
|
$parent = null;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
$data = null;
|
$data = null;
|
||||||
}
|
}
|
||||||
if (!is_object($template)) {
|
if (!is_object($template)) {
|
||||||
@@ -400,13 +429,11 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
if (isset($this->template_objects[$_templateId]) && $this->caching) {
|
if (isset($this->template_objects[$_templateId]) && $this->caching) {
|
||||||
// return cached template object
|
// return cached template object
|
||||||
$tpl = $this->template_objects[$_templateId];
|
$tpl = $this->template_objects[$_templateId];
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
// create new template object
|
// create new template object
|
||||||
$tpl = new $this->template_class($template, $this, $parent, $cache_id, $compile_id);
|
$tpl = new $this->template_class($template, $this, $parent, $cache_id, $compile_id);
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
// just return a copy of template class
|
// just return a copy of template class
|
||||||
$tpl = $template;
|
$tpl = $template;
|
||||||
}
|
}
|
||||||
@@ -423,13 +450,13 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
/**
|
/**
|
||||||
* Loads security class and enables security
|
* Loads security class and enables security
|
||||||
*/
|
*/
|
||||||
public function enableSecurity() {
|
public function enableSecurity()
|
||||||
|
{
|
||||||
if (isset($this->security_class)) {
|
if (isset($this->security_class)) {
|
||||||
$this->security_policy = new $this->security_class;
|
$this->security_policy = new $this->security_class;
|
||||||
$this->security_handler = new Smarty_Internal_Security_Handler($this);
|
$this->security_handler = new Smarty_Internal_Security_Handler($this);
|
||||||
$this->security = true;
|
$this->security = true;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
throw new Exception('Property security_class is not defined');
|
throw new Exception('Property security_class is not defined');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -437,7 +464,8 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
/**
|
/**
|
||||||
* Disable security
|
* Disable security
|
||||||
*/
|
*/
|
||||||
public function disableSecurity() {
|
public function disableSecurity()
|
||||||
|
{
|
||||||
$this->security = true;
|
$this->security = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -446,7 +474,8 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
*
|
*
|
||||||
* @param string $ |array $template_dir folder(s) of template sorces
|
* @param string $ |array $template_dir folder(s) of template sorces
|
||||||
*/
|
*/
|
||||||
public function setTemplateDir($template_dir) {
|
public function setTemplateDir($template_dir)
|
||||||
|
{
|
||||||
$this->template_dir = (array)$template_dir;
|
$this->template_dir = (array)$template_dir;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -456,20 +485,21 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
*
|
*
|
||||||
* @param string $ |array $template_dir folder(s) of template sources
|
* @param string $ |array $template_dir folder(s) of template sources
|
||||||
*/
|
*/
|
||||||
public function addTemplateDir($template_dir) {
|
public function addTemplateDir($template_dir)
|
||||||
|
{
|
||||||
$this->template_dir = array_merge((array)$this->template_dir, (array)$template_dir);
|
$this->template_dir = array_merge((array)$this->template_dir, (array)$template_dir);
|
||||||
$this->template_dir = array_unique($this->template_dir);
|
$this->template_dir = array_unique($this->template_dir);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if a template resource exists
|
* Check if a template resource exists
|
||||||
*
|
*
|
||||||
* @param string $resource_name template name
|
* @param string $resource_name template name
|
||||||
* @return boolean status
|
* @return boolean status
|
||||||
*/
|
*/
|
||||||
function templateExists($resource_name) {
|
function templateExists($resource_name)
|
||||||
|
{
|
||||||
// create template object
|
// create template object
|
||||||
$tpl = new $this->template_class($resource_name, $this);
|
$tpl = new $this->template_class($resource_name, $this);
|
||||||
// check if it does exists
|
// check if it does exists
|
||||||
@@ -484,7 +514,8 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
* @param string $plugin_name class plugin name to load
|
* @param string $plugin_name class plugin name to load
|
||||||
* @return string |boolean filepath of loaded file or false
|
* @return string |boolean filepath of loaded file or false
|
||||||
*/
|
*/
|
||||||
public function loadPlugin($plugin_name, $check = true) {
|
public function loadPlugin($plugin_name, $check = true)
|
||||||
|
{
|
||||||
// if function or class exists, exit silently (already loaded)
|
// if function or class exists, exit silently (already loaded)
|
||||||
if ($check && (is_callable($plugin_name) || class_exists($plugin_name, false)))
|
if ($check && (is_callable($plugin_name) || class_exists($plugin_name, false)))
|
||||||
return true;
|
return true;
|
||||||
@@ -502,8 +533,7 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
if (file_exists($file)) {
|
if (file_exists($file)) {
|
||||||
require_once($file);
|
require_once($file);
|
||||||
return $file;
|
return $file;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -531,7 +561,8 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
* @param string $name filter name
|
* @param string $name filter name
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
function loadFilter($type, $name) {
|
function loadFilter($type, $name)
|
||||||
|
{
|
||||||
$_plugin = "smarty_{$type}filter_{$name}";
|
$_plugin = "smarty_{$type}filter_{$name}";
|
||||||
$_filter_name = $_plugin;
|
$_filter_name = $_plugin;
|
||||||
if ($this->loadPlugin($_plugin)) {
|
if ($this->loadPlugin($_plugin)) {
|
||||||
@@ -552,7 +583,8 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
* @param mixed $handler function name or array with object/method names
|
* @param mixed $handler function name or array with object/method names
|
||||||
* @return string previous exception handler
|
* @return string previous exception handler
|
||||||
*/
|
*/
|
||||||
public function setExceptionHandler($handler) {
|
public function setExceptionHandler($handler)
|
||||||
|
{
|
||||||
$this->exception_handler = $handler;
|
$this->exception_handler = $handler;
|
||||||
return set_exception_handler($handler);
|
return set_exception_handler($handler);
|
||||||
}
|
}
|
||||||
@@ -563,7 +595,8 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
* @param string $error_msg
|
* @param string $error_msg
|
||||||
* @param integer $error_type
|
* @param integer $error_type
|
||||||
*/
|
*/
|
||||||
public function trigger_error($error_msg, $error_type = E_USER_WARNING) {
|
public function trigger_error($error_msg, $error_type = E_USER_WARNING)
|
||||||
|
{
|
||||||
throw new Exception("Smarty error: $error_msg");
|
throw new Exception("Smarty error: $error_msg");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -572,13 +605,13 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
*
|
*
|
||||||
* @param callback $function_name
|
* @param callback $function_name
|
||||||
*/
|
*/
|
||||||
public function _get_filter_name($function_name) {
|
public function _get_filter_name($function_name)
|
||||||
|
{
|
||||||
if (is_array($function_name)) {
|
if (is_array($function_name)) {
|
||||||
$_class_name = (is_object($function_name[0]) ?
|
$_class_name = (is_object($function_name[0]) ?
|
||||||
get_class($function_name[0]) : $function_name[0]);
|
get_class($function_name[0]) : $function_name[0]);
|
||||||
return $_class_name . '_' . $function_name[1];
|
return $_class_name . '_' . $function_name[1];
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return $function_name;
|
return $function_name;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -590,7 +623,8 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
* @param string $ |array $ plugins folder
|
* @param string $ |array $ plugins folder
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
function addPluginsDir($plugins_dir) {
|
function addPluginsDir($plugins_dir)
|
||||||
|
{
|
||||||
$this->plugins_dir = array_merge((array)$this->plugins_dir, (array)$plugins_dir);
|
$this->plugins_dir = array_merge((array)$this->plugins_dir, (array)$plugins_dir);
|
||||||
$this->plugins_dir = array_unique($this->plugins_dir);
|
$this->plugins_dir = array_unique($this->plugins_dir);
|
||||||
return;
|
return;
|
||||||
@@ -603,16 +637,15 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
* @param string $varname variable name or null
|
* @param string $varname variable name or null
|
||||||
* @return string variable value or or array of variables
|
* @return string variable value or or array of variables
|
||||||
*/
|
*/
|
||||||
function getGlobal($varname = null) {
|
function getGlobal($varname = null)
|
||||||
|
{
|
||||||
if (isset($varname)) {
|
if (isset($varname)) {
|
||||||
if (isset($this->global_tpl_vars[$varname])) {
|
if (isset($this->global_tpl_vars[$varname])) {
|
||||||
return $this->global_tpl_vars[$varname]->value;
|
return $this->global_tpl_vars[$varname]->value;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
$_result = array();
|
$_result = array();
|
||||||
foreach ($this->global_tpl_vars AS $key => $var) {
|
foreach ($this->global_tpl_vars AS $key => $var) {
|
||||||
$_result[$key] = $var->value;
|
$_result[$key] = $var->value;
|
||||||
@@ -627,7 +660,8 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
* @param string $name object name
|
* @param string $name object name
|
||||||
* @return object
|
* @return object
|
||||||
*/
|
*/
|
||||||
function getRegisteredObject($name) {
|
function getRegisteredObject($name)
|
||||||
|
{
|
||||||
if (!isset($this->registered_objects[$name]))
|
if (!isset($this->registered_objects[$name]))
|
||||||
throw new Exception("'$name' is not a registered object");
|
throw new Exception("'$name' is not a registered object");
|
||||||
|
|
||||||
@@ -642,7 +676,8 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
function getDebugTemplate() {
|
function getDebugTemplate()
|
||||||
|
{
|
||||||
return $this->debug_tpl;
|
return $this->debug_tpl;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -652,7 +687,8 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
* @param string $tpl_name
|
* @param string $tpl_name
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
function setDebugTemplate($tpl_name) {
|
function setDebugTemplate($tpl_name)
|
||||||
|
{
|
||||||
return $this->debug_tpl = $tpl_name;
|
return $this->debug_tpl = $tpl_name;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -661,7 +697,8 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
*
|
*
|
||||||
* @param string $name property name
|
* @param string $name property name
|
||||||
*/
|
*/
|
||||||
public function __get($name) {
|
public function __get($name)
|
||||||
|
{
|
||||||
if (in_array($name, array('register', 'unregister', 'utility', 'cache'))) {
|
if (in_array($name, array('register', 'unregister', 'utility', 'cache'))) {
|
||||||
$class = "Smarty_Internal_" . ucfirst($name);
|
$class = "Smarty_Internal_" . ucfirst($name);
|
||||||
$this->$name = new $class($this);
|
$this->$name = new $class($this);
|
||||||
@@ -682,7 +719,8 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
* @param string $name unknown methode name
|
* @param string $name unknown methode name
|
||||||
* @param array $args aurgument array
|
* @param array $args aurgument array
|
||||||
*/
|
*/
|
||||||
public function __call($name, $args) {
|
public function __call($name, $args)
|
||||||
|
{
|
||||||
static $camel_func;
|
static $camel_func;
|
||||||
if (!isset($camel_func))
|
if (!isset($camel_func))
|
||||||
$camel_func = create_function('$c', 'return "_" . strtolower($c[1]);');
|
$camel_func = create_function('$c', 'return "_" . strtolower($c[1]);');
|
||||||
@@ -731,7 +769,8 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function smartyAutoload($class) {
|
function smartyAutoload($class)
|
||||||
|
{
|
||||||
$_class = strtolower($class);
|
$_class = strtolower($class);
|
||||||
if (substr($_class, 0, 16) === 'smarty_internal_' || $_class == 'smarty_security') {
|
if (substr($_class, 0, 16) === 'smarty_internal_' || $_class == 'smarty_security') {
|
||||||
include SMARTY_SYSPLUGINS_DIR . $_class . '.php';
|
include SMARTY_SYSPLUGINS_DIR . $_class . '.php';
|
||||||
|
Reference in New Issue
Block a user