public function createFormElement(Tracker $tracker, array $formElement_data, User $user) { $formElement = $this->factory->getFormElementById($formElement_data['field_id']); if (!$formElement) { $exception_message = $GLOBALS['Language']->getText('plugin_tracker_formelement_exception', 'wrong_field_id', $formElement_data['field_id']); throw new Exception($exception_message); } $field = $this->getRootOriginalField($formElement); $this->assertFieldCanBeCopied($field, $user); $data = $this->populateFormElementDataForASharedField($field); $type = $data['type']; $id = $this->factory->createFormElement($tracker, $type, $data); $this->boundValuesFactory->duplicateByReference($field->getId(), $id); return $id; }