* @copyright Copyright © 2019 Delo Design & NorrNext. All rights reserved. * @license GNU General Public License version 3 or later; see license.txt * @link https://www.norrnext.com */ use Joomla\CMS\Factory; use Joomla\CMS\Language\Text; use Joomla\CMS\Version; defined('_JEXEC') or die; /** * Quantummanager script file. * * @package A package name * @since 1.0 */ class com_quantummanagerInstallerScript { /** * Minimum PHP version required to install the extension. * * @var string * * @since 0.0.1 */ protected $minimumPhp = '7.1'; /** * Minimum Joomla version required to install the extension. * * @var string * * @since 0.0.1 */ protected $minimumJoomla = '3.9.0'; /** * @var string */ protected $helpURL = 'https://norrnext.com/docs/joomla-extensions/quantum-manager'; /** * Extensions for php * @var array */ protected $extensions = [ 'fileinfo', 'curl', 'mbstring' ]; /** * Called before any type of action * * @param string $route Which action is happening (install|uninstall|discover_install|update) * @param JAdapterInstance $adapter The object responsible for running this script * * @return boolean True on success */ public function preflight($route, $adapter) { $app = Factory::getApplication(); if (!(version_compare(PHP_VERSION, '7.1.0') >= 0)) { $app->enqueueMessage(Text::sprintf('COM_QUANTUMMANAGER_ERROR_COMPATIBLE_PHP', $this->minimumPhp), 'error'); return false; } jimport('joomla.version'); $jversion = new Version(); if (!$jversion->isCompatible('3.7')) { $app->enqueueMessage(Text::sprintf('COM_QUANTUMMANAGER_ERROR_COMPATIBLE_PHP', $this->minimumJoomla), 'error'); return false; } //Check extension $extensionsNotLoaded = []; foreach ($this->extensions as $extension) { if (!extension_loaded($extension)) { $extensionsNotLoaded[] = $extension; } } if (count($extensionsNotLoaded)) { $app->enqueueMessage(Text::sprintf('COM_QUANTUMMANAGER_ERROR_EXTENSIONS', implode(',', $extensionsNotLoaded)), 'error'); return false; } } /** * This method is called after a component is updated. * * @param \stdClass $parent - Parent object calling object. * * @return void */ public function update($parent) { JLoader::register('QuantummanagerHelper', JPATH_ROOT . '/administrator/components/com_quantummanager/helpers/quantummanager.php'); QuantummanagerHelper::setComponentsParams('helpURL', $this->helpURL); } /** * Called after any type of action * * @param string $route Which action is happening (install|uninstall|discover_install|update) * @param JAdapterInstance $adapter The object responsible for running this script * * @return boolean True on success */ public function postflight($route, $adapter) { if ($route === 'install') { JLoader::register('QuantummanagerHelper', JPATH_ROOT . '/administrator/components/com_quantummanager/helpers/quantummanager.php'); QuantummanagerHelper::setComponentsParams('helpURL', $this->helpURL); } } }