diff --git a/modules/pscleaner/pscleaner.php b/modules/pscleaner/pscleaner.php index b3ccae0f0..969c196f3 100644 --- a/modules/pscleaner/pscleaner.php +++ b/modules/pscleaner/pscleaner.php @@ -49,7 +49,7 @@ class PSCleaner extends Module { $html = '

'.$this->l('Be really careful with this tool - There is no possible rollback!').'

'; if (Tools::isSubmit('submitCheckAndFix')) - $html .= (count($logs = self::checkAndFix()) ? print_r($logs, true) : $this->l('Nothing that need to be cleaned')).'

'; + $html .= $this->displayConfirmation((count($logs = self::checkAndFix()) ? '
'.print_r($logs, true).'
' : $this->l('Nothing that need to be cleaned')).'

'); if (Tools::isSubmit('submitTruncateCatalog')) { self::truncate('catalog'); @@ -291,7 +291,7 @@ class PSCleaner extends Module } // _lang table cleaning - $tables = Db::getInstance()->executeS('SHOW TABLES LIKE "'._DB_PREFIX_.'%_\\_lang"'); + $tables = Db::getInstance()->executeS('SHOW TABLES LIKE "'.preg_replace('/([%_])/', '\\$1', _DB_PREFIX_).'%_\\_lang"'); foreach ($tables as $table) { $table_lang = current($table); @@ -310,7 +310,7 @@ class PSCleaner extends Module } // _shop table cleaning - $tables = Db::getInstance()->executeS('SHOW TABLES LIKE "'._DB_PREFIX_.'%_\\_shop"'); + $tables = Db::getInstance()->executeS('SHOW TABLES LIKE "'.preg_replace('/([%_])/', '\\$1', _DB_PREFIX_).'%_\\_shop"'); foreach ($tables as $table) { $table_shop = current($table); @@ -348,9 +348,9 @@ class PSCleaner extends Module case 'catalog': $id_home = Configuration::get('PS_HOME_CATEGORY'); $id_root = Configuration::get('PS_ROOT_CATEGORY'); - Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'category` WHERE id_category NOT IN ('.(int)$id_home.', '.(int)$id_root.')'); - Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'category_lang` WHERE id_category NOT IN ('.(int)$id_home.', '.(int)$id_root.')'); - Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'category_shop` WHERE id_category NOT IN ('.(int)$id_home.', '.(int)$id_root.')'); + $db->execute('DELETE FROM `'._DB_PREFIX_.'category` WHERE id_category NOT IN ('.(int)$id_home.', '.(int)$id_root.')'); + $db->execute('DELETE FROM `'._DB_PREFIX_.'category_lang` WHERE id_category NOT IN ('.(int)$id_home.', '.(int)$id_root.')'); + $db->execute('DELETE FROM `'._DB_PREFIX_.'category_shop` WHERE id_category NOT IN ('.(int)$id_home.', '.(int)$id_root.')'); foreach (scandir(_PS_CAT_IMG_DIR_) as $dir) if (preg_match('/^[0-9]+(\-(.*))?\.jpg$/', $dir)) unlink(_PS_CAT_IMG_DIR_.$dir); @@ -494,9 +494,10 @@ class PSCleaner extends Module $this->clearAllCaches(); } + // Not called yet public static function cleanAndOptimize() { - // Clean (carts...) + Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'cart` WHERE id_cart NOT IN (SELECT id_cart FROM `'._DB_PREFIX_.'cart`) AND date_add < "'.pSQL(date('Y-m-d', strtotime('-1 month'))).'"'); } protected static function bulle($array) @@ -508,16 +509,13 @@ class PSCleaner extends Module $sorted = true; for ($i = 0; $i < $size - 1; ++$i) for ($j = $i + 1; $j < $size; ++$j) - { if ($array[$i][2] == $array[$j][0]) { - // var_dump(array($array[$i], $array[$j])); $tmp = $array[$i]; $array[$i] = $array[$j]; $array[$j] = $tmp; $sorted = false; } - } } return $array; }