mirror of
https://github.com/smarty-php/smarty.git
synced 2025-08-04 10:24:26 +02:00
remove Smarty::_plugin_implementation_exists() - use php's native
is_callable()
This commit is contained in:
1
NEWS
1
NEWS
@@ -1,3 +1,4 @@
|
||||
- remove Smarty::_plugin_implementation_exists() - use is_callable() (messju)
|
||||
- ignore {strip}/{/strip) inside {strip}-blocks (messju)
|
||||
- fixed removal of leading/trailing newlines in {strip}-blocks (messju)
|
||||
- fixed proper escaping of " and ' with escape:javascript (messju)
|
||||
|
@@ -1667,7 +1667,7 @@ class Smarty
|
||||
if (!$_return) {
|
||||
// see if we can get a template with the default template handler
|
||||
if (!empty($this->default_template_handler_func)) {
|
||||
if (!$this->_plugin_implementation_exists($this->default_template_handler_func)) {
|
||||
if (!is_callable($this->default_template_handler_func)) {
|
||||
$this->trigger_error("default template handler function \"$this->default_template_handler_func\" doesn't exist.");
|
||||
} else {
|
||||
$_return = call_user_func_array(
|
||||
@@ -1934,16 +1934,6 @@ class Smarty
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* check if the function or method exists
|
||||
* @return bool
|
||||
*/
|
||||
function _plugin_implementation_exists($function)
|
||||
{
|
||||
return (is_array($function)) ?
|
||||
method_exists($function[0], $function[1]) || (in_array(strtolower($function[1]), (array)get_class_methods($function[0]))) : function_exists($function);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* callback function for preg_replace, to call a non-cacheable block
|
||||
|
@@ -250,7 +250,7 @@ class Smarty_Compiler extends Smarty {
|
||||
if (count($this->_plugins['prefilter']) > 0) {
|
||||
foreach ($this->_plugins['prefilter'] as $filter_name => $prefilter) {
|
||||
if ($prefilter === false) continue;
|
||||
if ($prefilter[3] || $this->_plugin_implementation_exists($prefilter[0])) {
|
||||
if ($prefilter[3] || is_callable($prefilter[0])) {
|
||||
$source_content = call_user_func_array($prefilter[0],
|
||||
array($source_content, &$this));
|
||||
$this->_plugins['prefilter'][$filter_name][3] = true;
|
||||
@@ -360,7 +360,7 @@ class Smarty_Compiler extends Smarty {
|
||||
if (count($this->_plugins['postfilter']) > 0) {
|
||||
foreach ($this->_plugins['postfilter'] as $filter_name => $postfilter) {
|
||||
if ($postfilter === false) continue;
|
||||
if ($postfilter[3] || $this->_plugin_implementation_exists($postfilter[0])) {
|
||||
if ($postfilter[3] || is_callable($postfilter[0])) {
|
||||
$compiled_content = call_user_func_array($postfilter[0],
|
||||
array($compiled_content, &$this));
|
||||
$this->_plugins['postfilter'][$filter_name][3] = true;
|
||||
@@ -571,7 +571,7 @@ class Smarty_Compiler extends Smarty {
|
||||
if (isset($this->_plugins['compiler'][$tag_command])) {
|
||||
$found = true;
|
||||
$plugin_func = $this->_plugins['compiler'][$tag_command][0];
|
||||
if (!$this->_plugin_implementation_exists($plugin_func)) {
|
||||
if (!is_callable($plugin_func)) {
|
||||
$message = "compiler function '$tag_command' is not implemented";
|
||||
$have_function = false;
|
||||
}
|
||||
@@ -586,7 +586,7 @@ class Smarty_Compiler extends Smarty {
|
||||
include_once $plugin_file;
|
||||
|
||||
$plugin_func = 'smarty_compiler_' . $tag_command;
|
||||
if (!$this->_plugin_implementation_exists($plugin_func)) {
|
||||
if (!is_callable($plugin_func)) {
|
||||
$message = "plugin function $plugin_func() not found in $plugin_file\n";
|
||||
$have_function = false;
|
||||
} else {
|
||||
@@ -646,7 +646,7 @@ class Smarty_Compiler extends Smarty {
|
||||
if (isset($this->_plugins['block'][$tag_command])) {
|
||||
$found = true;
|
||||
$plugin_func = $this->_plugins['block'][$tag_command][0];
|
||||
if (!$this->_plugin_implementation_exists($plugin_func)) {
|
||||
if (!is_callable($plugin_func)) {
|
||||
$message = "block function '$tag_command' is not implemented";
|
||||
$have_function = false;
|
||||
}
|
||||
|
@@ -40,7 +40,7 @@ function smarty_core_get_php_resource(&$params, &$smarty)
|
||||
}
|
||||
} else if ($params['resource_type'] != 'file') {
|
||||
$_template_source = null;
|
||||
$_readable = $smarty->_plugin_implementation_exists($smarty->_plugins['resource'][$params['resource_type']][0][0])
|
||||
$_readable = is_callable($smarty->_plugins['resource'][$params['resource_type']][0][0])
|
||||
&& call_user_func_array($smarty->_plugins['resource'][$params['resource_type']][0][0],
|
||||
array($params['resource_name'], &$_template_source, &$smarty));
|
||||
}
|
||||
|
@@ -32,7 +32,7 @@ function smarty_core_load_plugins($params, &$smarty)
|
||||
*/
|
||||
if (isset($_plugin)) {
|
||||
if (empty($_plugin[3])) {
|
||||
if (!$smarty->_plugin_implementation_exists($_plugin[0])) {
|
||||
if (!is_callable($_plugin[0])) {
|
||||
$smarty->_trigger_fatal_error("[plugin] $_type '$_name' is not implemented", $_tpl_file, $_tpl_line, __FILE__, __LINE__);
|
||||
} else {
|
||||
$_plugin[1] = $_tpl_file;
|
||||
|
@@ -27,7 +27,7 @@ function smarty_core_load_resource_plugin($params, &$smarty)
|
||||
if (!$_plugin[1] && count($_plugin[0])) {
|
||||
$_plugin[1] = true;
|
||||
foreach ($_plugin[0] as $_plugin_func) {
|
||||
if (!$smarty->_plugin_implementation_exists($_plugin_func)) {
|
||||
if (!is_callable($_plugin_func)) {
|
||||
$_plugin[1] = false;
|
||||
break;
|
||||
}
|
||||
|
Reference in New Issue
Block a user