ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
class.ilObjMediaObjectGUI.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
4 require_once ("./Services/MediaObjects/classes/class.ilObjMediaObject.php");
5 require_once("./Services/Link/classes/class.ilInternalLinkGUI.php");
6 require_once ("./Services/Object/classes/class.ilObjectGUI.php");
7 
20 {
21  var $ctrl;
22  var $header;
24  var $enabledmapareas = true;
25 
26  function ilObjMediaObjectGUI($a_data, $a_id = 0, $a_call_by_reference = false, $a_prepare_output = false)
27  {
28  global $lng, $ilCtrl;
29 
30  $this->ctrl =& $ilCtrl;
31  parent::ilObjectGUI($a_data, $a_id, $a_call_by_reference, $a_prepare_output);
32  $this->lng =& $lng;
33  $this->back_title = "";
34  $this->type = "mob";
35 
36  $lng->loadLanguageModule("mob");
37  }
38 
39  function setHeader($a_title = "")
40  {
41  $this->header = $a_title;
42  }
43 
44  function getHeader()
45  {
46  return $this->header;
47  }
48 
54  function setEnabledMapAreas($a_enabledmapareas)
55  {
56  $this->enabledmapareas = $a_enabledmapareas;
57  }
58 
64  function getEnabledMapAreas()
65  {
67  }
68 
74  function setWidthPreset($a_val)
75  {
76  $this->width_preset = $a_val;
77  }
78 
84  function getWidthPreset()
85  {
86  return $this->width_preset;
87  }
88 
94  function setHeightPreset($a_val)
95  {
96  $this->height_preset = $a_val;
97  }
98 
104  function getHeightPreset()
105  {
106  return $this->height_preset;
107  }
108 
114  function getForm()
115  {
116  return $this->form_gui;
117  }
118 
119  function assignObject()
120  {
121  if ($this->id != 0)
122  {
123  $this->object =& new ilObjMediaObject($this->id);
124  }
125  }
126 
128  {
129  $this->ctrl->returnToParent($this);
130  }
131 
132 
136  function &executeCommand()
137  {
138  global $tpl, $ilAccess, $ilErr;
139 
140  $next_class = $this->ctrl->getNextClass($this);
141  $cmd = $this->ctrl->getCmd();
142 
143  switch($next_class)
144  {
145  case 'ilobjectmetadatagui':
146  include_once 'Services/Object/classes/class.ilObjectMetaDataGUI.php';
147  $md_gui = new ilObjectMetaDataGUI(null, $this->object->getType(), $this->object->getId());
148  // object is subtype, so we have to do it ourselves
149  $md_gui->addMDObserver($this->object, 'MDUpdateListener', 'General');
150  $this->ctrl->forwardCommand($md_gui);
151  break;
152 
153  case "ilimagemapeditorgui":
154  require_once("./Services/MediaObjects/classes/class.ilImageMapEditorGUI.php");
155  $image_map_edit = new ilImageMapEditorGUI($this->object);
156  $ret = $this->ctrl->forwardCommand($image_map_edit);
157  $tpl->setContent($ret);
158  break;
159 
160  case "ilfilesystemgui":
161  include_once("./Services/FileSystem/classes/class.ilFileSystemGUI.php");
162  $fs_gui =& new ilFileSystemGUI(ilUtil::getWebspaceDir()."/mobs/mm_".$this->object->getId());
164  $fs_gui->setForbiddenSuffixes(ilObjMediaObject::getForbiddenFileTypes());
165  $fs_gui->activateLabels(true, $this->lng->txt("cont_purpose"));
166  $fs_gui->setTableId("mobfs".$this->object->getId());
167  $fs_gui->labelFile($this->object->getMediaItem("Standard")->getLocation(),
168  $this->lng->txt("cont_std_view"));
169  if($this->object->hasFullscreenItem())
170  {
171  $fs_gui->labelFile($this->object->getMediaItem("Fullscreen")->getLocation(),
172  $this->lng->txt("cont_fullscreen"));
173  }
174  $fs_gui->addCommand($this, "assignStandardObject", $this->lng->txt("cont_assign_std"));
175  $fs_gui->addCommand($this, "assignFullscreenObject", $this->lng->txt("cont_assign_full"));
176  ilObjMediaObject::renameExecutables(ilObjMediaObject::_getDirectory($this->object->getId())); // see #20187
177  $ret =& $this->ctrl->forwardCommand($fs_gui);
178  ilObjMediaObject::renameExecutables(ilObjMediaObject::_getDirectory($this->object->getId())); // see #20187
179  include_once("./Services/MediaObjects/classes/class.ilMediaSvgSanitizer.php");
180  ilMediaSvgSanitizer::sanitizeDir(ilObjMediaObject::_getDirectory($this->object->getId())); // see #20339
181  break;
182 
183 
184  default:
185  if (isset($_POST["editImagemapForward"]) ||
186  isset($_POST["editImagemapForward_x"]) ||
187  isset($_POST["editImagemapForward_y"]))
188  {
189  $cmd = "editImagemapForward";
190  }
191  $cmd.= "Object";
192  $ret =& $this->$cmd();
193  break;
194  }
195 
196  return $ret;
197  }
198 
202  function setBackTitle($a_title)
203  {
204  $this->back_title = $a_title;
205  }
206 
210  function createObject()
211  {
212  global $tpl, $ilHelp;
213 
214  $ilHelp->setScreenId("create");
215  $this->initForm();
216  $tpl->setContent($this->form_gui->getHTML());
217  }
218 
222  function initForm($a_mode = "create")
223  {
224  global $lng, $ilCtrl;
225 
226  include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
227 
228  if ($a_mode == "edit")
229  {
230  $std_item = $this->object->getMediaItem("Standard");
231  }
232 
233  $this->form_gui = new ilPropertyFormGUI();
234 
235  // standard view resource
236  $title = new ilTextInputGUI($lng->txt("title"), "standard_title");
237  $title->setSize(40);
238  $title->setMaxLength(120);
239  $this->form_gui->addItem($title);
240  $radio_prop = new ilRadioGroupInputGUI($lng->txt("cont_resource"), "standard_type");
241  $op1 = new ilRadioOption($lng->txt("cont_file"), "File");
242  $up = new ilFileInputGUI("", "standard_file");
243  $up->setSuffixes(ilObjMediaObject::getRestrictedFileTypes());
244  $up->setForbiddenSuffixes(ilObjMediaObject::getForbiddenFileTypes());
245  $up->setInfo("");
246  $op1->addSubItem($up);
247  $radio_prop->addOption($op1);
248  $op2 = new ilRadioOption($lng->txt("url"), "Reference");
249  $ref = new ilTextInputGUI("", "standard_reference");
250  $ref->setInfo($lng->txt("cont_ref_helptext"));
251  $op2->addSubItem($ref);
252  $radio_prop->addOption($op2);
253  $radio_prop->setValue("File");
254  $this->form_gui->addItem($radio_prop);
255 
256  // standard format
257  if ($a_mode == "edit")
258  {
259  $format = new ilNonEditableValueGUI($lng->txt("cont_format"), "standard_format");
260  $format->setValue($std_item->getFormat());
261  $this->form_gui->addItem($format);
262  }
263 
264  // standard size
265  $radio_size = new ilRadioGroupInputGUI($lng->txt("size"), "standard_size");
266  if ($a_mode == "edit")
267  {
268  if ($orig_size = $std_item->getOriginalSize())
269  {
270  $add_str = " (".$orig_size["width"]." x ".$orig_size["height"].")";
271  }
272  $op1 = new ilRadioOption($lng->txt("cont_resource_size").$add_str, "original");
273  $op2 = new ilRadioOption($lng->txt("cont_custom_size"), "selected");
274  }
275  else
276  {
277  $op1 = new ilRadioOption($lng->txt("cont_orig_size"), "original");
278  $op2 = new ilRadioOption($lng->txt("cont_adjust_size"), "selected");
279  }
280  $radio_size->addOption($op1);
281 
282  // width height
283  include_once("./Services/MediaObjects/classes/class.ilWidthHeightInputGUI.php");
284  $width_height = new ilWidthHeightInputGUI($lng->txt("cont_width").
285  " / ".$lng->txt("cont_height"), "standard_width_height");
286  $width_height->setConstrainProportions(true);
287  $op2->addSubItem($width_height);
288 
289  // resize image
290  if ($a_mode == "edit")
291  {
292  $std_item = $this->object->getMediaItem("Standard");
293  if (is_int(strpos($std_item->getFormat(), "image"))
294  && $std_item->getLocationType() == "LocalFile")
295  {
296  $resize = new ilCheckboxInputGUI($lng->txt("cont_resize_img")
297  , "standard_resize");
298  $op2->addSubItem($resize);
299  }
300  }
301 
302  $radio_size->setValue("original");
303  if ($a_mode == "create" && ($this->getHeightPreset() > 0 || $this->getWidthPreset() > 0))
304  {
305  $radio_size->setValue("selected");
306  $width_height->setWidth($this->getWidthPreset());
307  $width_height->setHeight($this->getHeightPreset());
308  }
309  $radio_size->addOption($op2);
310  $this->form_gui->addItem($radio_size);
311 
312  // standard caption
313  $caption = new ilTextAreaInputGUI($lng->txt("cont_caption"), "standard_caption");
314  $caption->setCols(30);
315  $caption->setRows(2);
316  $this->form_gui->addItem($caption);
317 
318  /*$caption = new ilTextInputGUI($lng->txt("cont_caption"), "standard_caption");
319  $caption->setSize(40);
320  $caption->setMaxLength(200);
321  $this->form_gui->addItem($caption);*/
322 
323  // text representation (alt text)
324  if ($a_mode == "edit" && is_int(strpos($std_item->getFormat(), "image")))
325  {
326  $ta = new ilTextAreaInputGUI($lng->txt("text_repr"), "text_representation");
327  $ta->setCols(30);
328  $ta->setRows(2);
329  $ta->setInfo($lng->txt("text_repr_info"));
330  $this->form_gui->addItem($ta);
331  }
332 
333  // standard parameters
334  if ($a_mode == "edit" &&
335  !in_array($std_item->getFormat(), ilObjMediaObject::_getSimpleMimeTypes()))
336  {
337  if (ilObjMediaObject::_useAutoStartParameterOnly($std_item->getLocation(),
338  $std_item->getFormat())) // autostart
339  {
340  $auto = new ilCheckboxInputGUI($lng->txt("cont_autostart"), "standard_autostart");
341  $this->form_gui->addItem($auto);
342  }
343  else // parameters
344  {
345  $par = new ilTextAreaInputGUI($lng->txt("cont_parameter"), "standard_parameters");
346  $par->setRows(5);
347  $par->setCols(50);
348  $this->form_gui->addItem($par);
349  }
350  }
351 
352  if ($a_mode == "edit")
353  {
354  $full_item = $this->object->getMediaItem("Fullscreen");
355  }
356 
357  // fullscreen view resource
358  $fs_sec = new ilFormSectionHeaderGUI();
359  $fs_sec->setTitle($lng->txt("cont_fullscreen"));
360  $this->form_gui->addItem($fs_sec);
361 
362  $radio_prop2 = new ilRadioGroupInputGUI($lng->txt("cont_resource"), "full_type");
363  $op1 = new ilRadioOption($lng->txt("cont_none"), "None");
364  $radio_prop2->addOption($op1);
365  $op4 = new ilRadioOption($lng->txt("cont_use_same_resource_as_above"), "Standard");
366  $radio_prop2->addOption($op4);
367  $op2 = new ilRadioOption($lng->txt("cont_file"), "File");
368  $up = new ilFileInputGUI("", "full_file");
369  $up->setSuffixes(ilObjMediaObject::getRestrictedFileTypes());
370  $up->setForbiddenSuffixes(ilObjMediaObject::getForbiddenFileTypes());
371  $up->setInfo("");
372  $op2->addSubItem($up);
373  $radio_prop2->addOption($op2);
374  $op3 = new ilRadioOption($lng->txt("url"), "Reference");
375  $ref = new ilTextInputGUI("", "full_reference");
376  $ref->setInfo($lng->txt("cont_ref_helptext"));
377  $op3->addSubItem($ref);
378  $radio_prop2->addOption($op3);
379  $radio_prop2->setValue("None");
380  $this->form_gui->addItem($radio_prop2);
381 
382  // fullscreen format
383  if ($a_mode == "edit")
384  {
385  if ($this->object->hasFullscreenItem())
386  {
387  $format = new ilNonEditableValueGUI($lng->txt("cont_format"), "full_format");
388  $format->setValue($full_item->getFormat());
389  $this->form_gui->addItem($format);
390  }
391  }
392 
393  // fullscreen size
394  $radio_size = new ilRadioGroupInputGUI($lng->txt("size"), "full_size");
395  if ($a_mode == "edit")
396  {
397  $add_str = "";
398  if ($this->object->hasFullscreenItem() && ($orig_size = $full_item->getOriginalSize()))
399  {
400  $add_str = " (".$orig_size["width"]." x ".$orig_size["height"].")";
401  }
402  $op1 = new ilRadioOption($lng->txt("cont_resource_size").$add_str, "original");
403  $op2 = new ilRadioOption($lng->txt("cont_custom_size"), "selected");
404  }
405  else
406  {
407  $op1 = new ilRadioOption($lng->txt("cont_orig_size"), "original");
408  $op2 = new ilRadioOption($lng->txt("cont_adjust_size"), "selected");
409  }
410  $radio_size->addOption($op1);
411 
412  // width/height
413  $width_height = new ilWidthHeightInputGUI($lng->txt("cont_width").
414  " / ".$lng->txt("cont_height"), "full_width_height");
415  $width_height->setConstrainProportions(true);
416  $op2->addSubItem($width_height);
417 
418  // resize image
419  if ($a_mode == "edit")
420  {
421  $full_item = $this->object->getMediaItem("Fullscreen");
422  if ($this->object->hasFullscreenItem() &&
423  is_int(strpos($full_item->getFormat(), "image")) &&
424  $full_item->getLocationType() == "LocalFile")
425  {
426  $resize = new ilCheckboxInputGUI($lng->txt("cont_resize_img"),
427  "full_resize");
428  $op2->addSubItem($resize);
429  }
430  }
431 
432  $radio_size->setValue("original");
433  $radio_size->addOption($op2);
434  $this->form_gui->addItem($radio_size);
435 
436  // fullscreen caption
437  $caption = new ilTextAreaInputGUI($lng->txt("cont_caption"), "full_caption");
438  $caption->setCols(30);
439  $caption->setRows(2);
440  $this->form_gui->addItem($caption);
441 
442  /*$caption = new ilTextInputGUI($lng->txt("cont_caption"), "full_caption");
443  $caption->setSize(40);
444  $caption->setMaxLength(200);
445  $this->form_gui->addItem($caption);*/
446 
447  // text representation (alt text)
448  if ($a_mode == "edit" && $this->object->hasFullscreenItem() && is_int(strpos($std_item->getFormat(), "image")))
449  {
450  $ta = new ilTextAreaInputGUI($lng->txt("text_repr"), "full_text_representation");
451  $ta->setCols(30);
452  $ta->setRows(2);
453  $ta->setInfo($lng->txt("text_repr_info"));
454  $this->form_gui->addItem($ta);
455  }
456 
457 
458  // fullscreen parameters
459  if ($a_mode == "edit" && $this->object->hasFullscreenItem() &&
460  !in_array($full_item->getFormat(), ilObjMediaObject::_getSimpleMimeTypes()))
461  {
462  if (ilObjMediaObject::_useAutoStartParameterOnly($full_item->getLocation(),
463  $full_item->getFormat()))
464  {
465  $auto = new ilCheckboxInputGUI($lng->txt("cont_autostart"), "full_autostart");
466  $this->form_gui->addItem($auto);
467  }
468  else
469  {
470  $par = new ilTextAreaInputGUI($lng->txt("cont_parameter"), "full_parameters");
471  $par->setRows(5);
472  $par->setCols(50);
473  $this->form_gui->addItem($par);
474  }
475  }
476 
477  $this->form_gui->setTitle($lng->txt("cont_insert_mob"));
478  if ($a_mode == "edit")
479  {
480  $this->form_gui->addCommandButton("saveProperties", $lng->txt("save"));
481  }
482  else
483  {
484  $this->form_gui->addCommandButton("save", $lng->txt("save"));
485  $this->form_gui->addCommandButton("cancel", $lng->txt("cancel"));
486  }
487  $this->form_gui->setFormAction($ilCtrl->getFormAction($this));
488 
489  }
490 
495  public function getValues()
496  {
497  $values = array();
498 
499  $values["standard_title"] = $this->object->getTitle();
500 
501  $std_item = $this->object->getMediaItem("Standard");
502  if ($std_item->getLocationType() == "LocalFile")
503  {
504  $values["standard_type"] = "File";
505  $values["standard_file"] = $std_item->getLocation();
506  }
507  else
508  {
509  $values["standard_type"] = "Reference";
510  $values["standard_reference"] = $std_item->getLocation();
511  }
512  $values["standard_format"] = $std_item->getFormat();
513  $values["standard_width_height"]["width"] = $std_item->getWidth();
514  $values["standard_width_height"]["height"] = $std_item->getHeight();
515  $values["standard_width_height"]["constr_prop"] = true;
516 
517  $values["standard_size"] = "selected";
518 
519  if ($orig_size = $std_item->getOriginalSize())
520  {
521  if ($orig_size["width"] == $std_item->getWidth() &&
522  $orig_size["height"] == $std_item->getHeight())
523  {
524  $values["standard_size"] = "original";
525  }
526  }
527  $values["standard_caption"] = $std_item->getCaption();
528  $values["text_representation"] = $std_item->getTextRepresentation();
529  if (ilObjMediaObject::_useAutoStartParameterOnly($std_item->getLocation(),
530  $std_item->getFormat()))
531  {
532  $par = $std_item->getParameters();
533  if ($par["autostart"])
534  {
535  $values["standard_autostart"] = true;
536  }
537  }
538  else
539  {
540  $values["standard_parameters"] = $std_item->getParameterString();
541  }
542 
543  $values["full_type"] = "None";
544  $values["full_size"] = "original";
545  if ($this->object->hasFullScreenItem())
546  {
547  $full_item = $this->object->getMediaItem("Fullscreen");
548  if ($full_item->getLocationType() == "LocalFile")
549  {
550  $values["full_type"] = "File";
551  $values["full_file"] = $full_item->getLocation();
552  }
553  else
554  {
555  $values["full_type"] = "Reference";
556  $values["full_reference"] = $full_item->getLocation();
557  }
558  $values["full_format"] = $full_item->getFormat();
559  $values["full_width_height"]["width"] = $full_item->getWidth();
560  $values["full_width_height"]["height"] = $full_item->getHeight();
561  $values["full_width_height"]["constr_prop"] = true;
562 
563  $values["full_size"] = "selected";
564 
565  if ($orig_size = $full_item->getOriginalSize())
566  {
567  if ($orig_size["width"] == $full_item->getWidth() &&
568  $orig_size["height"] == $full_item->getHeight())
569  {
570  $values["full_size"] = "original";
571  }
572  }
573  $values["full_caption"] = $full_item->getCaption();
574  if (ilObjMediaObject::_useAutoStartParameterOnly($full_item->getLocation(),
575  $full_item->getFormat()))
576  {
577  $par = $full_item->getParameters();
578  if ($par["autostart"])
579  {
580  $values["full_autostart"] = true;
581  }
582  }
583  else
584  {
585  $values["full_parameters"] = $full_item->getParameterString();
586  }
587  $values["full_text_representation"] = $full_item->getTextRepresentation();
588  }
589 
590  $this->form_gui->setValuesByArray($values);
591  }
592 
596  function saveObject()
597  {
598  global $tpl, $lng;
599 
600  $this->initForm();
601  if ($this->form_gui->checkInput())
602  {
603  $this->object = new ilObjMediaObject();
605  ilUtil::sendSuccess($lng->txt("saved_media_object"), true);
606  return $this->object;
607  }
608  else
609  {
610  $this->form_gui->setValuesByPost();
611  $tpl->setContent($this->form_gui->getHTML());
612  return false;
613  }
614  }
615 
622  function checkFormInput()
623  {
624  if (!$this->form_gui->checkInput())
625  {
626  $this->form_gui->setValuesByPost();
627  return false;
628  }
629  return true;
630  }
631 
632 
636  static function setObjectPerCreationForm($a_mob)
637  {
638  // determinte title and format
639  if (trim($_POST["standard_title"]) != "")
640  {
641  $title = trim($_POST["standard_title"]);
642  }
643  else
644  {
645  if ($_POST["standard_type"] == "File")
646  {
647  $title = $_FILES['standard_file']['name'];
648  }
649  else
650  {
651  $title = ilUtil::stripSlashes($_POST["standard_reference"]);
652  }
653  }
654 
655  $a_mob->setTitle($title);
656  $a_mob->setDescription("");
657  $a_mob->create();
658 
659  // determine and create mob directory, move uploaded file to directory
660  //$mob_dir = ilUtil::getWebspaceDir()."/mobs/mm_".$a_mob->getId();
661  $a_mob->createDirectory();
662  $mob_dir = ilObjMediaObject::_getDirectory($a_mob->getId());
663 
664  $media_item =& new ilMediaItem();
665  $a_mob->addMediaItem($media_item);
666  $media_item->setPurpose("Standard");
667 
668  if ($_POST["standard_type"] == "File")
669  {
670  $file_name = ilObjMediaObject::fixFilename($_FILES['standard_file']['name']);
671  $file = $mob_dir."/".$file_name;
672  ilUtil::moveUploadedFile($_FILES['standard_file']['tmp_name'],
673  $file_name, $file);
674 
675  // get mime type
677  $location = $file_name;
678 
679  // resize standard images
680  if ($_POST["standard_size"] != "original" &&
681  is_int(strpos($format, "image")))
682  {
683  $location = ilObjMediaObject::_resizeImage($file, (int) $_POST["standard_width_height"]["width"],
684  (int) $_POST["standard_width_height"]["height"], (boolean) $_POST["standard_width_height"]["contr_prop"]);
685  }
686 
687  // set real meta and object data
688  $media_item->setFormat($format);
689  $media_item->setLocation($location);
690  $media_item->setLocationType("LocalFile");
691  }
692  else // standard type: reference
693  {
694  $format = ilObjMediaObject::getMimeType(ilUtil::stripSlashes($_POST["standard_reference"]), true);
695  $media_item->setFormat($format);
696  $media_item->setLocation(ilUtil::secureLink(ilUtil::stripSlashes($_POST["standard_reference"])));
697  $media_item->setLocationType("Reference");
698  }
699  $a_mob->setDescription($format);
700 
701  // determine width and height of known image types
703  $_POST["standard_type"], $mob_dir."/".$location, $media_item->getLocation(),
704  $_POST["standard_width_height"]["constr_prop"], ($_POST["standard_size"] == "original"),
705  $_POST["standard_width_height"]["width"], $_POST["standard_width_height"]["height"]);
706  $media_item->setWidth($wh["width"]);
707  $media_item->setHeight($wh["height"]);
708  if ($wh["info"] != "")
709  {
710  ilUtil::sendInfo($wh["info"], true);
711  }
712 
713  if ($_POST["standard_caption"] != "")
714  {
715  $media_item->setCaption(ilUtil::stripSlashes($_POST["standard_caption"]));
716  }
717 
718 
719  $media_item->setHAlign("Left");
720 
721  // fullscreen view
722  if ($_POST["full_type"] != "None")
723  {
724  $media_item2 = new ilMediaItem();
725  $a_mob->addMediaItem($media_item2);
726  $media_item2->setPurpose("Fullscreen");
727 
728  // move file / set format and location
729  if ($_POST["full_type"] == "File")
730  {
731  $format = $location = "";
732  if ($_FILES['full_file']['name'] != "")
733  {
734  $full_file_name = ilObjMediaObject::fixFilename($_FILES['full_file']['name']);
735  $file = $mob_dir."/".$full_file_name;
736  ilUtil::moveUploadedFile($_FILES['full_file']['tmp_name'],
737  $full_file_name, $file);
739  $location = $full_file_name;
740  }
741  }
742  else if ($_POST["full_type"] == "Standard" && $_POST["standard_type"] == "File")
743  {
744  $location = $file_name;
745  }
746 
747  // resize file
748  if ($_POST["full_type"] == "File" ||
749  ($_POST["full_type"] == "Standard" && $_POST["standard_type"] == "File"))
750  {
751  if (($_POST["full_size"] != "original" &&
752  is_int(strpos($format, "image")))
753  )
754  {
755  $location = ilObjMediaObject::_resizeImage($file, (int) $_POST["full_width_height"]["width"],
756  (int) $_POST["full_width_height"]["height"], (boolean) $_POST["full_width_height"]["constr_prop"]);
757  }
758 
759  $media_item2->setFormat($format);
760  $media_item2->setLocation($location);
761  $media_item2->setLocationType("LocalFile");
762  $type = "File";
763  }
764 
765  if ($_POST["full_type"] == "Reference")
766  {
767  $format = $location = "";
768  if ($_POST["full_reference"] != "")
769  {
770  $format = ilObjMediaObject::getMimeType($_POST["full_reference"], true);
771  $location = ilUtil::stripSlashes($_POST["full_reference"]);
772  }
773  }
774 
775  if ($_POST["full_type"] == "Reference" ||
776  ($_POST["full_type"] == "Standard" && $_POST["standard_type"] == "Reference"))
777  {
778  $media_item2->setFormat($format);
779  $media_item2->setLocation($location);
780  $media_item2->setLocationType("Reference");
781  $type = "Reference";
782  }
783 
784  // determine width and height of known image types
786  $type, $mob_dir."/".$location, $media_item2->getLocation(),
787  $_POST["full_width_height"]["constr_prop"], ($_POST["full_size"] == "original"),
788  $_POST["full_width_height"]["width"], $_POST["full_width_height"]["height"]);
789 
790  $media_item2->setWidth($wh["width"]);
791  $media_item2->setHeight($wh["height"]);
792 
793  if ($_POST["full_caption"] != "")
794  {
795  $media_item2->setCaption(ilUtil::stripSlashes($_POST["full_caption"]));
796  }
797 
798  }
799 
801  include_once("./Services/MediaObjects/classes/class.ilMediaSvgSanitizer.php");
802  ilMediaSvgSanitizer::sanitizeDir($mob_dir); // see #20339
803  $a_mob->update();
804  }
805 
806 
810  function cancelObject()
811  {
812  $this->ctrl->returnToParent($this);
813  }
814 
818  function editObject()
819  {
820  global $tpl;
821 
822  $this->setPropertiesSubTabs("general");
823 
824  $this->initForm("edit");
825  $this->getValues();
826  $tpl->setContent($this->form_gui->getHTML());
827  }
828 
829 
834  {
835  // directory
836  $mob_dir = ilObjMediaObject::_getDirectory($this->object->getId());
837 
838  // standard item
839  $std_item =& $this->object->getMediaItem("Standard");
840  if ($std_item->getLocationType() == "LocalFile" &&
841  is_int(strpos($std_item->getFormat(), "image"))
842  )
843  {
844  $file = $mob_dir."/".$std_item->getLocation();
845  $location = ilObjMediaObject::_resizeImage($file, $std_item->getWidth(),
846  $std_item->getHeight());
847  $std_item->setLocation($location);
848  $std_item->update();
849  }
850 
851  // fullscreen item
852  if($this->object->hasFullScreenItem())
853  {
854  $full_item =& $this->object->getMediaItem("Fullscreen");
855  if ($full_item->getLocationType() == "LocalFile" &&
856  is_int(strpos($full_item->getFormat(), "image"))
857  )
858  {
859  $file = $mob_dir."/".$full_item->getLocation();
860  $location = ilObjMediaObject::_resizeImage($file, $full_item->getWidth(),
861  $full_item->getHeight());
862  $full_item->setLocation($location);
863  $full_item->update();
864  }
865  }
866 
867  $this->ctrl->redirect($this, "edit");
868  }
869 
870 
875  {
876  $std_item = $this->object->getMediaItem("Standard");
877  $mob_dir = ilObjMediaObject::_getDirectory($this->object->getId());
878 
879  if ($std_item->getLocationType() == "LocalFile")
880  {
881  $file = $mob_dir."/".$std_item->getLocation();
882 
883  include_once("./Services/MediaObjects/classes/class.ilMediaImageUtil.php");
885 
886  $std_item->setWidth($size[0]);
887  $std_item->setHeight($size[1]);
888  $this->object->update();
889  }
890  $this->ctrl->redirect($this, "edit");
891  }
892 
893 
898  {
899  $full_item =& $this->object->getMediaItem("Fullscreen");
900  $mob_dir = ilObjMediaObject::_getDirectory($this->object->getId());
901 
902  if ($full_item->getLocationType() == "LocalFile")
903  {
904  $file = $mob_dir."/".$full_item->getLocation();
905  include_once("./Services/MediaObjects/classes/class.ilMediaImageUtil.php");
907  $full_item->setWidth($size[0]);
908  $full_item->setHeight($size[1]);
909  $this->object->update();
910  }
911  $this->ctrl->redirect($this, "edit");
912  }
913 
918  {
919  global $lng, $tpl;
920 
921  $this->initForm("edit");
922  if ($this->form_gui->checkInput())
923  {
924  $title = trim($_POST["standard_title"]);
925  $this->object->setTitle($title);
926 
927  $std_item = $this->object->getMediaItem("Standard");
928  $location = $std_item->getLocation();
929  $format = $std_item->getFormat();
930  if ($_POST["standard_type"] == "Reference")
931  {
932  $format = ilObjMediaObject::getMimeType(ilUtil::stripSlashes($_POST["standard_reference"]), true);
933  $std_item->setFormat($format);
934  $std_item->setLocation(ilUtil::secureLink(ilUtil::stripSlashes($_POST["standard_reference"])));
935  $std_item->setLocationType("Reference");
936  }
937  $mob_dir = ilObjMediaObject::_getDirectory($this->object->getId());
938  if ($_POST["standard_type"] == "File")
939  {
940  $resize = false;
941  if ($_FILES['standard_file']['name'] != "")
942  {
943  $file_name = ilObjMediaObject::fixFilename($_FILES['standard_file']['name']);
944  $file = $mob_dir."/".$file_name;
945  ilUtil::moveUploadedFile($_FILES['standard_file']['tmp_name'],
946  $file_name, $file);
947 
948  // get mime type
950  $location = $file_name;
951 
952  $resize = true;
953  }
954  else if ($_POST["standard_resize"])
955  {
956  $file = $mob_dir."/".$location;
957  $resize = true;
958  }
959 
960  // resize
961  if ($resize)
962  {
963  if ($_POST["standard_size"] != "original" &&
964  is_int(strpos($format, "image")))
965  {
966  $location = ilObjMediaObject::_resizeImage($file, (int) $_POST["standard_width_height"]["width"],
967  (int) $_POST["standard_width_height"]["height"], (boolean) $_POST["standard_width_height"]["contr_prop"]);
968  }
969  $std_item->setFormat($format);
970  $std_item->setLocation($location);
971  }
972 
973  $std_item->setLocationType("LocalFile");
974  }
975  $this->object->setDescription($format);
976 
977  // determine width and height of known image types
979  $_POST["standard_type"], $mob_dir."/".$location, $std_item->getLocation(),
980  $_POST["standard_width_height"]["constr_prop"], ($_POST["standard_size"] == "original"),
981  $_POST["standard_width_height"]["width"], $_POST["standard_width_height"]["height"]);
982  if ($wh["info"] != "")
983  {
984  ilUtil::sendInfo($wh["info"], true);
985  }
986 
987  $std_item->setWidth($wh["width"]);
988  $std_item->setHeight($wh["height"]);
989 
990  // set caption
991  $std_item->setCaption(ilUtil::stripSlashes($_POST["standard_caption"]));
992 
993  // text representation
994  $std_item->setTextRepresentation(ilUtil::stripSlashes($_POST["text_representation"]));
995 
996  // set parameters
997  if (!in_array($std_item->getFormat(), ilObjMediaObject::_getSimpleMimeTypes()))
998  {
999  if (ilObjMediaObject::_useAutoStartParameterOnly($std_item->getLocation(),
1000  $std_item->getFormat()))
1001  {
1002  if ($_POST["standard_autostart"]) // save only autostart flag
1003  {
1004  $std_item->setParameters('autostart="true"');
1005  }
1006  else
1007  {
1008  $std_item->setParameters("");
1009  }
1010  }
1011  else
1012  {
1013  $std_item->setParameters(ilUtil::stripSlashes(utf8_decode($_POST["standard_parameters"])));
1014  }
1015  }
1016 
1017  // "None" selected
1018  if ($_POST["full_type"] == "None")
1019  {
1020  if ($this->object->hasFullscreenItem()) // delete existing
1021  {
1022  $this->object->removeMediaItem("Fullscreen");
1023  }
1024  }
1025  else // Not "None" -> we need one
1026  {
1027  if ($this->object->hasFullscreenItem()) // take existing one
1028  {
1029  $full_item = $this->object->getMediaItem("Fullscreen");
1030  }
1031  else // create one
1032  {
1033  $full_item = new ilMediaItem();
1034  $this->object->addMediaItem($full_item);
1035  $full_item->setPurpose("Fullscreen");
1036  }
1037  $location = $full_item->getLocation();
1038  $format = $full_item->getFormat();
1039  if ($_POST["full_type"] == "Reference")
1040  {
1041  $format = ilObjMediaObject::getMimeType(ilUtil::stripSlashes($_POST["full_reference"]), true);
1042  $full_item->setFormat($format);
1043  $full_item->setLocationType("Reference");
1044  $location = ilUtil::stripSlashes($_POST["full_reference"]);
1045  $type = "Reference";
1046  }
1047  $mob_dir = ilObjMediaObject::_getDirectory($this->object->getId());
1048  if ($_POST["full_type"] == "File")
1049  {
1050  $resize = false;
1051  if ($_FILES['full_file']['name'] != "")
1052  {
1053  $full_file_name = ilObjMediaObject::fixFilename($_FILES['full_file']['name']);
1054  $file = $mob_dir."/".$full_file_name;
1055  ilUtil::moveUploadedFile($_FILES['full_file']['tmp_name'],
1056  $full_file_name, $file);
1057 
1059  $location = $full_file_name;
1060 
1061  $resize = true;
1062  }
1063  else if ($_POST["full_resize"])
1064  {
1065  $file = $mob_dir."/".$location;
1066  $resize = true;
1067  }
1068 
1069  // resize
1070  if ($resize)
1071  {
1072  if ($_POST["full_size"] != "original" &&
1073  is_int(strpos($format, "image")))
1074  {
1075  $location = ilObjMediaObject::_resizeImage($file, (int) $_POST["full_width_height"]["width"],
1076  (int) $_POST["full_width_height"]["height"], (boolean) $_POST["full_width_height"]["contr_prop"]);
1077  }
1078  $full_item->setFormat($format);
1079  $full_item->setLocation($location);
1080  }
1081 
1082  $full_item->setLocationType("LocalFile");
1083  $type = "File";
1084  }
1085  if ($_POST["full_type"] == "Standard")
1086  {
1087  $format = $std_item->getFormat();
1088  $location = $std_item->getLocation();
1089  $full_item->setLocationType($std_item->getLocationType());
1090  $full_item->setFormat($format);
1091  $full_item->setLocation($location);
1092  $type = $std_item->getLocationType();
1093  if ($type == "LocalFile")
1094  {
1095  $type = "File";
1096  }
1097  // resize image
1098 //echo "-".$_POST["full_size"]."-".is_int(strpos($format, "image"))."-".$full_item->getLocationType()."-";
1099  if ($_POST["full_size"] != "original" &&
1100  is_int(strpos($format, "image")) &&
1101  $full_item->getLocationType() == "LocalFile")
1102  {
1103  $file = $mob_dir."/".$location;
1104  $location = ilObjMediaObject::_resizeImage($file, (int) $_POST["full_width_height"]["width"],
1105  (int) $_POST["full_width_height"]["height"], (boolean) $_POST["full_width_height"]["contr_prop"]);
1106  }
1107  }
1108 
1109  // determine width and height of known image types
1111  $type, $mob_dir."/".$location, $full_item->getLocation(),
1112  $_POST["full_width_height"]["constr_prop"], ($_POST["full_size"] == "original"),
1113  $_POST["full_width_height"]["width"], $_POST["full_width_height"]["height"]);
1114  if ($wh["info"] != "")
1115  {
1116  ilUtil::sendInfo($wh["info"], true);
1117  }
1118 
1119  $full_item->setWidth($wh["width"]);
1120  $full_item->setHeight($wh["height"]);
1121  $full_item->setLocation($location);
1122 
1123  $full_item->setCaption(ilUtil::stripSlashes($_POST["full_caption"]));
1124 
1125  // text representation
1126  $full_item->setTextRepresentation(ilUtil::stripSlashes($_POST["full_text_representation"]));
1127 
1128 
1129  // set parameters
1130  if (!in_array($std_item->getFormat(), ilObjMediaObject::_getSimpleMimeTypes()))
1131  {
1132  if (ilObjMediaObject::_useAutoStartParameterOnly($std_item->getLocation(),
1133  $std_item->getFormat()))
1134  {
1135  if ($_POST["full_autostart"]) // save only autostart flag
1136  {
1137  $full_item->setParameters('autostart="true"');
1138  }
1139  else
1140  {
1141  $full_item->setParameters("");
1142  }
1143  }
1144  else
1145  {
1146  $full_item->setParameters(ilUtil::stripSlashes(utf8_decode($_POST["full_parameters"])));
1147  }
1148  }
1149  }
1150 
1152  include_once("./Services/MediaObjects/classes/class.ilMediaSvgSanitizer.php");
1153  ilMediaSvgSanitizer::sanitizeDir(ilObjMediaObject::_getDirectory($this->object->getId())); // see #20339
1154 
1155  $this->object->update();
1156  ilUtil::sendSuccess($lng->txt("msg_obj_modified"), true);
1157  $this->ctrl->redirect($this, "edit");
1158  }
1159  else
1160  {
1161  $this->form_gui->setValuesByPost();
1162  $tpl->setContent($this->form_gui->getHTML());
1163  }
1164  }
1165 
1166 
1170  function editFilesObject()
1171  {
1172  // standard item
1173  $std_item =& $this->object->getMediaItem("Standard");
1174  if($this->object->hasFullscreenItem())
1175  {
1176  $full_item =& $this->object->getMediaItem("Fullscreen");
1177  }
1178 
1179  // create table
1180  require_once("./Services/Table/classes/class.ilTableGUI.php");
1181  $tbl = new ilTableGUI();
1182 
1183  // determine directory
1184  $cur_subdir = $_GET["cdir"];
1185  if($_GET["newdir"] == "..")
1186  {
1187  $cur_subdir = substr($cur_subdir, 0, strrpos($cur_subdir, "/"));
1188  }
1189  else
1190  {
1191  if (!empty($_GET["newdir"]))
1192  {
1193  if (!empty($cur_subdir))
1194  {
1195  $cur_subdir = $cur_subdir."/".$_GET["newdir"];
1196  }
1197  else
1198  {
1199  $cur_subdir = $_GET["newdir"];
1200  }
1201  }
1202  }
1203 
1204  $cur_subdir = str_replace(".", "", $cur_subdir);
1205  $mob_dir = ilUtil::getWebspaceDir()."/mobs/mm_".$this->object->getId();
1206  $cur_dir = (!empty($cur_subdir))
1207  ? $mob_dir."/".$cur_subdir
1208  : $mob_dir;
1209 
1210  // load files templates
1211  $this->tpl->addBlockfile("ADM_CONTENT", "adm_content", "tpl.mob_files.html", "Services/MediaObjects");
1212 
1213  $this->ctrl->setParameter($this, "cdir", urlencode($cur_subdir));
1214  $this->tpl->setVariable("FORMACTION1", $this->ctrl->getFormAction($this));
1215 //echo "--".$this->getTargetScript().
1216  //"&hier_id=".$_GET["hier_id"]."&cdir=".$cur_subdir."&cmd=post"."--<br>";
1217  $this->tpl->setVariable("TXT_NEW_DIRECTORY", $this->lng->txt("cont_new_dir"));
1218  $this->tpl->setVariable("TXT_NEW_FILE", $this->lng->txt("cont_new_file"));
1219  $this->tpl->setVariable("CMD_NEW_DIR", "createDirectory");
1220  $this->tpl->setVariable("CMD_NEW_FILE", "uploadFile");
1221  $this->tpl->setVariable("BTN_NEW_DIR", $this->lng->txt("create"));
1222  $this->tpl->setVariable("BTN_NEW_FILE", $this->lng->txt("upload"));
1223 
1224  //
1225  $this->tpl->addBlockfile("FILE_TABLE", "files", "tpl.table.html");
1226 
1227  // load template for table content data
1228  $this->tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.mob_file_row.html", "Services/MediaObjects");
1229 
1230  $num = 0;
1231 
1232  $obj_str = ($this->call_by_reference) ? "" : "&obj_id=".$this->obj_id;
1233  $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
1234 
1235  $tbl->setTitle($this->lng->txt("cont_files")." ".$cur_subdir);
1236  //$tbl->setHelp("tbl_help.php","icon_help.gif",$this->lng->txt("help"));
1237 
1238  $tbl->setHeaderNames(array("", "", $this->lng->txt("cont_dir_file"),
1239  $this->lng->txt("cont_size"), $this->lng->txt("cont_purpose")));
1240 
1241  $cols = array("", "", "dir_file", "size", "purpose");
1242  $header_params = array("ref_id" => $_GET["ref_id"], "obj_id" => $_GET["obj_id"],
1243  "cmd" => "editFiles", "hier_id" => $_GET["hier_id"], "item_id" => $_GET["item_id"]);
1244  $tbl->setHeaderVars($cols, $header_params);
1245  $tbl->setColumnWidth(array("1%", "1%", "33%", "33%", "32%"));
1246 
1247  // control
1248  $tbl->setOrderColumn($_GET["sort_by"]);
1249  $tbl->setOrderDirection($_GET["sort_order"]);
1250  $tbl->setLimit($_GET["limit"]);
1251  $tbl->setOffset($_GET["offset"]);
1252  $tbl->setMaxCount($this->maxcount); // ???
1253  //$tbl->setMaxCount(30); // ???
1254 
1255  $this->tpl->setVariable("COLUMN_COUNTS", 5);
1256 
1257  // delete button
1258  $this->tpl->setVariable("IMG_ARROW", ilUtil::getImagePath("arrow_downright.svg"));
1259  $this->tpl->setCurrentBlock("tbl_action_btn");
1260  $this->tpl->setVariable("BTN_NAME", "deleteFile");
1261  $this->tpl->setVariable("BTN_VALUE", $this->lng->txt("delete"));
1262  $this->tpl->parseCurrentBlock();
1263 
1264  $this->tpl->setCurrentBlock("tbl_action_btn");
1265  $this->tpl->setVariable("BTN_NAME", "assignStandard");
1266  $this->tpl->setVariable("BTN_VALUE", $this->lng->txt("cont_assign_std"));
1267  $this->tpl->parseCurrentBlock();
1268 
1269  $this->tpl->setCurrentBlock("tbl_action_btn");
1270  $this->tpl->setVariable("BTN_NAME", "assignFullscreen");
1271  $this->tpl->setVariable("BTN_VALUE", $this->lng->txt("cont_assign_full"));
1272  $this->tpl->parseCurrentBlock();
1273 
1274  // footer
1275  $tbl->setFooter("tblfooter",$this->lng->txt("previous"),$this->lng->txt("next"));
1276  //$tbl->disable("footer");
1277 
1278  $entries = ilUtil::getDir($cur_dir);
1279 
1280  //$objs = ilUtil::sortArray($objs, $_GET["sort_by"], $_GET["sort_order"]);
1281  $tbl->setMaxCount(count($entries));
1282  $entries = array_slice($entries, $_GET["offset"], $_GET["limit"]);
1283 
1284  $tbl->render();
1285  if(count($entries) > 0)
1286  {
1287  $i=0;
1288  foreach($entries as $entry)
1289  {
1290  if(($entry["entry"] == ".") || ($entry["entry"] == ".." && empty($cur_subdir)))
1291  {
1292  continue;
1293  }
1294 
1295  //$this->tpl->setVariable("ICON", $obj["title"]);
1296  if($entry["type"] == "dir")
1297  {
1298  $this->tpl->setCurrentBlock("FileLink");
1299  $this->ctrl->setParameter($this, "cdir", $cur_subdir);
1300  $this->ctrl->setParameter($this, "newdir", rawurlencode($entry["entry"]));
1301  $this->tpl->setVariable("LINK_FILENAME", $this->ctrl->getLinkTarget($this, "editFiles"));
1302  $this->tpl->setVariable("TXT_FILENAME", $entry["entry"]);
1303  $this->tpl->parseCurrentBlock();
1304 
1305  $this->tpl->setVariable("ICON", "<img src=\"".
1306  ilUtil::getImagePath("icon_cat.svg")."\">");
1307  }
1308  else
1309  {
1310  $this->tpl->setCurrentBlock("File");
1311  $this->tpl->setVariable("TXT_FILENAME2", $entry["entry"]);
1312  $this->tpl->parseCurrentBlock();
1313  }
1314 
1315  $this->tpl->setCurrentBlock("tbl_content");
1316  $css_row = ilUtil::switchColor($i++, "tblrow1", "tblrow2");
1317  $this->tpl->setVariable("CSS_ROW", $css_row);
1318 
1319  $this->tpl->setVariable("TXT_SIZE", $entry["size"]);
1320  $this->tpl->setVariable("CHECKBOX_ID", $entry["entry"]);
1321  $compare = (!empty($cur_subdir))
1322  ? $cur_subdir."/".$entry["entry"]
1323  : $entry["entry"];
1324  $purpose = array();
1325  if ($std_item->getLocation() == $compare)
1326  {
1327  $purpose[] = $this->lng->txt("cont_std_view");
1328  }
1329  if($this->object->hasFullscreenItem())
1330  {
1331  if ($full_item->getLocation() == $compare)
1332  {
1333  $purpose[] = $this->lng->txt("cont_fullscreen");
1334  }
1335  }
1336  $this->tpl->setVariable("TXT_PURPOSE", implode($purpose, ", "));
1337 
1338  $this->tpl->parseCurrentBlock();
1339  }
1340  } //if is_array
1341  else
1342  {
1343  $this->tpl->setCurrentBlock("notfound");
1344  $this->tpl->setVariable("TXT_OBJECT_NOT_FOUND", $this->lng->txt("obj_not_found"));
1345  $this->tpl->setVariable("NUM_COLS", 4);
1346  $this->tpl->parseCurrentBlock();
1347  }
1348 
1349  $this->tpl->parseCurrentBlock();
1350  }
1351 
1352 
1357  {
1358 //echo "cdir:".$_GET["cdir"].":<br>";
1359  // determine directory
1360  $cur_subdir = str_replace(".", "", $_GET["cdir"]);
1361  $mob_dir = ilUtil::getWebspaceDir()."/mobs/mm_".$this->object->getId();
1362  $cur_dir = (!empty($cur_subdir))
1363  ? $mob_dir."/".$cur_subdir
1364  : $mob_dir;
1365 
1366  $new_dir = str_replace(".", "", $_POST["new_dir"]);
1367  $new_dir = str_replace("/", "", $new_dir);
1368 
1369  if (!empty($new_dir))
1370  {
1371  ilUtil::makeDir($cur_dir."/".$new_dir);
1372  }
1373  $this->ctrl->saveParameter($this, "cdir");
1374  $this->ctrl->redirect($this, "editFiles");
1375  }
1376 
1380  function uploadFileObject()
1381  {
1382  // determine directory
1383  $cur_subdir = str_replace(".", "", $_GET["cdir"]);
1384  $mob_dir = ilUtil::getWebspaceDir()."/mobs/mm_".$this->object->getId();
1385  $cur_dir = (!empty($cur_subdir))
1386  ? $mob_dir."/".$cur_subdir
1387  : $mob_dir;
1388  if (is_file($_FILES["new_file"]["tmp_name"]))
1389  {
1390  $file_name = ilObjMediaObject::fixFilename($_FILES["new_file"]["name"]);
1391  $file = $cur_dir."/".$file_name;
1392  ilUtil::moveUploadedFile($_FILES['new_file']['tmp_name'],
1393  $file_name, $file);
1394 
1395  }
1397  include_once("./Services/MediaObjects/classes/class.ilMediaSvgSanitizer.php");
1398  ilMediaSvgSanitizer::sanitizeDir($mob_dir); // see #20339
1399 
1400  $this->ctrl->saveParameter($this, "cdir");
1401  $this->ctrl->redirect($this, "editFiles");
1402  }
1403 
1407  function assignStandardObject($a_file)
1408  {
1409  // determine directory
1410  $cur_subdir = dirname($a_file);
1411  $mob_dir = ilUtil::getWebspaceDir()."/mobs/mm_".$this->object->getId();
1412  $cur_dir = (!empty($cur_subdir))
1413  ? $mob_dir."/".$cur_subdir
1414  : $mob_dir;
1415  $file = $cur_dir."/".basename($a_file);
1416  $location = $a_file;
1417 
1418  if(!is_file($file))
1419  {
1420  $this->ilias->raiseError($this->lng->txt("cont_select_file"),$this->ilias->error_obj->MESSAGE);
1421  }
1422 
1423  $std_item =& $this->object->getMediaItem("Standard");
1424  $std_item->setLocationType("LocalFile");
1425  $std_item->setLocation($location);
1427  $std_item->setFormat($format);
1428  $this->object->update();
1429 // $this->ctrl->saveParameter($this, "cdir");
1430  $this->ctrl->redirectByClass("ilfilesystemgui", "listFiles");
1431  }
1432 
1433 
1437  function assignFullscreenObject($a_file)
1438  {
1439  // determine directory
1440  $cur_subdir = dirname($a_file);
1441  $mob_dir = ilUtil::getWebspaceDir()."/mobs/mm_".$this->object->getId();
1442  $cur_dir = (!empty($cur_subdir))
1443  ? $mob_dir."/".$cur_subdir
1444  : $mob_dir;
1445  $file = $cur_dir."/".basename($a_file);
1446  $location = $a_file;
1447 
1448  if(!is_file($file))
1449  {
1450  $this->ilias->raiseError($this->lng->txt("cont_select_file"),$this->ilias->error_obj->MESSAGE);
1451  }
1452 
1453  if(!$this->object->hasFullScreenItem())
1454  { // create new fullscreen item
1455  $std_item =& $this->object->getMediaItem("Standard");
1456  $mob_dir = ilUtil::getWebspaceDir()."/mobs/mm_".$this->object->getId();
1457  $file = $mob_dir."/".$location;
1458  $full_item =& new ilMediaItem();
1459  $full_item->setMobId($std_item->getMobId());
1460  $full_item->setLocation($location);
1461  $full_item->setLocationType("LocalFile");
1462  $full_item->setFormat(ilObjMediaObject::getMimeType($file));
1463  $full_item->setPurpose("Fullscreen");
1464  $this->object->addMediaItem($full_item);
1465  }
1466  else // alter existing fullscreen item
1467  {
1468  $full_item =& $this->object->getMediaItem("Fullscreen");
1469 
1470  $full_item->setLocationType("LocalFile");
1471  $full_item->setLocation($location);
1473  $full_item->setFormat($format);
1474  }
1475  $this->object->update();
1476 // $this->ctrl->saveParameter($this, "cdir");
1477  $this->ctrl->redirectByClass("ilfilesystemgui", "listFiles");
1478  }
1479 
1480 
1485  {
1486  $this->object->removeMediaItem("Fullscreen");
1487  $this->object->update();
1488 
1489  $this->ctrl->redirect($this, "edit");
1490  }
1491 
1492 
1497  {
1498  if (!$this->object->hasFullScreenItem())
1499  {
1500  $std_item =& $this->object->getMediaItem("Standard");
1501  $full_item =& new ilMediaItem();
1502  $full_item->setMobId($std_item->getMobId());
1503  $full_item->setLocation($std_item->getLocation());
1504  $full_item->setLocationType($std_item->getLocationType());
1505  $full_item->setFormat($std_item->getFormat());
1506  $full_item->setWidth($std_item->getWidth());
1507  $full_item->setHeight($std_item->getHeight());
1508  $full_item->setCaption($std_item->getCaption());
1509  $full_item->setTextRepresentation($std_item->getTextRepresentation());
1510  $full_item->setPurpose("Fullscreen");
1511  $this->object->addMediaItem($full_item);
1512 
1513  $this->object->update();
1514  }
1515 
1516  $this->ctrl->redirect($this, "edit");
1517  }
1518 
1519 
1523  function deleteFileObject()
1524  {
1525  if (!isset($_POST["file"]))
1526  {
1527  $this->ilias->raiseError($this->lng->txt("no_checkbox"),$this->ilias->error_obj->MESSAGE);
1528  }
1529 
1530  if (count($_POST["file"]) > 1)
1531  {
1532  $this->ilias->raiseError($this->lng->txt("cont_select_max_one_item"),$this->ilias->error_obj->MESSAGE);
1533  }
1534 
1535  if ($_POST["file"][0] == "..")
1536  {
1537  $this->ilias->raiseError($this->lng->txt("no_checkbox"),$this->ilias->error_obj->MESSAGE);
1538  }
1539 
1540  $cur_subdir = str_replace(".", "", $_GET["cdir"]);
1541  $mob_dir = ilUtil::getWebspaceDir()."/mobs/mm_".$this->object->getId();
1542  $cur_dir = (!empty($cur_subdir))
1543  ? $mob_dir."/".$cur_subdir
1544  : $mob_dir;
1545  $file = $cur_dir."/".$_POST["file"][0];
1546  $location = (!empty($cur_subdir))
1547  ? $cur_subdir."/".$_POST["file"][0]
1548  : $_POST["file"][0];
1549 
1550  $full_item =& $this->object->getMediaItem("Fullscreen");
1551  $std_item =& $this->object->getMediaItem("Standard");
1552 
1553  if ($location == $std_item->getLocation())
1554  {
1555  $this->ilias->raiseError($this->lng->txt("cont_cant_del_std"),$this->ilias->error_obj->MESSAGE);
1556  }
1557 
1558  if($this->object->hasFullScreenItem())
1559  {
1560  if ($location == $full_item->getLocation())
1561  {
1562  $this->ilias->raiseError($this->lng->txt("cont_cant_del_full"),$this->ilias->error_obj->MESSAGE);
1563  }
1564  }
1565 
1566  if (@is_dir($file))
1567  {
1568  if (substr($std_item->getLocation(), 0 ,strlen($location)) == $location)
1569  {
1570  $this->ilias->raiseError($this->lng->txt("cont_std_is_in_dir"),$this->ilias->error_obj->MESSAGE);
1571  }
1572 
1573  if($this->object->hasFullScreenItem())
1574  {
1575  if (substr($full_item->getLocation(), 0 ,strlen($location)) == $location)
1576  {
1577  $this->ilias->raiseError($this->lng->txt("cont_full_is_in_dir"),$this->ilias->error_obj->MESSAGE);
1578  }
1579  }
1580  }
1581 
1582  if (@is_file($file))
1583  {
1584  unlink($file);
1585  }
1586 
1587  if (@is_dir($file))
1588  {
1590  }
1591 
1592  $this->ctrl->saveParameter($this, "cdir");
1593  $this->ctrl->redirect($this, "editFiles");
1594  }
1595 
1600  {
1601  $this->showUsagesObject(true);
1602  }
1603 
1604 
1608  function showUsagesObject($a_all = false)
1609  {
1610  global $tpl, $ilTabs, $ilTabs, $lng, $ilCtrl;
1611 
1612  $ilTabs->addSubTab("current_usages", $lng->txt("cont_current_usages"),
1613  $ilCtrl->getLinkTarget($this, "showUsages"));
1614 
1615  $ilTabs->addSubTab("all_usages", $lng->txt("cont_all_usages"),
1616  $ilCtrl->getLinkTarget($this, "showAllUsages"));
1617 
1618  if ($a_all)
1619  {
1620  $ilTabs->activateSubTab("all_usages");
1621  $cmd = "showAllUsages";
1622  }
1623  else
1624  {
1625  $ilTabs->activateSubTab("current_usages");
1626  $cmd = "showUsages";
1627  }
1628 
1629  include_once("./Services/MediaObjects/classes/class.ilMediaObjectUsagesTableGUI.php");
1630  $usages_table = new ilMediaObjectUsagesTableGUI($this, $cmd,
1631  $this->object, $a_all);
1632  $tpl->setContent($usages_table->getHTML());
1633  }
1634 
1638  function _getMediaInfoHTML(&$a_mob)
1639  {
1640  global $lng;
1641 
1642  $tpl =& new ilTemplate("tpl.media_info.html", true, true, "Services/MediaObjects");
1643  $types = array("Standard", "Fullscreen");
1644  foreach ($types as $type)
1645  {
1646  if($type == "Fullscreen" && !$a_mob->hasFullScreenItem())
1647  {
1648  continue;
1649  }
1650 
1651  $med = $a_mob->getMediaItem($type);
1652  if (!$med)
1653  {
1654  return "";
1655  }
1656 
1657  $tpl->setCurrentBlock("media_info");
1658  if ($type == "Standard")
1659  {
1660  $tpl->setVariable("TXT_PURPOSE", $lng->txt("cont_std_view"));
1661  }
1662  else
1663  {
1664  $tpl->setVariable("TXT_PURPOSE", $lng->txt("cont_fullscreen"));
1665  }
1666  $tpl->setVariable("TXT_TYPE", $lng->txt("cont_".strtolower($med->getLocationType())));
1667  $tpl->setVariable("VAL_LOCATION", $med->getLocation());
1668  if ($med->getLocationType() == "LocalFile")
1669  {
1670  $file = ilObjMediaObject::_getDirectory($med->getMobId())."/".$med->getLocation();
1671  if (is_file($file))
1672  {
1673  $size = filesize($file);
1674  }
1675  else
1676  {
1677  $size = 0;
1678  }
1679  $tpl->setVariable("VAL_FILE_SIZE", " ($size ".$lng->txt("bytes").")");
1680  }
1681  $tpl->setVariable("TXT_FORMAT", $lng->txt("cont_format"));
1682  $tpl->setVariable("VAL_FORMAT", $med->getFormat());
1683  if ($med->getWidth() != "" && $med->getHeight() != "")
1684  {
1685  $tpl->setCurrentBlock("size");
1686  $tpl->setVariable("TXT_SIZE", $lng->txt("size"));
1687  $tpl->setVariable("VAL_SIZE", $med->getWidth()."x".$med->getHeight());
1688  $tpl->parseCurrentBlock();
1689  }
1690 
1691  // original size
1692  if ($orig_size = $med->getOriginalSize())
1693  {
1694  if ($orig_size["width"] != $med->getWidth() ||
1695  $orig_size["height"] != $med->getHeight())
1696  {
1697  $tpl->setCurrentBlock("orig_size");
1698  $tpl->setVariable("TXT_ORIG_SIZE", $lng->txt("cont_orig_size"));
1699  $tpl->setVariable("ORIG_WIDTH", $orig_size["width"]);
1700  $tpl->setVariable("ORIG_HEIGHT", $orig_size["height"]);
1701  $tpl->parseCurrentBlock();
1702  }
1703  }
1704 
1705  // output caption
1706  if($med && strlen($med->getCaption()))
1707  {
1708  $tpl->setCurrentBlock('additional_info');
1709  $tpl->setVariable('ADD_INFO',$lng->txt('cont_caption').': '.$med->getCaption());
1710  $tpl->parseCurrentBlock();
1711  }
1712 
1713  // output keywords
1714  if ($type == "Standard")
1715  {
1716  include_once './Services/MetaData/classes/class.ilMDKeyword.php';
1717  if(count($kws = ilMDKeyword::lookupKeywords(0, $med->getMobId())))
1718  {
1719  $tpl->setCurrentBlock('additional_info');
1720  $tpl->setVariable('ADD_INFO',$lng->txt('keywords').': '.implode(', ',$kws));
1721  $tpl->parseCurrentBlock();
1722  }
1723  }
1724 
1725  $tpl->setCurrentBlock("media_info");
1726  $tpl->parseCurrentBlock();
1727  }
1728 
1729  return $tpl->get();
1730  }
1731 
1735  //function setAdminTabs()
1736  function setTabs()
1737  {
1738 //echo "setAdminTabs should not be called.";
1739 
1740  // catch feedback message
1741  $this->getTabs($this->tabs_gui);
1742 
1743  //$tabs_gui->setTargetScript($this->ctrl->getLinkTarget($this));
1744  $this->tpl->clearHeader();
1745  if (is_object($this->object) && strtolower(get_class($this->object)) == "ilobjmediaobject")
1746  {
1747  $this->tpl->setTitleIcon(ilUtil::getImagePath("icon_mob.svg"));
1748  $this->tpl->setTitle($this->object->getTitle());
1749  }
1750  else
1751  {
1752  //$title = $this->object->getTitle();
1753  $this->tpl->setTitleIcon(ilUtil::getImagePath("icon_mob.svg"));
1754  $this->tpl->setTitle($this->lng->txt("cont_create_mob"));
1755  }
1756  }
1757 
1758 
1762  function getTabs(&$tabs_gui)
1763  {
1764  global $ilTabs, $ilHelp;
1765 
1766  $ilHelp->setScreenIdComponent("mob");
1767 
1768  //$tabs_gui->setTargetScript($this->ctrl->getLinkTarget($this));
1769  if (is_object($this->object) && strtolower(get_class($this->object)) == "ilobjmediaobject"
1770  && $this->object->getId() > 0)
1771  {
1772  // object properties
1773  $ilTabs->addTarget("cont_mob_def_prop",
1774  $this->ctrl->getLinkTarget($this, "edit"), "edit",
1775  get_class($this));
1776 
1777  $st_item =& $this->object->getMediaItem("Standard");
1778 
1779  // video tools
1780  if (substr($st_item->getFormat(), 0, 6) == "video/" && DEVMODE)
1781  {
1782  $ilTabs->addTarget("mob_video_tools",
1783  $this->ctrl->getLinkTargetByClass("ilobjmediaobjectgui", "showVideoTool"),
1784  "showVideoTool", "ilobjmediaobjectgui");
1785  }
1786 
1787  // link areas
1788 
1789  if (is_object($st_item) && $this->getEnabledMapAreas())
1790  {
1791  $format = $st_item->getFormat();
1792  if (substr($format, 0, 5) == "image" && !is_int(strpos($format, "svg")))
1793  {
1794  $ilTabs->addTarget("cont_def_map_areas",
1795  $this->ctrl->getLinkTargetByClass(
1796  array("ilobjmediaobjectgui", "ilimagemapeditorgui"), "editMapAreas"), "editMapAreas",
1797  "ilimagemapeditorgui");
1798  }
1799  }
1800 
1801  // object usages
1802  $ilTabs->addTarget("cont_mob_usages",
1803  $this->ctrl->getLinkTarget($this, "showUsages"), "showUsages",
1804  get_class($this));
1805 
1806  // object files
1807  $std_item = $this->object->getMediaItem("Standard");
1808  $full_item = $this->object->getMediaItem("Fullscreen");
1809  $mset = new ilSetting("mobs");
1810  if ($mset->get("file_manager_always") ||
1811  (!in_array($std_item->getFormat(), ilObjMediaObject::_getSimpleMimeTypes()) ||
1812  (is_object($full_item) && !in_array($full_item->getFormat(), ilObjMediaObject::_getSimpleMimeTypes())))
1813  )
1814  {
1815 // $ilTabs->addTarget("cont_files",
1816 // $this->ctrl->getLinkTarget($this, "editFiles"), "editFiles",
1817 // get_class($this));
1818 
1819  $ilTabs->addTarget("cont_files",
1820  $this->ctrl->getLinkTargetByClass(
1821  array("ilobjmediaobjectgui", "ilfilesystemgui"), "listFiles"), "",
1822  "ilfilesystemgui");
1823  }
1824 
1825  include_once "Services/Object/classes/class.ilObjectMetaDataGUI.php";
1826  $mdgui = new ilObjectMetaDataGUI(null, $this->object->getType(), $this->object->getId());
1827  $mdtab = $mdgui->getTab("ilobjmediaobjectgui");
1828  if($mdtab)
1829  {
1830  $ilTabs->addTarget("meta_data",
1831  $mdtab,
1832  "", "ilmdeditorgui");
1833  }
1834 
1835  }
1836 
1837  // back to upper context
1838  if ($this->back_title != "")
1839  {
1840  $tabs_gui->setBackTarget($this->back_title,
1841  $this->ctrl->getParentReturn($this));
1842  }
1843  }
1844 
1852  {
1853  global $tpl;
1854 
1855  include_once("./Services/MediaObjects/classes/class.ilFFmpeg.php");
1856 
1857  /*$codecs = ilFFmpeg::getSupportedCodecsInfo();
1858  $codec_str = implode($codecs, "<br />");
1859  $tpl->setContent($codec_str);*/
1860 
1861  $formats = ilFFmpeg::getSupportedFormatsInfo();
1862  $formats_str = implode($formats, "<br />");
1863  $tpl->setContent($formats_str);
1864  }
1865 
1866 
1870  function includePresentationJS($a_tpl = null)
1871  {
1872  global $tpl;
1873 
1874  if ($a_tpl == null)
1875  {
1876  $a_tpl = $tpl;
1877  }
1878 
1879  include_once("./Services/jQuery/classes/class.iljQueryUtil.php");
1880  iljQueryUtil::initjQUery($a_tpl);
1881  include_once("./Services/jQuery/classes/class.iljQueryUtil.php");
1882  $a_tpl->addJavascript(iljQueryUtil::getLocalMaphilightPath());
1883  $a_tpl->addJavascript("./Services/COPage/js/ilCOPagePres.js");
1884 
1885  include_once("./Services/MediaObjects/classes/class.ilPlayerUtil.php");
1887  }
1888 
1894  function setPropertiesSubTabs($a_active)
1895  {
1896  global $ilTabs, $ilCtrl, $lng;
1897 
1898  $ilTabs->activateTab("cont_mob_def_prop");
1899 
1900  $ilTabs->addSubTab("general",
1901  $lng->txt("mob_general"),
1902  $ilCtrl->getLinkTarget($this, "edit"));
1903 
1904  if ($this->object->getMediaItem("Standard")->getFormat() == "video/webm" ||
1905  $this->object->getMediaItem("Standard")->getFormat() == "video/mp4")
1906  {
1907  $ilTabs->addSubTab("subtitles",
1908  $lng->txt("mob_subtitles"),
1909  $ilCtrl->getLinkTarget($this, "listSubtitleFiles"));
1910  }
1911 
1912  $ilTabs->activateSubTab($a_active);
1913  }
1914 
1922  {
1923  global $ilToolbar, $tpl, $ilCtrl, $lng, $ilUser;
1924 
1925  $this->setPropertiesSubTabs("subtitles");
1926 
1927  // upload file
1928  $ilToolbar->setFormAction($ilCtrl->getFormAction($this), true);
1929  include_once("./Services/Form/classes/class.ilFileInputGUI.php");
1930  $fi = new ilFileInputGUI($lng->txt("mob_subtitle_file")." (.srt)", "subtitle_file");
1931  $fi->setSuffixes(array("srt"));
1932  $ilToolbar->addInputItem($fi, true);
1933 
1934  // language
1935  include_once("./Services/Form/classes/class.ilSelectInputGUI.php");
1936  include_once("./Services/MetaData/classes/class.ilMDLanguageItem.php");
1938  $si = new ilSelectInputGUI($this->lng->txt("mob_language"), "language");
1939  $si->setOptions($options);
1940  $si->setValue($ilUser->getLanguage());
1941  $ilToolbar->addInputItem($si, true);
1942 
1943  $ilToolbar->addFormButton($lng->txt("upload"), "uploadSubtitleFile");
1944 
1945  $ilToolbar->addSeparator();
1946  $ilToolbar->addFormButton($lng->txt("mob_upload_multi_srt"), "uploadMultipleSubtitleFileForm");
1947 
1948  include_once("./Services/MediaObjects/classes/class.ilMobSubtitleTableGUI.php");
1949  $tab = new ilMobSubtitleTableGUI($this, "listSubtitleFiles", $this->object);
1950 
1951  $tpl->setContent($tab->getHTML());
1952  }
1953 
1961  {
1962  global $lng, $ilCtrl;
1963 
1964  if ($this->object->uploadSrtFile($_FILES["subtitle_file"]["tmp_name"], ilUtil::stripSlashes($_POST["language"])))
1965  {
1966  ilUtil::sendSuccess($lng->txt("msg_obj_modified"), true);
1967  }
1968  $ilCtrl->redirect($this, "listSubtitleFiles");
1969  }
1970 
1975  {
1976  global $ilCtrl, $tpl, $lng;
1977 
1978  $lng->loadLanguageModule("meta");
1979 
1980  if (!is_array($_POST["srt"]) || count($_POST["srt"]) == 0)
1981  {
1982  ilUtil::sendInfo($lng->txt("no_checkbox"), true);
1983  $ilCtrl->redirect($this, "listSubtitleFiles");
1984  }
1985  else
1986  {
1987  include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
1988  $cgui = new ilConfirmationGUI();
1989  $cgui->setFormAction($ilCtrl->getFormAction($this));
1990  $cgui->setHeaderText($lng->txt("mob_really_delete_srt"));
1991  $cgui->setCancel($lng->txt("cancel"), "listSubtitleFiles");
1992  $cgui->setConfirm($lng->txt("delete"), "deleteSrtFiles");
1993 
1994  foreach ($_POST["srt"] as $i)
1995  {
1996  $cgui->addItem("srt[]", $i, "subtitle_".$i.".srt (".$lng->txt("meta_l_".$i).")");
1997  }
1998 
1999  $tpl->setContent($cgui->getHTML());
2000  }
2001  }
2002 
2007  {
2008  global $lng, $ilCtrl;
2009 
2010  foreach ($_POST["srt"] as $i)
2011  {
2012  if (strlen($i) == 2 && !is_int(strpos($i, ".")))
2013  {
2014  $this->object->removeAdditionalFile("srt/subtitle_".$i.".srt");
2015  }
2016  }
2017  ilUtil::sendSuccess($lng->txt("mob_srt_files_deleted"), true);
2018  $ilCtrl->redirect($this, "listSubtitleFiles");
2019  }
2020 
2028  {
2029  global $ilToolbar, $lng, $ilCtrl;
2030 
2031  ilUtil::sendInfo($lng->txt("mob_upload_multi_srt_howto"));
2032 
2033  $this->setPropertiesSubTabs("subtitles");
2034 
2035  // upload file
2036  $ilToolbar->setFormAction($ilCtrl->getFormAction($this), true);
2037  include_once("./Services/Form/classes/class.ilFileInputGUI.php");
2038  $fi = new ilFileInputGUI($lng->txt("mob_subtitle_file")." (.zip)", "subtitle_file");
2039  $fi->setSuffixes(array("zip"));
2040  $ilToolbar->addInputItem($fi, true);
2041 
2042  $ilToolbar->addFormButton($lng->txt("upload"), "uploadMultipleSubtitleFile");
2043  }
2044 
2049  {
2050  try
2051  {
2052  $this->object->uploadMultipleSubtitleFile(ilUtil::stripSlashesArray($_FILES["subtitle_file"]));
2053  $this->ctrl->redirect($this, "showMultiSubtitleConfirmationTable");
2054  }
2055  catch (ilMediaObjectsException $e)
2056  {
2057  ilUtil::sendFailure($e->getMessage(), true);
2058  $this->ctrl->redirect($this, "uploadMultipleSubtitleFileForm");
2059  }
2060 
2061  }
2062 
2067  {
2068  global $tpl;
2069 
2070  $this->setPropertiesSubTabs("subtitles");
2071 
2072  include_once("./Services/MediaObjects/classes/class.ilMultiSrtConfirmationTable2GUI.php");
2073  $tab = new ilMultiSrtConfirmationTable2GUI($this, "showMultiSubtitleConfirmationTable");
2074  $tpl->setContent($tab->getHTML());
2075  }
2076 
2081  {
2082  $this->object->clearMultiSrtDirectory();
2083  $this->ctrl->redirect($this, "listSubtitleFiles");
2084  }
2085 
2090  {
2091  global $ilCtrl;
2092  $srt_files = $this->object->getMultiSrtFiles();
2093  if (is_array($_POST["file"]))
2094  {
2095  foreach ($_POST["file"] as $f)
2096  {
2097  foreach ($srt_files as $srt_file)
2098  {
2099  if ($f == $srt_file["filename"])
2100  {
2101  $this->object->uploadSrtFile($this->object->getMultiSrtUploadDir()."/".$srt_file["filename"], $srt_file["lang"], "rename");
2102  }
2103  }
2104  }
2105  }
2106  $this->object->clearMultiSrtDirectory();
2107  $ilCtrl->redirect($this, "listSubtitleFiles");
2108  }
2109 
2110 
2111 }
2112 ?>
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static setObjectPerCreationForm($a_mob)
Set media object values from creation form.
listSubtitleFilesObject()
List subtitls files.
This class represents an option in a radio group.
ILIAS Setting Class.
Class ilObjectMetaDataGUI.
print $file
showUsagesObject($a_all=false)
show all usages of mob
$size
Definition: RandomTest.php:79
setEnabledMapAreas($a_enabledmapareas)
Set Enable map areas.
$_POST['username']
Definition: cron.php:12
static getImageSize($a_location)
Get image size from location.
TableGUI class for subtitle list.
showAllUsagesObject()
Show all media object usages (incl history)
This class represents a selection list property in a property form.
getEnabledMapAreas()
Get Enable map areas.
addFullscreenObject()
add fullscreen view
uploadMultipleSubtitleFileFormObject()
Upload multiple stubtitles.
This class represents a property form user interface.
static sanitizeDir($a_path)
Sanitize directory recursively.
$_GET["client_id"]
$tbl
Definition: example_048.php:81
showMultiSubtitleConfirmationTableObject()
List of srt files in zip file.
$location
Definition: buildRTE.php:44
TableGUI class for media object usages listing.
showVideoToolObject()
Show video tools.
This class represents a section header in a property form.
This class represents a file property in a property form.
General exception class for media objects.
getTabs(&$tabs_gui)
Get Tabs.
deleteSrtFilesObject()
Delete srt files.
uploadSubtitleFileObject()
Upload srt file.
ilObjMediaObjectGUI($a_data, $a_id=0, $a_call_by_reference=false, $a_prepare_output=false)
createDirectoryObject()
create directory
getWidthPreset()
Get width preset.
$cmd
Definition: sahs_server.php:35
addMDObserver($a_class, $a_method, $a_section)
uploadMultipleSubtitleFileObject()
Upload multiple subtitles.
editObject()
edit media object properties
static getDir($a_dir, $a_rec=false, $a_sub_dir="")
get directory
This class represents a checkbox property in a property form.
static getSupportedFormatsInfo()
Get all supported formats.
Class ilTableGUI.
_getMediaInfoHTML(&$a_mob)
get media info as html
setHeightPreset($a_val)
Set height preset.
setConstrainProportions($a_constrainproportions)
Set Constrain Proportions.
setBackTitle($a_title)
set title for back tab
setInfo($a_info)
Set Info.
saveMultiSrtObject()
Save selected srt files as new srt files.
setPropertiesSubTabs($a_active)
Set subtabs for properties.
getHeightPreset()
Get height preset.
global $ilCtrl
Definition: ilias.php:18
getValues()
Get values for form.
removeFullscreenObject()
remove fullscreen view
getFullscreenSizeObject()
set original size of fullscreen file
getStandardSizeObject()
set original size of standard file
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
cancelMultiSrtObject()
Cancel Multi Feedback.
editFilesObject()
administrate files of media object
List srt files from zip file for upload confirmation.
This class represents a property in a property form.
savePropertiesObject()
save properties in db and return to page edit screen
static _determineWidthHeight($a_format, $a_type, $a_file, $a_reference, $a_constrain_proportions, $a_use_original, $a_user_width, $a_user_height)
Determine width and height.
if(!is_array($argv)) $options
static renameExecutables($a_dir)
Rename executables.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
static fixFilename($a_name)
Fix filename of uploaded file.
static moveUploadedFile($a_file, $a_name, $a_target, $a_raise_errors=true, $a_mode="move_uploaded")
move uploaded file
Class ilObjectGUI Basic methods of all Output classes.
getLocalMaphilightPath()
Get local path of maphilight file.
special template class to simplify handling of ITX/PEAR
createObject()
create new media object form
setAllowedSuffixes($a_suffixes)
Set allowed Suffixes.
setSize($a_size)
Set Size.
Class ilMediaItem.
This class represents a text property in a property form.
static initMediaElementJs($a_tpl=null)
Init mediaelement.js scripts.
redirection script todo: (a better solution should control the processing via a xml file) ...
saveObject()
create new media object in dom and update page in db
Class ilObjMediaObject.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
This class represents a width/height item in a property form.
static getForbiddenFileTypes()
Get forbidden file types.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static makeDir($a_dir)
creates a new directory and inherits all filesystem permissions of the parent directory You may pass ...
static stripSlashesArray($a_arr, $a_strip_html=true, $a_allow="")
Strip slashes from array.
if(!file_exists(getcwd().'/ilias.ini.php')) if(isset( $_GET["client_id"]))
registration confirmation script for ilias
Definition: confirmReg.php:20
User interface class for map editor.
Class ilObjMediaObjectGUI.
resizeImagesObject()
resize images to specified size
static secureLink($a_str)
assignFullscreenObject($a_file)
assign file to fullscreen view
This class represents a non editable value in a property form.
static getMimeType($a_file, $a_external=false)
get mime type for file
global $ilUser
Definition: imgupload.php:15
deleteFileObject()
delete object file
static getRestrictedFileTypes()
Get restricted file types (this is for the input form, this list will be empty, if "allowed list" is ...
assignStandardObject($a_file)
assign file to standard view
This class represents a text area property in a property form.
setWidthPreset($a_val)
Set width preset.
static switchColor($a_num, $a_css1, $a_css2)
switches style sheets for each even $a_num (used for changing colors of different result rows) ...
static _useAutoStartParameterOnly($a_loc, $a_format)
Check whether only autostart parameter should be supported (instead of parameters input field...
confirmSrtDeletionObject()
Confirm srt file deletion.
File System Explorer GUI class.
static lookupKeywords($a_rbac_id, $a_obj_id, $a_return_ids=false)
Lookup Keywords.
static _getSimpleMimeTypes()
Get simple mime types that deactivate parameter property files tab in ILIAS.
& executeCommand()
Execute current command.
static delDir($a_dir, $a_clean_only=false)
removes a dir and all its content (subdirs and files) recursively
static getWebspaceDir($mode="filesystem")
get webspace directory
setSuffixes($a_suffixes)
Set Accepted Suffixes.
_resizeImage($a_file, $a_width, $a_height, $a_constrain_prop=false)
resize image and return new image file ("_width_height" string appended)
_getDirectory($a_mob_id)
get directory for files of media object (static)
initForm($a_mode="create")
Init creation form.
Confirmation screen class.
includePresentationJS($a_tpl=null)
Include media object presentation JS.