ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
ilDragDropFileInputGUI Class Reference

This class represents a file input property where multiple files can be dopped in a property form. More...

+ Inheritance diagram for ilDragDropFileInputGUI:
+ Collaboration diagram for ilDragDropFileInputGUI:

Public Member Functions

 __construct ($a_title="", $a_postvar="")
 Constructor. More...
 
 setArchiveSuffixes ($a_suffixes)
 Set accepted archive suffixes. More...
 
 getArchiveSuffixes ()
 Get accepted archive suffixes. More...
 
 setCommandButtonNames ($a_submit_name, $a_cancel_name)
 
 render ($a_mode="")
 Render html. More...
 
 checkInput ()
 Check input, strip slashes etc. More...
 
- Public Member Functions inherited from ilFileInputGUI
 __construct ($a_title="", $a_postvar="")
 Constructor. More...
 
 setValueByArray ($a_values)
 Set value by array. More...
 
 setValue ($a_value)
 Set Value. More...
 
 getValue ()
 Get Value. More...
 
 setSize ($a_size)
 Set Size. More...
 
 getSize ()
 Get Size. More...
 
 setFilename ($a_val)
 Set filename value (if filename selection is enabled) More...
 
 getFilename ()
 Get Value. More...
 
 setSuffixes ($a_suffixes)
 Set Accepted Suffixes. More...
 
 getSuffixes ()
 Get Accepted Suffixes. More...
 
 setForbiddenSuffixes ($a_suffixes)
 Set forbidden Suffixes. More...
 
 getForbiddenSuffixes ()
 Get Accepted Suffixes. More...
 
 setPending ($a_val)
 Set pending filename value. More...
 
 getPending ()
 Get pending filename. More...
 
 enableFileNameSelection ($a_post_var)
 If enabled, users get the possibility to enter a filename for the uploaded file. More...
 
 isFileNameSelectionEnabled ()
 Check if filename selection is enabled. More...
 
 getFileNamePostVar ()
 Get file name post var. More...
 
 setALlowDeletion ($a_val)
 Set allow deletion. More...
 
 getALlowDeletion ()
 Get allow deletion. More...
 
 checkInput ()
 Check input, strip slashes etc. More...
 
 render ($a_mode="")
 Render html. More...
 
 insert ($a_tpl)
 Insert property html. More...
 
 getDeletionFlag ()
 Get deletion flag. More...
 
 getToolbarHTML ()
 Get HTML for toolbar. More...
 
- Public Member Functions inherited from ilSubEnabledFormPropertyGUI
 addSubItem ($a_item)
 Add Subitem. More...
 
 getSubItems ()
 Get Subitems. More...
 
 getSubInputItemsRecursive ()
 returns a flat array of possibly existing subitems recursively More...
 
 checkSubItemsInput ()
 Check SubItems. More...
 
 getSubForm ()
 Get sub form html. More...
 
 getItemByPostVar ($a_post_var)
 Get item by post var. More...
 
