Ejemplo n.º 1
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);
 }
Ejemplo n.º 2
0
 /**
  * 
  * @param string $moduleName
  * @return boolean
  */
 public static function isModuleInstalled($moduleName)
 {
     $isinstalled = false;
     $moduleId = self::getModuleIdByName($moduleName);
     if ($moduleId != false) {
         $result = Module::getParameters($moduleId, 'isinstalled');
         $isinstalled = (bool) $result['isinstalled'];
     }
     return $isinstalled;
 }