public function run() { require_once 'ModuleInstall/PackageManager/PackageManager.php'; $pm = new PackageManager(); $packages = $pm->getinstalledPackages(array('module')); foreach ($packages as $pack) { if (strpos($pack['name'], 'SugarCRM Upgrader') !== false) { $uh = new UpgradeHistory(); $uh->name = $pack['name']; $history = $uh->checkForExisting($uh); $this->filesToRemove[] = "custom/Extension/application/Ext/Include/{$history->id_name}.php"; $history->delete(); $this->fileToDelete($this->filesToRemove); $this->log("Useless files of {$pack['name']} v{$pack['version']} removed"); } } foreach ($pm->getPackagesInStaging() as $pack) { if (strpos($pack['name'], 'SugarCRM Upgrader') !== false) { $file = UploadStream::getFSPath(hashToFile($pack['file'])); $this->fileToDelete($file); foreach (array('manifest', 'icon') as $meta) { $this->fileToDelete(pathinfo($file, PATHINFO_DIRNAME) . '/' . pathinfo($file, PATHINFO_FILENAME) . "-{$meta}.php"); } } } }
public function testCheckedArrayKey() { $package = new PackageManager(); $returnJson = $package->getPackagesInStaging('module'); foreach ($returnJson as $module) { $this->assertArrayHasKey('unFile', $module, 'Key "unFile" is missing in return array'); } }
/** * Returns the package meta data object of this package. * * @return MetaData */ public function getPackageMetaData() { if ($this->packageMetaData === NULL) { $this->packageMetaData = new MetaData($this->getPackageKey()); $this->packageMetaData->setDescription($this->getValueFromComposerManifest('description')); $this->packageMetaData->setVersion($this->getValueFromComposerManifest('version')); $requirements = $this->getValueFromComposerManifest('require'); if ($requirements !== NULL) { foreach ($requirements as $requirement => $version) { if ($this->packageRequirementIsComposerPackage($requirement) === FALSE) { // Skip non-package requirements continue; } $packageKey = $this->packageManager->getPackageKeyFromComposerName($requirement); $constraint = new MetaData\PackageConstraint(MetaData::CONSTRAINT_TYPE_DEPENDS, $packageKey); $this->packageMetaData->addConstraint($constraint); } } $suggestions = $this->getValueFromComposerManifest('suggest'); if ($suggestions !== NULL) { foreach ($suggestions as $suggestion => $version) { if ($this->packageRequirementIsComposerPackage($suggestion) === FALSE) { // Skip non-package requirements continue; } $packageKey = $this->packageManager->getPackageKeyFromComposerName($suggestion); $constraint = new MetaData\PackageConstraint(MetaData::CONSTRAINT_TYPE_SUGGESTS, $packageKey); $this->packageMetaData->addConstraint($constraint); } } } return $this->packageMetaData; }
public function __construct() { parent::__construct(); $this->manifest_content = <<<EOQ <?php \$manifest = array ( 'acceptable_sugar_versions' => array ( '6.1.0' ), 'acceptable_sugar_flavors' => array( 'ENT' ), 'readme'=>'', 'key'=>'tf1', 'author' => '', 'description' => '', 'icon' => '', 'is_uninstallable' => false, 'name' => 'test_file_1', 'published_date' => '2010-10-20 22:10:01', 'type' => 'module', 'version' => '1287612601', 'remove_tables' => 'prompt', ); \$installdefs = array ( 'id' => 'asdfqq', 'copy' => array ( 0 => array ( 'from' => '<basepath>/Extension/modules/Cases/Ext/Vardefs/dummy_extension2.php', 'to' => 'custom/Extension/modules/Cases/Ext/Vardefs/dummy_extension2.php', ), ), ); EOQ; }
<?php $locale = Lang::getLocale(); PackageManager::add('libraries')->js(null, resources_url('/js/libraries.js'))->js("moment-{$locale}", resources_url("/libs/moment/js/{$locale}.js"), 'libraries'); PackageManager::add('core')->css('global', resources_url('/css/app.css'))->js(null, resources_url('/js/backend.js'), 'libraries'); PackageManager::add('jquery')->js(null, resources_url('/libs/jquery/js/jquery.min.js')); PackageManager::add('bootstrap')->css(null, resources_url('/libs/bootstrap/css/bootstrap.min.css'))->js(null, resources_url('/libs/bootstrap/js/bootstrap.min.js'), 'jquery'); PackageManager::add('bootstrap-theme')->css(null, resources_url('/libs/bootstrap/css/bootstrap-theme.min.css'), 'bootstrap'); PackageManager::add('underscore')->js(null, resources_url('/libs/underscore/js/underscore-min.js'), 'jquery'); PackageManager::add('backbone')->js(null, resources_url('/libs/backbone/js/backbone-min.js'), 'underscore'); PackageManager::add('jquery-ui')->js(null, resources_url('/libs/jquery-ui/js/jquery-ui.min.js'), 'jquery')->css(null, resources_url('/css/jquery-ui.css')); PackageManager::add('fontawesome')->css(null, resources_url('/libs/font-awesome/css/font-awesome.min.css')); PackageManager::add('jquery-tagsinput')->js(null, resources_url('/libs/jquery.tagsinput/js/jquery.tagsinput.js'), ['jquery', 'jquery-ui'])->css(null, resources_url('/libs/jquery.tagsinput//css/jquery.tagsinput.css')); PackageManager::add('dropzone')->js(null, resources_url('/libs/dropzone/js/dropzone.min.js'), ['jquery', 'libraries'])->css('dropzone-basic', resources_url('/libs/dropzone/css/basic.min.css'))->css(null, resources_url('/libs/dropzone/css/dropzone.min.css')); PackageManager::add('datepicker')->js(null, resources_url('/libs/datetimepicker/js/jquery.datetimepicker.min.js'), ['jquery', 'libraries'])->css(null, resources_url('/libs/datetimepicker/css/jquery.datetimepicker.css')); PackageManager::add('bootstrap-multiselect')->js(null, resources_url('/libs/bootstrap-multiselect/js/bootstrap-multiselect.js'), ['jquery', 'libraries'])->css(null, resources_url('/libs/bootstrap-multiselect/css/bootstrap-multiselect.css')); PackageManager::add('editable')->js(null, resources_url('/libs/x-editable/js/bootstrap-editable.min.js'), ['jquery', 'bootstrap'])->css(null, resources_url('/libs/x-editable/css/bootstrap-editable.css')); PackageManager::add('nestable')->js(null, resources_url('/libs/nestable/js/jquery.nestable.js'), ['jquery', 'libraries']); PackageManager::add('steps')->js(null, resources_url('/libs/jquery.steps/js/jquery.steps.min.js'), ['jquery', 'libraries']); PackageManager::add('noty')->js(null, resources_url('/libs/noty/js/jquery.noty.packaged.min.js'), ['jquery', 'libraries']); PackageManager::add('select2')->js(null, resources_url('/libs/select2/js/select2.min.js'), ['jquery', 'libraries'])->js("select2-{$locale}", resources_url("/libs/select2/js/i18n/{$locale}.js"), 'select2')->css(null, resources_url('/libs/select2/css/select2.min.css')); PackageManager::add('sortable')->js(null, resources_url('/libs/Sortable/js/Sortable.min.js'), ['jquery', 'libraries'])->js('sortable-binding', resources_url('/libs/Sortable/js/jquery.binding.js'), ['jquery', 'libraries']); PackageManager::add('validate')->js(null, resources_url('/libs/jquery-validation/js/jquery.validate.min.js'), ['jquery', 'libraries'])->js("validate-{$locale}", resources_url("/libs/jquery-validation/js/messages_{$locale}.js"), 'validate'); PackageManager::add('moment')->js(null, resources_url('/libs/moment/js/moment.min.js'), ['jquery', 'libraries'])->js("moment-{$locale}", resources_url("/libs/moment/js/{$locale}.js"), 'moment'); PackageManager::add('ckeditor')->js('ckeditor-library', resources_url('/libs/ckeditor/ckeditor.js'), ['jquery', 'libraries'])->js(null, resources_url('/js/wysiwyg/ckeditor.js'), 'ckeditor-library')->js("ckeditor-{$locale}", resources_url("/libs/ckeditor/lang/{$locale}.js"), 'ckeditor-library'); PackageManager::add('ace')->js('ace-library', resources_url('/libs/ace/src-min/ace.js'), ['jquery', 'libraries'])->js(null, resources_url('/js/wysiwyg/ace.js'), 'ace-library'); PackageManager::add('diff')->js(null, resources_url('/libs/jsdiff/js/diff.js')); PackageManager::add('datatables')->js(null, resources_url('/libs/datatables/js/jquery.dataTables.min.js'), ['jquery', 'libraries'])->js('datatables.bootstrap', resources_url('/libs/datatables/js/datatables.bootstrap.js'), 'datatables')->css(null, resources_url('/libs/datatables/css/datatables.bootstrap.css')); WYSIWYG::add('ace', 'Ace', null, null, WYSIWYG::code()); WYSIWYG::add('ckeditor', 'CKEditor');
<?php PackageManager::add('weather')->js(null, resources_url('/libs/weather/js/weather.js'), 'jquery'); PackageManager::add('gridster')->js(null, resources_url('/libs/gridster/js/jquery.gridster.min.js'), 'jquery')->css(null, resources_url('/libs/gridster/css/jquery.gridster.min.css'));
/** * Login to the depot * * @return true if successful, false otherwise */ function login($terms_checked = true) { if (empty($_SESSION['SugarDepotSessionID'])) { global $license; $GLOBALS['log']->debug("Begin SugarDepot Login"); PackageManagerComm::initialize(false); require 'sugar_version.php'; require 'config.php'; $credentials = PackageManager::getCredentials(); if (empty($license)) { loadLicense(); } $info = sugarEncode('2813', serialize(getSystemInfo(true))); $pm = new PackageManager(); $installed = $pm->buildInstalledReleases(); $installed = base64_encode(serialize($installed)); $params = array('installed_modules' => $installed, 'terms_checked' => $terms_checked, 'system_name' => $credentials['system_name']); $terms_version = !empty($_SESSION['SugarDepot_TermsVersion']) ? $_SESSION['SugarDepot_TermsVersion'] : ''; if (!empty($terms_version)) { $params['terms_version'] = $terms_version; } $result = $GLOBALS['SugarDepot']->call('depotLogin', array(array('user_name' => $credentials['username'], 'password' => $credentials['password']), 'info' => $info, 'params' => $params)); PackageManagerComm::errorCheck(); if (!is_array($result)) { $_SESSION['SugarDepotSessionID'] = $result; } $GLOBALS['log']->debug("End SugarDepot Login"); return $result; } else { return $_SESSION['SugarDepotSessionID']; } }
$base_upgrade_dir = $sugar_config['upload_dir'] . "upgrades"; $base_tmp_upgrade_dir = $base_upgrade_dir . "/temp"; /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// //// HANDLE FILE UPLOAD AND PROCESSING $errors = array(); $uploadResult = ''; //commitModules(); if (isset($_REQUEST['languagePackAction']) && !empty($_REQUEST['languagePackAction'])) { switch ($_REQUEST['languagePackAction']) { case 'upload': $perform = false; $tempFile = ''; if (isset($_REQUEST['release_id']) && $_REQUEST['release_id'] != "") { require_once 'ModuleInstall/PackageManager/PackageManager.php'; $pm = new PackageManager(); $tempFile = $pm->download($_REQUEST['release_id'], getcwd() . '/' . $sugar_config['upload_dir']); $perform = true; //$base_filename = urldecode($tempFile); } else { $file = new UploadFile('language_pack'); if ($file->confirm_upload()) { $perform = true; if (strpos($file->mime_type, 'zip') !== false) { // only .zip files if (langPackFinalMove($file)) { $perform = true; } else { $errors[] = $mod_strings['ERR_LANG_UPLOAD_3']; } } else {
function getHeader() { global $current_language; $mod_strings = return_module_language($current_language, "Administration"); $header_text = ''; $isAlive = false; $show_login = false; if (!function_exists('curl_init') && $show_login) { $header_text = "<font color='red'><b>" . $mod_strings['ERR_ENABLE_CURL'] . "</b></font>"; $show_login = false; } else { $credentials = PackageManager::getCredentials(); if (empty($credentials['username']) || empty($credentials['password'])) { //$header_text = "<font color='red'><b>".$mod_strings['ERR_CREDENTIALS_MISSING']."</b></font>"; } else { $result = PackageManagerComm::login(); if (is_array($result) && !empty($result['faultcode']) || $result == false) { $header_text = "<font color='red'><b>" . $result['faultstring'] . "</b></font>"; } else { $header_text = PackageManager::getPromotion(); $isAlive = true; } } } return array('text' => $header_text, 'isAlive' => $isAlive, 'show_login' => $show_login); }
function action_DeployPackage() { if (defined('TEMPLATE_URL')) { sugar_cache_reset(); SugarTemplateUtilities::disableCache(); } $mb = new ModuleBuilder(); $load = $_REQUEST['package']; $message = $GLOBALS['mod_strings']['LBL_MODULE_DEPLOYED']; if (!empty($load)) { $zip = $mb->getPackage($load); require_once 'ModuleInstall/PackageManager/PackageManager.php'; $pm = new PackageManager(); $info = $mb->packages[$load]->build(false); mkdir_recursive($GLOBALS['sugar_config']['cache_dir'] . '/upload/upgrades/module/'); rename($info['zip'], $GLOBALS['sugar_config']['cache_dir'] . '/' . 'upload/upgrades/module/' . $info['name'] . '.zip'); copy($info['manifest'], $GLOBALS['sugar_config']['cache_dir'] . '/' . 'upload/upgrades/module/' . $info['name'] . '-manifest.php'); $_REQUEST['install_file'] = $GLOBALS['sugar_config']['cache_dir'] . '/' . 'upload/upgrades/module/' . $info['name'] . '.zip'; $GLOBALS['mi_remove_tables'] = false; $pm->performUninstall($load); //#23177 , js cache clear clearAllJsAndJsLangFilesWithoutOutput(); //#30747, clear the cache in memoy $cache_key = 'app_list_strings.' . $GLOBALS['current_language']; sugar_cache_clear($cache_key); sugar_cache_reset(); //clear end $pm->performInstall($_REQUEST['install_file']); } echo 'complete'; }
<?php /* to view the initer : echo $this->showIniter(); or better way uncomment in this file the line : //$content.=$this->showIniter(); */ $reload = $this->instanceVar->varpost("reload"); $reload = $this->instanceVar->vartotmpsession($reload); $this->initer['mainsubtitle'] = "Package Manager"; $instancePage = new PackageManager($this->initer); //sync package in folder and db if (isset($reload) && $reload != "canceled") { $instancePage->check_new_package(); } $content = ""; //$content.=$this->showIniter(); //submiter $content .= $instancePage->form_submiter(); $form = $instancePage->form_loader(); $this->tpl->remplir_template("form", $form); $content .= $instancePage->content_loader(); $this->tpl->remplir_template("content", $content); $data = $instancePage->data_loader(); $this->tpl->remplir_template("data", $data);
/** * Проверять возможность удаления указанного пакета. * * Если существует пакет который зависит от данного то удаление невозможно. * * Массив пакетов для удаления. Если удаление невозможно вернет false. * * @param $nvr * @param array $unstatisfied * @return array of packages | bool false */ static function isNoNeeded($nvr, &$unstatisfied) { $name = $nvr['name']; $pseq = PackageManager::getPackageSequence(); $nvr['rel'] = Deps::normalizeRel($nvr['rel']); if ($nvr['rel'] == '=') { $nvr['rel'] = '>='; } $stayedList = array(); // версии которые останцтся после уддаления $removedList = array(); // версии которые необходимо удалить $addToRemovedList = false; $checkList = array(); // пакеты которые необходимо проверить на совместимость for ($i = 0, $c = count($pseq); $i < $c; $i++) { if ($pseq[$i]['name'] != $name) { if ($addToRemovedList) { $checkList[] = $pseq[$i]; } } else { if (version_compare($pseq[$i]['version'], $nvr['version'], $nvr['rel'])) { $addToRemovedList = true; } if ($addToRemovedList) { $removedList[] = PackageManager::getInstalledPackage($pseq[$i]['name'], $pseq[$i]['version']); } else { $stayedList[] = $pseq[$i]; } } } /* io::out('Stayed list : '.$name, false); foreach($stayedList as $a) io::out($a['name'].'='.$a['version']. ' ', false); io::out(); io::out('removes list : ', false); foreach($removedList as $a) io::out($a->version. ' ', false); io::out(); io::out('CheckList : ', false); foreach($checkList as $a) io::out($a['name'].' '.$a['version'].', ', false); io::out(); */ foreach ($checkList as $pnvr) { $packageDeps = PackageManager::getInstalledPackage($pnvr['name'], $pnvr['version'])->deps['packages']; foreach ($packageDeps as $p) { if ($p['name'] == $name) { $statisfy = false; $luns = array(); // localUnstatisfied //io::out($nvr['name'].' '.$nvr['version']); //print_r($p); // Все версии пакета будут удалены, а пакет фигурирует в зависимостях if (count($stayedList) == 0) { $luns[$p['name'] . ' ' . $p['rel'] . ' ' . $p['version']] = 1; } else { foreach ($stayedList as $stayedPackage) { if (!version_compare($stayedPackage['version'], $p['version'], $p['rel'])) { $luns[$p['name'] . ' ' . $p['rel'] . ' ' . $p['version']] = 1; } else { $statisfy = true; break; } } } // если после удаления не останется ниодного пакета удовлетворяющего зависимости, // то добавляем в массив нудовлетворенных зависимостей $luns if (!$statisfy) { $unstatisfied[$pnvr['name'] . '(' . $pnvr['version'] . ')'] = $luns; } } } } return count($unstatisfied) ? false : array_reverse($removedList); }
function action_DeployPackage() { global $current_user; if (defined('TEMPLATE_URL')) { sugar_cache_reset(); SugarTemplateUtilities::disableCache(); } //increment etag for menu so the new module shows up when the AJAX UI reloads $current_user->incrementETag("mainMenuETag"); $mb = new ModuleBuilder(); $load = $_REQUEST['package']; $message = $GLOBALS['mod_strings']['LBL_MODULE_DEPLOYED']; if (!empty($load)) { $zip = $mb->getPackage($load); require_once 'ModuleInstall/PackageManager/PackageManager.php'; $pm = new PackageManager(); $info = $mb->packages[$load]->build(false); $uploadDir = $pm->upload_dir . '/upgrades/module/'; mkdir_recursive($uploadDir); rename($info['zip'], $uploadDir . $info['name'] . '.zip'); copy($info['manifest'], $uploadDir . $info['name'] . '-manifest.php'); $_REQUEST['install_file'] = $uploadDir . $info['name'] . '.zip'; $GLOBALS['mi_remove_tables'] = false; $pm->performUninstall($load); //#23177 , js cache clear clearAllJsAndJsLangFilesWithoutOutput(); //#30747, clear the cache in memory $cache_key = 'app_list_strings.' . $GLOBALS['current_language']; sugar_cache_clear($cache_key); sugar_cache_reset(); //clear end $pm->performInstall($_REQUEST['install_file'], true); //clear the unified_search_module.php file require_once 'modules/Home/UnifiedSearchAdvanced.php'; UnifiedSearchAdvanced::unlinkUnifiedSearchModulesFile(); //bug 44269 - start //clear workflow admin modules cache if (isset($_SESSION['get_workflow_admin_modules_for_user'])) { unset($_SESSION['get_workflow_admin_modules_for_user']); } //clear "is_admin_for_module" cache $sessionVar = 'MLA_' . $current_user->user_name; foreach ($mb->packages as $package) { foreach ($package->modules as $module) { $_SESSION[$sessionVar][$package->name . '_' . $module->name] = true; } } //recreate acl cache $actions = ACLAction::getUserActions($current_user->id, true); //bug 44269 - end } echo 'complete'; }
/** * Снимает блокировку системы. * */ function cmdUnlock() { IO::out('Unlocking Package Manager', false); if (PackageManager::get()->unlock(true)) { io::done(); } }
function action_DeployPackage() { $mb = new ModuleBuilder(); $load = $_REQUEST['package']; $message = $GLOBALS['mod_strings']['LBL_MODULE_DEPLOYED']; if (!empty($load)) { $zip = $mb->getPackage($load); require_once 'ModuleInstall/PackageManager/PackageManager.php'; $pm = new PackageManager(); $info = $mb->packages[$load]->build(false); mkdir_recursive($GLOBALS['sugar_config']['cache_dir'] . '/upload/upgrades/module/'); rename($info['zip'], $GLOBALS['sugar_config']['cache_dir'] . '/' . 'upload/upgrades/module/' . $info['name'] . '.zip'); copy($info['manifest'], $GLOBALS['sugar_config']['cache_dir'] . '/' . 'upload/upgrades/module/' . $info['name'] . '-manifest.php'); $_REQUEST['install_file'] = $GLOBALS['sugar_config']['cache_dir'] . '/' . 'upload/upgrades/module/' . $info['name'] . '.zip'; $GLOBALS['mi_remove_tables'] = false; $pm->performUninstall($load); $pm->performInstall($_REQUEST['install_file']); } echo 'complete'; }
<?php PackageManager::add('cron')->js(null, resources_url('/libs/jquery-cron/js/jquery-cron-min.js'), 'jquery');
<?php PackageManager::add('page-wysiwyg')->js('page-wysiwyg-libraries', resources_url('/js/page-wysiwyg-libraries.js'), 'jquery')->js(null, resources_url('/js/page-wysiwyg.js'), ['page-wysiwyg-libraries'])->css(null, resources_url('/css/page-wysiwyg.css'));
//AssetManager::addStyle('admin::default/css/formitems/datetime/bootstrap-datetimepicker.min.css'); //AssetManager::addStyle('admin::default/css/formitems/datetime/style.css'); //AssetManager::addScript('admin::default/js/formitems/datetime/moment-with-locales.min.js'); //AssetManager::addScript('admin::default/js/formitems/datetime/s_bootstrap-datetimepicker.min.js'); //AssetManager::addScript('admin::default/js/formitems/datetime/init.js'); PackageManager::add(KodiCMS\SleepingOwlAdmin\FormItems\BaseDateTime::class)->js(null, resources_url('sleepingowl/default/js/formitems/datetime/init.js'), 'datepicker'); /******************************************** * Columns ********************************************/ PackageManager::add(KodiCMS\SleepingOwlAdmin\Columns\Column\Checkbox::class)->js(null, resources_url('sleepingowl/default/columns/checkbox.js')); //AssetManager::addScript('admin::default/js/bootbox.js'); //AssetManager::addScript('admin::default/js/columns/control.js'); PackageManager::add(KodiCMS\SleepingOwlAdmin\Columns\Column\Control::class)->js(null, resources_url('sleepingowl/default/columns/control.js')); //AssetManager::addStyle('admin::default/css/ekko-lightbox.min.css'); //AssetManager::addScript('admin::default/js/ekko-lightbox.min.js'); //AssetManager::addScript('admin::default/js/columns/image.js'); PackageManager::add(KodiCMS\SleepingOwlAdmin\Columns\Column\Image::class)->js(null, resources_url('sleepingowl/default/columns/image.js')); /******************************************** * Display ********************************************/ //addScript('admin::default/js/jquery.nestable.js'); //addScript('admin::default/js/nestable.js'); //addStyle('admin::default/css/jquery.nestable.css'); PackageManager::add(KodiCMS\SleepingOwlAdmin\Display\DisplayTree::class)->js(null, resources_url('sleepingowl/default/js/nestable.js'), 'nestable'); //AssetManager::addScript('admin::default/js/datatables/jquery.dataTables.min.js'); //AssetManager::addScript('admin::default/js/datatables/jquery.dataTables_bootstrap.js'); //AssetManager::addScript('admin::default/js/notify-combined.min.js'); //AssetManager::addScript('admin::default/js/datatables/init.js'); //AssetManager::addStyle('admin::default/css/dataTables.bootstrap.css'); PackageManager::add(KodiCMS\SleepingOwlAdmin\Display\DisplayDatatables::class)->js(null, resources_url('sleepingowl/default/js/datatables/init.js'));
<?php $locale = Lang::getLocale(); PackageManager::add('elfinder')->js('elfinder.lib', resources_url('/libs/elfinder/js/elfinder.min.js'), 'global')->js("elfinder.{$locale}", resources_url("/libs/elfinder/js/i18n/elfinder.{$locale}.js"), 'elfinder.lib')->css('elfinder.lib', resources_url('/libs/elfinder/css/elfinder.min.css'));
$upload_max_filesize = ini_get('upload_max_filesize'); $upload_max_filesize_bytes = return_bytes($upload_max_filesize); if ($upload_max_filesize_bytes < constant('SUGARCRM_MIN_UPLOAD_MAX_FILESIZE_BYTES')) { $GLOBALS['log']->debug("detected upload_max_filesize: {$upload_max_filesize}"); print '<p class="error">' . $mod_strings['MSG_INCREASE_UPLOAD_MAX_FILESIZE'] . ' ' . get_cfg_var('cfg_file_path') . "</p>\n"; } // // process "run" commands // if (isset($_REQUEST['run']) && $_REQUEST['run'] != "") { $run = $_REQUEST['run']; if ($run == "upload") { $perform = false; if (isset($_REQUEST['release_id']) && $_REQUEST['release_id'] != "") { require_once 'ModuleInstall/PackageManager.php'; $pm = new PackageManager(); $tempFile = $pm->download('', '', $_REQUEST['release_id'], getAbsolutePath($sugar_config['upload_dir'], true)); $perform = true; $base_filename = urldecode($tempFile); } elseif (!empty($_REQUEST['load_module_from_dir'])) { //copy file to proper location then call performSetup $tempFile = getAbsolutePath($sugar_config['upload_dir'] . $_REQUEST['upgrade_zip_escaped'], true); copy($_REQUEST['load_module_from_dir'] . '/' . $_REQUEST['upgrade_zip_escaped'], $tempFile); $perform = true; $base_filename = urldecode($_REQUEST['upgrade_zip_escaped']); } else { if (empty($_FILES['upgrade_zip']['tmp_name'])) { echo $mod_strings['ERR_UW_NO_UPLOAD_FILE']; } else { if (!move_uploaded_file($_FILES['upgrade_zip']['tmp_name'], getAbsolutePath($sugar_config['upload_dir'] . $_FILES['upgrade_zip']['name'], true))) { unlinkTempFiles();
$base_upgrade_dir = sugar_cached("upgrades"); $base_tmp_upgrade_dir = $base_upgrade_dir . "/temp"; /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// //// HANDLE FILE UPLOAD AND PROCESSING $errors = array(); $uploadResult = ''; //commitModules(); if (isset($_REQUEST['languagePackAction']) && !empty($_REQUEST['languagePackAction'])) { switch ($_REQUEST['languagePackAction']) { case 'upload': $perform = false; $tempFile = ''; if (isset($_REQUEST['release_id']) && $_REQUEST['release_id'] != "") { require_once 'ModuleInstall/PackageManager/PackageManager.php'; $pm = new PackageManager(); $tempFile = $pm->download($_REQUEST['release_id']); $perform = true; //$base_filename = urldecode($tempFile); } else { $file = new UploadFile('language_pack'); if ($file->confirm_upload()) { $perform = true; if (strpos($file->mime_type, 'zip') !== false) { // only .zip files $tempFile = $file->get_stored_filename(); if ($file->final_move($tempFile)) { $perform = true; } else { $errors[] = $mod_strings['ERR_LANG_UPLOAD_3']; }
//// PREP VARS FOR LANG PACK $base_upgrade_dir = "upload://upgrades"; $base_tmp_upgrade_dir = sugar_cached("upgrades/temp"); /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// //// HANDLE FILE UPLOAD AND PROCESSING $errors = array(); $uploadResult = ''; if (isset($_REQUEST['languagePackAction']) && !empty($_REQUEST['languagePackAction'])) { switch ($_REQUEST['languagePackAction']) { case 'upload': $perform = false; $tempFile = ''; if (isset($_REQUEST['release_id']) && $_REQUEST['release_id'] != "") { require_once 'ModuleInstall/PackageManager/PackageManager.php'; $pm = new PackageManager(); $tempFile = $pm->download('3', '3', $_REQUEST['release_id'], $sugar_config['upload_dir']); $perform = true; //$base_filename = urldecode($tempFile); } else { $file = new UploadFile('language_pack'); if ($file->confirm_upload()) { $perform = true; } if (strpos($file->mime_type, 'zip') !== false) { // only .zip files if (langPackFinalMove($file)) { $perform = true; } else { $errors[] = $mod_strings['ERR_LANG_UPLOAD_3']; }
// flag to show "next" $run = isset($_REQUEST['run']) ? $_REQUEST['run'] : ''; $out = ''; if (file_exists('ModuleInstall/PackageManager/PackageManagerDisplay.php')) { require_once 'ModuleInstall/PackageManager/PackageManagerDisplay.php'; } /////////////////////////////////////////////////////////////////////////////// //// UPLOAD FILE PROCESSING switch ($run) { case 'upload': logThis('running upload'); $perform = false; $tempFile = ''; if (isset($_REQUEST['release_id']) && $_REQUEST['release_id'] != "") { require_once 'ModuleInstall/PackageManager/PackageManager.php'; $pm = new PackageManager(); $tempFile = ''; $perform = false; if (!empty($_SESSION['ML_PATCHES'])) { $release_map = $_SESSION['ML_PATCHES'][$_REQUEST['release_id']]; if (!empty($release_map)) { $tempFile = $pm->download($release_map['category_id'], $release_map['package_id'], $_REQUEST['release_id'], getcwd() . '/' . $sugar_config['upload_dir']); $perform = true; if ($release_map['type'] != 'patch') { $pm->performSetup($tempFile, $release_map['type'], false); header('Location: index.php?module=Administration&action=UpgradeWizard&view=module'); } } } $base_filename = urldecode($tempFile); } else {
/** * To enable writing of the package states file the package states * migration needs to override eventual failsafe blocks. */ public function forceSortAndSavePackageStates() { parent::sortAndSavePackageStates(); }
function buildPackageXML($package, $releases = array()) { $xml = '<package>'; $xml .= '<package_id>' . $package['id'] . '</package_id>'; $xml .= '<name>' . $package['name'] . '</name>'; $xml .= '<description>' . $package['description'] . '</description>'; if (!empty($releases)) { $xml .= '<releases>'; foreach ($releases['packages'] as $release) { $myrelease = PackageManager::fromNameValueList($release); $xml .= '<release>'; $xml .= '<release_id>' . $myrelease['id'] . '</release_id>'; $xml .= '<version>' . $myrelease['version'] . '</version>'; $xml .= '<description>' . $myrelease['description'] . '</description>'; $xml .= '<package_id>' . $package['id'] . '</package_id>'; $xml .= '<category_id>' . $package['category_id'] . '</category_id>'; $xml .= '</release>'; } $xml .= '</releases>'; } $xml .= '</package>'; return $xml; }
// flag to show "next" $run = isset($_REQUEST['run']) ? $_REQUEST['run'] : ''; $out = ''; if (file_exists('ModuleInstall/PackageManager/PackageManagerDisplay.php')) { require_once 'ModuleInstall/PackageManager/PackageManagerDisplay.php'; } /////////////////////////////////////////////////////////////////////////////// //// UPLOAD FILE PROCESSING switch ($run) { case 'upload': logThis('running upload'); $perform = false; $tempFile = ''; if (isset($_REQUEST['release_id']) && $_REQUEST['release_id'] != "") { require_once 'ModuleInstall/PackageManager/PackageManager.php'; $pm = new PackageManager(); $tempFile = ''; $perform = false; if (!empty($_SESSION['ML_PATCHES'])) { $release_map = $_SESSION['ML_PATCHES'][$_REQUEST['release_id']]; if (!empty($release_map)) { $tempFile = $pm->download($release_map['category_id'], $release_map['package_id'], $_REQUEST['release_id']); $perform = true; if ($release_map['type'] != 'patch') { $pm->performSetup($tempFile, $release_map['type'], false); header('Location: index.php?module=Administration&action=UpgradeWizard&view=module'); } } } $base_filename = urldecode($tempFile); } else {
function getDocumentation() { $json = getJSONobj(); $package_id = ''; $release_id = ''; if (isset($_REQUEST['package_id'])) { $package_id = nl2br($_REQUEST['package_id']); } if (isset($_REQUEST['release_id'])) { $release_id = nl2br($_REQUEST['release_id']); } $documents = PackageManager::getDocumentation($package_id, $release_id); $GLOBALS['log']->debug("DOCUMENTS: " . var_export($documents, true)); echo 'result = ' . $json->encode(array('documents' => $documents)); }
/** * @param \Vinelab\UrlShortener\Base\PackageManager $manager */ public function __construct(PackageManager $manager) { // initialize driver instance (based on the configuration input collected from the package manager) $driver = DriversFactory::make($manager->getDriverName(), $manager->getDriverParameters(), $manager->getHttpClient()); $this->setDriver($driver); }
/** * This method will look for a file modules_post_install.php in the root directory and based on the * contents of this file, it will silently install any modules as specified in this array. */ function post_install_modules() { if (is_file('modules_post_install.php')) { global $current_user, $mod_strings; $current_user = new User(); $current_user->is_admin = '1'; require_once 'ModuleInstall/PackageManager/PackageManager.php'; require_once 'modules_post_install.php'; //we now have the $modules_to_install array in memory $pm = new PackageManager(); $old_mod_strings = $mod_strings; foreach ($modules_to_install as $module_to_install) { if (is_file($module_to_install)) { $pm->performSetup($module_to_install, 'module', false); $file_to_install = sugar_cached('upload/upgrades/module/') . basename($module_to_install); $_REQUEST['install_file'] = $file_to_install; $pm->performInstall($file_to_install); } } $mod_strings = $old_mod_strings; } }
/** * Размещение пакета * * @throws Exception if one of deploy task throws an exception */ function deploy() { // распаковть в buildpad $bp = PackageManager::getBuildpadDir()->getDir($this->name . '_' . $this->version); PackageManager::getRollback()->push('delete', $bp); Packer::unpack($this->file, $bp); // Вырезать нужный кусок их Package.xml $rp = new DOMXPath($this->xml); $nodes = $rp->query('//deploy'); if ($nodes->length == 0) { return io::out('Nothing to deploy') | 0; } $tasks = $nodes->item(0)->childNodes; // создать deployer $d = new Deployer($bp); $d->setTaskList($tasks); $d->executeTasks(); // удалить директорию в билдпаде $bp->delete(); }