EventTypeModuleCode::getElementsFromPost PHP Method

getElementsFromPost() public method

public getElementsFromPost ( )
    public function getElementsFromPost()
    {
        $elements = array();
        foreach ($_POST as $key => $value) {
            if (preg_match('/^elementName([0-9]+)$/', $key, $matches) || preg_match('/^elementId([0-9]+)$/', $key, $matches)) {
                $field = $matches[0];
                $number = $matches[1];
                $name = $value;
                if (preg_match('/^elementName([0-9]+)$/', $key, $matches)) {
                    $elements[$number]['mode'] = 'create';
                    $elements[$number]['name'] = $value;
                } else {
                    $elements[$number]['mode'] = 'update';
                    $elements[$number]['id'] = $value;
                    $element_type = ElementType::model()->findByPk($value);
                    $element_class = $element_type->class_name;
                    $elements[$number]['name'] = $value = $element_type->name;
                    $elements[$number]['table_name'] = $element_class::model()->tableName();
                    $field = 'elementName' . $number;
                }
                $elements[$number]['class_name'] = 'Element_' . $this->moduleID . '_' . preg_replace('/ /', '', ucwords(strtolower($value)));
                # now using the shortname field attribute for the table name
                if ($elements[$number]['mode'] == 'create') {
                    $elements[$number]['table_name'] = 'et_' . strtolower($this->moduleShortID) . '_' . strtolower(preg_replace('/ /', '', $_POST['elementShortName' . $number]));
                }
                $elements[$number]['number'] = $number;
                $elements[$number]['fields'] = array();
                $elements[$number]['foreign_keys'] = array();
                $elements[$number]['lookup_tables'] = array();
                $elements[$number]['defaults_tables'] = array();
                $elements[$number]['relations'] = array();
                $elements[$number]['defaults'] = array();
                $elements[$number]['mapping_tables'] = array();
                $elements[$number]['defaults_methods'] = array();
                $elements[$number]['after_save'] = array();
                $elements[$number] = $this->generateKeyNames($elements[$number], array('lmui', 'cui', 'ev'));
                $fields = array();
                foreach ($_POST as $fields_key => $fields_value) {
                    $pattern = '/^' . $field . 'FieldName([0-9]+)$/';
                    if (preg_match($pattern, $fields_key, $field_matches)) {
                        $field_number = $field_matches[1];
                        $elements[$number]['fields'][$field_number] = array();
                        $elements[$number]['fields'][$field_number]['name'] = $fields_value;
                        $elements[$number]['fields'][$field_number]['label'] = $_POST[$field . 'FieldLabel' . $field_number];
                        $elements[$number]['fields'][$field_number]['number'] = $field_number;
                        $elements[$number]['fields'][$field_number]['type'] = $_POST['elementType' . $number . 'FieldType' . $field_number];
                        $elements[$number]['fields'][$field_number]['required'] = (bool) @$_POST['isRequiredField' . $number . '_' . $field_number];
                        if ($elements[$number]['fields'][$field_number]['type'] == 'Dropdown list') {
                            $elements = $this->extraElementFieldWrangling_DropdownList($elements, $number, $field_number, $fields_value);
                        }
                        if ($elements[$number]['fields'][$field_number]['type'] == 'Textarea with dropdown') {
                            $elements = $this->extraElementFieldWrangling_TextareaWithDropdown($elements, $number, $field_number, $fields_value);
                            $elements[$number]['fields'][$field_number]['textarea_rows'] = @$_POST['textAreaDropDownRows' . $number . 'Field' . $field_number];
                            $elements[$number]['fields'][$field_number]['textarea_cols'] = @$_POST['textAreaDropDownCols' . $number . 'Field' . $field_number];
                        }
                        if ($elements[$number]['fields'][$field_number]['type'] == 'Radio buttons') {
                            $elements = $this->extraElementFieldWrangling_RadioButtons($elements, $number, $field_number, $fields_value);
                        }
                        if ($elements[$number]['fields'][$field_number]['type'] == 'EyeDraw') {
                            $elements = $this->extraElementFieldWrangling_EyeDraw($elements, $number, $field_number, $fields_value);
                        }
                        if ($elements[$number]['fields'][$field_number]['type'] == 'Multi select') {
                            $elements = $this->extraElementFieldWrangling_MultiSelect($elements, $number, $field_number, $fields_value);
                        }
                        if ($elements[$number]['fields'][$field_number]['type'] == 'Slider') {
                            $elements[$number]['fields'][$field_number]['slider_min_value'] = @$_POST['sliderMinValue' . $number . 'Field' . $field_number];
                            $elements[$number]['fields'][$field_number]['slider_max_value'] = @$_POST['sliderMaxValue' . $number . 'Field' . $field_number];
                            $elements[$number]['fields'][$field_number]['slider_default_value'] = @$_POST['sliderDefaultValue' . $number . 'Field' . $field_number];
                            $elements[$number]['fields'][$field_number]['default_value'] = @$_POST['sliderDefaultValue' . $number . 'Field' . $field_number];
                            $elements[$number]['fields'][$field_number]['slider_stepping'] = @$_POST['sliderStepping' . $number . 'Field' . $field_number];
                            $elements[$number]['fields'][$field_number]['slider_dp'] = @$_POST['sliderForceDP' . $number . 'Field' . $field_number];
                        }
                        if ($elements[$number]['fields'][$field_number]['type'] == 'Integer') {
                            $elements[$number]['fields'][$field_number]['integer_min_value'] = @$_POST['integerMinValue' . $number . 'Field' . $field_number];
                            $elements[$number]['fields'][$field_number]['integer_max_value'] = @$_POST['integerMaxValue' . $number . 'Field' . $field_number];
                            $elements[$number]['fields'][$field_number]['integer_default_value'] = @$_POST['integerDefaultValue' . $number . 'Field' . $field_number];
                            $elements[$number]['fields'][$field_number]['default_value'] = @$_POST['integerDefaultValue' . $number . 'Field' . $field_number];
                            $elements[$number]['fields'][$field_number]['integer_size'] = @$_POST['integerSize' . $number . 'Field' . $field_number];
                            $elements[$number]['fields'][$field_number]['integer_max_length'] = @$_POST['integerMaxLength' . $number . 'Field' . $field_number];
                        }
                        if ($elements[$number]['fields'][$field_number]['type'] == 'Decimal') {
                            $elements[$number]['fields'][$field_number]['decimal_min_value'] = @$_POST['decimalMinValue' . $number . 'Field' . $field_number];
                            $elements[$number]['fields'][$field_number]['decimal_max_value'] = @$_POST['decimalMaxValue' . $number . 'Field' . $field_number];
                            $elements[$number]['fields'][$field_number]['default_value'] = @$_POST['decimalDefaultValue' . $number . 'Field' . $field_number];
                            $elements[$number]['fields'][$field_number]['decimal_size'] = @$_POST['decimalSize' . $number . 'Field' . $field_number];
                            $elements[$number]['fields'][$field_number]['decimal_max_length'] = @$_POST['decimalMaxLength' . $number . 'Field' . $field_number];
                            $elements[$number]['fields'][$field_number]['decimal_dp'] = @$_POST['decimalForceDP' . $number . 'Field' . $field_number];
                        }
                        if ($elements[$number]['fields'][$field_number]['type'] == 'Textbox') {
                            $elements[$number]['fields'][$field_number]['textbox_size'] = @$_POST['textBoxSize' . $number . 'Field' . $field_number];
                            $elements[$number]['fields'][$field_number]['textbox_max_length'] = @$_POST['textBoxMaxLength' . $number . 'Field' . $field_number];
                        }
                        if ($elements[$number]['fields'][$field_number]['type'] == 'Textarea') {
                            $elements[$number]['fields'][$field_number]['textarea_rows'] = @$_POST['textAreaRows' . $number . 'Field' . $field_number];
                            $elements[$number]['fields'][$field_number]['textarea_cols'] = @$_POST['textAreaCols' . $number . 'Field' . $field_number];
                        }
                    }
                }
            }
        }
        return $elements;
    }