diff --git a/libs/sysplugins/smarty_cacheresource.php b/libs/sysplugins/smarty_cacheresource.php index 87c8e340..af8060ff 100644 --- a/libs/sysplugins/smarty_cacheresource.php +++ b/libs/sysplugins/smarty_cacheresource.php @@ -21,7 +21,7 @@ abstract class Smarty_CacheResource * @var array */ protected static $sysplugins = array( - 'file' => true, + 'file' => 'smarty_internal_cacheresource_file.php', ); /** @@ -116,7 +116,7 @@ abstract class Smarty_CacheResource // theoretically locking_timeout should be checked against time_limit (max_execution_time) $start = microtime(true); $hadLock = null; - while ($this->hasLock($smarty, $cached)) { + while ($r = $this->hasLock($smarty, $cached)) { $hadLock = true; if (microtime(true) - $start > $smarty->locking_timeout) { // abort waiting for lock release @@ -198,6 +198,9 @@ abstract class Smarty_CacheResource // try sysplugins dir if (isset(self::$sysplugins[$type])) { $cache_resource_class = 'Smarty_Internal_CacheResource_' . ucfirst($type); + if (!class_exists($cache_resource_class, false)) { + require SMARTY_SYSPLUGINS_DIR . self::$sysplugins[$type]; + } return $smarty->_cacheresource_handlers[$type] = new $cache_resource_class(); } // try plugins dir diff --git a/libs/sysplugins/smarty_resource.php b/libs/sysplugins/smarty_resource.php index b3c06cc7..5d5e368d 100644 --- a/libs/sysplugins/smarty_resource.php +++ b/libs/sysplugins/smarty_resource.php @@ -53,12 +53,12 @@ abstract class Smarty_Resource * @var array */ protected static $sysplugins = array( - 'file' => true, - 'string' => true, - 'extends' => true, - 'stream' => true, - 'eval' => true, - 'php' => true + 'file' => 'smarty_internal_resource_file.php', + 'string' => 'smarty_internal_resource_string.php', + 'extends' => 'smarty_internal_resource_extends.php', + 'stream' => 'smarty_internal_resource_stream.php', + 'eval' => 'smarty_internal_resource_eval.php', + 'php' => 'smarty_internal_resource_php.php' ); /** @@ -171,6 +171,9 @@ abstract class Smarty_Resource // try sysplugins dir if (isset(self::$sysplugins[$type])) { $_resource_class = 'Smarty_Internal_Resource_' . ucfirst($type); + if (!class_exists($_resource_class, false)) { + require SMARTY_SYSPLUGINS_DIR . self::$sysplugins[$type]; + } return $smarty->_resource_handlers[$type] = new $_resource_class(); }