session_field.lib.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?php
  2. /* For licensing terms, see /license.txt */
  3. class SessionField extends ExtraField {
  4. public function __construct() {
  5. parent::__construct('session');
  6. }
  7. function display() {
  8. // action links
  9. echo '<div class="actions">';
  10. echo '<a href="../admin/index.php">' . Display::return_icon('back.png', get_lang('BackTo') . ' ' . get_lang('PlatformAdmin'), '', ICON_SIZE_MEDIUM) . '</a>';
  11. echo '<a href="' . api_get_self() . '?action=add">' . Display::return_icon('add_user_fields.png', get_lang('Add'), '', ICON_SIZE_MEDIUM) . '</a>';
  12. echo '</div>';
  13. echo Display::grid_html('session_fields');
  14. }
  15. public function return_form($url, $action) {
  16. $form = new FormValidator('session_field', 'post', $url);
  17. $id = isset($_GET['id']) ? intval($_GET['id']) : null;
  18. $form->addElement('hidden', 'id', $id);
  19. // Settting the form elements
  20. $header = get_lang('Add');
  21. $defaults = array();
  22. if ($action == 'edit') {
  23. $header = get_lang('Modify');
  24. // Setting the defaults
  25. $defaults = $this->get($id);
  26. }
  27. $form->addElement('header', $header);
  28. $form->addElement('text', 'field_display_text', get_lang('Name'), array('class' => 'span5'));
  29. // Field type
  30. $types = self::get_field_types();
  31. $form->addElement('select', 'field_type', get_lang('FieldType'), $types, array('id' => 'field_type', 'class' => 'chzn-select', 'data-placeholder' => get_lang('Select')));
  32. $form->addElement('label', get_lang('Example'), '<div id="example">-</div>');
  33. //$form->addElement('advanced_settings','<a class="btn btn-show" id="advanced_parameters" href="javascript://">'.get_lang('AdvancedParameters').'</a>');
  34. //$form->addElement('html','<div id="options" style="display:none">');
  35. $form->addElement('text', 'field_variable', get_lang('FieldLabel'), array('class' => 'span5'));
  36. $form->addElement('text', 'field_options', get_lang('FieldPossibleValues'), array('id' => 'field_options', 'class' => 'span6'));
  37. if ($action == 'edit') {
  38. if (in_array($defaults['field_type'], array(ExtraField::FIELD_TYPE_SELECT, ExtraField::FIELD_TYPE_DOUBLE_SELECT))) {
  39. $url = Display::url(get_lang('EditExtraFieldOptions'), 'extra_field_options.php?type=session&field_id=' . $id);
  40. $form->addElement('label', null, $url);
  41. $form->freeze('field_options');
  42. }
  43. }
  44. $form->addElement('text', 'field_default_value', get_lang('FieldDefaultValue'), array('id' => 'field_default_value', 'class' => 'span5'));
  45. $group = array();
  46. $group[] = $form->createElement('radio', 'field_visible', null, get_lang('Yes'), 1);
  47. $group[] = $form->createElement('radio', 'field_visible', null, get_lang('No'), 0);
  48. $form->addGroup($group, '', get_lang('Visible'), '', false);
  49. $group = array();
  50. $group[] = $form->createElement('radio', 'field_changeable', null, get_lang('Yes'), 1);
  51. $group[] = $form->createElement('radio', 'field_changeable', null, get_lang('No'), 0);
  52. $form->addGroup($group, '', get_lang('FieldChangeability'), '', false);
  53. $group = array();
  54. $group[] = $form->createElement('radio', 'field_filter', null, get_lang('Yes'), 1);
  55. $group[] = $form->createElement('radio', 'field_filter', null, get_lang('No'), 0);
  56. $form->addGroup($group, '', get_lang('FieldFilter'), '', false);
  57. $form->addElement('text', 'field_order', get_lang('FieldOrder'), array('class' => 'span1'));
  58. if ($action == 'edit') {
  59. $option = new SessionFieldOption('session');
  60. if ($defaults['field_type'] == ExtraField::FIELD_TYPE_DOUBLE_SELECT) {
  61. $form->freeze('field_options');
  62. }
  63. $defaults['field_options'] = $option->get_field_options_by_field_to_string($id);
  64. $form->addElement('button', 'submit', get_lang('Modify'), 'class="save"');
  65. } else {
  66. $defaults['field_visible'] = 0;
  67. $defaults['field_changeable'] = 0;
  68. $defaults['field_filter'] = 0;
  69. $form->addElement('button', 'submit', get_lang('Add'), 'class="save"');
  70. }
  71. /*if (!empty($defaults['created_at'])) {
  72. $defaults['created_at'] = api_convert_and_format_date($defaults['created_at']);
  73. }
  74. if (!empty($defaults['updated_at'])) {
  75. $defaults['updated_at'] = api_convert_and_format_date($defaults['updated_at']);
  76. }*/
  77. $form->setDefaults($defaults);
  78. // Setting the rules
  79. $form->addRule('field_display_text', get_lang('ThisFieldIsRequired'), 'required');
  80. //$form->addRule('field_variable', get_lang('ThisFieldIsRequired'), 'required');
  81. $form->addRule('field_type', get_lang('ThisFieldIsRequired'), 'required');
  82. return $form;
  83. }
  84. }