public function validateOptionValue($id = null) { if (isset($_POST['OptionValue'])) { $valid = true; $processLog = $this->delLog = array(); $optionHold = $this->_optionvalue; $this->_optionvalue = array(); if (isset($_POST['Option']['type']) && $_POST['Option']['type'] != 'select' && $_POST['Option']['type'] != 'radio' && $_POST['Option']['type'] != 'checkbox') { $this->delLog = $optionHold; } else { if (isset($id) && !empty($optionHold)) { //$optionHold = $this->loadOptionValue($id); foreach ($optionHold as $t => $model) { $description = $model->optionValueDescriptions[0]; $delFlag = true; foreach ($_POST['OptionValue'] as $i => $item) { if (isset($_POST['OptionValue'][$i]) && isset($_POST['OptionValueDescription'][$i])) { if (isset($_POST['OptionValue'][$i]['id']) && intVal($_POST['OptionValue'][$i]['id']) == $model->id) { $model->attributes = $_POST['OptionValue'][$i]; $description->attributes = $_POST['OptionValueDescription'][$i]; $model->name = $_POST['OptionValueDescription'][$i]['name']; $valid = $model->validate() && $description->validate() && $valid; $this->_optionvalue[$i] = $model; $this->_optionvaluedes[$i] = $description; $delFlag = false; $processLog[] = $i; break; } } } if ($delFlag) { $this->delLog[] = $model; } } } foreach ($_POST['OptionValue'] as $i => $item) { if (empty($processLog) || !in_array($i, $processLog)) { $model = new OptionValue(); $description = new OptionValueDescription(); if (isset($_POST['OptionValue'][$i]) && isset($_POST['OptionValueDescription'][$i])) { $model->attributes = $_POST['OptionValue'][$i]; $description->attributes = $_POST['OptionValueDescription'][$i]; $model->option_id = 0; $model->name = $_POST['OptionValueDescription'][$i]['name']; $description->option_value_id = 0; $description->option_id = 0; $description->locale_code = Yii::app()->getLanguage(); $valid = $model->validate() && $description->validate() && $valid; $this->_optionvalue[$i] = $model; $this->_optionvaluedes[$i] = $description; } } } if (!$valid) { return false; } } } return true; }