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; }