From b479068bf3f3e26ea635ffe46420ed1e22f3a3f3 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Mon, 23 Jan 2023 20:18:04 +0700 Subject: [PATCH] Misc code improvements --- library/ajax/manage_admin.php | 23 ++-------------- library/includes/functions.php | 50 ++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 20 deletions(-) diff --git a/library/ajax/manage_admin.php b/library/ajax/manage_admin.php index 53599da40..457e4ea61 100644 --- a/library/ajax/manage_admin.php +++ b/library/ajax/manage_admin.php @@ -18,11 +18,7 @@ $mode = (string)$this->request['mode']; switch ($mode) { case 'clear_cache': - foreach ($bb_cfg['cache']['engines'] as $cache_name => $cache_val) { - if (!in_array('db_sqlite', $cache_val)) { - CACHE($cache_name)->rm(); - } - } + clean_cache(); $this->response['cache_html'] = '' . $lang['ALL_CACHE_CLEARED'] . ''; @@ -30,9 +26,7 @@ switch ($mode) { case 'clear_datastore': - global $datastore; - - $datastore->clean(); + clean_datastore(); $this->response['datastore_html'] = '' . $lang['DATASTORE_CLEARED'] . ''; @@ -40,18 +34,7 @@ switch ($mode) { case 'clear_template_cache': - global $template; - - $match = 'tpl_'; - $match_len = strlen($match); - $dir = $template->cachedir; - $res = @opendir($dir); - while (($file = readdir($res)) !== false) { - if (0 === strpos($file, $match)) { - @unlink($dir . $file); - } - } - closedir($res); + clean_tpl_cache(); $this->response['template_cache_html'] = '' . $lang['ALL_TEMPLATE_CLEARED'] . ''; diff --git a/library/includes/functions.php b/library/includes/functions.php index 0ae93dc9b..26819f2a1 100644 --- a/library/includes/functions.php +++ b/library/includes/functions.php @@ -11,6 +11,56 @@ if (!defined('BB_ROOT')) { die(basename(__FILE__)); } +/** + * Clean all template cache + * + * @return void + */ +function clean_tpl_cache(): void +{ + global $template; + + $match = XS_TPL_PREFIX; + $dir = $template->cachedir; + $res = @opendir($dir); + + while (($file = readdir($res)) !== false) { + if (0 === strpos($file, $match)) { + @unlink($dir . $file); + } + } + + closedir($res); +} + +/** + * Clean all datastore items + * + * @return void + */ +function clean_datastore(): void +{ + global $datastore; + + $datastore->clean(); +} + +/** + * Clean all cache items + * + * @return void + */ +function clean_cache(): void +{ + global $bb_cfg; + + foreach ($bb_cfg['cache']['engines'] as $cache_name => $cache_val) { + if (!in_array('db_sqlite', $cache_val)) { + CACHE($cache_name)->rm(); + } + } +} + function get_path_from_id($id, $ext_id, $base_path, $first_div, $sec_div) { global $bb_cfg;