{ if ($_template->getSmarty()->writeFile($_template->getCached()->filepath, $content) === true) { if (function_exists('opcache_invalidate') && (!function_exists('ini_get') || strlen(ini_get('opcache.restrict_api'))) < 1 ) { opcache_invalidate($_template->getCached()->filepath, true); } elseif (function_exists('apc_compile_file')) { apc_compile_file($_template->getCached()->filepath); } $cached = $_template->getCached(); $cached->timestamp = $cached->exists = is_file($cached->filepath); if ($cached->exists) { $cached->timestamp = filemtime($cached->filepath); return true; } } return false; } /** * Read cached template from cache * * @param Template $_template template object * * @return string content */ public function retrieveCachedContent(Template $_template) { if (is_file($_template->getCached()->filepath)) { return file_get_contents($_template->getCached()->filepath); } return false; } /** * Empty cache * * @param Smarty $smarty * @param integer $exp_time expiration time (number of seconds, not timestamp) * * @return integer number of cache files deleted */ public function clearAll(Smarty $smarty, $exp_time = null) { return $this->clear($smarty, null, null, null, $exp_time); } /** * Empty cache for a specific template * * @param Smarty $smarty * @param string $resource_name template name * @param string $cache_id cache id * @param string $compile_id compile id * @param integer $exp_time expiration time (number of seconds, not timestamp) * * @return integer number of cache files deleted */ public function clear(Smarty $smarty, $resource_name, $cache_id, $compile_id, $exp_time) { $_cache_id = isset($cache_id) ? preg_replace('![^\w\|]+!', '_', $cache_id) : null; $_compile_id = isset($compile_id) ? preg_replace('![^\w]+!', '_', $compile_id) : null; $_dir_sep = $smarty->use_sub_dirs ? '/' : '^'; $_compile_id_offset = $smarty->use_sub_dirs ? 3 : 0; $_dir = $smarty->getCacheDir(); if ($_dir === '/') { //We should never want to delete this! return 0; } $_dir_length = strlen($_dir); if (isset($_cache_id)) { $_cache_id_parts = explode('|', $_cache_id); $_cache_id_parts_count = count($_cache_id_parts); if ($smarty->use_sub_dirs) { foreach ($_cache_id_parts as $id_part) { $_dir .= $id_part . '/'; } } } if (isset($resource_name)) { $_save_stat = $smarty->caching; $smarty->caching = \Smarty\Smarty::CACHING_LIFETIME_CURRENT; $tpl = $smarty->doCreateTemplate($resource_name); $smarty->caching = $_save_stat; // remove from template cache if ($tpl->getSource()->exists) { $_resourcename_parts = basename(str_replace('^', '/', $tpl->getCached()->filepath)); } else { return 0; } } $_count = 0; $_time = time(); if (file_exists($_dir)) { $_cacheDirs = new RecursiveDirectoryIterator($_dir); $_cache = new RecursiveIteratorIterator($_cacheDirs, RecursiveIteratorIterator::CHILD_FIRST); foreach ($_cache as $_file) { if (substr(basename($_file->getPathname()), 0, 1) === '.') { continue; } $_filepath = (string)$_file; // directory ? if ($_file->isDir()) { if (!$_cache->isDot()) { // delete folder if empty @rmdir($_file->getPathname()); } } else { // delete only php files if (substr($_filepath, -4) !== '.php') { continue; } $_parts = explode($_dir_sep, str_replace('\\', '/', substr($_filepath, $_dir_length))); $_parts_count = count($_parts); // check name if (isset($resource_name)) { if ($_parts[ $_parts_count - 1 ] !== $_resourcename_parts) { continue; } } // check compile id if (isset($_compile_id) && (!isset($_parts[ $_parts_count - 2 - $_compile_id_offset ]) || $_parts[ $_parts_count - 2 - $_compile_id_offset ] !== $_compile_id) ) { continue; } // check cache id if (isset($_cache_id)) { // count of cache id parts $_parts_count = (isset($_compile_id)) ? $_parts_count - 2 - $_compile_id_offset : $_parts_count - 1 - $_compile_id_offset; if ($_parts_count < $_cache_id_parts_count) { continue; } for ($i = 0; $i < $_cache_id_parts_count; $i++) { if ($_parts[ $i ] !== $_cache_id_parts[ $i ]) { continue 2; } } } if (is_file($_filepath)) { // expired ? if (isset($exp_time)) { if ($exp_time < 0) { preg_match('#\'cache_lifetime\' =>\s*(\d*)#', file_get_contents($_filepath), $match); if ($_time < (filemtime($_filepath) + $match[ 1 ])) { continue; } } else { if ($_time - filemtime($_filepath) < $exp_time) { continue; } } } $_count += @unlink($_filepath) ? 1 : 0; if (function_exists('opcache_invalidate') && (!function_exists('ini_get') || strlen(ini_get("opcache.restrict_api")) < 1) ) { opcache_invalidate($_filepath, true); } elseif (function_exists('apc_delete_file')) { apc_delete_file($_filepath); } } } } } return $_count; } /** * Check is cache is locked for this template * * @param Smarty $smarty Smarty object * @param Cached $cached cached object * * @return boolean true or false if cache is locked */ public function hasLock(Smarty $smarty, Cached $cached) { clearstatcache(true, $cached->lock_id ?? ''); if (null !== $cached->lock_id && is_file($cached->lock_id)) { $t = filemtime($cached->lock_id); return $t && (time() - $t < $smarty->locking_timeout); } else { return false; } } /** * Lock cache for this template * * @param Smarty $smarty Smarty object * @param Cached $cached cached object * * @return void */ public function acquireLock(Smarty $smarty, Cached $cached) { $cached->is_locked = true; touch($cached->lock_id); } /** * Unlock cache for this template * * @param Smarty $smarty Smarty object * @param Cached $cached cached object * * @return void */ public function releaseLock(Smarty $smarty, Cached $cached) { $cached->is_locked = false; @unlink($cached->lock_id); } } Onlineshop
Liebe Kundin, lieber Kunde.

Leider ist ein Fehler beim Aufruf unserer Webseite aufgetreten.
Bitte versuchen Sie es später noch einmal.
Vielen Dank für Ihr Verständnis - wir freuen uns auf Ihren nächsten Besuch.

Sollte das Problem weiterhin bestehen, wenden Sie sich bitte an unseren Kundenservice.

Dear customer.

Unfortunately an error occured when calling our website.
Please try again later.
Thank you for your understanding - we look forward to your next visit.

If the problem persists, please contact our customer service.
 Store 1
xt_shutdown_function
Array
(
    [type] => 1
    [message] => Uncaught Error: Class "Smarty\Cacheresource\File" not found in /tank0/shop/xtFramework/library/vendor/smarty/smarty/src/Smarty.php:532
Stack trace:
#0 /tank0/shop/xtFramework/classes/class.Template.php(172): Smarty\Smarty->__construct()
#1 /tank0/shop/xtFramework/classes/class.price.php(529): Template->getTemplate()
#2 /tank0/shop/xtFramework/classes/class.product.php(659): price->_Format()
#3 /tank0/shop/xtFramework/classes/class.product.php(209): product->_getPrice()
#4 /tank0/shop/xtFramework/classes/class.product.php(97): product->buildData()
#5 /tank0/shop/xtFramework/classes/class.product.php(75): product->__construct()
#6 /tank0/shop/xtFramework/main_handler.php(244): product::getProduct()
#7 /tank0/shop/xtCore/main.php(224): include('...')
#8 /tank0/shop/index.php(38): include('...')
#9 {main}
  thrown
    [file] => /tank0/shop/xtFramework/library/vendor/smarty/smarty/src/Smarty.php
    [line] => 532
)