name = 'dboptimization'; $this->tab = 'administration'; $this->author = 'MyPresta.eu'; $this->version = '1.3.2'; ini_set("display_errors", 0); error_reporting(0); parent::__construct(); $this->displayName = $this->l('Database Optimization'); $this->description = $this->l('Optimize your database, remove unnecessary informations, speed up your store!'); $this->mkey = "freelicense"; $this->mypresta_link = 'https://mypresta.eu/modules/administration-tools/database-optimization.html'; $this->checkforupdates(); } public function checkforupdates($display_msg = 0, $form = 0) { // ---------- // // ---------- // // VERSION 16 // // ---------- // // ---------- // $this->mkey = "nlc"; if (@file_exists('../modules/' . $this->name . '/key.php')) { @require_once('../modules/' . $this->name . '/key.php'); } else { if (@file_exists(dirname(__FILE__) . $this->name . '/key.php')) { @require_once(dirname(__FILE__) . $this->name . '/key.php'); } else { if (@file_exists('modules/' . $this->name . '/key.php')) { @require_once('modules/' . $this->name . '/key.php'); } } } if ($form == 1) { return '
' . ($this->psversion() == 6 || $this->psversion() == 7 ? '
' . $this->l('MyPresta updates') . '
' : '') . '
' . ($this->psversion() == 5 ? '' . $this->l('MyPresta updates') . '' : '') . '
' . (Tools::isSubmit('submit_settings_updates_now') ? ($this->inconsistency(0) ? '' : '') . $this->checkforupdates(1) : '') . '

' . $this->l('Turn this option on if you want to check MyPresta.eu for module updates automatically. This option will display notification about new versions of this addon.') . '

' . $this->displayName . '

' . $this->l('This is direct link to official addon page, where you can read about changes in the module (changelog)') . '

'; } else { if (defined('_PS_ADMIN_DIR_')) { if (Tools::isSubmit('submit_settings_updates')) { Configuration::updateValue('mypresta_updates', Tools::getValue('mypresta_updates')); } if (Configuration::get('mypresta_updates') != 0 || (bool)Configuration::get('mypresta_updates') != false) { if (Configuration::get('update_' . $this->name) < (date("U") - 259200)) { $actual_version = dboptimizationUpdate::verify($this->name, (isset($this->mkey) ? $this->mkey : 'nokey'), $this->version); } if (dboptimizationUpdate::version($this->version) < dboptimizationUpdate::version(Configuration::get('updatev_' . $this->name)) && Tools::getValue('ajax', 'false') == 'false') { $this->context->controller->warnings[] = '' . $this->displayName . ': ' . $this->l('New version available, check http://MyPresta.eu for more informations') . ' ' . $this->l('More details in changelog') . ''; $this->warning = $this->context->controller->warnings[0]; } } else { if (Configuration::get('update_' . $this->name) < (date("U") - 259200)) { $actual_version = dboptimizationUpdate::verify($this->name, (isset($this->mkey) ? $this->mkey : 'nokey'), $this->version); } } if ($display_msg == 1) { if (dboptimizationUpdate::version($this->version) < dboptimizationUpdate::version(dboptimizationUpdate::verify($this->name, (isset($this->mkey) ? $this->mkey : 'nokey'), $this->version))) { return "" . $this->l('New version available!') . ""; } else { return "" . $this->l('Module is up to date!') . ""; } } } } } public function inconsistency($ret) { return true; } function install() { if (parent::install() == false OR !Configuration::updateValue('update_' . $this->name, '0')) { return false; } return true; } public function getContent() { $output = ""; if (Tools::isSubmit('dbtabletoclean')) { if (Tools::getValue('dbtabletoclean') == "cart") { Configuration::updateValue('dbopt_' . Tools::getValue('dbtabletoclean'), date("Y-m-d h:i:s")); Db::getInstance(_PS_USE_SQL_SLAVE_)->execute('DELETE FROM `' . _DB_PREFIX_ . Tools::getValue('dbtabletoclean') . '` WHERE id_cart not in (SELECT id_cart from ' . _DB_PREFIX_ . 'orders)'); } else { Configuration::updateValue('dbopt_' . Tools::getValue('dbtabletoclean'), date("Y-m-d h:i:s")); Db::getInstance(_PS_USE_SQL_SLAVE_)->execute('DELETE FROM `' . _DB_PREFIX_ . Tools::getValue('dbtabletoclean') . '`'); } } $output .= ""; return $output . $this->displayForm() . $this->checkforupdates(0, 1); } public function psversion() { $version = _PS_VERSION_; $exp = $explode = explode(".", $version); return $exp[1]; } public function dbcounter($table) { if ($table == "cart") { $query = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('SELECT count(*) AS count FROM `' . _DB_PREFIX_ . $table . '` WHERE id_cart not in (SELECT id_cart from ' . _DB_PREFIX_ . 'orders)'); } else { $query = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('SELECT count(*) AS count FROM `' . _DB_PREFIX_ . $table . '`'); } return $query[0]['count']; } public function displayForm() { return '
' . $this->l('unwanted carts') . ' (' . $this->dbcounter('cart') . ') ' . $this->l('date of last clean') . ': ' . (Configuration::get('dbopt_cart') == null ? $this->l('not cleaned yet') : Configuration::get('dbopt_cart')) . '
' . $this->l('Connection informations') . ' (' . $this->dbcounter('connections') . ') ' . $this->l('date of last clean') . ': ' . (Configuration::get('dbopt_connections') == null ? $this->l('not cleaned yet') : Configuration::get('dbopt_connections')) . '
' . $this->l('Connection informations (page)') . ' (' . $this->dbcounter('connections_page') . ') ' . $this->l('date of last clean') . ': ' . (Configuration::get('dbopt_connections_page') == null ? $this->l('not cleaned yet') : Configuration::get('dbopt_connections_page')) . '
' . $this->l('Connection informations (source)') . ' (' . $this->dbcounter('connections_source') . ') ' . $this->l('date of last clean') . ': ' . (Configuration::get('dbopt_connections_source') == null ? $this->l('not cleaned yet') : Configuration::get('dbopt_connections_source')) . '
' . $this->l('Guests') . ' (' . $this->dbcounter('guest') . ') ' . $this->l('date of last clean') . ': ' . (Configuration::get('dbopt_guest') == null ? $this->l('not cleaned yet') : Configuration::get('dbopt_guest')) . '
' . $this->l('like us on Facebook') . '
' . '
' . $this->l('Proudly developed by') . ' MyPresta.eu.
'; } } class dboptimizationUpdate extends dboptimization { public static function version($version) { $version = (int)str_replace(".", "", $version); if (strlen($version) == 3) { $version = (int)$version . "0"; } if (strlen($version) == 2) { $version = (int)$version . "00"; } if (strlen($version) == 1) { $version = (int)$version . "000"; } if (strlen($version) == 0) { $version = (int)$version . "0000"; } return (int)$version; } public static function encrypt($string) { return base64_encode($string); } public static function verify($module, $key, $version) { if (ini_get("allow_url_fopen")) { if (function_exists("file_get_contents")) { $actual_version = @file_get_contents('http://dev.mypresta.eu/update/get.php?module=' . $module . "&version=" . self::encrypt($version) . "&lic=$key&u=" . self::encrypt(_PS_BASE_URL_ . __PS_BASE_URI__)); } } Configuration::updateValue("update_" . $module, date("U")); Configuration::updateValue("updatev_" . $module, $actual_version); return $actual_version; } } ?>