private function _duplicate($from_field_id, $to_field_id, $by_reference) { //duplicate users info, if any $dao = new Tracker_FormElement_Field_List_Bind_UsersDao(); $dao->duplicate($from_field_id, $to_field_id); //duplicate Static info, if any $dao = new Tracker_FormElement_Field_List_Bind_StaticDao(); $dao->duplicate($from_field_id, $to_field_id); $value_mapping = array(); //duplicate Static value, if any $dao = new Tracker_FormElement_Field_List_Bind_Static_ValueDao(); foreach ($dao->searchByFieldId($from_field_id, 0) as $row) { if ($id = $dao->duplicate($row['id'], $to_field_id, $by_reference)) { $value_mapping[$row['id']] = $id; } } //duplicate Ugroups value, if any $dao = $this->getUgroupsValueDao(); foreach ($dao->searchByFieldId($from_field_id) as $row) { if ($id = $dao->duplicate($row['id'], $to_field_id)) { $value_mapping[$row['id']] = $id; } } $dao = new Tracker_FormElement_Field_List_Bind_DefaultvalueDao(); $dao->duplicate($from_field_id, $to_field_id, $value_mapping); $dao = new Tracker_FormElement_Field_List_BindDecoratorDao(); $dao->duplicate($from_field_id, $to_field_id, $value_mapping); return $value_mapping; }
/** * Saves a bind in the database * * @return void */ public function saveObject() { if (is_array($this->default_values)) { $t = array(); foreach ($this->default_values as $value) { $t[$value->getId()] = $value; } $this->default_values = $t; if (count($this->default_values)) { $dao = new Tracker_FormElement_Field_List_Bind_DefaultvalueDao(); $dao->save($this->field->getId(), array_keys($this->default_values)); } } if (is_array($this->decorators) && !empty($this->decorators)) { $values = $this->getBindValues(); foreach ($this->decorators as $decorator) { $hexacolor = Tracker_FormElement_Field_List_BindDecorator::toHexa($decorator->r, $decorator->g, $decorator->b); Tracker_FormElement_Field_List_BindDecorator::save($this->field->getId(), $values[$decorator->value_id]->getId(), $hexacolor); } } }