%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : 49.231.201.246 / Your IP : 216.73.216.149 Web Server : Apache/2.4.18 (Ubuntu) System : Linux 246 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : root ( 0) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : exec,passthru,shell_exec,system,proc_open,popen,pcntl_exec MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/html/old/administrator/manifests/packages/rokbox/ |
Upload File : |
<?php /** * @package Gantry * @author RocketTheme http://www.rockettheme.com * @copyright Copyright (C) 2007 - 2017 RocketTheme, LLC * @license GNU/GPLv2 and later * * http://www.gnu.org/licenses/gpl-2.0.html */ defined('_JEXEC') or die; /** * Gantry package installer script. */ class Pkg_RokBoxInstallerScript { /** * List of supported versions. Newest version first! * @var array */ protected $versions = array( 'PHP' => array ( '5.2' => '5.2.17', '0' => '7.0.30' // Preferred version ), 'Joomla!' => array ( '2.5' => '2.5.0', '0' => '3.8.8' // Preferred version ) ); /** * List of required PHP extensions. * @var array */ protected $extensions = array(); public function install($parent) { return true; } public function discover_install($parent) { return self::install($parent); } public function update($parent) { return self::install($parent); } public function uninstall($parent) { // Hack.. Joomla really doesn't give any information from the extension that's being uninstalled.. $manifestFile = JPATH_MANIFESTS . '/packages/pkg_rokbox.xml'; if (is_file($manifestFile)) { $manifest = simplexml_load_file($manifestFile); $this->prepareExtensions($manifest, 0); } return true; } public function preflight($type, $parent) { /** @var JInstallerAdapter $parent */ $manifest = $parent->getManifest(); // Prevent installation if requirements are not met. $errors = $this->checkRequirements($manifest->version); if ($errors) { $app = JFactory::getApplication(); foreach ($errors as $error) { $app->enqueueMessage($error, 'error'); } return false; } // Disable and unlock existing extensions to prevent fatal errors (in the site). $this->prepareExtensions($manifest, 0); return true; } public function postflight($type, $parent) { // Clear Joomla system cache. /** @var JCache|JCacheController $cache */ $cache = JFactory::getCache(); $cache->clean('_system'); // Make sure that PHP has the latest data of the files. clearstatcache(); // Remove all compiled files from opcode cache. if (function_exists('opcache_reset')) { @opcache_reset(); } elseif (function_exists('apc_clear_cache')) { @apc_clear_cache(); } if ($type == 'uninstall') { return true; } /** @var JInstallerAdapter $parent */ $manifest = $parent->getManifest(); // Enable and lock extensions to prevent uninstalling them individually. $this->prepareExtensions($manifest, 1); return true; } // Internal functions protected function prepareExtensions($manifest, $state = 1) { foreach ($manifest->files->children() as $file) { $attributes = $file->attributes(); $search = array('type' => (string) $attributes->type, 'element' => (string) $attributes->id); $clientName = (string) $attributes->client; if (!empty($clientName)) { $client = JApplicationHelper::getClientInfo($clientName, true); $search += array('client_id' => $client->id); } $group = (string) $attributes->group; if (!empty($group)) { $search += array('folder' => $group); } $extension = JTable::getInstance('extension'); if (!$extension->load($search)) { continue; } // Joomla 3.7 added a new package protection feature: only use individual protection in older versions. $extension->protected = version_compare(JVERSION, '3.7', '<') ? $state : 0; if (isset($attributes->enabled)) { $extension->enabled = $state ? (int) $attributes->enabled : 0; } $extension->store(); } } protected function checkRequirements() { $results = array(); $this->checkVersion($results, 'PHP', phpversion()); $this->checkVersion($results, 'Joomla!', JVERSION); $this->checkExtensions($results, $this->extensions); return $results; } protected function checkVersion(array &$results, $name, $version) { $major = $minor = 0; foreach ($this->versions[$name] as $major => $minor) { if (!$major || version_compare($version, $major, '<')) { continue; } if (version_compare($version, $minor, '>=')) { return; } break; } if (!$major) { $minor = reset($this->versions[$name]); } $recommended = end($this->versions[$name]); if (version_compare($recommended, $minor, '>')) { $results[] = sprintf( '%s %s is not supported. Minimum required version is %s %s, but it is highly recommended to use %s %s or later version.', $name, $version, $name, $minor, $name, $recommended ); } else { $results[] = sprintf( '%s %s is not supported. Please update to %s %s or later version.', $name, $version, $name, $minor ); } } protected function checkExtensions(array &$results, $extensions) { foreach ($extensions as $name) { if (!extension_loaded($name)) { $results[] = sprintf("Required PHP extension '%s' is missing. Please install it into your system.", $name); } } } }