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");
             }
         }
     }
 }
Exemple #2
0
 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');
     }
 }
Exemple #3
0
 /**
  * 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);
 }
Exemple #10
0
 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);
Exemple #12
0
 /**
  * Проверять возможность удаления указанного пакета.
  *
  * Если существует пакет который зависит от данного то удаление невозможно.
  *
  * Массив пакетов для удаления. Если удаление невозможно вернет 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';
 }
Exemple #14
0
 /**
  * Снимает блокировку системы.
  *
  */
 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'));
Exemple #18
0
//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'));
Exemple #20
0
$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'];
                    }
Exemple #23
0
// 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;
 }
Exemple #26
0
// 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));
 }
Exemple #28
0
 /**
  * @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;
    }
}
Exemple #30
0
 /**
  * Размещение пакета
  *
  * @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();
 }