ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
class.ilDclFileuploadFieldRepresentation.php
Go to the documentation of this file.
1 <?php
2 
10 {
11 
15  public function getInputField(ilPropertyFormGUI $form, $record_id = 0)
16  {
17  $input = new ilFileInputGUI($this->getField()->getTitle(), 'field_' . $this->getField()->getId());
18  $input->setSuffixes($this->getField()->getSupportedExtensions());
19  $input->setAllowDeletion(true);
20 
21  $this->requiredWorkaroundForInputField($input, $record_id);
22 
23  return $input;
24  }
25 
26  protected function requiredWorkaroundForInputField($input, $record_id)
27  {
28  if ($record_id) {
29  $record = ilDclCache::getRecordCache($record_id);
30  }
31 
32  $this->setupInputField($input, $this->getField());
33 
34  //WORKAROUND
35  // If field is from type file: if it's required but already has a value it is no longer required as the old value is taken as default without the form knowing about it.
36  if ($record_id && $record->getId()) {
37  $field_value = $record->getRecordFieldValue($this->getField()->getId());
38  if ($field_value) {
39  $input->setRequired(false);
40  }
41  }
42  // If this is an ajax request to return the form, input files are currently not supported
43  if ($this->ctrl->isAsynch()) {
44  $input->setDisabled(true);
45  }
46  }
47 
48 
53  {
54  $input = $table->addFilterItemByMetaType("filter_" . $this->getField()->getId(), ilTable2GUI::FILTER_TEXT, false, $this->getField()->getId());
55  $input->setSubmitFormOnEnter(true);
56 
57  $this->setupFilterInputField($input);
58 
59  return $this->getFilterInputFieldValue($input);
60  }
61 
62 
66  public function passThroughFilter(ilDclBaseRecordModel $record, $filter)
67  {
68  $value = $record->getRecordFieldValue($this->getField()->getId());
69  $pass = false;
70  if (!ilObject2::_exists($value) || ilObject2::_lookupType($value, false) != "file") {
71  $pass = true;
72  }
73 
74  $file_obj = new ilObjFile($value, false);
75  $file_name = $file_obj->getTitle();
76  if (!$filter || strpos(strtolower($file_name), strtolower($filter)) !== false) {
77  $pass = true;
78  }
79 
80  return $pass;
81  }
82 
86  public function buildFieldCreationInput(ilObjDataCollection $dcl, $mode = 'create')
87  {
88  $opt = parent::buildFieldCreationInput($dcl, $mode);
89 
90  $prop_filetype = new ilTextInputGUI($this->lng->txt('dcl_supported_filetypes'), 'prop_' . ilDclBaseFieldModel::PROP_SUPPORTED_FILE_TYPES);
91  $prop_filetype->setInfo($this->lng->txt('dcl_supported_filetypes_desc'));
92 
93  $opt->addSubItem($prop_filetype);
94 
95  return $opt;
96  }
97 }
This class represents a property form user interface.
This class represents a file property in a property form.
addFilterItemByMetaType($id, $type=self::FILTER_TEXT, $a_optional=false, $caption=null)
Add filter by standard type.
setupInputField(ilFormPropertyGUI $input, ilDclBaseFieldModel $field)
Sets basic settings on field-input.
setInfo($a_info)
Set Information Text.
Class ilTable2GUI.
if(isset($_POST['submit'])) $form
passThroughFilter(ilDclBaseRecordModel $record, $filter)
static getRecordCache($record_id=0)
This class represents a text property in a property form.
setupFilterInputField(ilFormPropertyGUI $input)
Set basic settings for filter-input-gui.
getInputField(ilPropertyFormGUI $form, $record_id=0)
Class ilDclBaseRecordModel.
static _lookupType($a_id, $a_reference=false)
getRecordFieldValue($field_id)
Get Field Value.
static _exists($a_id, $a_reference=false, $a_type=null)
if(empty($password)) $table
Definition: pwgen.php:24
buildFieldCreationInput(ilObjDataCollection $dcl, $mode='create')
Class ilDclBaseFieldRepresentation.
Class ilObjDataCollection.