Пример #1
0
 /**
  * 
  */
 protected function postRemove()
 {
     Module::delete($this->moduleId);
 }
Пример #2
0
 /**
  * 
  * @param type $form
  * @param type $moduleId
  */
 protected static function processForm($form, $moduleId)
 {
     $insertedSections = array();
     $insertedBlocks = array();
     $insertedFields = array();
     self::initForm($form['name']);
     self::initValidators();
     $formData = array('name' => $form['name'], 'route' => $form->route, 'redirect' => $form->redirect, 'redirect_route' => $form->redirect_route);
     $formAdded = self::insertForm(array_map('strval', $formData), $moduleId);
     $sectionRank = 1;
     foreach ($form->section as $section) {
         $sectionData = array('name' => $section['name'], 'form_name' => $form['name'], 'rank' => $sectionRank);
         self::insertSection(array_map('strval', $sectionData));
         $sectionRank++;
         $blockRank = 1;
         foreach ($section->block as $block) {
             $blockData = array('name' => $block['name'], 'form_name' => $form['name'], 'section_name' => $section['name'], 'rank' => $blockRank);
             self::insertBlock(array_map('strval', $blockData));
             $blockRank++;
             $fieldRank = 1;
             foreach ($block->field as $field) {
                 $attributes = array();
                 $versions = array('');
                 if (isset($field->attributes)) {
                     $attributes = self::parseAttributes($field->attributes);
                 }
                 if (isset($field->versions)) {
                     $versions = self::parseVersions($field->versions);
                 }
                 $attributes = json_encode($attributes);
                 if ($formAdded['success'] === false && $formAdded['moduleId'] != $moduleId) {
                     $moduleName = Module::getParameters($moduleId, 'name');
                     if (isset($moduleName['name'])) {
                         $field['name'] = $moduleName['name'] . '__' . $field['name'];
                     }
                 }
                 if (!isset($field['show_label'])) {
                     $field['show_label'] = 1;
                 }
                 if (!isset($field['width'])) {
                     $field['width'] = null;
                 }
                 $fieldData = array('name' => $field['name'], 'label' => $field['label'], 'default_value' => $field['default_value'], 'advanced' => $field['advanced'], 'type' => $field['type'], 'parent_field' => $field['parent_field'], 'parent_value' => $field['parent_value'], 'module_id' => $moduleId, 'child_actions' => $field->child_actions, 'attributes' => $attributes, 'mandatory' => $field['mandatory'], 'help' => $field->help, 'show_label' => $field['show_label'], 'normalized_name' => $field['normalized_name'], 'width' => $field['width']);
                 self::insertField(array_map('strval', $fieldData));
                 $blockFieldData = array('form_name' => strval($form['name']), 'section_name' => strval($section['name']), 'block_name' => strval($block['name']), 'field_name' => strval($field['name']), 'rank' => $fieldRank, 'versions' => $versions);
                 self::addFieldToBlock($blockFieldData);
                 $fieldValidators = array('form_name' => $form['name'], 'field_name' => $field['name'], 'validators' => $field->validators);
                 self::addValidatorsToField($fieldValidators);
                 $fieldRank++;
                 $insertedFields[] = implode(';', array($form['name'], $section['name'], $block['name'], $field['name']));
                 //delete link with massive change
                 $nameField = $field['name'];
                 if (isset(self::$fields[(string) $nameField])) {
                     $idField = self::$fields[(string) $nameField];
                     self::deleteFieldToMassiveChange($idField);
                 }
                 //Add field for massive change
                 if (isset($field['massive_change']) && $field['massive_change'] == '1') {
                     $iPos = strrpos($form->route, '/');
                     if ($iPos > 0) {
                         $sRoute = substr($form->route, 0, $iPos) . "/mc_fields";
                         if (isset(self::$fields[(string) $nameField])) {
                             $idField = self::$fields[(string) $nameField];
                             $aDatas = array('field_id' => $idField, 'form_name' => $form['name'], 'route_name' => $sRoute);
                             self::addFieldToMassiveChange($aDatas);
                         }
                     }
                 }
             }
             $insertedBlocks[] = implode(';', array($form['name'], $section['name'], $block['name']));
         }
         $insertedSections[] = implode(';', array($form['name'], $section['name']));
     }
     self::purgeFields($insertedFields);
     self::purgeBlocks($insertedBlocks);
     self::purgeSections($insertedSections);
 }
Пример #3
0
 /**
  * 
  */
 public function postRemove()
 {
     Module::delete($this->moduleId);
 }
Пример #4
0
 /**
  *
  * @param integer $onlyActivated If list only module activated
  * @return array Array of arrays describing modules
  */
 public static function getModuleExtendedList($onlyActivated = 1)
 {
     $activated = array('0', '1', '2');
     if ($onlyActivated == 1) {
         $activated = array('1', '2');
     }
     try {
         $rawModuleList = Module::getList('*', -1, 0, 'name', 'ASC', array('isactivated' => $activated));
     } catch (\PDOException $e) {
     }
     return $rawModuleList;
 }
Пример #5
0
 /**
  * 
  * @param string $operationType
  * @param string $targetDbName
  * @return array
  */
 private static function getAllXmlFiles($operationType = 'update', $targetDbName = 'centreon')
 {
     // Initialize configuration
     $di = Di::getDefault();
     $config = $di->get('config');
     $centreonPath = $config->get('global', 'centreon_path');
     $xmlDbFiles = glob(realpath(rtrim($centreonPath, '/') . '/install/db/' . $targetDbName) . '/*.xml');
     // Module
     if ($operationType == 'update') {
         $registeredModules = Module::getList('name');
         $registeredModules(array_merge($registeredModules, Informations::getCoreModuleList()));
         foreach ($registeredModules as $module) {
             $module['name'] = str_replace(' ', '', ucwords(str_replace('-', ' ', $module['name']))) . 'Module';
             $xmlDbFiles = array_merge($xmlDbFiles, glob(realpath(rtrim($centreonPath, '/') . '/modules') . '/' . $module['name'] . '/install/db/' . $targetDbName . '/*.xml'));
         }
     } else {
         $xmlDbFiles = array_merge($xmlDbFiles, glob(realpath(rtrim($centreonPath, '/') . '/modules') . '/*Module/install/db/' . $targetDbName . '/*.xml'));
     }
     return $xmlDbFiles;
 }
Пример #6
0
 /**
  * 
  * @param integer $moduleId
  */
 public function setDependencies($moduleId = null)
 {
     if (is_array($moduleId)) {
         $currentModule = $moduleId[0];
     } else {
         $currentModule = $moduleId;
     }
     foreach ($this->moduleInfo['dependencies'] as $dependency) {
         $parentId = ModuleModel::getIdByParameter('name', $dependency['name']);
         if (count($parentId) > 0) {
             ModuleDependency::insert(array('parent_id' => $parentId[0], 'child_id' => $currentModule));
         }
     }
 }
 /**
  * 
  * @method get
  * @route /extensions/module/[i:id]/disable
  */
 public function disableModuleAction()
 {
     $router = $this->di->get('router');
     $params = $this->getParams();
     try {
         Module::update($params['id'], array('isactivated' => '0'));
     } catch (\Exception $e) {
         $router->response()->json(array('success' => false));
         return;
     }
     $router->response()->json(array('success' => true));
 }