5require_once
"./Services/Object/classes/class.ilObjectGUI.php";
6require_once(
"./Services/FileSystem/classes/class.ilFileSystemGUI.php");
7require_once(
"Services/User/classes/class.ilObjUser.php");
9require_once(
"./Modules/ScormAicc/classes/class.ilObjSAHSLearningModuleGUI.php");
10require_once(
"./Modules/ScormAicc/classes/class.ilObjSCORMLearningModule.php");
41 function __construct($a_data,$a_id,$a_call_by_reference, $a_prepare_output =
true)
45 $lng->loadLanguageModule(
"content");
46 $lng->loadLanguageModule(
"search");
49 parent::__construct($a_data,$a_id,$a_call_by_reference,
false);
59 if ($this->call_by_reference)
77 $lng->loadLanguageModule(
"style");
80 $ilTabs->setSubTabActive(
'cont_settings');
83 $ilToolbar->addButton($this->lng->txt(
"view"),
84 "ilias.php?baseClass=ilSAHSPresentationGUI&ref_id=".$this->object->getRefID(),
87 include_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
89 $this->form->setFormAction(
$ilCtrl->getFormAction($this));
90 $this->form->setTitle($this->lng->txt(
"cont_lm_properties"));
93 $this->
object->checkMasteryScoreValues();
96 $ti =
new ilTextInputGUI($this->lng->txt(
"title"),
"Fobject_title");
97 $ti->setMaxLength(200);
98 $ti->setValue($this->object->getTitle());
99 $this->form->addItem($ti);
103 $ti->setValue($this->object->getDescription());
104 $this->form->addItem($ti);
109 $this->form->addItem($ne);
113 $ne->setValue($this->object->getModuleVersion());
114 $ne->setInfo($this->lng->txt(
"cont_sc_version_info"));
115 $this->form->addItem($ne);
121 $sh->setTitle($this->lng->txt(
"activation"));
122 $this->form->addItem($sh);
127 if ($this->object->getOnline())
129 $cb->setChecked(
true);
131 $cb->setInfo($this->lng->txt(
"cont_online_info"));
132 $this->form->addItem($cb);
135 $cb =
new ilCheckboxInputGUI($this->lng->txt(
"cont_offline_mode_allow"),
"cobj_offline_mode");
137 $cb->setChecked($this->object->getOfflineMode());
138 include_once(
"./Modules/ScormAicc/classes/class.ilSCORMOfflineMode.php");
140 $cb->setDisabled(
true);
141 $cb->setInfo($this->lng->txt(
"cont_offline_mode_disable_not_allowed_info"));
143 $cb->setInfo($this->lng->txt(
"cont_offline_mode_allow_info"));
145 $this->form->addItem($cb);
151 $sh->setTitle($this->lng->txt(
"cont_presentation"));
152 $this->form->addItem($sh);
155 $op0 =
new ilRadioOption($this->lng->txt(
"cont_open_normal"),
"0");
156 $radg->addOption($op0);
157 $op1 =
new ilRadioOption($this->lng->txt(
"cont_open_iframe"),
"1");
158 $radg->addOption($op1);
159 $op2 =
new ilRadioOption($this->lng->txt(
"cont_open_window"),
"5");
160 $radg->addOption($op2);
161 $radg->setValue($this->object->getOpenMode());
165 $ni->setMaxLength(4);
167 $ni->setValue($this->object->getWidth());
168 $op1->addSubItem($ni);
170 $ni->setMaxLength(4);
172 $ni->setValue($this->object->getWidth());
173 $op2->addSubItem($ni);
176 $ni->setMaxLength(4);
178 $ni->setValue($this->object->getHeight());
179 $ni->setInfo($this->lng->txt(
"cont_width_height_info"));
180 $op1->addSubItem($ni);
182 $ni->setMaxLength(4);
184 $ni->setValue($this->object->getHeight());
185 $ni->setInfo($this->lng->txt(
"cont_width_height_info"));
186 $op2->addSubItem($ni);
188 $this->form->addItem($radg);
191 $cb =
new ilCheckboxInputGUI($this->lng->txt(
"cont_auto_last_visited"),
"cobj_auto_last_visited");
193 $cb->setChecked($this->object->getAuto_last_visited());
194 $cb->setInfo($this->lng->txt(
"cont_auto_last_visited_info"));
195 $this->form->addItem($cb);
198 $cb =
new ilCheckboxInputGUI($this->lng->txt(
"cont_sc_auto_continue"),
"auto_continue");
200 $cb->setChecked($this->object->getAutoContinue());
201 $this->form->addItem($cb);
207 $sh->setTitle($this->lng->txt(
"cont_scorm_options"));
208 $this->form->addItem($sh);
218 $options = array(
"normal" => $this->lng->txt(
"cont_sc_less_mode_normal"),
219 "browse" => $this->lng->txt(
"cont_sc_less_mode_browse"));
222 $si->setValue($this->object->getDefaultLessonMode());
223 $this->form->addItem(
$si);
226 $options = array(
"credit" => $this->lng->txt(
"cont_credit_on"),
227 "no_credit" => $this->lng->txt(
"cont_credit_off"));
230 $si->setValue($this->object->getCreditMode());
231 $si->setInfo($this->lng->txt(
"cont_credit_mode_info"));
232 $this->form->addItem(
$si);
236 "n" => $this->lng->txt(
"cont_sc_auto_review_no"),
242 "y" => $this->lng->txt(
"cont_sc_auto_review_completed_or_passed"),
246 $si->setValue($this->object->getAutoReviewChar());
248 $this->form->addItem(
$si);
251 if ($this->object->getMasteryScoreValues() !=
"") {
252 $ni =
new ilNumberInputGUI($this->lng->txt(
"cont_mastery_score_12"),
"mastery_score");
253 $ni->setMaxLength(3);
255 $ni->setValue($this->object->getMasteryScore());
256 $ni->setInfo($this->lng->txt(
"cont_mastery_score_12_info").$this->object->getMasteryScoreValues());
257 $this->form->addItem($ni);
264 $sh->setTitle($this->lng->txt(
"cont_rte_settings"));
265 $this->form->addItem($sh);
270 $cb->setChecked($this->object->getSession());
271 $cb->setInfo($this->lng->txt(
"cont_sc_usession_info"));
272 $this->form->addItem($cb);
275 $cb =
new ilCheckboxInputGUI($this->lng->txt(
"cont_interactions"),
"cobj_interactions");
277 $cb->setChecked($this->object->getInteractions());
278 $cb->setInfo($this->lng->txt(
"cont_interactions_info_12"));
279 $this->form->addItem($cb);
284 $cb->setChecked($this->object->getObjectives());
285 $cb->setInfo($this->lng->txt(
"cont_objectives_info"));
286 $this->form->addItem($cb);
289 $cb =
new ilCheckboxInputGUI($this->lng->txt(
"cont_time_from_lms"),
"cobj_time_from_lms");
291 $cb->setChecked($this->object->getTime_from_lms());
292 $cb->setInfo($this->lng->txt(
"cont_time_from_lms_info"));
293 $this->form->addItem($cb);
296 $cb =
new ilCheckboxInputGUI($this->lng->txt(
"cont_check_values"),
"cobj_check_values");
298 $cb->setChecked($this->object->getCheck_values());
299 $cb->setInfo($this->lng->txt(
"cont_check_values_info"));
300 $this->form->addItem($cb);
306 $sh->setTitle($this->lng->txt(
"cont_debugging"));
307 $this->form->addItem($sh);
312 $cb->setChecked($this->object->getDebug());
313 if ($this->object->getDebugActivated() ==
false)
315 $cb->setDisabled(
true);
316 $cb->setInfo($this->lng->txt(
"cont_debug_deactivated"));
320 $cb->setInfo($this->lng->txt(
"cont_debug_deactivate"));
322 $this->form->addItem($cb);
323 $this->form->addCommandButton(
"saveProperties",
$lng->txt(
"save"));
325 $tpl->setContent($this->form->getHTML());
336 $ilTabs->setSubTabActive(
'cont_sc_new_version');
342 $this->tpl->addBlockFile(
"ADM_CONTENT",
"adm_content",
"tpl.scorm_new_version_import.html",
"Modules/ScormAicc");
345 $this->tpl->setVariable(
"ALT_IMG", $this->lng->txt(
"obj_sahs"));
347 $this->ctrl->setParameter($this,
"new_type",
"sahs");
348 $this->tpl->setVariable(
"FORMACTION", $this->ctrl->getFormAction($this));
350 $this->tpl->setVariable(
"BTN_NAME",
"newModuleVersionUpload");
351 $this->tpl->setVariable(
"TARGET",
' target="'.
354 $this->tpl->setVariable(
"TXT_SELECT_LMTYPE", $this->lng->txt(
"type"));
356 if ($type ==
"scorm2004") {
357 $this->tpl->setVariable(
"TXT_TYPE", $this->lng->txt(
"lm_type_scorm2004"));
359 $this->tpl->setVariable(
"TXT_TYPE", $this->lng->txt(
"lm_type_scorm"));
362 include_once
'Services/FileSystem/classes/class.ilUploadFiles.php';
368 $file = htmlspecialchars(
$file, ENT_QUOTES,
"utf-8");
369 $this->tpl->setCurrentBlock(
"option_uploaded_file");
370 $this->tpl->setVariable(
"UPLOADED_FILENAME",
$file);
371 $this->tpl->setVariable(
"TXT_UPLOADED_FILENAME",
$file);
372 $this->tpl->parseCurrentBlock();
374 $this->tpl->setCurrentBlock(
"select_uploaded_file");
375 $this->tpl->setVariable(
"TXT_SELECT_FROM_UPLOAD_DIR", $this->lng->txt(
"cont_select_from_upload_dir"));
376 $this->tpl->setVariable(
"TXT_UPLOADED_FILE", $this->lng->txt(
"cont_uploaded_file"));
377 $this->tpl->parseCurrentBlock();
380 $this->tpl->setVariable(
"TXT_UPLOAD", $this->lng->txt(
"upload"));
381 $this->tpl->setVariable(
"TXT_CANCEL", $this->lng->txt(
"cancel"));
382 $this->tpl->setVariable(
"TXT_IMPORT_LM", $this->lng->txt(
"import_sahs"));
383 $this->tpl->setVariable(
"TXT_SELECT_FILE", $this->lng->txt(
"select_file"));
386 $this->tpl->setVariable(
"TXT_FILE_INFO", $this->lng->txt(
"file_notice").
" ".$this->getMaxFileSize());
393 $umf=get_cfg_var(
"upload_max_filesize");
395 $pms=get_cfg_var(
"post_max_size");
398 $multiplier_a=array(
"K"=>1024,
"M"=>1024*1024,
"G"=>1024*1024*1024);
403 if (count($umf_parts) == 2) { $umf = $umf_parts[0]*$multiplier_a[$umf_parts[1]]; }
404 if (count($pms_parts) == 2) { $pms = $pms_parts[0]*$multiplier_a[$pms_parts[1]]; }
407 $max_filesize=min($umf, $pms);
409 if (!$max_filesize) $max_filesize=max($umf, $pms);
412 return $max_filesize=
sprintf(
"%.1f MB",$max_filesize/1024/1024);
418 global $_FILES, $rbacsystem;
420 $unzip = PATH_TO_UNZIP;
421 $tocheck =
"imsmanifest.xml";
423 include_once
'Services/FileSystem/classes/class.ilUploadFiles.php';
426 if (!$rbacsystem->checkAccess(
"write",
$_GET[
"ref_id"]))
428 $this->
ilias->raiseError($this->lng->txt(
"no_create_permission"), $this->ilias->error_obj->WARNING);
430 elseif ($_FILES[
"scormfile"][
"name"])
433 $source = $_FILES[
"scormfile"][
"tmp_name"];
434 if (($source ==
'none') || (!$source))
441 elseif (
$_POST[
"uploaded_file"])
446 $this->
ilias->raiseError($this->lng->txt(
"upload_error_file_not_found"),$this->ilias->error_obj->MESSAGE);
450 $source = CLIENT_WEB_DIR .
"/" .
$_POST[
"uploaded_file"];
452 $source_is_copy =
true;
463 $pathinfo = pathinfo($source);
464 $dir = $pathinfo[
"dirname"];
465 $file = $pathinfo[
"basename"];
473 $tmp_file = $dir.
"/".
$_GET[
"ref_id"].
".".$tocheck;
474 require_once(
'./Services/Utilities/classes/class.ilFileUtils.php');
476 $new_manifest = file_get_contents($tmp_file);
482 $old_manifest = file_get_contents($this->object->getDataDirectory().
"/".$tocheck);
485 $check =
'/xmlns="http:\/\/www.imsglobal.org\/xsd\/imscp_v1p1"/';
486 $replace=
"xmlns=\"http://www.imsproject.org/xsd/imscp_rootv1p1p2\"";
487 $reload_manifest = preg_replace($check, $replace, $new_manifest);
490 if (strcmp($new_manifest,$old_manifest) == 0 || strcmp(utf8_encode($new_manifest),$old_manifest) == 0 ||
491 strcmp ($reload_manifest, $old_manifest) == 0 || strcmp(utf8_encode($reload_manifest),$old_manifest) == 0 ){
494 $module_version = $this->
object->getModuleVersion();
496 if ($_FILES[
"scormfile"][
"name"])
499 $file_path = $this->
object->getDataDirectory().
"/".$_FILES[
"scormfile"][
"name"].
".".$module_version;
500 $file_path = str_replace(
".zip.".$module_version,
".".$module_version.
".zip",$file_path);
507 $file_path = $this->
object->getDataDirectory().
"/".
$_POST[
"uploaded_file"].
".".$module_version;
508 $file_path = str_replace(
".zip.".$module_version,
".".$module_version.
".zip",$file_path);
510 require_once(
'./Services/Utilities/classes/class.ilFileUtils.php');
519 $this->
object->setModuleVersion($module_version+1);
520 $this->
object->update();
544 $this->
object->setTitle(
$_POST[
"Fobject_title"]);
545 $this->
object->setDescription(
$_POST[
"Fobject_description"]);
549 if ($tmpOfflineMode ==
true) {
550 if ($this->object->getOfflineMode() ==
false) {
551 $this->
object->zipLmForOfflineMode();
554 if (isset(
$_POST[
"mastery_score"])){
555 $this->
object->setMasteryScore(
$_POST[
"mastery_score"]);
559 $t_height = $this->
object->getHeight();
560 if (
$_POST[
"height_0"] != $this->object->getHeight()) $t_height =
$_POST[
"height_0"];
561 if (
$_POST[
"height_1"] != $this->object->getHeight()) $t_height =
$_POST[
"height_1"];
563 $t_width = $this->
object->getWidth();
564 if (
$_POST[
"width_0"] != $this->object->getWidth()) $t_width =
$_POST[
"width_0"];
565 if (
$_POST[
"width_1"] != $this->object->getWidth()) $t_width =
$_POST[
"width_1"];
568 $this->
object->setOfflineMode($tmpOfflineMode);
569 $this->
object->setOpenMode(
$_POST[
"open_mode"]);
570 $this->
object->setWidth($t_width);
571 $this->
object->setHeight($t_height);
574 $this->
object->setMaxAttempt(
$_POST[
"max_attempt"]);
575 $this->
object->setDefaultLessonMode(
$_POST[
"lesson_mode"]);
576 $this->
object->setCreditMode(
$_POST[
"credit_mode"]);
584 $this->
object->update();
586 $this->ctrl->redirect($this,
"properties");
597 $ilTabs->setTabActive(
"cont_tracking_data");
598 $ilTabs->setSubTabActive(
"cont_tracking_bysco");
600 $reports = array(
'exportSelectedCore',
'exportSelectedInteractions',
'exportSelectedObjectives',
'exportSelectedRaw');
601 $scoSelected =
"all";
604 $this->ctrl->setParameter($this,
'scoSelected',$scoSelected);
609 $this->ctrl->setParameter($this,
'report',$report);
611 include_once
'./Modules/ScormAicc/classes/class.ilSCORMTrackingItemsPerScoFilterGUI.php';
613 $filter->parse($scoSelected,$report,$reports);
614 if($report ==
"choose") {
615 $this->tpl->setContent($filter->form->getHTML());
617 $scosSelected = array();
618 if ($scoSelected !=
"all") $scosSelected[] = $scoSelected;
620 $scos=$this->
object->getTrackedItems();
621 foreach($scos as
$row)
623 $scosSelected[]=(int)
$row->getId();
627 include_once
"Services/Tracking/classes/class.ilTrQuery.php";
630 include_once
'./Modules/ScormAicc/classes/class.ilSCORMTrackingItemsTableGUI.php';
632 $this->tpl->setContent($filter->form->getHTML().$tbl->getHTML());
645 global $ilTabs, $ilAccess;
647 $ilTabs->setTabActive(
'cont_tracking_data');
649 if($ilAccess->checkAccess(
"read_learning_progress",
"",
$_GET[
"ref_id"])) {
652 $ilTabs->setSubTabActive(
'cont_tracking_byuser');
654 $reports = array(
'exportSelectedSuccess',
'exportSelectedCore',
'exportSelectedInteractions',
'exportSelectedObjectives',
'exportSelectedRaw');
656 $userSelected =
"all";
659 $this->ctrl->setParameter($this,
'userSelected',$userSelected);
664 $this->ctrl->setParameter($this,
'report',$report);
666 include_once
'./Modules/ScormAicc/classes/class.ilSCORMTrackingItemsPerUserFilterGUI.php';
668 $filter->parse($userSelected,$report,$reports);
669 if($report ==
"choose") {
670 $this->tpl->setContent($filter->form->getHTML());
672 $usersSelected = array();
673 if ($userSelected !=
"all") $usersSelected[] = $userSelected;
675 include_once
"Services/Tracking/classes/class.ilTrQuery.php";
677 foreach($users as $user) {
679 $usersSelected[] = $user;
683 $scosSelected = array();
684 $scos=$this->
object->getTrackedItems();
685 foreach($scos as
$row)
687 $scosSelected[]=(int)
$row->getId();
694 include_once
'./Modules/ScormAicc/classes/class.ilSCORMTrackingItemsTableGUI.php';
696 $this->tpl->setContent($filter->form->getHTML().$tbl->getHTML());
699 else if($ilAccess->checkAccess(
"edit_learning_progress",
"",
$_GET[
"ref_id"])) {
707 if($ilAccess->checkAccess(
"edit_learning_progress",
"",
$_GET[
"ref_id"])) {
708 include_once(
'./Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
710 if(!$privacy->enabledSahsProtocolData())
712 $this->
ilias->raiseError($this->lng->txt(
'permission_denied'), $this->ilias->error_obj->MESSAGE);
715 global $ilTabs, $ilToolbar;
717 include_once
'./Services/UIComponent/Toolbar/classes/class.ilToolbarGUI.php';
718 $ilToolbar->addButton(
719 $this->lng->txt(
'import'),
720 $this->ctrl->getLinkTarget($this,
'importForm')
722 $ilToolbar->addButton(
723 $this->lng->txt(
'cont_export_all'),
724 $this->ctrl->getLinkTarget($this,
'exportAll')
728 $ilTabs->setTabActive(
'cont_tracking_data');
729 $ilTabs->setSubTabActive(
'cont_tracking_modify');
731 include_once
'./Modules/ScormAicc/classes/class.ilSCORMTrackingUsersTableGUI.php';
734 $this->tpl->setContent(
$tbl->getHTML());
744 include_once
'./Modules/ScormAicc/classes/class.ilSCORMTrackingUsersTableGUI.php';
746 $tbl->writeFilterToSession();
756 include_once
'./Modules/ScormAicc/classes/class.ilSCORMTrackingUsersTableGUI.php';
768 if(!isset(
$_POST[
"user"]))
770 $this->
ilias->raiseError($this->lng->txt(
"no_checkbox"),$this->ilias->error_obj->MESSAGE);
774 include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
776 $cgui->setFormAction($this->ctrl->getFormAction($this));
777 $cgui->setHeaderText($this->lng->txt(
"info_delete_sure"));
778 $cgui->setCancel($this->lng->txt(
"cancel"),
"cancelDeleteTracking");
779 $cgui->setConfirm($this->lng->txt(
"confirm"),
"confirmedDeleteTracking");
781 foreach(
$_POST[
"user"] as $id)
788 " ".$this->lng->txt(
"cont_tracking_data").
789 ": ".$user->getLastname().
", ".$user->getFirstname();
792 $cgui->addItem(
"user[]", $id, $caption);
796 $this->tpl->setContent($cgui->getHTML());
805 $this->ctrl->redirect($this,
"modifyTrackingItems");
810 $this->
object->deleteTrackingDataOfUsers(
$_POST[
"user"]);
811 $this->ctrl->redirect($this,
"modifyTrackingItems");
820 $this->ctrl->redirect($this,
"properties");
826 protected function import()
829 if($form->checkInput())
831 $source = $form->getInput(
'csv');
832 $error = $this->
object->importTrackingData($source[
'tmp_name']);
837 $this->ctrl->redirect($this,
"showTrackingItems");
846 $form->setValuesByPost();
857 $ilTabs->clearTargets();
858 $ilTabs->setBackTarget($this->lng->txt(
'back'),$this->ctrl->getLinkTarget($this,
'showTrackingItems'));
861 $this->tpl->setContent($form->getHTML());
869 include_once
'./Services/Form/classes/class.ilPropertyFormGUI.php';
871 $form->setFormAction($this->ctrl->getFormAction($this));
872 $form->setTitle($this->lng->txt(
'cont_import_tracking'));
873 $form->addCommandButton(
'import', $this->lng->txt(
'import'));
874 $form->addCommandButton(
'showTrackingItems', $this->lng->txt(
'cancel'));
877 $csv->setRequired(
true);
878 $csv->setSuffixes(array(
'csv'));
879 $form->addItem($csv);
889 $this->
object->exportSelected(1);
897 if(!count((array)
$_POST[
'user']))
901 $this->ctrl->redirect($this,
'modifyTrackingItems');
903 $this->
object->exportSelected(0,$_POST[
"user"]);
910 if (!isset(
$_POST[
"user"])) {
913 $this->
object->decreaseAttemptsForUser(
$_POST[
"user"]);
914 $this->ctrl->redirect($this,
"modifyTrackingItems");
925 include_once
"./Services/Table/classes/class.ilTableGUI.php";
928 $ilTabs->setTabActive(
"cont_tracking_data");
929 $ilTabs->setSubTabActive(
"cont_tracking_byuser");
931 include_once
'./Modules/ScormAicc/classes/class.ilSCORMTrackingItemsPerUserTableGUI.php';
933 $tbl->setUserId((
int) $_REQUEST[
'user_id']);
935 $this->tpl->setContent(
$tbl->getHTML());
946 include_once
"./Services/Table/classes/class.ilTableGUI.php";
949 $ilTabs->setTabActive(
"cont_tracking_data");
950 $ilTabs->setSubTabActive(
"cont_tracking_bysco");
952 include_once
'./Modules/ScormAicc/classes/class.ilSCORMTrackingItemsScoTableGUI.php';
956 $this->tpl->setContent(
$tbl->getHTML());
967 include_once
"./Services/Table/classes/class.ilTableGUI.php";
970 $ilTabs->setTabActive(
"cont_tracking_data");
971 $ilTabs->setSubTabActive(
"cont_tracking_byuser");
973 $this->ctrl->setParameter($this,
'obj_id',(
int) $_REQUEST[
'obj_id']);
974 $this->ctrl->setParameter($this,
'user_id',(
int) $_REQUEST[
'user_id']);
976 include_once
'./Modules/ScormAicc/classes/class.ilSCORMTrackingItemPerUserTableGUI.php';
978 $tbl->setUserId((
int) $_REQUEST[
'user_id']);
979 $tbl->setScoId((
int) $_REQUEST[
'obj_id']);
981 $this->tpl->setContent(
$tbl->getHTML());
990 if($ilAccess->checkAccess(
"read_learning_progress",
"",
$_GET[
"ref_id"])) {
991 $ilTabs->addSubTabTarget(
"cont_tracking_byuser",
992 $this->ctrl->getLinkTarget($this,
"showTrackingItems"), array(
"edit",
""),
995 $ilTabs->addSubTabTarget(
"cont_tracking_bysco",
996 $this->ctrl->getLinkTarget($this,
"showTrackingItemsBySco"), array(
"edit",
""),
999 if($ilAccess->checkAccess(
"edit_learning_progress",
"",
$_GET[
"ref_id"])) {
1000 $ilTabs->addSubTabTarget(
"cont_tracking_modify",
1001 $this->ctrl->getLinkTarget($this,
"modifyTrackingItems"), array(
"edit",
""),
1016 include_once
'./Services/Tracking/classes/class.ilLearningProgressAccess.php';
1019 $this->
ilias->raiseError($this->lng->txt(
'permission_denied'), $this->ilias->error_obj->MESSAGE);
1022 include_once
'./Modules/ScormAicc/classes/class.ilSCORMOfflineModeUsersTableGUI.php';
1025 $this->tpl->setContent(
$tbl->getHTML());
1033 if(!count((array)
$_POST[
'user']))
1036 $this->ctrl->redirect($this,
'offlineModeManager');
1039 include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
1041 $cgui->setFormAction($this->ctrl->getFormAction($this));
1042 $cgui->setHeaderText($this->lng->txt(
"info_stop_offline_mode_sure"));
1043 $cgui->setCancel($this->lng->txt(
"cancel"),
"cancelStopUserOfflineMode");
1044 $cgui->setConfirm($this->lng->txt(
"confirm"),
"confirmedStopUserOfflineMode");
1045 foreach(
$_POST[
"user"] as $id)
1051 " ".$this->lng->txt(
"stop_user_offline_mode_for_user").
1052 ": ".$user->getLastname().
", ".$user->getFirstname();
1053 $cgui->addItem(
"user[]", $id, $caption);
1056 $this->tpl->setContent($cgui->getHTML());
1062 $this->ctrl->redirect($this,
"offlineModeManager");
1068 include_once
'./Modules/ScormAicc/classes/class.ilSCORMOfflineMode.php';
1069 foreach(
$_POST[
"user"] as $id)
sprintf('%.4f', $callTime)
An exception for terminatinating execution or to throw for unit testing.
Confirmation screen class.
static rename($a_source, $a_target)
Rename a file.
static checkAccess($a_ref_id, $a_allow_only_read=true)
check access to learning progress
This class represents a non editable value in a property form.
SCORM/AICC/HACP Learning Modules.
setSettingsSubTabs()
set Tabs for settings
static _lookupSubType($a_obj_id)
lookup subtype id (scorm, aicc, hacp)
Class ilObjSCORMLearningModuleGUI.
resetUserTableFilter()
Reset table filter.
const EXPORT_TYPE_SUCCESS
showTrackingItemsBySco()
show tracking data
cancelStopUserOfflineMode()
offlineModeManager()
Manage offline mode for users @global ilTabs $ilTabs $global ilToolbar $ilToolbar.
__construct($a_data, $a_id, $a_call_by_reference, $a_prepare_output=true)
Constructor.
importForm()
Show import form.
exportAll()
Show export section for all users.
initImportForm($a_new_type)
Init import form.
stopUserOfflineMode()
Stop offline mode for selected users.
exportSelectionUsers()
Export selection for selected users.
assignObject()
assign scorm object to scorm gui object
showTrackingItem()
show tracking data of item
saveProperties()
save properties
showTrackingItemSco()
show tracking data of item
properties()
scorm module properties
applyUserTableFilter()
Apply table filter.
deleteTrackingForUser()
display deletion confirmation screen
showTrackingItemPerUser()
show tracking data of item per user
cancel()
overwrite..jump back to trackingdata not parent
newModuleVersion()
upload new version of module
showTrackingItems()
Show tracking table @global ilTabs $ilTabs $global ilToolbar $ilToolbar.
confirmedStopUserOfflineMode()
confirmedDeleteTracking()
cancelDeleteTracking()
cancel deletion of export files
Class ilObjSCORMLearningModule.
static _lookupObjectId($a_ref_id)
lookup object id
static _exists($a_id, $a_reference=false, $a_type=null)
checks if an object exists in object_data@access public
static _getInstance()
Get instance of ilPrivacySettings.
This class represents an option in a radio group.
GUI class ilSCORMOfflineModeUsersTableGUI.
static stopOfflineModeForUser($obj_id, $user_id)
static checkIfAnyoneIsInOfflineMode($obj_id)
Class ilSCORMTrackingItemsPerScoFilterGUI.
Class ilSCORMTrackingItemsPerUserFilterGUI.
Class ilSCORMTrackingItemsTableGUI.
This class represents a text area property in a property form.
This class represents a text property in a property form.
static getParticipantsForObject($a_ref_id)
Get participant ids for given object.
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 escapeShellArg($a_arg)
static getImageTagByType($a_type, $a_path, $a_big=false)
Builds an html image tag TODO: function still in use, but in future use getImagePath and move HTML-Co...
static redirect($a_script)
http redirect to other script
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
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 yn2tf($a_yn)
convert "y"/"n" to true/false
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.
redirection script todo: (a better solution should control the processing via a xml file)
if(!file_exists("$old.txt")) if( $old===$new) if(file_exists("$new.txt")) $file
echo;exit;}function LogoutNotification($SessionID) { global $ilDB; $q="SELECT session_id, data FROM usr_session WHERE expires > (\w+)\|/" PREG_SPLIT_NO_EMPTY PREG_SPLIT_DELIM_CAPTURE
if(!is_array($argv)) $options