} $pluginDetail = $pluginRegistry->getPluginDetails($sClassName . ".php"); $pluginRegistry->installPlugin($pluginDetail->sNamespace); //error } file_put_contents(PATH_DATA_SITE . "plugin.singleton", $pluginRegistry->serializeInstance()); $licfile = glob(PATH_PLUGINS . "*.dat"); if (isset($licfile[0]) && is_file($licfile[0])) { $licfilename = basename($licfile[0]); @copy($licfile[0], PATH_DATA_SITE . $licfilename); @unlink($licfile[0]); } require_once 'classes/model/AddonsStore.php'; AddonsStore::checkLicenseStore(); $licenseManager =& pmLicenseManager::getSingleton(); AddonsStore::updateAll(false); $message = G::loadTranslation('ID_ENTERPRISE_INSTALLED') . ' ' . G::loadTranslation('ID_LOG_AGAIN'); G::SendMessageText($message, "INFO"); $licenseManager =& pmLicenseManager::getSingleton(); die('<script type="text/javascript">parent.parent.location = "../login/login";</script>'); } } if (!$_FILES['form']['type']['PLUGIN_FILENAME'] == 'application/octet-stream') { $pluginFilename = $_FILES['form']['type']['PLUGIN_FILENAME']; throw new Exception(G::loadTranslation('ID_FILES_INVALID_PLUGIN_FILENAME', SYS_LANG, array("pluginFilename" => $pluginFilename))); } G::LoadThirdParty('pear/Archive', 'Tar'); $tar = new Archive_Tar($path . $filename); $sFileName = substr($filename, 0, strrpos($filename, '.')); $sClassName = substr($filename, 0, strpos($filename, '-')); $sClassName = !empty($sClassName) ? $sClassName : $sFileName;
public static function addonFeatureList() { $result = array(); AddonsStore::checkLicenseStore(); $licenseManager =& pmLicenseManager::getSingleton(); //Getting the licenseManager $result["store_errors"] = array(); list($stores, $errors) = AddonsStore::updateAll(false); foreach ($errors as $store_id => $store_error) { $result["store_errors"][] = array("id" => $store_id, "msg" => $store_error); } $result["addons"] = array(); $result["errors"] = array(); $criteria = new Criteria(); $criteria->addAscendingOrderByColumn(AddonsManagerPeer::ADDON_TYPE); $criteria->addAscendingOrderByColumn(AddonsManagerPeer::ADDON_ID); $addons = AddonsManagerPeer::doSelect($criteria); foreach ($addons as $addon) { $status = $addon->getAddonStatus(); $version = $addon->getAddonVersion(); $enabled = null; if (!$addon->checkState()) { $result["errors"][] = array("addonId" => $addon->getAddonId(), "storeId" => $addon->getStoreId()); } $sw = 1; $addonInLicense = in_array($addon->getAddonId(), $licenseManager->features); if ($sw == 1 && $addon->getAddonId() != "enterprise" && !$addonInLicense) { $sw = 0; } if ($sw == 1 && $addon->isInstalled()) { if ($addon->isEnabled()) { $status = "installed"; } else { $status = "disabled"; } $version = $addon->getInstalledVersion(); if (version_compare($version . "", $addon->getAddonVersion() . "", "<")) { $status = "upgrade"; } $enabled = $addon->isEnabled(); $sw = 0; } if ($sw == 1 && $addonInLicense) { $status = "ready"; $sw = 0; } $state = $addon->getAddonState(); $log = null; if ($state != null) { $status = $state; $log = $addon->getInstallLog(); } if ($addon->getAddonId() == "enterprise" && $status == 'ready') { $status = 'installed'; } if ($status == 'minus-circle') { $status = "available"; } $result["addons"][$addon->getAddonId()] = array("id" => $addon->getAddonId(), "store" => $addon->getStoreId(), "name" => $addon->getAddonName(), "nick" => $addon->getAddonNick(), "version" => $version, "enabled" => $enabled, "latest_version" => $addon->getAddonVersion(), "type" => $addon->getAddonType(), "release_type" => $addon->getAddonReleaseType(), "url" => $addon->getAddonDownloadUrl(), "publisher" => $addon->getAddonPublisher(), "description" => $addon->getAddonDescription(), "status" => $status, "log" => $log, "progress" => round($addon->getAddonDownloadProgress())); } return $result; }
public function enable() { $this->setConfiguration(); require_once PATH_CORE . 'classes/model/AddonsStore.php'; AddonsStore::checkLicenseStore(); $licenseManager =& pmLicenseManager::getSingleton(); AddonsStore::updateAll(false); }