/** * Set the colour vision readings against the Element_OphCiExamination_ColourVision element. * * @param Element_OphCiExamination_ColourVision $element * @param $data * @param $index */ protected function setComplexAttributes_Element_OphCiExamination_ColourVision($element, $data, $index) { $model_name = \CHtml::modelName($element); foreach (array('left' => \Eye::LEFT, 'right' => \Eye::RIGHT) as $side => $eye_id) { $readings = array(); $checker = 'has' . ucfirst($side); if ($element->{$checker}()) { if (isset($data[$model_name][$side . '_readings'])) { foreach ($data[$model_name][$side . '_readings'] as $p_read) { if (@$p_read['id']) { if (!($reading = models\OphCiExamination_ColourVision_Reading::model()->findByPk($p_read['id']))) { $reading = new models\OphCiExamination_ColourVision_Reading(); } } else { $reading = new models\OphCiExamination_ColourVision_Reading(); } $reading->attributes = $p_read; $reading->eye_id = $eye_id; $readings[] = $reading; } } } $element->{$side . '_readings'} = $readings; } }