- Public Member Functions inherited from ilFormPropertyGUI
 __construct ($a_title="", $a_postvar="")
 Constructor. More...
 
 executeCommand ()
 Execute command. More...
 
 getType ()
 Get Type. More...
 
 setTitle ($a_title)
 Set Title. More...
 
 getTitle ()
 Get Title. More...
 
 setPostVar ($a_postvar)
 Set Post Variable. More...
 
 getPostVar ()
 Get Post Variable. More...
 
 getFieldId ()
 Get Post Variable. More...
 
 setInfo ($a_info)
 Set Information Text. More...
 
 getInfo ()
 Get Information Text. More...
 
 setAlert ($a_alert)
 Set Alert Text. More...
 
 getAlert ()
 Get Alert Text. More...
 
 setRequired ($a_required)
 Set Required. More...
 
 getRequired ()
 Get Required. More...
 
 setDisabled ($a_disabled)
 Set Disabled. More...
 
 getDisabled ()
 Get Disabled. More...
 
 checkInput ()
 Check input, strip slashes etc. More...
 
 setParentForm ($a_parentform)
 Set Parent Form. More...
 
 getParentForm ()
 Get Parent Form. More...
 
 setParent ($a_val)
 Set Parent GUI object. More...
 
 getParent ()
 Get Parent GUI object. More...
 
 getSubForm ()
 Get sub form html. More...
 
 hideSubForm ()
 Sub form hidden on init? More...
 
 setHiddenTitle ($a_val)
 Set hidden title (for screenreaders) More...
 
 getHiddenTitle ()
 Get hidden title. More...
 
 getItemByPostVar ($a_post_var)
 Get item by post var. More...
 
 serializeData ()
 serialize data More...
 
 unserializeData ($a_data)
 unserialize data More...
 
 writeToSession ()
 Write to session. More...
 
 clearFromSession ()
 Clear session value. More...
 
 readFromSession ()
 Read from session. More...
 
 getHiddenTag ($a_post_var, $a_value)
 Get hidden tag (used for disabled properties) More...
 
 setMulti ($a_multi, $a_sortable=false, $a_addremove=true)
 Set Multi. More...
 
 getMulti ()
 Get Multi. More...
 
 setMultiValues (array $a_values)
 Set multi values. More...
 
 getMultiValues ()
 Get multi values. More...
 
 getContentOutsideFormTag ()
 Get content that has to reside outside of the parent form tag, e.g. More...
 
 stripSlashesAddSpaceFallback ($a_str)
 Strip slashes with add space fallback, see https://www.ilias.de/mantis/view.php?id=19727. More...
 

Protected Member Functions

 getInputAcceptSuffixes ($suffixes)
 
 buildSuffixList ($suffixes)
 
 getMaxFileSize ()
 
- Protected Member Functions inherited from ilFileInputGUI
 outputSuffixes ($a_tpl, $a_block="allowed_suffixes")
 
 getMaxFileSizeString ()
 
- Protected Member Functions inherited from ilFormPropertyGUI
 setType ($a_type)
 Set Type. More...
 
 getMultiIconsHTML ()
 Get HTML for multiple value icons. More...
 

Protected Attributes

 $lng
 
- Protected Attributes inherited from ilFileInputGUI
 $lng
 
 $size = 40
 
 $pending
 
 $allow_deletion
 
 $forbidden_suffixes = array()
 
- Protected Attributes inherited from ilSubEnabledFormPropertyGUI
 $sub_items = array()
 
- Protected Attributes inherited from ilFormPropertyGUI
 $ctrl
 
 $lng
 
 $type
 
 $title
 
 $postvar
 
 $info
 
 $alert
 
 $required = false
 
 $parentgui
 
 $parentform
 
 $hidden_title = ""
 
 $multi = false
 
 $multi_sortable = false
 
 $multi_addremove = true
 
 $multi_values
 

Static Private Member Functions

static getNextUniqueId ()
 

Private Attributes

 $uniqueId = 0
 
 $archive_suffixes = array()
 
 $submit_button_name = null
 
 $cancel_button_name = null
 

Static Private Attributes

static $uniqueInc = 1
 

Additional Inherited Members

- Static Public Member Functions inherited from ilFileInputGUI
static setPersonalWorkspaceQuotaCheck ($a_value)
 
- Static Public Member Functions inherited from ilFormPropertyGUI
static removeProhibitedCharacters ($a_text)
 Remove prohibited characters see #19159. More...
 
- Static Protected Attributes inherited from ilFileInputGUI
static $check_wsp_quota
 

Detailed Description

This class represents a file input property where multiple files can be dopped in a property form.

Author
Stefan Born stefa.nosp@m.n.bo.nosp@m.rn@ph.nosp@m.zh.c.nosp@m.h
Version
$Id$

Definition at line 13 of file class.ilDragDropFileInputGUI.php.

Constructor & Destructor Documentation

◆ __construct()

ilDragDropFileInputGUI::__construct (   $a_title = "",
  $a_postvar = "" 
)

Constructor.

Parameters
string$a_titleTitle
string$a_postvarPost Variable

Definition at line 38 of file class.ilDragDropFileInputGUI.php.

