24 require_once
"classes/class.ilObjectGUI.php";
25 require_once(
"classes/class.ilFileSystemGUI.php");
26 require_once(
"classes/class.ilTabsGUI.php");
50 $lng->loadLanguageModule(
"content");
52 $this->
ilObjectGUI($a_data,$a_id,$a_call_by_reference,
false);
53 #$this->tabs_gui =& new ilTabsGUI();
62 global $ilAccess, $ilTabs;
64 if (strtolower(
$_GET[
"baseClass"]) ==
"iladministrationgui" ||
76 $next_class = $this->ctrl->getNextClass($this);
77 $cmd = $this->ctrl->getCmd();
83 include_once
'Services/MetaData/classes/class.ilMDEditorGUI.php';
85 $md_gui =&
new ilMDEditorGUI($this->object->getId(), 0, $this->
object->getType());
86 $md_gui->
addObserver($this->
object,
'MDUpdateListener',
'General');
88 $this->ctrl->forwardCommand($md_gui);
91 case 'ilpermissiongui':
92 include_once(
"Services/AccessControl/classes/class.ilPermissionGUI.php");
94 $ret =& $this->ctrl->forwardCommand($perm_gui);
97 case "ilfilesystemgui":
98 $this->fs_gui =&
new ilFileSystemGUI($this->object->getDataDirectory());
99 $this->fs_gui->
setTableId(
"sahsfs".$this->object->getId());
100 $ret =& $this->ctrl->forwardCommand($this->fs_gui);
103 case "ilcertificategui":
104 include_once
"./Services/Certificate/classes/class.ilCertificateGUI.php";
105 include_once
"./Modules/ScormAicc/classes/class.ilSCORMCertificateAdapter.php";
107 $ret =& $this->ctrl->forwardCommand($output_gui);
110 case "illearningprogressgui":
111 include_once
'./Services/Tracking/classes/class.ilLearningProgressGUI.php';
114 $this->ctrl->forwardCommand($new_gui);
119 include_once(
"./Services/License/classes/class.ilLicenseGUI.php");
121 $ret =& $this->ctrl->forwardCommand($license_gui);
124 case "ilinfoscreengui":
125 include_once(
"./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
128 $info->enablePrivateNotes();
129 $info->enableLearningProgress();
132 if ($ilAccess->checkAccess(
"read",
"",
$_GET[
"ref_id"]))
134 if (!$this->object->getEditable())
136 $info->addButton($this->lng->txt(
"view"),
137 "ilias.php?baseClass=ilSAHSPresentationGUI&ref_id=".$this->object->getRefID(),
138 ' target="ilContObj'.$this->object->getId().
'" ');
143 if ($ilAccess->checkAccess(
"write",
"",
$_GET[
"ref_id"]))
145 $info->enableNewsEditing();
147 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
148 if ($enable_internal_rss)
150 $info->setBlockProperty(
"news",
"settings",
true);
154 $info->addMetaDataSections($this->object->getId(),0, $this->
object->getType());
157 $this->ctrl->forwardCommand($info);
160 case "ilobjstylesheetgui":
162 $this->ctrl->setReturn($this,
"editStyleProperties");
163 $ilTabs->clearTargets();
164 $style_gui =&
new ilObjStyleSheetGUI(
"", $this->object->getStyleSheetId(),
false,
false);
166 if (
$cmd ==
"create" ||
$_GET[
"new_type"]==
"sty")
168 $style_gui->setCreationMode(
true);
172 if (
$cmd ==
"confirmedDelete")
174 $this->
object->setStyleSheetId(0);
175 $this->
object->update();
177 $ret =& $this->ctrl->forwardCommand($style_gui);
178 if (
$cmd ==
"save" ||
$cmd ==
"copyStyle" ||
$cmd ==
"importStyle")
181 $this->
object->setStyleSheetId($style_id);
182 $this->
object->update();
183 $this->ctrl->redirectByClass(
"ilobjstylesheetgui",
"edit");
187 $cmd = $this->ctrl->getCmd(
"frameset");
188 if ((strtolower(
$_GET[
"baseClass"]) ==
"iladministrationgui" ||
203 if (strtolower(
$_GET[
"baseClass"]) ==
"iladministrationgui")
235 $this->ctrl->setParameter($this,
"new_type",
"sahs");
237 $html = $this->form->getHTML();
239 $html.=
"<br />".$this->form->getHTML();
240 $this->tpl->setContent($html);
242 $this->tpl->addBlockFile(
"ADM_CONTENT",
"adm_content",
"tpl.slm_create.html",
"Modules/ScormAicc");
246 $this->tpl->setVariable(
"ALT_IMG", $this->lng->txt(
"obj_sahs"));
248 $this->ctrl->setParameter($this,
"new_type",
"sahs");
249 $this->tpl->setVariable(
"FORMACTION", $this->ctrl->getFormAction($this));
250 $this->tpl->setVariable(
"CMD_SUBMIT",
"save");
252 $this->tpl->setVariable(
"TXT_HEADER", $this->lng->txt(
"scorm_new"));
253 $this->tpl->setVariable(
"TXT_TITLE", $this->lng->txt(
"title"));
254 $this->tpl->setVariable(
"TXT_DESC", $this->lng->txt(
"desc"));
255 $this->tpl->setVariable(
"TXT_SUBMIT", $this->lng->txt(
"scorm_add"));
257 $this->tpl->setVariable(
"BTN_NAME",
"upload");
260 $this->tpl->setVariable(
"TXT_SELECT_LMTYPE", $this->lng->txt(
"type"));
261 $this->tpl->setVariable(
"TXT_TYPE_AICC", $this->lng->txt(
"lm_type_aicc"));
262 $this->tpl->setVariable(
"TXT_TYPE_HACP", $this->lng->txt(
"lm_type_hacp"));
263 $this->tpl->setVariable(
"TXT_TYPE_SCORM", $this->lng->txt(
"lm_type_scorm"));
265 $this->tpl->setVariable(
"TXT_TYPE_SCORM2004", $this->lng->txt(
"lm_type_scorm2004"));
267 $this->tpl->setVariable(
"TXT_UPLOAD", $this->lng->txt(
"upload"));
268 $this->tpl->setVariable(
"TXT_CANCEL", $this->lng->txt(
"cancel"));
269 $this->tpl->setVariable(
"TXT_IMPORT_LM", $this->lng->txt(
"import_sahs"));
270 $this->tpl->setVariable(
"TXT_SELECT_FILE", $this->lng->txt(
"select_file"));
271 $this->tpl->setVariable(
"TXT_VALIDATE_FILE", $this->lng->txt(
"cont_validate_file"));
272 $this->tpl->setVariable(
"TXT_EDITABLE_LM", $this->lng->txt(
"scorm_editable"));
273 $this->tpl->setVariable(
"TXT_EDITABLE_LM_COMMENTS", $this->lng->txt(
"scorm_editable_comments"));
277 $umf=get_cfg_var(
"upload_max_filesize");
279 $pms=get_cfg_var(
"post_max_size");
282 $multiplier_a=array(
"K"=>1024,
"M"=>1024*1024,
"G"=>1024*1024*1024);
284 $umf_parts=preg_split(
"/(\d+)([K|G|M])/", $umf, -1, PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY);
285 $pms_parts=preg_split(
"/(\d+)([K|G|M])/", $pms, -1, PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY);
287 if (count($umf_parts) == 2) { $umf = $umf_parts[0]*$multiplier_a[$umf_parts[1]]; }
288 if (count($pms_parts) == 2) { $pms = $pms_parts[0]*$multiplier_a[$pms_parts[1]]; }
291 $max_filesize=min($umf, $pms);
293 if (!$max_filesize) $max_filesize=max($umf, $pms);
296 $max_filesize=sprintf(
"%.1f MB",$max_filesize/1024/1024);
299 $this->tpl->setVariable(
"TXT_FILE_INFO", $this->lng->txt(
"file_notice").
" $max_filesize");
301 include_once
'Services/FileSystemStorage/classes/class.ilUploadFiles.php';
307 $file = htmlspecialchars($file, ENT_QUOTES,
"utf-8");
308 $this->tpl->setCurrentBlock(
"option_uploaded_file");
309 $this->tpl->setVariable(
"UPLOADED_FILENAME", $file);
310 $this->tpl->setVariable(
"TXT_UPLOADED_FILENAME", $file);
311 $this->tpl->parseCurrentBlock();
313 $this->tpl->setCurrentBlock(
"select_uploaded_file");
314 $this->tpl->setVariable(
"TXT_SELECT_FROM_UPLOAD_DIR", $this->lng->txt(
"cont_select_from_upload_dir"));
315 $this->tpl->setVariable(
"TXT_UPLOADED_FILE", $this->lng->txt(
"cont_uploaded_file"));
316 $this->tpl->parseCurrentBlock();
331 include_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
338 $ti->setRequired(
true);
339 $this->form->addItem($ti);
345 $this->form->addItem($ta);
348 $this->form->addCommandButton(
"save", $lng->txt(
"create"));
349 $this->form->addCommandButton(
"cancel", $lng->txt(
"cancel"));
351 $this->form->setTitle($lng->txt(
"scorm_new"));
352 $this->form->setFormAction($ilCtrl->getFormAction($this));
363 include_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
368 "scorm2004" => $lng->txt(
"lm_type_scorm2004"),
369 "scorm" => $lng->txt(
"lm_type_scorm"),
370 "aicc" => $lng->txt(
"lm_type_aicc"),
371 "hacp" => $lng->txt(
"lm_type_hacp")
375 $this->form->addItem($si);
378 $fi =
new ilFileInputGUI($this->lng->txt(
"select_file"),
"scormfile");
380 $this->form->addItem($fi);
385 include_once
'Services/FileSystemStorage/classes/class.ilUploadFiles.php';
389 $fi->setRequired(
false);
391 $options[
""] = $this->lng->txt(
"cont_select_from_upload_dir");
394 $file = htmlspecialchars($file, ENT_QUOTES,
"utf-8");
398 $si =
new ilSelectInputGUI($this->lng->txt(
"cont_uploaded_file"),
"uploaded_file");
400 $this->form->addItem($si);
407 $cb->setChecked(
true);
408 $this->form->addItem($cb);
413 $cb->setInfo($this->lng->txt(
"scorm_editable_comments"));
414 $this->form->addItem($cb);
417 $this->form->addCommandButton(
"upload", $lng->txt(
"import"));
418 $this->form->addCommandButton(
"cancel", $lng->txt(
"cancel"));
420 $this->form->setTitle($lng->txt(
"import_sahs"));
421 $this->form->setFormAction($ilCtrl->getFormAction($this));
503 global $_FILES, $rbacsystem;
505 include_once
'Services/FileSystemStorage/classes/class.ilUploadFiles.php';
508 if (!$rbacsystem->checkAccess(
"create",
$_GET[
"ref_id"],
"sahs"))
510 $this->ilias->raiseError($this->lng->txt(
"no_create_permission"), $this->ilias->error_obj->WARNING);
512 elseif ($_FILES[
"scormfile"][
"name"])
515 $source = $_FILES[
"scormfile"][
"tmp_name"];
516 if (($source ==
'none') || (!$source))
518 $this->ilias->raiseError($this->lng->txt(
"msg_no_file"),$this->ilias->error_obj->MESSAGE);
521 switch ($__FILES[
"scormfile"][
"error"])
523 case UPLOAD_ERR_INI_SIZE:
524 $this->ilias->raiseError($this->lng->txt(
"err_max_file_size_exceeds"),$this->ilias->error_obj->MESSAGE);
527 case UPLOAD_ERR_FORM_SIZE:
528 $this->ilias->raiseError($this->lng->txt(
"err_max_file_size_exceeds"),$this->ilias->error_obj->MESSAGE);
531 case UPLOAD_ERR_PARTIAL:
532 $this->ilias->raiseError($this->lng->txt(
"err_partial_file_upload"),$this->ilias->error_obj->MESSAGE);
535 case UPLOAD_ERR_NO_FILE:
536 $this->ilias->raiseError($this->lng->txt(
"err_no_file_uploaded"),$this->ilias->error_obj->MESSAGE);
540 $file = pathinfo($_FILES[
"scormfile"][
"name"]);
542 elseif (
$_POST[
"uploaded_file"])
547 $this->ilias->raiseError($this->lng->txt(
"upload_error_file_not_found"),$this->ilias->error_obj->MESSAGE);
554 $this->ilias->raiseError($this->lng->txt(
"msg_no_file"),$this->ilias->error_obj->MESSAGE);
557 $name = substr(
$file[
"basename"], 0, strlen(
$file[
"basename"]) - strlen(
$file[
"extension"]) - 1);
560 $name = $this->lng->txt(
"no_title");
564 switch (
$_POST[
"sub_type"])
568 include_once(
"./Modules/Scorm2004/classes/class.ilObjSCORM2004LearningModule.php");
570 $newObj->setEditable(
$_POST[
"editable"]==
'y');
574 include_once(
"./Modules/ScormAicc/classes/class.ilObjSCORMLearningModule.php");
579 include_once(
"./Modules/ScormAicc/classes/class.ilObjAICCLearningModule.php");
584 include_once(
"./Modules/ScormAicc/classes/class.ilObjHACPLearningModule.php");
589 $newObj->setTitle(
$name);
590 $newObj->setSubType(
$_POST[
"sub_type"]);
591 $newObj->setDescription(
"");
592 $newObj->create(
true);
593 $newObj->createReference();
594 $newObj->putInTree(
$_GET[
"ref_id"]);
595 $newObj->setPermissions(
$_GET[
"ref_id"]);
596 $newObj->notify(
"new",
$_GET[
"ref_id"],
$_GET[
"parent_non_rbac_id"],
$_GET[
"ref_id"],$newObj->getRefId());
599 $newObj->createDataDirectory();
601 if ($_FILES[
"scormfile"][
"name"])
604 $file_path = $newObj->getDataDirectory().
"/".$_FILES[
"scormfile"][
"name"];
607 $_FILES[
"scormfile"][
"name"], $file_path);
612 $file_path = $newObj->getDataDirectory().
"/".
$_POST[
"uploaded_file"];
620 $title = $newObj->readObject();
633 ilUtil::redirect(
"ilias.php?baseClass=ilSAHSEditGUI&ref_id=".$newObj->getRefId());
648 if (trim(
$_POST[
"title"]) ==
"")
650 $this->ilias->raiseError($this->lng->txt(
"msg_no_title"),$this->ilias->error_obj->MESSAGE);
653 include_once(
"./Modules/Scorm2004/classes/class.ilObjSCORM2004LearningModule.php");
656 $newObj->setSubType(
"scorm2004");
657 $newObj->setEditable(
true);
660 $newObj->createReference();
661 $newObj->putInTree(
$_GET[
"ref_id"]);
662 $newObj->setPermissions(
$_GET[
"ref_id"]);
663 $newObj->notify(
"new",
$_GET[
"ref_id"],
$_GET[
"parent_non_rbac_id"],
$_GET[
"ref_id"],$newObj->getRefId());
664 $newObj->createDataDirectory();
665 $newObj->createScorm2004Tree();
667 ilUtil::redirect(
"ilias.php?baseClass=ilSAHSEditGUI&ref_id=".$newObj->getRefId());
684 $this->ownerObject();
694 $this->tpl->addBlockFile(
"CONTENT",
"content",
"tpl.adm_content.html");
696 $this->tpl->addBlockFile(
"STATUSLINE",
"statusline",
"tpl.statusline.html");
708 $this->tpl =
new ilTemplate(
"tpl.sahs_edit_frameset.html",
false,
false,
"Modules/ScormAicc");
709 $this->tpl->setVariable(
"SRC",
710 $this->ctrl->getLinkTarget($this,
"properties"));
711 $this->tpl->show(
"DEFAULT",
false);
720 $this->tpl->setCurrentBlock(
"header_image");
722 $this->tpl->parseCurrentBlock();
724 $this->
getTabs($this->tabs_gui);
725 #$this->tpl->setVariable("TABS", $this->tabs_gui->getHTML());
726 $this->tpl->setVariable(
"HEADER", $this->object->getTitle());
734 include_once
"./Services/Certificate/classes/class.ilCertificateGUI.php";
735 include_once
"./Modules/ScormAicc/classes/class.ilSCORMCertificateAdapter.php";
737 $output_gui->certificateEditor();
747 global $rbacsystem, $ilUser,
$ilCtrl;
749 if ($this->ctrl->getCmd() ==
"delete")
756 $ilCtrl->setParameterByClass(
"ilfilesystemgui",
"resetoffset", 1);
757 $tabs_gui->addTarget(
"cont_list_files",
758 $this->ctrl->getLinkTargetByClass(
"ilfilesystemgui",
"listFiles"),
"",
760 $ilCtrl->setParameterByClass(
"ilfilesystemgui",
"resetoffset",
"");
763 $force_active = ($this->ctrl->getNextClass() ==
"ilinfoscreengui")
766 $tabs_gui->addTarget(
"info_short",
767 $this->ctrl->getLinkTargetByClass(
"ilinfoscreengui",
"showSummary"),
"",
768 "ilinfoscreengui",
"", $force_active);
771 $tabs_gui->addTarget(
"settings",
772 $this->ctrl->getLinkTarget($this,
"properties"),
"properties",
776 include_once
'./Services/Tracking/classes/class.ilLearningProgressAccess.php';
779 $tabs_gui->addTarget(
'learning_progress',
780 $this->ctrl->getLinkTargetByClass(array(
'illearningprogressgui'),
''),
782 array(
'illplistofobjectsgui',
'illplistofsettingsgui',
'illearningprogressgui',
'illplistofprogressgui'));
786 $tabs_gui->addTarget(
"cont_tracking_data",
787 $this->ctrl->getLinkTarget($this,
"showTrackingItems"),
"showTrackingItems",
791 switch ($this->object->getSubType())
797 $tabs_gui->addTarget(
"certificate",
798 $this->ctrl->getLinkTarget($this,
"certificate"),
799 array(
"certificate",
"certificateEditor",
"certificateRemoveBackground",
"certificateSave",
800 "certificatePreview",
"certificateDelete",
"certificateUpload",
"certificateImport")
805 include_once(
"Services/License/classes/class.ilLicenseAccess.php");
806 if ($rbacsystem->checkAccess(
'edit_permission',$this->object->getRefId())
809 $tabs_gui->addTarget(
"license",
810 $this->ctrl->getLinkTargetByClass(
'illicensegui',
''),
815 $tabs_gui->addTarget(
"meta_data",
816 $this->ctrl->getLinkTargetByClass(
'ilmdeditorgui',
''),
817 "",
"ilmdeditorgui");
820 if ($rbacsystem->checkAccess(
'edit_permission',$this->object->getRefId()))
822 $tabs_gui->addTarget(
"perm_settings",
823 $this->ctrl->getLinkTargetByClass(array(get_class($this),
'ilpermissiongui'),
"perm"), array(
"perm",
"info",
"owner"),
'ilpermissiongui');
834 $parts = explode(
"_", $a_target);
836 if ($ilAccess->checkAccess(
"write",
"", $parts[0]))
839 $_GET[
"baseClass"] =
"ilSAHSEditGUI";
840 $_GET[
"ref_id"] = $parts[0];
841 $_GET[
"obj_id"] = $parts[1];
842 include(
"ilias.php");
845 if ($ilAccess->checkAccess(
"visible",
"", $parts[0]))
847 $_GET[
"cmd"] =
"infoScreen";
848 $_GET[
"baseClass"] =
"ilSAHSPresentationGUI";
849 $_GET[
"ref_id"] = $parts[0];
850 include(
"ilias.php");
855 if ($ilAccess->checkAccess(
"read",
"", ROOT_FOLDER_ID))
857 $_GET[
"cmd"] =
"frameset";
858 $_GET[
"target"] =
"";
859 $_GET[
"ref_id"] = ROOT_FOLDER_ID;
862 include(
"repository.php");
867 $ilErr->raiseError($lng->txt(
"msg_no_perm_read"), $ilErr->FATAL);
874 if (is_object($this->
object))
876 $ilLocator->addItem($this->object->getTitle(),
877 $this->ctrl->getLinkTargetByClass(
"ilinfoscreengui",
"showSummary"),
"",
$_GET[
"ref_id"]);