/** * * @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); }
/** * * @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; }