* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0 */ $rootDir = defined('_PS_ROOT_DIR_') ? _PS_ROOT_DIR_ : getenv('_PS_ROOT_DIR_'); if (!$rootDir) { $rootDir = __DIR__ . '/../../../'; } require_once $rootDir . '/vendor/autoload.php'; /** * @param ps_mbo $module * * @return bool */ function upgrade_module_4_7_0(Module $module): bool { $module->updateHooks(); $module->updateTabs(); $singleShop = \PrestaShop\Module\Mbo\Helpers\Config::getDefaultShop(); $domains = \Tools::getDomains(); $shopDomain = array_filter( $domains, function($domain) use($singleShop) { // Here we assume that every shop have a single domain (?) $domain = reset($domain); return isset($domain['id_shop']) && (int)$singleShop->id === (int)$domain['id_shop']; } ); if (!empty($shopDomain)) { $domain = array_keys($shopDomain)[0]; $domain = preg_replace('#(https?://)#', '', $domain); // concatenate the physical_uri $domainDef = reset($shopDomain[$domain]); if (isset($domainDef['physical']) && '/' !== $domainDef['physical']) { $moduleCacheDir = $module->moduleCacheDir; $lockFile = $moduleCacheDir . 'updateShop.lock'; if (!file_exists($lockFile)) { if (!is_dir($moduleCacheDir)) { mkdir($moduleCacheDir, 0777, true); } $f = fopen($lockFile, 'w+'); fclose($f); } } } return true; }