References $DIC.

39  {
40  global $DIC;
41 
42  $this->lng = $DIC->language();
43  parent::__construct($a_title, $a_postvar);
44  $this->uniqueId = self::getNextUniqueId();
45  }
global $DIC
Definition: saml.php:7

Member Function Documentation

◆ buildSuffixList()

ilDragDropFileInputGUI::buildSuffixList (   $suffixes)
protected

Definition at line 193 of file class.ilDragDropFileInputGUI.php.

References $list.

194  {
195  $list = $delim = "";
196 
197  if (is_array($suffixes) && count($suffixes) > 0) {
198  foreach ($suffixes as $suffix) {
199  $list .= $delim . "\"" . $suffix . "\"";
200  $delim = ", ";
201  }
202  }
203 
204  return $list;
205  }
if(isset($_REQUEST['delete'])) $list
Definition: registry.php:41

◆ checkInput()

ilDragDropFileInputGUI::checkInput ( )

Check input, strip slashes etc.

set alert, if input is not ok.

Returns
boolean Input ok, true/false

Definition at line 144 of file class.ilDragDropFileInputGUI.php.

References $_POST, $lng, ilFormPropertyGUI\getPostVar(), ilStr\normalizeUtf8String(), and ilFormPropertyGUI\setAlert().

145  {
146  $lng = $this->lng;
147 
148  // if no information is received, something went wrong
149  // this is e.g. the case, if the post_max_size has been exceeded
150  if (!is_array($_FILES[$this->getPostVar()])) {
151  $this->setAlert($lng->txt("form_msg_file_size_exceeds"));
152  return false;
153  }
154 
155  // empty file, could be a folder
156  if ($_FILES[$this->getPostVar()]["size"] < 1) {
157  $this->setAlert($lng->txt("error_upload_was_zero_bytes"));
158  return false;
159  }
160 
161  // call base
162  $inputValid = parent::checkInput();
163 
164  // set additionally sent input on post array
165  if ($inputValid) {
166  $_POST[$this->getPostVar()]["extract"] = isset($_POST["extract"]) ? (bool) $_POST["extract"] : false;
167  $_POST[$this->getPostVar()]["title"] = isset($_POST["title"]) ? $_POST["title"] : "";
168  $_POST[$this->getPostVar()]["description"] = isset($_POST["description"]) ? $_POST["description"] : "";
169  $_POST[$this->getPostVar()]["keep_structure"] = isset($_POST["keep_structure"]) ? (bool) $_POST["keep_structure"] : true;
170 
171  include_once("./Services/Utilities/classes/class.ilStr.php");
172  $_POST[$this->getPostVar()]["name"] = ilStr::normalizeUtf8String($_POST[$this->getPostVar()]["name"]);
173  $_POST[$this->getPostVar()]["title"] = ilStr::normalizeUtf8String($_POST[$this->getPostVar()]["title"]);
174  }
175 
176  return $inputValid;
177  }
getPostVar()
Get Post Variable.
static normalizeUtf8String($a_str)
Normalize UTF8 string.
setAlert($a_alert)
Set Alert Text.
$_POST["username"]
+ Here is the call graph for this function:

◆ getArchiveSuffixes()

ilDragDropFileInputGUI::getArchiveSuffixes ( )

Get accepted archive suffixes.

Returns
array Accepted archive suffixes.

Definition at line 62 of file class.ilDragDropFileInputGUI.php.

References $archive_suffixes.

◆ getInputAcceptSuffixes()

ilDragDropFileInputGUI::getInputAcceptSuffixes (   $suffixes)
protected

Definition at line 179 of file class.ilDragDropFileInputGUI.php.

References $list.

Referenced by render().

180  {
181  $list = $delim = "";
182 
183  if (is_array($suffixes) && count($suffixes) > 0) {
184  foreach ($suffixes as $suffix) {
185  $list .= $delim . "." . $suffix;
186  $delim = ",";
187  }
188  }
189 
190  return $list;
191  }
if(isset($_REQUEST['delete'])) $list
Definition: registry.php:41
+ Here is the caller graph for this function:

