ILIAS  trunk Revision v11.0_alpha-2638-g80c1d007f79
class.ilDclTextFieldRepresentation.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
22 {
23  public function addFilterInputFieldToTable(ilTable2GUI $table): ?string
24  {
25  $input = $table->addFilterItemByMetaType(
26  "filter_" . $this->getField()->getId(),
28  false,
29  $this->getField()->getId()
30  );
31  $input->setSubmitFormOnEnter(true);
32 
33  $this->setupFilterInputField($input);
34 
35  return $this->getFilterInputFieldValue($input);
36  }
37 
41  public function passThroughFilter(ilDclBaseRecordModel $record, $filter): bool
42  {
43  $pass = parent::passThroughFilter($record, $filter);
44 
45  $value = $record->getRecordFieldValue($this->getField()->getId());
46  if (!$filter || strpos(strtolower($value), strtolower($filter)) !== false) {
47  $pass = true;
48  }
49 
50  return $pass;
51  }
52 
53  public function getInputField(ilPropertyFormGUI $form, ?int $record_id = null): ilFormPropertyGUI
54  {
55  $length = (int) $this->getField()->getProperty(ilDclBaseFieldModel::PROP_LENGTH);
56  if ($length > 200 && !$this->getField()->hasProperty(ilDclBaseFieldModel::PROP_URL)) {
57  $input = new ilTextAreaInputGUI();
58  $input->setMaxNumOfChars($length);
59  } else {
60  $input = new ilDclTextInputGUI();
61  $input->setMaxLength($length);
62  }
63  $input->setTitle($this->getField()->getTitle());
64  $input->setPostVar('field_' . $this->getField()->getId());
65 
66  if ($this->getField()->hasProperty(ilDclBaseFieldModel::PROP_URL)) {
67  $input->setInfo($this->lng->txt('dcl_text_email_detail_desc'));
68  $title_field = new ilDclTextInputGUI(
69  $this->lng->txt('dcl_text_email_title'),
70  'field_' . $this->getField()->getId() . '_title'
71  );
72  $title_field->setInfo($this->lng->txt('dcl_text_email_title_info'));
73  $input->addSubItem($title_field);
74  } else {
75  $input->setInfo(sprintf($this->lng->txt("dcl_max_text_length"), $length));
76  }
77 
78  $this->setupInputField($input, $this->getField());
79 
80  return $input;
81  }
82 
83  protected function buildFieldCreationInput(ilObjDataCollection $dcl, string $mode = 'create'): ilRadioOption
84  {
85  $opt = parent::buildFieldCreationInput($dcl, $mode);
86 
87  $prop_length = new ilNumberInputGUI(
88  $this->lng->txt('dcl_length'),
90  );
91  $prop_length->setSize(5);
92  $prop_length->setMinValue(1);
93  $prop_length->setMaxValue(4000);
94  $prop_length->setRequired(true);
95  $prop_length->setValue('200');
96  $prop_length->setInfo($this->lng->txt('dcl_length_info'));
97  $opt->addSubItem($prop_length);
98 
99  $prop_url = new ilDclCheckboxInputGUI(
100  $this->lng->txt('dcl_url'),
102  );
103  $opt->addSubItem($prop_url);
104 
105  $prop_page_details = new ilDclCheckboxInputGUI(
106  $this->lng->txt('dcl_link_detail_page'),
108  );
109  $prop_page_details->setInfo($this->lng->txt('dcl_link_detail_page_desc'));
110  $opt->addSubItem($prop_page_details);
111 
112  $prop_unique = new ilDclCheckboxInputGUI(
113  $this->lng->txt('dcl_unique'),
115  );
116  $prop_unique->setInfo($this->lng->txt('dcl_unique_desc'));
117  $opt->addSubItem($prop_unique);
118 
119  $prop_regex = new ilDclTextInputGUI(
120  $this->lng->txt('dcl_regex'),
122  );
123  $prop_regex->setInfo($this->lng->txt('dcl_regex_info'));
124  $opt->addSubItem($prop_regex);
125 
126  return $opt;
127  }
128 }
This class represents an option in a radio group.
getRecordFieldValue(?string $field_id)
Get Field Value.
passThroughFilter(ilDclBaseRecordModel $record, $filter)
setupInputField(ilFormPropertyGUI $input, ilDclBaseFieldModel $field)
Sets basic settings on field-input.
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
addFilterItemByMetaType(string $id, int $type=self::FILTER_TEXT, bool $a_optional=false, string $caption="")
Add filter by standard type.
getPropertyInputFieldId(string $property)
Return post-var for property-fields.
This class represents a number property in a property form.
const PROP_LENGTH
General properties.
setupFilterInputField(?ilTableFilterItem $input)
Set basic settings for filter-input-gui.
getInputField(ilPropertyFormGUI $form, ?int $record_id=null)
buildFieldCreationInput(ilObjDataCollection $dcl, string $mode='create')
This class represents a text area property in a property form.