public function delete($key) { return Sumo\Cache::remove($key, true); $files = glob(DIR_CACHE . 'cache.' . preg_replace('/[^A-Z0-9\\._-]/i', '', $key) . '.*'); if ($files) { foreach ($files as $file) { if (file_exists($file)) { unlink($file); } } } }
require DIR_SYSTEM . 'engine/error.php'; require DIR_SYSTEM . 'startup.php'; define('ABS_START', microtime(true)); // Registry $registry = new Registry(); // Loader $loader = new Loader($registry); $registry->set('load', $loader); // Config $config = new Config(); $registry->set('config', $config); // Database *legacy* //$db = new DB(DB_DRIVER, DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE); Sumo\Database::setup(array('hostname' => DB_HOSTNAME, 'username' => DB_USERNAME, 'password' => DB_PASSWORD, 'database' => DB_DATABASE, 'prefix' => DB_PREFIX)); //$registry->set('db', Sumo); Sumo\Cache::disableCache(defined('NO_CACHE') ? true : false); $check = Sumo\Database::query("SELECT setting_value FROM PREFIX_settings WHERE setting_name = 'admin_directory'")->fetch(); $stores = Sumo\Database::fetchAll("SELECT base_http, base_https FROM PREFIX_stores"); $tmp = $_SERVER['REQUEST_URI']; foreach ($stores as $list) { foreach ($list as $key => $value) { $list[$key] = explode('/', trim($value, '/')); $list[$key] = end($list[$key]); } $tmp = trim(str_replace($list, '', $tmp), '/'); } $tmp = explode('/', $tmp); $tmp = $tmp[0]; if (!empty($_SERVER['HTTP_HOST']) && !empty($tmp) && !empty($check) && !isset($_GET['resource'])) { if ($tmp == $check['setting_value']) { define('ADMIN_ENABLED', true);
// Which store is this? if (!empty($_SERVER['HTTP_HOST'])) { $url = rtrim($_SERVER['HTTP_HOST'] . '/' . rtrim(dirname($_SERVER['SCRIPT_NAME']), '/'), '/') . '%'; $store = Sumo\Database::query("SELECT *\n FROM PREFIX_stores\n WHERE base_http LIKE :url1\n OR base_https LIKE :url2\n OR REPLACE(base_http, 'www.', '') LIKE :url3\n OR REPLACE(base_https, '', '') LIKE :url4\n LIMIT 1", array('url1' => $url, 'url2' => $url, 'url3' => str_replace('www.', '', $url), 'url4' => str_replace('www.', '', $url)))->fetch(); } if (empty($store) || !count($store)) { $store = Sumo\Database::query("SELECT * FROM PREFIX_stores WHERE store_id = 0 LIMIT 1")->fetch(); } $config->set('store_id', $store['store_id']); $config->set('store_data', $store); $config->set('name', $store['name']); $config->set('base_default', $store['base_default']); $config->set('base_http', $store['base_http']); $config->set('base_https', $store['base_https']); // Update cache class with store Sumo\Cache::setStore($store['store_id']); // Get default settings foreach (Sumo\Database::fetchAll("SELECT setting_name, setting_value, is_json FROM PREFIX_settings") as $list) { $config->set($list['setting_name'], $list['is_json'] ? json_decode($list['setting_value'], true) : $list['setting_value']); } // Overrule with store settings foreach (Sumo\Database::fetchAll("SELECT setting_name, setting_value, is_json FROM PREFIX_settings_stores WHERE store_id = :id", array('id' => $store['store_id'])) as $list) { $default = $config->get($list['setting_name']); $value = $list['is_json'] ? json_decode($list['setting_value'], true) : $list['setting_value']; $type = explode('_', $list['setting_name']); if ($type[0] == 'image' && empty($value)) { continue; } if ($default != $value) { $config->set($list['setting_name'], $value); }