* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0 */ namespace PrestaShop\Module\PrestashopFacebook\Presenter; use Context; use Module; class ModuleUpgradePresenter { /** * @var Context */ private $context; public function __construct($context) { $this->context = $context; } /** * Generate the object responsible of displaying the alert when module upgrade is requested * * @param string $moduleName * @param string $versionRequired * * @return array */ public function generateModuleDependencyVersionCheck($moduleName, $versionRequired) { $needsUpgrade = false; $currentVersion = null; $moduleInstance = null; if (Module::isInstalled($moduleName)) { $moduleInstance = Module::getInstanceByName($moduleName); if ($moduleInstance !== false) { $currentVersion = $moduleInstance->version; $needsUpgrade = version_compare( $currentVersion, $versionRequired, '<' ); } } return [ 'needsInstall' => !($moduleInstance && Module::isInstalled($moduleName)), 'needsEnable' => !Module::isEnabled($moduleName), 'needsUpgrade' => $needsUpgrade, 'currentVersion' => $currentVersion, 'requiredVersion' => $versionRequired, 'psFacebookUpgradeRoute' => $this->context->link->getAdminLink( 'AdminAjaxPsfacebook', true, [], [ 'action' => 'ManageModule', 'module_action' => 'upgrade', 'module_name' => $moduleName, 'ajax' => 1, ] ), 'psFacebookInstallRoute' => $this->context->link->getAdminLink( 'AdminAjaxPsfacebook', true, [], [ 'action' => 'ManageModule', 'module_action' => 'install', 'module_name' => $moduleName, 'ajax' => 1, ] ), 'psFacebookEnableRoute' => $this->context->link->getAdminLink( 'AdminAjaxPsfacebook', true, [], [ 'action' => 'ManageModule', 'module_action' => 'enable', 'module_name' => $moduleName, 'ajax' => 1, ] ), ]; } }