◆ getMaxFileSize()

ilDragDropFileInputGUI::getMaxFileSize ( )
protected

Definition at line 207 of file class.ilDragDropFileInputGUI.php.

References array.

208  {
209  // get the value for the maximal uploadable filesize from the php.ini (if available)
210  $umf = ini_get("upload_max_filesize");
211  // get the value for the maximal post data from the php.ini (if available)
212  $pms = ini_get("post_max_size");
213 
214  //convert from short-string representation to "real" bytes
215  $multiplier_a=array("K"=>1024, "M"=>1024*1024, "G"=>1024*1024*1024);
216 
217  $umf_parts=preg_split("/(\d+)([K|G|M])/", $umf, -1, PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY);
218  $pms_parts=preg_split("/(\d+)([K|G|M])/", $pms, -1, PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY);
219 
220  if (count($umf_parts) == 2) {
221  $umf = $umf_parts[0]*$multiplier_a[$umf_parts[1]];
222  }
223  if (count($pms_parts) == 2) {
224  $pms = $pms_parts[0]*$multiplier_a[$pms_parts[1]];
225  }
226 
227  // use the smaller one as limit
228  $max_filesize = min($umf, $pms);
229 
230  if (!$max_filesize) {
231  $max_filesize=max($umf, $pms);
232  }
233 
234  return $max_filesize;
235  }
Create styles array
The data for the language used.

◆ getNextUniqueId()

static ilDragDropFileInputGUI::getNextUniqueId ( )
staticprivate

Definition at line 27 of file class.ilDragDropFileInputGUI.php.

28  {
29  return self::$uniqueInc++;
30  }

◆ render()

ilDragDropFileInputGUI::render (   $a_mode = "")

Render html.

Definition at line 76 of file class.ilDragDropFileInputGUI.php.

References $lng, ilObject\_getIcon(), getInputAcceptSuffixes(), ilFileInputGUI\getMaxFileSizeString(), ilDiskQuotaHandler\getStatusLegend(), ilFileInputGUI\getSuffixes(), ilFileUploadGUI\initFileUpload(), iljQueryUtil\initjQuery(), ilDiskQuotaHandler\isUploadPossible(), and ilFileInputGUI\outputSuffixes().

