public function getFormData($prefix = '') { $selectorTypes = EavFieldCommon::getSelectorValueTypes(); $multiLingualTypes = EavFieldCommon::getMultilanguageTypes(); $languageArray = ActiveRecordModel::getApplication()->getLanguageArray(); $fieldClass = $this->getFieldClass(); $formData = array(); foreach ($this->toArray() as $attr) { $fieldName = $prefix . $attr[$fieldClass]['fieldName']; if (in_array($attr[$fieldClass]['type'], $selectorTypes)) { if (1 == $attr[$fieldClass]['isMultiValue']) { foreach ($attr['valueIDs'] as $valueID) { $formData[$prefix . 'specItem_' . $valueID] = "on"; } } else { $formData[$fieldName] = $attr['ID']; } } else { if (in_array($attr[$fieldClass]['type'], $multiLingualTypes)) { $formData[$fieldName] = $attr['value']; foreach ($languageArray as $lang) { if (isset($attr['value_' . $lang])) { $formData[$fieldName . '_' . $lang] = $attr['value_' . $lang]; } } } else { $formData[$fieldName] = isset($attr['value']) ? $attr['value'] : 0; } } } return $formData; }