ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
class.ilObjSAHSLearningModuleGUI.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2011 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4require_once "./Services/Object/classes/class.ilObjectGUI.php";
5require_once("./Services/FileSystem/classes/class.ilFileSystemGUI.php");
6
19{
25 function ilObjSAHSLearningModuleGUI($a_data,$a_id,$a_call_by_reference, $a_prepare_output = true)
26 {
27 global $lng;
28
29 $lng->loadLanguageModule("content");
30 $this->type = "sahs";
31 $this->ilObjectGUI($a_data,$a_id,$a_call_by_reference,false);
32 }
33
37 function &executeCommand()
38 {
39 global $ilAccess, $ilTabs, $ilErr;
40
41 if (strtolower($_GET["baseClass"]) == "iladministrationgui" ||
42 strtolower($_GET["baseClass"]) == "ilsahspresentationgui" ||
43 $this->getCreationMode() == true)
44 {
45 $this->prepareOutput();
46 }
47 else
48 {
49 $this->getTemplate();
50 $this->setLocator();
51 $this->setTabs();
52 $this->tpl->setTitleIcon(ilUtil::getImagePath("icon_lm.svg"));
53 $this->tpl->setTitle($this->object->getTitle());
54 }
55
56 $next_class = $this->ctrl->getNextClass($this);
57 $cmd = $this->ctrl->getCmd();
58
59 switch($next_class)
60 {
61 case 'ilobjectmetadatagui':
62 if(!$ilAccess->checkAccess('write','',$this->object->getRefId()))
63 {
64 $ilErr->raiseError($this->lng->txt('permission_denied'),$ilErr->WARNING);
65 }
66 include_once 'Services/Object/classes/class.ilObjectMetaDataGUI.php';
67 $md_gui = new ilObjectMetaDataGUI($this->object);
68 $this->ctrl->forwardCommand($md_gui);
69 break;
70
71 case 'ilpermissiongui':
72 include_once("Services/AccessControl/classes/class.ilPermissionGUI.php");
73 $perm_gui =& new ilPermissionGUI($this);
74 $ret =& $this->ctrl->forwardCommand($perm_gui);
75 break;
76
77 case "ilfilesystemgui":
78 $this->fs_gui =& new ilFileSystemGUI($this->object->getDataDirectory());
79 $this->fs_gui->setUseUploadDirectory(true);
80 $this->fs_gui->setTableId("sahsfs".$this->object->getId());
81 $ret =& $this->ctrl->forwardCommand($this->fs_gui);
82 break;
83
84 case "ilcertificategui":
85 $this->setSettingsSubTabs();
86 $ilTabs->setSubTabActive('certificate');
87 include_once "./Services/Certificate/classes/class.ilCertificateGUI.php";
88 include_once "./Modules/ScormAicc/classes/class.ilSCORMCertificateAdapter.php";
89 $output_gui = new ilCertificateGUI(new ilSCORMCertificateAdapter($this->object));
90 $ret =& $this->ctrl->forwardCommand($output_gui);
91 break;
92
93 case "illearningprogressgui":
94 include_once './Services/Tracking/classes/class.ilLearningProgressGUI.php';
95
96 $new_gui =& new ilLearningProgressGUI(ilLearningProgressGUI::LP_CONTEXT_REPOSITORY,$this->object->getRefId());
97 $this->ctrl->forwardCommand($new_gui);
98
99 break;
100
101 case 'illicensegui':
102 include_once("./Services/License/classes/class.ilLicenseGUI.php");
103 $license_gui =& new ilLicenseGUI($this);
104 $ret =& $this->ctrl->forwardCommand($license_gui);
105 break;
106
107 case "ilinfoscreengui":
108 include_once("./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
109
110 $info = new ilInfoScreenGUI($this);
111 $info->enablePrivateNotes();
112 $info->enableLearningProgress();
113
114 // add read / back button
115 if ($ilAccess->checkAccess("read", "", $_GET["ref_id"]))
116 {
117 if (!$this->object->getEditable())
118 {
119 $info->addButton($this->lng->txt("view"),
120 "ilias.php?baseClass=ilSAHSPresentationGUI&amp;ref_id=".$this->object->getRefID(),
121 ' target="ilContObj'.$this->object->getId().'" ');
122 }
123 }
124
125 $info->enableNews();
126 if ($ilAccess->checkAccess("write", "", $_GET["ref_id"]))
127 {
128 $info->enableNewsEditing();
129 $news_set = new ilSetting("news");
130 $enable_internal_rss = $news_set->get("enable_rss_for_internal");
131 if ($enable_internal_rss)
132 {
133 $info->setBlockProperty("news", "settings", true);
134 }
135 }
136 // show standard meta data section
137 $info->addMetaDataSections($this->object->getId(),0, $this->object->getType());
138
139 // forward the command
140 $this->ctrl->forwardCommand($info);
141 break;
142
143 case "ilcommonactiondispatchergui":
144 include_once("Services/Object/classes/class.ilCommonActionDispatcherGUI.php");
146 $this->ctrl->forwardCommand($gui);
147 break;
148
149 case "ilobjstylesheetgui":
150 //$this->addLocations();
151 $this->ctrl->setReturn($this, "properties");
152 $ilTabs->clearTargets();
153 $style_gui =& new ilObjStyleSheetGUI("", $this->object->getStyleSheetId(), false, false);
154 $style_gui->omitLocator();
155 if ($cmd == "create" || $_GET["new_type"]=="sty")
156 {
157 $style_gui->setCreationMode(true);
158 }
159 //$ret =& $style_gui->executeCommand();
160
161 if ($cmd == "confirmedDelete")
162 {
163 $this->object->setStyleSheetId(0);
164 $this->object->update();
165 }
166 $ret =& $this->ctrl->forwardCommand($style_gui);
167 if ($cmd == "save" || $cmd == "copyStyle" || $cmd == "importStyle")
168 {
169 $style_id = $ret;
170 $this->object->setStyleSheetId($style_id);
171 $this->object->update();
172 $this->ctrl->redirectByClass("ilobjstylesheetgui", "edit");
173 }
174 break;
175 default:
176 if ($this->object && !$this->object->getEditable())
177 {
178 $cmd = $this->ctrl->getCmd("properties");
179 }
180 else
181 {
182 $cmd = $this->ctrl->getCmd("frameset");
183 }
184 if ((strtolower($_GET["baseClass"]) == "iladministrationgui" ||
185 $this->getCreationMode() == true) &&
186 $cmd != "frameset")
187 {
188 $cmd.= "Object";
189 }
190
191 // #9225
192 if($cmd == "redrawHeaderAction")
193 {
194 $cmd .= "Object";
195 }
196
197 $ret =& $this->$cmd();
198 break;
199 }
200 }
201
202
203 function viewObject()
204 {
205 if (strtolower($_GET["baseClass"]) == "iladministrationgui")
206 {
207 parent::viewObject();
208 }
209 else
210 {
211 }
212 }
213
217 function properties()
218 {
219 }
220
224 function saveProperties()
225 {
226 }
227
231
235 function initCreationForms($a_new_type)
236 {
237 $forms = array();
238
239 $this->initUploadForm();
240 $forms[self::CFORM_IMPORT] = $this->form;
241
242 $this->initCreationForm();
243 $forms[self::CFORM_NEW] = $this->form;
244
245 return $forms;
246 }
247
253 public function initCreationForm()
254 {
255 global $lng, $ilCtrl;
256
257 include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
258 $this->form = new ilPropertyFormGUI();
259
260 // title
261 $ti = new ilTextInputGUI($this->lng->txt("title"), "title");
262 $ti->setSize(min(40, ilObject::TITLE_LENGTH));
263 $ti->setMaxLength(ilObject::TITLE_LENGTH);
264 $ti->setRequired(true);
265 $this->form->addItem($ti);
266
267 // text area
268 $ta = new ilTextAreaInputGUI($this->lng->txt("description"), "desc");
269 $ta->setCols(40);
270 $ta->setRows(2);
271 $this->form->addItem($ta);
272
273
274 $this->form->addCommandButton("save", $lng->txt("create"));
275 $this->form->addCommandButton("cancel", $lng->txt("cancel"));
276
277 $this->form->setTitle($lng->txt("scorm_new"));
278 $this->form->setFormAction($ilCtrl->getFormAction($this));
279 $this->form->setTarget(ilFrameTargetInfo::_getFrame("MainContent"));
280 }
281
285 public function initUploadForm()
286 {
287 global $lng, $ilCtrl;
288
289 include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
290 $this->form = new ilPropertyFormGUI();
291
292 // type selection
293 $options = array(
294 "scorm2004" => $lng->txt("lm_type_scorm2004"),
295 "scorm" => $lng->txt("lm_type_scorm")
296 // "aicc" => $lng->txt("lm_type_aicc"),
297 // "hacp" => $lng->txt("lm_type_hacp")
298 );
299 $si = new ilSelectInputGUI($this->lng->txt("type"), "sub_type");
300 $si->setOptions($options);
301 $this->form->addItem($si);
302
303 // input file
304 $fi = new ilFileInputGUI($this->lng->txt("select_file"), "scormfile");
305 $fi->setRequired(true);
306 $this->form->addItem($fi);
307
308 // todo "uploaded file"
309 // todo wysiwyg editor removement
310
311 include_once 'Services/FileSystem/classes/class.ilUploadFiles.php';
313 {
314 $options = array();
315 $fi->setRequired(false);
317 $options[""] = $this->lng->txt("cont_select_from_upload_dir");
318 foreach($files as $file)
319 {
320 $file = htmlspecialchars($file, ENT_QUOTES, "utf-8");
322 }
323 //
324 $si = new ilSelectInputGUI($this->lng->txt("cont_uploaded_file"), "uploaded_file");
325 $si->setOptions($options);
326 $this->form->addItem($si);
327 }
328
329
330 // validate file
331 $cb = new ilCheckboxInputGUI($this->lng->txt("cont_validate_file"), "validate");
332 $cb->setValue("y");
333 //$cb->setChecked(true);
334 $this->form->addItem($cb);
335
336 // import for editing
337 $cb = new ilCheckboxInputGUI($this->lng->txt("sahs_authoring_mode"), "editable");
338 $cb->setValue("y");
339 $cb->setInfo($this->lng->txt("sahs_authoring_mode_info"));
340 $this->form->addItem($cb);
341
342 //
343 $radg = new ilRadioGroupInputGUI($lng->txt("sahs_sequencing"), "import_sequencing");
344 $radg->setValue(0);
345 $op1 = new ilRadioOption($lng->txt("sahs_std_sequencing"), 0,$lng->txt("sahs_std_sequencing_info"));
346 $radg->addOption($op1);
347 $op1 = new ilRadioOption($lng->txt("sahs_import_sequencing"), 1,$lng->txt("sahs_import_sequencing_info"));
348 $radg->addOption($op1);
349 $cb->addSubItem($radg);
350
351
352 $this->form->addCommandButton("upload", $lng->txt("import"));
353 $this->form->addCommandButton("cancel", $lng->txt("cancel"));
354
355 $this->form->setTitle($lng->txt("import_sahs"));
356 $this->form->setFormAction($ilCtrl->getFormAction($this, "upload"));
357 $this->form->setTarget(ilFrameTargetInfo::_getFrame("MainContent"));
358 }
359
366 function uploadObject()
367 {
368 global $_FILES, $rbacsystem;
369
370 include_once 'Services/FileSystem/classes/class.ilUploadFiles.php';
371
372 // check create permission
373 if (!$rbacsystem->checkAccess("create", $_GET["ref_id"], "sahs"))
374 {
375 $this->ilias->raiseError($this->lng->txt("no_create_permission"), $this->ilias->error_obj->WARNING);
376 }
377 elseif ($_FILES["scormfile"]["name"])
378 {
379 // check if file was uploaded
380 $source = $_FILES["scormfile"]["tmp_name"];
381 if (($source == 'none') || (!$source))
382 {
383 $this->ilias->raiseError($this->lng->txt("msg_no_file"),$this->ilias->error_obj->MESSAGE);
384 }
385 // get_cfg_var("upload_max_filesize"); // get the may filesize form t he php.ini
386 switch ($__FILES["scormfile"]["error"])
387 {
388 case UPLOAD_ERR_INI_SIZE:
389 $this->ilias->raiseError($this->lng->txt("err_max_file_size_exceeds"),$this->ilias->error_obj->MESSAGE);
390 break;
391
392 case UPLOAD_ERR_FORM_SIZE:
393 $this->ilias->raiseError($this->lng->txt("err_max_file_size_exceeds"),$this->ilias->error_obj->MESSAGE);
394 break;
395
396 case UPLOAD_ERR_PARTIAL:
397 $this->ilias->raiseError($this->lng->txt("err_partial_file_upload"),$this->ilias->error_obj->MESSAGE);
398 break;
399
400 case UPLOAD_ERR_NO_FILE:
401 $this->ilias->raiseError($this->lng->txt("err_no_file_uploaded"),$this->ilias->error_obj->MESSAGE);
402 break;
403 }
404
405 $file = pathinfo($_FILES["scormfile"]["name"]);
406 }
407 elseif ($_POST["uploaded_file"])
408 {
409 // check if the file is in the upload directory and readable
410 if (!ilUploadFiles::_checkUploadFile($_POST["uploaded_file"]))
411 {
412 $this->ilias->raiseError($this->lng->txt("upload_error_file_not_found"),$this->ilias->error_obj->MESSAGE);
413 }
414
415 $file = pathinfo($_POST["uploaded_file"]);
416 }
417 else
418 {
419 $this->ilias->raiseError($this->lng->txt("msg_no_file"),$this->ilias->error_obj->MESSAGE);
420 }
421
422 $name = substr($file["basename"], 0, strlen($file["basename"]) - strlen($file["extension"]) - 1);
423 if ($name == "")
424 {
425 $name = $this->lng->txt("no_title");
426 }
427
428 // create and insert object in objecttree
429 switch ($_POST["sub_type"])
430 {
431
432 case "scorm2004":
433 include_once("./Modules/Scorm2004/classes/class.ilObjSCORM2004LearningModule.php");
434 $newObj = new ilObjSCORM2004LearningModule();
435 $newObj->setEditable($_POST["editable"]=='y');
436 $newObj->setImportSequencing($_POST["import_sequencing"]);
437 $newObj->setSequencingExpertMode($_POST["import_sequencing"]);
438 break;
439
440 case "scorm":
441 include_once("./Modules/ScormAicc/classes/class.ilObjSCORMLearningModule.php");
442 $newObj = new ilObjSCORMLearningModule();
443 break;
444
445 case "aicc":
446 include_once("./Modules/ScormAicc/classes/class.ilObjAICCLearningModule.php");
447 $newObj = new ilObjAICCLearningModule();
448 break;
449
450 case "hacp":
451 include_once("./Modules/ScormAicc/classes/class.ilObjHACPLearningModule.php");
452 $newObj = new ilObjHACPLearningModule();
453 break;
454 }
455
456 $newObj->setTitle($name);
457 $newObj->setSubType($_POST["sub_type"]);
458 $newObj->setDescription("");
459 $newObj->create(true);
460 $newObj->createReference();
461 $newObj->putInTree($_GET["ref_id"]);
462 $newObj->setPermissions($_GET["ref_id"]);
463 $newObj->notify("new",$_GET["ref_id"],$_GET["parent_non_rbac_id"],$_GET["ref_id"],$newObj->getRefId());
464
465 // create data directory, copy file to directory
466 $newObj->createDataDirectory();
467
468 if ($_FILES["scormfile"]["name"])
469 {
470 // copy uploaded file to data directory
471 $file_path = $newObj->getDataDirectory()."/".$_FILES["scormfile"]["name"];
472
473 ilUtil::moveUploadedFile($_FILES["scormfile"]["tmp_name"],
474 $_FILES["scormfile"]["name"], $file_path);
475 }
476 else
477 {
478 // copy uploaded file to data directory
479 $file_path = $newObj->getDataDirectory()."/". $_POST["uploaded_file"];
480
481 ilUploadFiles::_copyUploadFile($_POST["uploaded_file"], $file_path);
482 }
483
484 ilUtil::unzip($file_path);
485 ilUtil::renameExecutables($newObj->getDataDirectory());
486
487 $title = $newObj->readObject();
488 if ($title != "")
489 {
490 ilObject::_writeTitle($newObj->getId(), $title);
491 /*$md = new ilMD($newObj->getId(),0, $newObj->getType());
492 if(is_object($md_gen = $md->getGeneral()))
493 {
494 $md_gen->setTitle($title);
495 $md_gen->update();
496 }*/
497 }
498
499 //auto set learning progress settings
500 switch ($_POST["sub_type"])
501 {
502 case "scorm2004":
503 case "scorm":
504 $newObj->setLearningProgressSettingsAtUpload();
505 break;
506 }
507
508
509 ilUtil::sendInfo( $this->lng->txt($newObj->getType()."_added"), true);
510 ilUtil::redirect("ilias.php?baseClass=ilSAHSEditGUI&ref_id=".$newObj->getRefId());
511 }
512
513 function upload()
514 {
515 $this->uploadObject();
516 }
517
518
519
523 function saveObject()
524 {
525 if (trim($_POST["title"]) == "")
526 {
527 $this->ilias->raiseError($this->lng->txt("msg_no_title"),$this->ilias->error_obj->MESSAGE);
528 }
529
530 include_once("./Modules/Scorm2004/classes/class.ilObjSCORM2004LearningModule.php");
531 $newObj = new ilObjSCORM2004LearningModule();
532 $newObj->setTitle(ilUtil::stripSlashes($_POST["title"]));
533 $newObj->setSubType("scorm2004");
534 $newObj->setEditable(true);
535 $newObj->setDescription(ilUtil::stripSlashes($_POST["desc"]));
536 $newObj->create();
537 $newObj->createReference();
538 $newObj->putInTree($_GET["ref_id"]);
539 $newObj->setPermissions($_GET["ref_id"]);
540 $newObj->notify("new",$_GET["ref_id"],$_GET["parent_non_rbac_id"],$_GET["ref_id"],$newObj->getRefId());
541 $newObj->createDataDirectory();
542 $newObj->createScorm2004Tree();
543 ilUtil::sendInfo( $this->lng->txt($newObj->getType()."_added"), true);
544 ilUtil::redirect("ilias.php?baseClass=ilSAHSEditGUI&ref_id=".$newObj->getRefId());
545 }
546
547
551 function info()
552 {
553 $this->infoObject();
554 }
555
559 function owner()
560 {
561 $this->ownerObject();
562 }
563
567 function getTemplate()
568 {
569 global $lng;
570
571 $this->tpl->getStandardTemplate();
572 }
573
574
580/* function frameset()
581 {
582 $this->tpl = new ilTemplate("tpl.sahs_edit_frameset.html", false, false, "Modules/ScormAicc");
583 $this->tpl->setVariable("SRC",
584 $this->ctrl->getLinkTarget($this, "properties"));
585 $this->tpl->show("DEFAULT", false);
586 exit;
587 }*/
588
592 function setTabs()
593 {
594 $this->tpl->setTitleIcon(ilUtil::getImagePath("icon_lm.svg"));
595 $this->tpl->setTitle($this->object->getTitle());
596 if(strtolower($_GET["baseClass"]) == "ilsahseditgui") $this->getTabs($this->tabs_gui);
597 }
598
602 function certificate()
603 {
604 include_once "./Services/Certificate/classes/class.ilCertificateGUI.php";
605 include_once "./Modules/ScormAicc/classes/class.ilSCORMCertificateAdapter.php";
606 $output_gui = new ilCertificateGUI(new ilSCORMCertificateAdapter($this->object));
607 $output_gui->certificateEditor();
608 }
609
615 function getTabs(&$tabs_gui)
616 {
617 global $rbacsystem, $ilUser, $ilCtrl, $ilHelp;
618
619 if ($this->ctrl->getCmd() == "delete")
620 {
621 return;
622 }
623
624 switch ($this->object->getSubType())
625 {
626 case "scorm2004":
627 $ilHelp->setScreenIdComponent("sahs13");
628 break;
629
630 case "scorm":
631 $ilHelp->setScreenIdComponent("sahs12");
632 break;
633 }
634
635 // file system gui tabs
636 // properties
637 $ilCtrl->setParameterByClass("ilfilesystemgui", "resetoffset", 1);
638 $tabs_gui->addTarget("cont_list_files",
639 $this->ctrl->getLinkTargetByClass("ilfilesystemgui", "listFiles"), "",
640 "ilfilesystemgui");
641 $ilCtrl->setParameterByClass("ilfilesystemgui", "resetoffset", "");
642
643 // info screen
644 $force_active = ($this->ctrl->getNextClass() == "ilinfoscreengui")
645 ? true
646 : false;
647 $tabs_gui->addTarget("info_short",
648 $this->ctrl->getLinkTargetByClass("ilinfoscreengui", "showSummary"), "",
649 "ilinfoscreengui", "", $force_active);
650
651 // properties
652 $tabs_gui->addTarget("settings",
653 $this->ctrl->getLinkTarget($this, "properties"), array("", "properties"),
654 get_class($this));
655
656 // learning progress and offline mode
657 include_once './Services/Tracking/classes/class.ilLearningProgressAccess.php';
658 if(ilLearningProgressAccess::checkAccess($this->object->getRefId()))
659 {
660 //if scorm && offline_mode activated
661 if ($this->object->getSubType() == "scorm2004" || $this->object->getSubType() == "scorm") {
662 if ($this->object->getOfflineMode() == true) {
663 $tabs_gui->addTarget("offline_mode_manager",
664 $this->ctrl->getLinkTarget($this, "offlineModeManager"),
665 "offlineModeManager",
666 "ilobjscormlearningmodulegui");
667 }
668 }
669
670 $tabs_gui->addTarget('learning_progress',
671 $this->ctrl->getLinkTargetByClass(array('illearningprogressgui'),''),
672 '',
673 array('illplistofobjectsgui','illplistofsettingsgui','illearningprogressgui','illplistofprogressgui'));
674 }
675
676 // tracking data
677 if($rbacsystem->checkAccess("read_learning_progress", $this->object->getRefId()) || $rbacsystem->checkAccess("edit_learning_progress", $this->object->getRefId()))
678 {
679 if ($this->object->getSubType() == "scorm2004" || $this->object->getSubType() == "scorm") {
680 include_once('./Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
682 if($privacy->enabledSahsProtocolData())
683 {
684 $tabs_gui->addTarget("cont_tracking_data",
685 $this->ctrl->getLinkTarget($this, "showTrackingItems"), "showTrackingItems",
686 get_class($this));
687 }
688 }
689 }
690 include_once("Services/License/classes/class.ilLicenseAccess.php");
691 if ($rbacsystem->checkAccess('edit_permission',$this->object->getRefId())
693 {
694 $tabs_gui->addTarget("license",
695 $this->ctrl->getLinkTargetByClass('illicensegui', ''),
696 "", "illicensegui");
697 }
698
699 // edit meta
700 include_once "Services/Object/classes/class.ilObjectMetaDataGUI.php";
701 $mdgui = new ilObjectMetaDataGUI($this->object);
702 $mdtab = $mdgui->getTab();
703 if($mdtab)
704 {
705 $tabs_gui->addTarget("meta_data",
706 $mdtab,
707 "", "ilmdeditorgui");
708 }
709
710 // perm
711 if ($rbacsystem->checkAccess('edit_permission',$this->object->getRefId()))
712 {
713 $tabs_gui->addTarget("perm_settings",
714 $this->ctrl->getLinkTargetByClass(array(get_class($this),'ilpermissiongui'), "perm"), array("perm","info","owner"), 'ilpermissiongui');
715 }
716 }
717
721 public static function _goto($a_target)
722 {
723 global $ilAccess, $ilErr, $lng;
724
725 $parts = explode("_", $a_target);
726
727 if ($ilAccess->checkAccess("write", "", $parts[0]))
728 {
729 $_GET["cmd"] = "";
730 $_GET["baseClass"] = "ilSAHSEditGUI";
731 $_GET["ref_id"] = $parts[0];
732 $_GET["obj_id"] = $parts[1];
733 include("ilias.php");
734 exit;
735 }
736 if ($ilAccess->checkAccess("visible", "", $parts[0]) || $ilAccess->checkAccess("read", "", $parts[0]))
737 {
738 $_GET["cmd"] = "infoScreen";
739 $_GET["baseClass"] = "ilSAHSPresentationGUI";
740 $_GET["ref_id"] = $parts[0];
741 include("ilias.php");
742 exit;
743 }
744 else
745 {
746 if ($ilAccess->checkAccess("read", "", ROOT_FOLDER_ID))
747 {
748 ilUtil::sendInfo(sprintf($lng->txt("msg_no_perm_read_item"),
751 }
752 }
753
754 $ilErr->raiseError($lng->txt("msg_no_perm_read"), $ilErr->FATAL);
755 }
756
758 {
759 global $ilLocator;
760
761 if (is_object($this->object))
762 {
763 $ilLocator->addItem($this->object->getTitle(),
764 $this->ctrl->getLinkTargetByClass("ilinfoscreengui", "showSummary"), "", $_GET["ref_id"]);
765 }
766 }
767
774 function editContent()
775 {
776 global $ilCtrl;
777
778 if (!$this->object->getEditable())
779 {
780 $ilCtrl->redirectByClass("ilfilesystemgui", "listFiles");
781 }
782 else
783 {
784 $ilCtrl->redirectByClass("ilobjscorm2004learningmodulegui", "editOrganization");
785 }
786 }
787
792 {
793 global $lng, $ilTabs, $ilCtrl;
794
795 $ilTabs->addSubTabTarget("cont_settings",
796 $this->ctrl->getLinkTarget($this, "properties"), array("edit", ""),
797 get_class($this));
798
799 $ilTabs->addSubTabTarget("cont_sc_new_version",
800 $this->ctrl->getLinkTarget($this, "newModuleVersion"), array("edit", ""),
801 get_class($this));
802
803 include_once "Services/Certificate/classes/class.ilCertificate.php";
805 {
806 // // create and insert object in objecttree
807 // $ilTabs->addSubTabTarget("certificate",
808 // $this->ctrl->getLinkTarget($this, "certificate"),
809 // array("certificate", "certificateEditor", "certificateRemoveBackground", "certificateSave",
810 // "certificatePreview", "certificateDelete", "certificateUpload", "certificateImport")
811 // );
812 $ilTabs->addSubTabTarget(
813 "certificate",
814 $this->ctrl->getLinkTargetByClass("ilcertificategui", "certificateeditor"),
815 "", "ilcertificategui");
816 }
817
818 $ilTabs->setTabActive('settings');
819 }
820
821} // END class.ilObjSAHSLearningModule
822?>
print $file
$_GET["client_id"]
GUI class to create PDF certificates.
This class represents a checkbox property in a property form.
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
This class represents a file property in a property form.
File System Explorer GUI class.
static _getFrame($a_class, $a_type='')
Get content frame name.
Class ilInfoScreenGUI.
static checkAccess($a_ref_id, $a_allow_only_read=true)
check access to learning progress
Class ilObjUserTrackingGUI.
static _isEnabled()
Check, if licencing is enabled This check is called from the ilAccessHandler class.
Class ilObjAICCLearningModule.
Class ilObjAICCLearningModule.
SCORM/AICC/HACP Learning Modules.
getTabs(&$tabs_gui)
adds tabs to tab gui object
addLocatorItems()
should be overwritten to add object specific items (repository items are preloaded)
ilObjSAHSLearningModuleGUI($a_data, $a_id, $a_call_by_reference, $a_prepare_output=true)
Constructor.
saveObject()
save new learning module to db
setTabs()
output main frameset of media pool left frame: explorer tree of folders right frame: media pool conte...
static _goto($a_target)
goto target course
viewObject()
list childs of current object
initCreationForms($a_new_type)
no manual SCORM creation, only import at the time
certificate()
Shows the certificate editor.
owner()
show owner of learning module
getTemplate()
output main header (title and locator)
uploadObject()
display status information or report errors messages in case of error
Class ilObjSCORM2004LearningModule.
Class ilObjSCORMLearningModule.
Class ilObjStyleSheetGUI.
Class ilObjectGUI Basic methods of all Output classes.
ilObjectGUI($a_data, $a_id=0, $a_call_by_reference=true, $a_prepare_output=true)
Constructor @access public.
prepareOutput()
prepare output
static _gotoRepositoryRoot($a_raise_error=false)
Goto repository root.
getCreationMode()
get creation mode
setLocator()
set Locator
Class ilObjectMetaDataGUI.
static _lookupObjId($a_id)
const TITLE_LENGTH
max length of object title
_writeTitle($a_obj_id, $a_title)
write title to db (static)
static _lookupTitle($a_id)
lookup object title
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
static _getInstance()
Get instance of ilPrivacySettings.
This class represents a property form user interface.
This class represents a property in a property form.
This class represents an option in a radio group.
This class represents a selection list property in a property form.
ILIAS Setting Class.
This class represents a text area property in a property form.
This class represents a text property in a property form.
static _getUploadFiles()
Get a list of readable files in the upload directory.
static _copyUploadFile($a_file, $a_target, $a_raise_errors=true)
copy an uploaded file to the target directory (including virus check)
static _checkUploadFile($a_file)
Check if a file exists in the upload directory and is readable.
static _getUploadDirectory()
Get the directory with uploaded files.
static moveUploadedFile($a_file, $a_name, $a_target, $a_raise_errors=true, $a_mode="move_uploaded")
move uploaded file
static redirect($a_script)
http redirect to other script
static unzip($a_file, $overwrite=false, $a_flat=false)
unzip file
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
static renameExecutables($a_dir)
Rename uploaded executables for security reasons.
$_POST['username']
Definition: cron.php:12
$info
Definition: example_052.php:80
global $ilCtrl
Definition: ilias.php:18
exit
Definition: login.php:54
redirection script todo: (a better solution should control the processing via a xml file)
$cmd
Definition: sahs_server.php:35
if(!is_array($argv)) $options
global $ilUser
Definition: imgupload.php:15