77  {
78  $lng = $this->lng;
79 
80  $quota_exceeded = $quota_legend = false;
81  if (self::$check_wsp_quota) {
82  include_once "Services/DiskQuota/classes/class.ilDiskQuotaHandler.php";
84  $lng->loadLanguageModule("file");
85  return $lng->txt("personal_workspace_quota_exceeded_warning");
86  } else {
87  $quota_legend = ilDiskQuotaHandler::getStatusLegend();
88  }
89  }
90 
91  // make sure jQuery is loaded
93 
94  // add file upload scripts
95  include_once("./Services/FileUpload/classes/class.ilFileUploadGUI.php");
97 
98  // load template
99  $this->tpl = new ilTemplate("tpl.prop_dndfiles.html", true, true, "Services/Form");
100 
101  // general variables
102  $this->tpl->setVariable("UPLOAD_ID", $this->uniqueId);
103 
104  // input
105  $this->tpl->setVariable("FILE_SELECT_ICON", ilObject::_getIcon("", "", "fold"));
106  $this->tpl->setVariable("TXT_SHOW_ALL_DETAILS", $lng->txt('show_all_details'));
107  $this->tpl->setVariable("TXT_HIDE_ALL_DETAILS", $lng->txt('hide_all_details'));
108  $this->tpl->setVariable("TXT_SELECTED_FILES", $lng->txt('selected_files'));
109  $this->tpl->setVariable("TXT_DRAG_FILES_HERE", $lng->txt('drag_files_here'));
110  $this->tpl->setVariable("TXT_NUM_OF_SELECTED_FILES", $lng->txt('num_of_selected_files'));
111  $this->tpl->setVariable("TXT_SELECT_FILES_FROM_COMPUTER", $lng->txt('select_files_from_computer'));
112  $this->tpl->setVariable("TXT_OR", $lng->txt('logic_or'));
113  $this->tpl->setVariable("INPUT_ACCEPT_SUFFIXES", $this->getInputAcceptSuffixes($this->getSuffixes()));
114 
115  // info
116  $this->tpl->setCurrentBlock("max_size");
117  $this->tpl->setVariable("TXT_MAX_SIZE", $lng->txt("file_notice") . " " . $this->getMaxFileSizeString());
118  $this->tpl->parseCurrentBlock();
119 
120  if ($quota_legend) {
121  $this->tpl->setVariable("TXT_MAX_SIZE", $quota_legend);
122  $this->tpl->parseCurrentBlock();
123  }
124 
125  $this->outputSuffixes($this->tpl);
126 
127  // create file upload object
128  $upload = new ilFileUploadGUI("ilFileUploadDropZone_" . $this->uniqueId, $this->uniqueId, false);
129  $upload->enableFormSubmit("ilFileUploadInput_" . $this->uniqueId, $this->submit_button_name, $this->cancel_button_name);
130  $upload->setDropAreaId("ilFileUploadDropArea_" . $this->uniqueId);
131  $upload->setFileListId("ilFileUploadList_" . $this->uniqueId);
132  $upload->setFileSelectButtonId("ilFileUploadFileSelect_" . $this->uniqueId);
133 
134  $this->tpl->setVariable("FILE_UPLOAD", $upload->getHTML());
135 
136  return $this->tpl->get();
137  }
static initFileUpload()
Initializes the file upload and loads the needed javascripts and styles.
static _getIcon( $a_obj_id="", $a_size="big", $a_type="", $a_offline=false)
Get icon for repository item.
getSuffixes()
Get Accepted Suffixes.
special template class to simplify handling of ITX/PEAR
static isUploadPossible($a_additional_size=null)
outputSuffixes($a_tpl, $a_block="allowed_suffixes")
static initjQuery($a_tpl=null)
inits and adds the jQuery JS-File to the global or a passed template
+ Here is the call graph for this function:

◆ setArchiveSuffixes()

ilDragDropFileInputGUI::setArchiveSuffixes (   $a_suffixes)

Set accepted archive suffixes.

Parameters
array$a_suffixesAccepted archive suffixes.

Definition at line 52 of file class.ilDragDropFileInputGUI.php.

Referenced by ilObjFileGUI\initMultiUploadForm().

53  {
54  $this->archive_suffixes = $a_suffixes;
55  }
+ Here is the caller graph for this function:

◆ setCommandButtonNames()

ilDragDropFileInputGUI::setCommandButtonNames (   $a_submit_name,
  $a_cancel_name 
)

Definition at line 67 of file class.ilDragDropFileInputGUI.php.

68  {
69  $this->submit_button_name = $a_submit_name;
70  $this->cancel_button_name = $a_cancel_name;
71  }

Field Documentation

◆ $archive_suffixes

ilDragDropFileInputGUI::$archive_suffixes = array()
private

Definition at line 21 of file class.ilDragDropFileInputGUI.php.

Referenced by getArchiveSuffixes().

◆ $cancel_button_name

ilDragDropFileInputGUI::$cancel_button_name = null
private

Definition at line 23 of file class.ilDragDropFileInputGUI.php.

◆ $lng

ilDragDropFileInputGUI::$lng
protected

Definition at line 18 of file class.ilDragDropFileInputGUI.php.

Referenced by checkInput(), and render().

◆ $submit_button_name

ilDragDropFileInputGUI::$submit_button_name = null
private

Definition at line 22 of file class.ilDragDropFileInputGUI.php.

◆ $uniqueId

ilDragDropFileInputGUI::$uniqueId = 0
private

Definition at line 20 of file class.ilDragDropFileInputGUI.php.

◆ $uniqueInc

ilDragDropFileInputGUI::$uniqueInc = 1
staticprivate

Definition at line 25 of file class.ilDragDropFileInputGUI.php.


The documentation for this class was generated from the following file: