protected function save(ActiveRecordModel $listGroup) { $validator = $this->buildValidator(); if ($validator->isValid()) { $listGroup->loadRequestData($this->request); $listGroup->save(); return new JSONResponse(array('ID' => $listGroup->getID(), 'data' => $listGroup->toArray()), 'success'); } else { return new JSONResponse(array('errors' => $validator->getErrorList()), 'failure'); } }
public function loadRequestData(Request $request) { if (!$request->get('password')) { $request->remove('password'); } return parent::loadRequestData($request); }
public function loadRequestData(Request $request, $prefix = '') { parent::loadRequestData($request, $prefix); if ($request->get($prefix . 'stateID')) { $this->state->set(State::getInstanceByID((int) $request->get($prefix . 'stateID'), true)); $this->stateName->set(null); } else { if ($request->isValueSet($prefix . 'stateName')) { $this->stateName->set($request->get($prefix . 'stateName')); $this->state->set(null); } } }
protected function importAttributes(ActiveRecordModel $instance, $record, $fields, $attrIdentifier = 'eavField') { if (isset($fields[$attrIdentifier])) { $impReq = new Request(); $fieldClass = ucfirst($attrIdentifier); $valueClass = 'eavField' == $attrIdentifier ? 'EavValue' : $fieldClass . 'Value'; foreach ($fields[$attrIdentifier] as $specFieldID => $csvIndex) { if (empty($record[$csvIndex])) { continue; } $attr = ActiveRecordModel::getInstanceByID($fieldClass, $specFieldID, ActiveRecord::LOAD_DATA); if ($attr->isSimpleNumbers()) { $impReq->set($attr->getFormFieldName(), (double) $record[$csvIndex]); } else { if ($attr->isSelector()) { if ($attr->isMultiValue->get()) { $values = explode(',', $record[$csvIndex]); } else { $values = array($record[$csvIndex]); } foreach ($values as $fieldValue) { $fieldValue = trim($fieldValue); $f = new ARSelectFilter(new LikeCond(MultilingualObject::getLangSearchHandle(new ARFieldHandle($valueClass, 'value'), $this->application->getDefaultLanguageCode()), $fieldValue . '%')); $f->setLimit(1); if (!($value = $attr->getRelatedRecordSet($valueClass, $f)->shift())) { $value = call_user_func_array(array($valueClass, 'getNewInstance'), array($attr)); if ($attr->type->get() == EavFieldCommon::TYPE_NUMBERS_SELECTOR) { $value->value->set($fieldValue); } else { $value->setValueByLang('value', $this->application->getDefaultLanguageCode(), $fieldValue); } $value->save(); } if (!$attr->isMultiValue->get()) { $impReq->set($attr->getFormFieldName(), $value->getID()); } else { $impReq->set($value->getFormFieldName(), true); } } } else { $impReq->set($attr->getFormFieldName(), $record[$csvIndex]); } } } $instance->loadRequestData($impReq); $instance->save(); } }