ILIAS  release_8 Revision v8.24
class.ilDclTextFieldRepresentation.php
Go to the documentation of this file.
1<?php
2
20{
21 public function addFilterInputFieldToTable(ilTable2GUI $table): ?string
22 {
23 $input = $table->addFilterItemByMetaType(
24 "filter_" . $this->getField()->getId(),
26 false,
27 $this->getField()->getId()
28 );
29 $input->setSubmitFormOnEnter(true);
30
31 $this->setupFilterInputField($input);
32
33 return $this->getFilterInputFieldValue($input);
34 }
35
39 public function passThroughFilter(ilDclBaseRecordModel $record, $filter): bool
40 {
41 $pass = parent::passThroughFilter($record, $filter);
42
43 $value = $record->getRecordFieldValue($this->getField()->getId());
44 if (!$filter || strpos(strtolower($value), strtolower($filter)) !== false) {
45 $pass = true;
46 }
47
48 return $pass;
49 }
50
51 public function getInputField(ilPropertyFormGUI $form, ?int $record_id = null): ilFormPropertyGUI
52 {
53 $input = new ilDclTextInputGUI($this->getField()->getTitle(), 'field_' . $this->getField()->getId());
54 if ($this->getField()->hasProperty(ilDclBaseFieldModel::PROP_TEXTAREA)) {
55 $input = new ilTextAreaInputGUI($this->getField()->getTitle(), 'field_' . $this->getField()->getId());
56 //varchar(4000) in Database
57 $input->setMaxNumOfChars(4000);
58 }
59
60 if ($this->getField()->hasProperty(ilDclBaseFieldModel::PROP_LENGTH)) {
61 $input->setInfo($this->lng->txt("dcl_max_text_length") . ": " . $this->getField()->getProperty(ilDclBaseFieldModel::PROP_LENGTH));
62 if (!$this->getField()->getProperty(ilDclBaseFieldModel::PROP_TEXTAREA)) {
63 $input->setMaxLength($this->getField()->getProperty(ilDclBaseFieldModel::PROP_LENGTH));
64 } else {
65 $input->setMaxNumOfChars($this->getField()->getProperty(ilDclBaseFieldModel::PROP_LENGTH));
66 }
67 }
68
69 if ($this->getField()->hasProperty(ilDclBaseFieldModel::PROP_URL)) {
70 $input->setInfo($this->lng->txt('dcl_text_email_detail_desc'));
71 $title_field = new ilDclTextInputGUI(
72 $this->lng->txt('dcl_text_email_title'),
73 'field_' . $this->getField()->getId() . '_title'
74 );
75 $title_field->setInfo($this->lng->txt('dcl_text_email_title_info'));
76 $input->addSubItem($title_field);
77 }
78
79 $this->setupInputField($input, $this->getField());
80
81 return $input;
82 }
83
84 protected function buildFieldCreationInput(ilObjDataCollection $dcl, string $mode = 'create'): ilRadioOption
85 {
86 $opt = parent::buildFieldCreationInput($dcl, $mode);
87
88 $prop_length = new ilNumberInputGUI(
89 $this->lng->txt('dcl_length'),
90 $this->getPropertyInputFieldId(ilDclBaseFieldModel::PROP_LENGTH)
91 );
92 $prop_length->setSize(5);
93 $prop_length->setMaxValue(4000);
94 $prop_length->setInfo($this->lng->txt('dcl_length_info'));
95
96 $opt->addSubItem($prop_length);
97
98 $prop_regex = new ilDclTextInputGUI(
99 $this->lng->txt('dcl_regex'),
100 $this->getPropertyInputFieldId(ilDclBaseFieldModel::PROP_REGEX)
101 );
102 $prop_regex->setInfo($this->lng->txt('dcl_regex_info'));
103
104 $opt->addSubItem($prop_regex);
105
106 $prop_url = new ilDclCheckboxInputGUI(
107 $this->lng->txt('dcl_url'),
108 $this->getPropertyInputFieldId(ilDclBaseFieldModel::PROP_URL)
109 );
110 $opt->addSubItem($prop_url);
111
112 $prop_textarea = new ilDclCheckboxInputGUI(
113 $this->lng->txt('dcl_text_area'),
114 $this->getPropertyInputFieldId(ilDclBaseFieldModel::PROP_TEXTAREA)
115 );
116 $opt->addSubItem($prop_textarea);
117
118 $prop_page_details = new ilDclCheckboxInputGUI(
119 $this->lng->txt('dcl_link_detail_page'),
120 $this->getPropertyInputFieldId(ilDclBaseFieldModel::PROP_LINK_DETAIL_PAGE_TEXT)
121 );
122 $opt->addSubItem($prop_page_details);
123
124 return $opt;
125 }
126}
const PROP_LENGTH
General properties.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
setupInputField(ilFormPropertyGUI $input, ilDclBaseFieldModel $field)
Sets basic settings on field-input.
setupFilterInputField(?ilTableFilterItem $input)
Set basic settings for filter-input-gui.
getRecordFieldValue(?int $field_id)
Get Field Value.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
getInputField(ilPropertyFormGUI $form, ?int $record_id=null)
Returns field-input.
buildFieldCreationInput(ilObjDataCollection $dcl, string $mode='create')
Build the creation-input-field.
addFilterInputFieldToTable(ilTable2GUI $table)
Add filter input to TableGUI.
passThroughFilter(ilDclBaseRecordModel $record, $filter)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This class represents a property in a property form.
This class represents a number property in a property form.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This class represents a property form user interface.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
addFilterItemByMetaType(string $id, int $type=self::FILTER_TEXT, bool $a_optional=false, string $caption="")
Add filter by standard type.
This class represents a text area property in a property form.