/** * @param string $url * @param string $action * @return FormValidator */ public function return_form($url, $action) { $form = new FormValidator($this->type . '_field', 'post', $url); $form->addElement('hidden', 'type', $this->type); $id = isset($_GET['id']) ? intval($_GET['id']) : null; $form->addElement('hidden', 'id', $id); // Setting the form elements $header = get_lang('Add'); $defaults = array(); if ($action == 'edit') { $header = get_lang('Modify'); // Setting the defaults $defaults = $this->get($id); } $form->addElement('header', $header); $form->addElement('text', 'field_display_text', get_lang('Name'), array('class' => 'span5')); // Field type $types = self::get_field_types(); $form->addElement('select', 'field_type', get_lang('FieldType'), $types, array('id' => 'field_type', 'class' => 'chzn-select', 'data-placeholder' => get_lang('Select'))); $form->addElement('label', get_lang('Example'), '<div id="example">-</div>'); $form->addElement('text', 'field_variable', get_lang('FieldLabel'), array('class' => 'span5')); $form->addElement('text', 'field_options', get_lang('FieldPossibleValues'), array('id' => 'field_options', 'class' => 'span6')); $fieldWithOptions = array(ExtraField::FIELD_TYPE_SELECT, ExtraField::FIELD_TYPE_TAG, ExtraField::FIELD_TYPE_DOUBLE_SELECT); if ($action == 'edit') { if (in_array($defaults['field_type'], $fieldWithOptions)) { $url = Display::url(get_lang('EditExtraFieldOptions'), 'extra_field_options.php?type=' . $this->type . '&field_id=' . $id); $form->addElement('label', null, $url); if ($defaults['field_type'] == ExtraField::FIELD_TYPE_SELECT) { $urlWorkFlow = Display::url(get_lang('EditExtraFieldWorkFlow'), 'extra_field_workflow.php?type=' . $this->type . '&field_id=' . $id); $form->addElement('label', null, $urlWorkFlow); } $form->freeze('field_options'); } } $form->addElement('text', 'field_default_value', get_lang('FieldDefaultValue'), array('id' => 'field_default_value', 'class' => 'span5')); $group = array(); $group[] = $form->createElement('radio', 'field_visible', null, get_lang('Yes'), 1); $group[] = $form->createElement('radio', 'field_visible', null, get_lang('No'), 0); $form->addGroup($group, '', get_lang('Visible'), '', false); $group = array(); $group[] = $form->createElement('radio', 'field_changeable', null, get_lang('Yes'), 1); $group[] = $form->createElement('radio', 'field_changeable', null, get_lang('No'), 0); $form->addGroup($group, '', get_lang('FieldChangeability'), '', false); $group = array(); $group[] = $form->createElement('radio', 'field_filter', null, get_lang('Yes'), 1); $group[] = $form->createElement('radio', 'field_filter', null, get_lang('No'), 0); $form->addGroup($group, '', get_lang('FieldFilter'), '', false); $group = array(); $group[] = $form->createElement('radio', 'field_loggeable', null, get_lang('Yes'), 1); $group[] = $form->createElement('radio', 'field_loggeable', null, get_lang('No'), 0); $form->addGroup($group, '', get_lang('FieldLoggeable'), '', false); $form->addElement('text', 'field_order', get_lang('FieldOrder'), array('class' => 'span1')); if ($action == 'edit') { $option = new ExtraFieldOption($this->type); if ($defaults['field_type'] == ExtraField::FIELD_TYPE_DOUBLE_SELECT) { $form->freeze('field_options'); } $defaults['field_options'] = $option->get_field_options_by_field_to_string($id); $form->addElement('button', 'submit', get_lang('Modify'), 'class="save"'); } else { $defaults['field_visible'] = 0; $defaults['field_changeable'] = 0; $defaults['field_filter'] = 0; $form->addElement('button', 'submit', get_lang('Add'), 'class="save"'); } /*if (!empty($defaults['created_at'])) { $defaults['created_at'] = api_convert_and_format_date($defaults['created_at']); } if (!empty($defaults['updated_at'])) { $defaults['updated_at'] = api_convert_and_format_date($defaults['updated_at']); }*/ $form->setDefaults($defaults); // Setting the rules $form->addRule('field_display_text', get_lang('ThisFieldIsRequired'), 'required'); //$form->addRule('field_variable', get_lang('ThisFieldIsRequired'), 'required'); $form->addRule('field_type', get_lang('ThisFieldIsRequired'), 'required'); return $form; }