67 public function __construct($a_data, $a_id = 0, $a_call_by_reference =
true, $a_prepare_output =
false)
71 $this->lng = $DIC->language();
72 $this->access = $DIC->access();
73 $this->tabs = $DIC->tabs();
74 $this->error = $DIC[
"ilErr"];
76 $this->
user = $DIC->user();
77 $this->tpl = $DIC[
"tpl"];
78 $this->toolbar = $DIC->toolbar();
79 $this->rbacsystem = $DIC->rbac()->system();
80 $this->tree = $DIC->repositoryTree();
81 $this->plugin_admin = $DIC[
"ilPluginAdmin"];
82 $this->help = $DIC[
"ilHelp"];
83 $this->locator = $DIC[
"ilLocator"];
84 $this->db = $DIC->database();
85 $this->log = $DIC[
"ilLog"];
86 $lng = $DIC->language();
89 $lng->loadLanguageModule(
"content");
90 $lng->loadLanguageModule(
"obj");
91 parent::__construct($a_data, $a_id, $a_call_by_reference,
false);
107 if ($this->ctrl->getRedirectSource() ==
"ilinternallinkgui") {
112 if ($this->ctrl->getCmdClass() ==
"ilinternallinkgui") {
113 $this->ctrl->setReturn($this,
"explorer");
117 $next_class = $this->ctrl->getNextClass($this);
120 if (
$_GET[
"to_props"] == 1) {
121 $cmd = $this->ctrl->getCmd(
"properties");
123 $cmd = $this->ctrl->getCmd(
"chapters");
127 switch ($next_class) {
128 case 'illtiproviderobjectsettinggui':
131 $ilTabs->setTabActive(
"settings");
136 $lti_gui->offerLTIRolesForSelection(
true);
137 $this->ctrl->forwardCommand($lti_gui);
142 case "illearningprogressgui":
145 include_once
'./Services/Tracking/classes/class.ilLearningProgressGUI.php';
146 $this->
setTabs(
"learning_progress");
149 $this->ctrl->forwardCommand($new_gui);
153 case 'ilobjectmetadatagui':
154 if (!$ilAccess->checkAccess(
'write',
'', $this->object->getRefId())) {
155 $ilErr->raiseError($this->lng->txt(
'permission_denied'),
$ilErr->WARNING);
162 include_once
'Services/Object/classes/class.ilObjectMetaDataGUI.php';
164 $md_gui->addMDObserver($this->
object,
'MDUpdateListener',
'Educational');
165 $md_gui->addMDObserver($this->
object,
'MDUpdateListener',
'General');
166 $this->ctrl->forwardCommand($md_gui);
169 case "ilobjstylesheetgui":
171 include_once(
"./Services/Style/Content/classes/class.ilObjStyleSheetGUI.php");
172 $this->ctrl->setReturn($this,
"editStyleProperties");
173 $style_gui =
new ilObjStyleSheetGUI(
"", $this->object->getStyleSheetId(),
false,
false);
175 if ($cmd ==
"create" ||
$_GET[
"new_type"] ==
"sty") {
176 $style_gui->setCreationMode(
true);
178 $ret = $this->ctrl->forwardCommand($style_gui);
180 if ($cmd ==
"save" || $cmd ==
"copyStyle" || $cmd ==
"importStyle") {
182 $this->
object->setStyleSheetId($style_id);
183 $this->
object->update();
184 $this->ctrl->redirectByClass(
"ilobjstylesheetgui",
"edit");
188 case "illmpageobjectgui":
190 $ilTabs->setBackTarget(
191 $lng->txt(
"learning module"),
192 $ilCtrl->getLinkTarget($this,
"chapters")
194 $this->ctrl->saveParameter($this, array(
"obj_id"));
196 $this->ctrl->setReturn($this,
"chapters");
199 if (
$_GET[
"obj_id"] !=
"") {
201 $pg_gui->setLMPageObject($obj);
203 $ret = $this->ctrl->forwardCommand($pg_gui);
206 case "ilstructureobjectgui":
207 $ilTabs->setBackTarget(
208 $lng->txt(
"learning module"),
209 $ilCtrl->getLinkTarget($this,
"chapters")
212 $this->ctrl->saveParameter($this, array(
"obj_id"));
214 $this->ctrl->setReturn($this,
"chapters");
216 if (
$_GET[
"obj_id"] !=
"") {
218 $st_gui->setStructureObject($obj);
220 $ret = $this->ctrl->forwardCommand($st_gui);
221 if ($cmd ==
"save" || $cmd ==
"cancel") {
222 if (
$_GET[
"obj_id"] ==
"") {
223 $this->ctrl->redirect($this,
"chapters");
225 $this->ctrl->setCmd(
"subchap");
231 case 'ilpermissiongui':
232 if (strtolower(
$_GET[
"baseClass"]) ==
"iladministrationgui") {
239 include_once(
"Services/AccessControl/classes/class.ilPermissionGUI.php");
241 $ret = $this->ctrl->forwardCommand($perm_gui);
245 case 'ilinfoscreengui':
249 include_once(
"./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
251 $info->enablePrivateNotes();
252 $info->enableLearningProgress();
255 if ($ilAccess->checkAccess(
"write",
"",
$_GET[
"ref_id"])) {
256 $info->enableNewsEditing();
257 $info->setBlockProperty(
"news",
"settings",
true);
261 $info->addMetaDataSections(
262 $this->object->getId(),
264 $this->
object->getType()
267 $ret = $this->ctrl->forwardCommand(
$info);
275 include_once(
"./Services/Export/classes/class.ilExportGUI.php");
277 $exp_gui->addFormat(
"xml");
278 include_once(
"./Services/Object/classes/class.ilObjectTranslation.php");
280 if ($ot->getContentActivated()) {
281 $exp_gui->addFormat(
"xml_master",
"XML (" .
$lng->txt(
"cont_master_language_only") .
")", $this,
"export");
282 $exp_gui->addFormat(
"xml_masternomedia",
"XML (" .
$lng->txt(
"cont_master_language_only_no_media") .
")", $this,
"export");
284 $lng->loadLanguageModule(
"meta");
285 $langs = $ot->getLanguages();
286 foreach ($langs as
$l => $ldata) {
287 $exp_gui->addFormat(
"html_" .
$l,
"HTML (" .
$lng->txt(
"meta_l_" .
$l) .
")", $this,
"exportHTML");
289 $exp_gui->addFormat(
"html_all",
"HTML (" .
$lng->txt(
"cont_all_languages") .
")", $this,
"exportHTML");
291 $exp_gui->addFormat(
"html",
"", $this,
"exportHTML");
294 $exp_gui->addFormat(
"scorm",
"", $this,
"exportSCORM");
295 $exp_gui->addCustomColumn(
296 $lng->txt(
"cont_public_access"),
298 "getPublicAccessColValue" 300 $exp_gui->addCustomMultiCommand(
301 $lng->txt(
"cont_public_access"),
305 $ret = $this->ctrl->forwardCommand($exp_gui);
308 case 'ilobjecttranslationgui':
313 include_once(
"./Services/Object/classes/class.ilObjectTranslationGUI.php");
315 $transgui->setTitleDescrOnlyMode(
false);
316 $this->ctrl->forwardCommand($transgui);
320 case "ilcommonactiondispatchergui":
321 include_once(
"Services/Object/classes/class.ilCommonActionDispatcherGUI.php");
323 $this->ctrl->forwardCommand($gui);
326 case 'ilobjectcopygui':
328 include_once
'./Services/Object/classes/class.ilObjectCopyGUI.php';
331 $this->ctrl->forwardCommand($cp);
334 case "ilmobmultisrtuploadgui":
339 include_once(
"./Services/MediaObjects/classes/class.ilMobMultiSrtUploadGUI.php");
340 include_once(
"./Modules/LearningModule/classes/class.ilLMMultiSrt.php");
342 $this->ctrl->forwardCommand($gui);
345 case "illmimportgui":
350 include_once(
"./Modules/LearningModule/classes/class.ilLMImportGUI.php");
352 $this->ctrl->forwardCommand($gui);
355 case "illmeditshorttitlesgui":
360 include_once(
"./Modules/LearningModule/classes/class.ilLMEditShortTitlesGUI.php");
362 $this->ctrl->forwardCommand($gui);
366 $new_type =
$_POST[
"new_type"]
371 if ($cmd ==
"create" &&
372 !in_array($new_type, array(
"lm"))) {
376 $this->ctrl->setCmdClass(
"ilLMPageObjectGUI");
382 $this->ctrl->setCmdClass(
"ilStructureObjectGUI");
389 in_array($new_type, array(
"lm"))) {
395 $ret = $this->$cmd();
399 $ret = $this->$cmd();
409 return array(
"ilLMPageObjectGUI",
"ilStructureObjectGUI",
"ilObjStyleSheetGUI");
419 $lng->loadLanguageModule(
"style");
427 if ($this->object->getType() ==
"lm") {
429 include_once
'Modules/LearningModule/classes/class.ilECSLearningModuleSettings.php';
431 $ecs->addSettingsToForm($this->form,
'lm');
434 $this->tpl->setContent($this->form->getHTML());
448 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
454 $this->form->addItem($ti);
458 $this->form->addItem($ta);
460 $lng->loadLanguageModule(
"rep");
462 $section->setTitle($this->lng->txt(
'rep_activation_availability'));
467 $this->form->addItem($online);
471 $section->setTitle($this->lng->txt(
'cont_presentation'));
475 $obj_service->commonSettings()->legacyForm($this->form, $this->
object)->addTileImage();
478 $layout = self::getLayoutOption(
$lng->txt(
"cont_def_layout"),
"lm_layout");
479 $this->form->addItem($layout);
483 $lpp->
setInfo($this->lng->txt(
"cont_layout_per_page_info"));
484 $this->form->addItem($lpp);
488 $option = array(
"st_title" => $this->lng->txt(
"cont_st_title"),
489 "pg_title" => $this->lng->txt(
"cont_pg_title"),
490 "none" => $this->lng->txt(
"cont_none"));
492 $this->form->addItem($page_header);
496 $this->form->addItem($chap_num);
500 $option = array(
"chapters" => $this->lng->txt(
"cont_chapters_only"),
501 "pages" => $this->lng->txt(
"cont_chapters_and_pages"));
503 $this->form->addItem($toc_mode);
507 $progr_icons->
setInfo($this->lng->txt(
"cont_progress_icons_info"));
508 $this->form->addItem($progr_icons);
512 $section->setTitle($this->lng->txt(
'cont_self_assessment'));
518 $op1 =
new ilRadioOption(
$lng->txt(
"cont_tries_reset_on_visit"), 0,
$lng->txt(
"cont_tries_reset_on_visit_info"));
519 $radg->addOption($op1);
521 $radg->addOption($op2);
522 $this->form->addItem($radg);
526 $qfeed->
setInfo($this->lng->txt(
"cont_restrict_forw_nav_info"));
527 $this->form->addItem($qfeed);
531 $not->
setInfo($this->lng->txt(
"cont_notify_on_blocked_users_info"));
532 $qfeed->addSubItem($not);
536 $qfeed->
setInfo($this->lng->txt(
"cont_disable_def_feedback_info"));
537 $this->form->addItem($qfeed);
541 $section->setTitle($this->lng->txt(
'obj_features'));
546 $this->lng->loadLanguageModule(
"notes");
548 $pub_nodes->
setInfo($this->lng->txt(
"cont_lm_comments_desc"));
549 $this->form->addItem($pub_nodes);
554 $com->
setInfo($this->lng->txt(
"enable_hist_user_comments_desc"));
555 $this->form->addItem($com);
558 $this->lng->loadLanguageModule(
'rating');
560 $rate->
setInfo($this->lng->txt(
'rating_activate_rating_info'));
561 $this->form->addItem($rate);
562 $ratep =
new ilCheckboxInputGUI($this->lng->txt(
'lm_activate_rating'),
'rating_pages');
563 $this->form->addItem($ratep);
566 $this->form->addCommandButton(
"saveProperties",
$lng->txt(
"save"));
567 $this->form->setFormAction(
$ilCtrl->getFormAction($this));
579 $title = $this->
object->getTitle();
581 include_once(
"./Services/Object/classes/class.ilObjectTranslation.php");
583 if ($ot->getContentActivated()) {
584 $title = $ot->getDefaultTitle();
590 if (!$this->object->getOfflineStatus()) {
593 $values[
"lm_layout"] = $this->
object->getLayout();
594 $values[
"lm_pg_header"] = $this->
object->getPageHeader();
595 if ($this->object->isActiveNumbering()) {
596 $values[
"cobj_act_number"] =
true;
598 $values[
"toc_mode"] = $this->
object->getTOCMode();
599 if ($this->object->publicNotes()) {
600 $values[
"cobj_pub_notes"] =
true;
602 if ($this->object->cleanFrames()) {
603 $values[
"cobj_clean_frames"] =
true;
605 if ($this->object->isActiveHistoryUserComments()) {
606 $values[
"cobj_user_comments"] =
true;
608 $values[
"layout_per_page"] = $this->
object->getLayoutPerPage();
609 $values[
"rating"] = $this->
object->hasRating();
610 $values[
"rating_pages"] = $this->
object->hasRatingPages();
611 $values[
"disable_def_feedback"] = $this->
object->getDisableDefaultFeedback();
612 $values[
"progr_icons"] = $this->
object->getProgressIcons();
613 $values[
"store_tries"] = $this->
object->getStoreTries();
614 $values[
"restrict_forw_nav"] = $this->
object->getRestrictForwardNavigation();
616 include_once
"./Services/Notification/classes/class.ilNotification.php";
620 $this->
object->getId()
623 $this->form->setValuesByArray(
$values);
638 if ($this->form->checkInput()) {
639 include_once(
"./Services/Object/classes/class.ilObjectTranslation.php");
641 if ($ot->getContentActivated()) {
642 $ot->setDefaultTitle(
$_POST[
'title']);
643 $ot->setDefaultDescription(
$_POST[
'description']);
647 $this->
object->setTitle(
$_POST[
'title']);
648 $this->
object->setDescription(
$_POST[
'description']);
649 $this->
object->setLayout(
$_POST[
"lm_layout"]);
650 $this->
object->setPageHeader(
$_POST[
"lm_pg_header"]);
651 $this->
object->setTOCMode(
$_POST[
"toc_mode"]);
652 $this->
object->setOfflineStatus(!(
$_POST[
'cobj_online']));
653 $this->
object->setActiveNumbering(
$_POST[
"cobj_act_number"]);
654 $this->
object->setCleanFrames(
$_POST[
"cobj_clean_frames"]);
656 $this->
object->setPublicNotes(
$_POST[
"cobj_pub_notes"]);
658 $this->
object->setHistoryUserComments(
$_POST[
"cobj_user_comments"]);
659 $this->
object->setLayoutPerPage(
$_POST[
"layout_per_page"]);
660 $this->
object->setRating(
$_POST[
"rating"]);
661 $this->
object->setRatingPages(
$_POST[
"rating_pages"]);
662 $this->
object->setDisableDefaultFeedback((
int)
$_POST[
"disable_def_feedback"]);
663 $this->
object->setProgressIcons((
int) $_POST[
"progr_icons"]);
666 if ($_POST[
"restrict_forw_nav"] && !$_POST[
"store_tries"]) {
667 $_POST[
"store_tries"] = 1;
668 $add_info =
"</br>" .
$lng->txt(
"cont_automatically_set_store_tries");
669 $add_info = str_replace(
"$1",
$lng->txt(
"cont_tries_store"), $add_info);
670 $add_info = str_replace(
"$2",
$lng->txt(
"cont_restrict_forw_nav"), $add_info);
673 $this->
object->setStoreTries((
int) $_POST[
"store_tries"]);
674 $this->
object->setRestrictForwardNavigation((
int) $_POST[
"restrict_forw_nav"]);
675 $this->
object->updateProperties();
676 $this->
object->update();
679 $obj_service->commonSettings()->legacyForm($this->form, $this->
object)->saveTileImage();
681 include_once
"./Services/Notification/classes/class.ilNotification.php";
685 $this->
object->getId(),
686 (bool) $this->form->getInput(
"notification_blocked_users")
690 if ($this->object->getType() ==
'lm') {
692 include_once
'Modules/LearningModule/classes/class.ilECSLearningModuleSettings.php';
694 if ($ecs->handleSettingsUpdate()) {
703 ilUtil::sendSuccess($this->lng->txt(
"msg_obj_modified") . $add_info,
true);
704 $this->ctrl->redirect($this,
"properties");
706 $lng->loadLanguageModule(
"style");
710 $this->form->setValuesByPost();
711 $this->tpl->setContent($this->form->getHTML());
723 $tpl->setContent($this->form->getHTML());
736 $lng->loadLanguageModule(
"style");
738 $ilTabs->setTabActive(
"settings");
741 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
744 $fixed_style =
$ilSetting->get(
"fixed_content_style_id");
745 $def_style =
$ilSetting->get(
"default_content_style_id");
746 $style_id = $this->
object->getStyleSheetId();
748 if ($fixed_style > 0) {
751 $this->lng->txt(
"global_fixed") .
")");
752 $this->form->addItem($st);
760 if ($def_style > 0) {
763 $st_styles[0] = $this->lng->txt(
"default");
772 $this->form->addItem($st);
775 $this->form->addCommandButton(
777 $lng->txt(
"cont_edit_style")
779 $this->form->addCommandButton(
781 $lng->txt(
"cont_delete_style")
789 $style_sel->setValue($style_id);
790 $this->form->addItem($style_sel);
791 $this->form->addCommandButton(
795 $this->form->addCommandButton(
797 $lng->txt(
"sty_create_ind_style")
801 $this->form->setTitle(
$lng->txt(
"cont_style"));
802 $this->form->setFormAction(
$ilCtrl->getFormAction($this));
812 $ilCtrl->redirectByClass(
"ilobjstylesheetgui",
"create");
822 $ilCtrl->redirectByClass(
"ilobjstylesheetgui",
"edit");
832 $ilCtrl->redirectByClass(
"ilobjstylesheetgui",
"delete");
842 if (
$ilSetting->get(
"fixed_content_style_id") <= 0 &&
844 || $this->object->getStyleSheetId() == 0)) {
846 $this->
object->update();
847 ilUtil::sendSuccess($this->lng->txt(
"msg_obj_modified"),
true);
849 $this->ctrl->redirect($this,
"editStyleProperties");
860 include_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
865 $menu->
setChecked($this->object->isActiveLMMenu());
866 $form->addItem($menu);
870 $toc->
setChecked($this->object->isActiveTOC());
871 $form->addItem($toc);
874 $print =
new ilCheckboxInputGUI($this->lng->txt(
"cont_print_view"),
"cobj_act_print");
875 $print->
setChecked($this->object->isActivePrintView());
876 $form->addItem($print);
879 $glo =
new ilCheckboxInputGUI($this->lng->txt(
"cont_print_view_pre_glo"),
"cobj_act_print_prev_glo");
880 $glo->
setChecked($this->object->isActivePreventGlossaryAppendix());
881 $print->addSubItem($glo);
884 $hhfp =
new ilCheckboxInputGUI($this->lng->txt(
"cont_hide_head_foot_print"),
"hide_head_foot_print");
885 $hhfp->
setChecked($this->object->getHideHeaderFooterPrint());
886 $print->addSubItem($hhfp);
889 $no_download_file_available =
890 " " .
$lng->txt(
"cont_no_download_file_available") .
891 " <a href='" .
$ilCtrl->getLinkTargetByClass(
"ilexportgui",
"") .
"'>" .
$lng->txt(
"change") .
"</a>";
892 $types = array(
"xml",
"html",
"scorm");
893 foreach ($types as
$type) {
894 if ($this->object->getPublicExportFile($type) !=
"") {
895 if (is_file($this->object->getExportDirectory($type) .
"/" .
896 $this->
object->getPublicExportFile($type))) {
897 $no_download_file_available =
"";
901 $dl =
new ilCheckboxInputGUI($this->lng->txt(
"cont_downloads"),
"cobj_act_downloads");
902 $dl->
setInfo($this->lng->txt(
"cont_downloads_desc") . $no_download_file_available);
903 $dl->setChecked($this->object->isActiveDownloads());
907 $pdl =
new ilCheckboxInputGUI($this->lng->txt(
"cont_downloads_public_desc"),
"cobj_act_downloads_public");
908 $pdl->
setChecked($this->object->isActiveDownloadsPublic());
909 $dl->addSubItem($pdl);
911 $form->addCommandButton(
"saveMenuProperties",
$lng->txt(
"save"));
913 $form->setTitle(
$lng->txt(
"cont_lm_menu"));
930 $lng->loadLanguageModule(
"style");
932 $ilTabs->setTabActive(
"settings");
935 $ilToolbar->setFormAction(
$ilCtrl->getFormAction($this));
936 $ilToolbar->addFormButton($this->lng->txt(
"add_menu_entry"),
"addMenuEntry");
937 $ilToolbar->setCloseFormTag(
false);
940 $form->setOpenTag(
false);
941 $form->setCloseTag(
false);
944 $entries = $this->lmme_obj->getMenuEntries();
945 include_once(
"./Modules/LearningModule/classes/class.ilLMMenuItemsTableGUI.php");
947 $table->setOpenFormTag(
false);
957 $this->
object->setActiveLMMenu((
int)
$_POST[
"cobj_act_lm_menu"]);
958 $this->
object->setActiveTOC((
int) $_POST[
"cobj_act_toc"]);
959 $this->
object->setActivePrintView((
int) $_POST[
"cobj_act_print"]);
960 $this->
object->setActivePreventGlossaryAppendix((
int) $_POST[
"cobj_act_print_prev_glo"]);
961 $this->
object->setHideHeaderFooterPrint((
int) $_POST[
"hide_head_foot_print"]);
962 $this->
object->setActiveDownloads((
int) $_POST[
"cobj_act_downloads"]);
963 $this->
object->setActiveDownloadsPublic((
int) $_POST[
"cobj_act_downloads_public"]);
964 $this->
object->updateProperties();
968 $this->lmme_obj->updateActiveStatus($_POST[
"menu_entries"]);
970 ilUtil::sendSuccess($this->lng->txt(
"msg_obj_modified"),
true);
971 $this->ctrl->redirect($this,
"editMenuProperties");
981 $gui_class =
"ilobjlearningmodulegui";
983 $ilCtrl->setParameterByClass($gui_class,
"active_node",
$_GET[
"active_node"]);
985 $this->tpl =
new ilTemplate(
"tpl.main.html",
true,
true);
989 $this->tpl->addBlockFile(
"CONTENT",
"content",
"tpl.explorer.html");
992 require_once(
"./Modules/LearningModule/classes/class.ilLMEditorExplorer.php");
993 $exp =
new ilLMEditorExplorer(
994 $this->ctrl->getLinkTarget($this,
"view"),
999 $exp->setTargetGet(
"obj_id");
1000 $exp->setExpandTarget($this->ctrl->getLinkTarget($this,
"explorer"));
1002 if (
$_GET[
"lmmovecopy"] ==
"1") {
1007 if (
$_GET[
"lmexpand"] ==
"") {
1008 $mtree =
new ilTree($this->object->getId());
1010 $mtree->setTreeTablePK(
"lm_id");
1011 $expanded = $mtree->readRootId();
1013 $expanded =
$_GET[
"lmexpand"];
1015 if (
$_GET[
"active_node"] !=
"") {
1016 $path = $this->lm_tree->getPathId(
$_GET[
"active_node"]);
1017 $exp->setForceOpenPath(
$path);
1019 $exp->highlightNode(
$_GET[
"active_node"]);
1021 $exp->setExpand($expanded);
1033 include_once(
"./Services/COPage/classes/class.ilPageEditorGUI.php");
1035 $this->tpl->setCurrentBlock(
"content");
1036 $this->tpl->setVariable(
"TXT_EXPLORER_HEADER", $this->lng->txt(
"cont_chap_and_pages"));
1037 $this->tpl->setVariable(
"EXP_REFRESH", $this->lng->txt(
"refresh"));
1038 $this->tpl->setVariable(
"EXPLORER",
$output);
1039 $this->ctrl->setParameter($this,
"lmexpand",
$_GET[
"lmexpand"]);
1040 $this->tpl->setVariable(
"ACTION", $this->ctrl->getLinkTarget($this,
"explorer"));
1041 $this->tpl->parseCurrentBlock();
1042 $this->tpl->show(
false);
1051 include_once
"./Services/COPage/classes/class.ilWysiwygUtil.php";
1052 $popup =
new ilWysiwygUtil();
1053 $popup->show(
$_GET[
"ptype"]);
1064 $this->
object->executeDragDrop(
1065 $_POST[
"il_hform_source_id"],
1066 $_POST[
"il_hform_target_id"],
1068 $_POST[
"il_hform_as_subitem"]
1070 $ilCtrl->redirect($this,
"chapters");
1083 $a_new_object->setCleanFrames(
true);
1087 $a_new_object->createLMTree();
1090 $a_new_object->addFirstChapterAndPage();
1093 ilUtil::sendSuccess($this->lng->txt($this->type .
"_added"),
true);
1095 "&baseClass=ilLMEditorGUI");
1106 include_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
1110 $this->ctrl->setParameter($this,
"new_type", $new_type);
1113 $form->setTableWidth(
"600px");
1119 $fi->setRequired(
true);
1121 $form->addItem($fi);
1125 $cb->
setInfo($this->lng->txt(
""));
1126 $form->addItem($cb);
1128 $form->addCommandButton(
"importFile",
$lng->txt(
"import"));
1129 $form->addCommandButton(
"cancel",
$lng->txt(
"cancel"));
1131 $form->setTitle($this->lng->txt(
"import_" . $new_type));
1175 parent::importFileObject(null,
false);
1179 $no_manifest =
true;
1182 ilUtil::sendFailure($this->lng->txt(
"obj_import_file_error") .
" <br />" . $e->getMessage());
1183 $form->setValuesByPost();
1188 if (!$no_manifest) {
1194 include_once
"./Modules/LearningModule/classes/class.ilObjLearningModule.php";
1197 $ilErr->raiseError($this->lng->txt(
"no_create_permission"),
$ilErr->MESSAGE);
1201 if (
$form->checkInput()) {
1203 include_once(
"./Modules/LearningModule/classes/class.ilObjContentObject.php");
1205 $newObj->setType(
$_GET[
"new_type"]);
1206 $newObj->setTitle($_FILES[
"importfile"][
"name"]);
1207 $newObj->setDescription(
"");
1208 $newObj->create(
true);
1209 $newObj->createReference();
1210 $newObj->putInTree(
$_GET[
"ref_id"]);
1211 $newObj->setPermissions(
$_GET[
"ref_id"]);
1214 $newObj->createLMTree();
1217 $mess = $newObj->importFromDirectory($this->tmp_import_dir,
$_POST[
"validate"]);
1220 ilUtil::sendSuccess($this->lng->txt($this->type .
"_added"),
true);
1222 "&baseClass=ilLMEditorGUI");
1224 $link =
'<a href="' .
"ilias.php?ref_id=" . $newObj->getRefId() .
1225 "&baseClass=ilLMEditorGUI" .
'" target="_top">' . $this->lng->txt(
"btn_next") .
'</a>';
1226 $tpl->setContent(
"<br />" . $link .
"<br /><br />" . $mess . $link);
1229 $form->setValuesByPost();
1245 $ilCtrl->setParameter($this,
"backcmd",
"chapters");
1247 include_once(
"./Modules/LearningModule/classes/class.ilChapterHierarchyFormGUI.php");
1250 $form_gui->setTitle($this->object->getTitle());
1252 $form_gui->setTree($this->lm_tree);
1253 $form_gui->setMaxDepth(0);
1254 $form_gui->setCurrentTopNodeId($this->tree->getRootId());
1255 $form_gui->addMultiCommand(
$lng->txt(
"delete"),
"delete");
1256 $form_gui->addMultiCommand(
$lng->txt(
"cut"),
"cutItems");
1257 $form_gui->addMultiCommand(
$lng->txt(
"copy"),
"copyItems");
1258 if ($this->object->getLayoutPerPage()) {
1259 $form_gui->addMultiCommand(
$lng->txt(
"cont_set_layout"),
"setPageLayoutInHierarchy");
1262 $form_gui->addCommand(
$lng->txt(
"cont_save_all_titles"),
"saveAllTitles");
1263 $up_gui =
"ilobjlearningmodulegui";
1265 $ctpl =
new ilTemplate(
"tpl.chap_and_pages.html",
true,
true,
"Modules/LearningModule");
1266 $ctpl->setVariable(
"HIERARCHY_FORM", $form_gui->getHTML());
1267 $ilCtrl->setParameter($this,
"obj_id",
"");
1269 $ml_head = self::getMultiLangHeader($this->object->getId(), $this);
1271 $this->tpl->setContent($ml_head . $ctpl->get());
1284 $lng = $DIC->language();
1288 include_once(
"./Services/Object/classes/class.ilObjectTranslation.php");
1290 if ($ot->getContentActivated()) {
1291 $ilCtrl->setParameter($a_gui_class,
"lang_switch_mode", $a_mode);
1292 $lng->loadLanguageModule(
"meta");
1295 include_once(
"./Services/COPage/classes/class.ilPageMultiLangGUI.php");
1297 $ml_head = $ml_gui->getMultiLangInfo(
$_GET[
"transl"]);
1300 include_once(
"./Services/UIComponent/AdvancedSelectionList/classes/class.ilAdvancedSelectionListGUI.php");
1302 $list->setListTitle(
$lng->txt(
"actions"));
1303 $list->setId(
"copage_act");
1305 if (!in_array(
$_GET[
"transl"], array(
"",
"-"))) {
1306 $l = $ot->getMasterLanguage();
1308 $lng->txt(
"cont_edit_language_version") .
": " .
1309 $lng->txt(
"meta_l_" .
$l),
1311 $ilCtrl->getLinkTarget($a_gui_class,
"editMasterLanguage")
1316 foreach ($ot->getLanguages() as $al =>
$lang) {
1317 if (
$_GET[
"transl"] != $al &&
1318 $al != $ot->getMasterLanguage()) {
1319 $ilCtrl->setParameter($a_gui_class,
"totransl", $al);
1321 $lng->txt(
"cont_edit_language_version") .
": " .
1322 $lng->txt(
"meta_l_" . $al),
1324 $ilCtrl->getLinkTarget($a_gui_class,
"switchToLanguage")
1326 $ilCtrl->setParameter($a_gui_class,
"totransl",
$_GET[
"totransl"]);
1332 $ml_head =
'<div class="ilFloatLeft">' . $ml_head .
'</div><div style="margin: 5px 0;" class="small ilRight">' .
$list->getHTML() .
"</div>";
1334 $ilCtrl->setParameter($a_gui_class,
"lang_switch_mode",
"");
1354 $ilCtrl->setParameter($this,
"backcmd",
"pages");
1355 $ilCtrl->setParameterByClass(
"illmpageobjectgui",
"new_type",
"pg");
1356 $ilToolbar->addButton(
1357 $lng->txt(
"pg_add"),
1358 $ilCtrl->getLinkTargetByClass(
"illmpageobjectgui",
"create")
1360 $ilCtrl->setParameterByClass(
"illmpageobjectgui",
"new_type",
"");
1362 include_once(
"./Modules/LearningModule/classes/class.ilLMPagesTableGUI.php");
1364 $tpl->setContent(
$t->getHTML());
1377 include_once(
"./Modules/LearningModule/classes/class.ilLinksTableGUI.php");
1381 $this->object->getId(),
1382 $this->
object->getType()
1385 $tpl->setContent($table_gui->getHTML());
1398 $ilToolbar->addButton(
1399 $this->lng->txt(
"cont_fix_tree"),
1400 $this->ctrl->getLinkTarget($this,
"fixTreeConfirm")
1409 if (is_array(
$_POST[
"id"])) {
1411 include_once(
"./Modules/LearningModule/classes/class.ilLMPage.php");
1417 $this->ctrl->redirect($this,
"pages");
1428 $ilErr->raiseError($this->lng->txt(
"no_page_in_clipboard"),
$ilErr->MESSAGE);
1438 == $this->object->getID()) {
1440 $new_page = $lm_page->copy();
1441 $id = $new_page->getId();
1447 $copied_nodes = array();
1448 $new_page = $lm_page->copyToOtherContObject($this->
object, $copied_nodes);
1449 $id = $new_page->getId();
1458 != $this->object->getID()) {
1462 $lm_page->setLMId($this->object->getID());
1464 $page = $lm_page->getPageObject();
1466 $page->setParentId($this->object->getID());
1473 $this->ctrl->redirect($this,
"pages");
1483 if (!isset(
$_POST[
"id"])) {
1484 $ilErr->raiseError($this->lng->txt(
"no_checkbox"),
$ilErr->MESSAGE);
1491 ilUtil::sendInfo($this->lng->txt(
"cont_selected_items_have_been_copied"),
true);
1493 $this->ctrl->redirect($this,
"pages");
1503 public function delete($a_parent_subobj_id = 0)
1507 if (!isset(
$_POST[
"id"])) {
1508 $ilErr->raiseError($this->lng->txt(
"no_checkbox"),
$ilErr->MESSAGE);
1512 $ilErr->raiseError($this->lng->txt(
"cont_select_item"),
$ilErr->MESSAGE);
1515 if ($a_parent_subobj_id == 0) {
1519 if ($a_parent_subobj_id != 0) {
1520 $this->ctrl->setParameterByClass(
"ilStructureObjectGUI",
"backcmd",
$_GET[
"backcmd"]);
1521 $this->ctrl->setParameterByClass(
"ilStructureObjectGUI",
"obj_id", $a_parent_subobj_id);
1522 $form_action = $this->ctrl->getFormActionByClass(
"ilStructureObjectGUI");
1524 $this->ctrl->setParameter($this,
"backcmd",
$_GET[
"backcmd"]);
1525 $form_action = $this->ctrl->getFormAction($this);
1529 include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
1531 $cgui->setFormAction($form_action);
1532 $cgui->setHeaderText($this->lng->txt(
"info_delete_sure"));
1533 $cgui->setCancel($this->lng->txt(
"cancel"),
"cancelDelete");
1534 $cgui->setConfirm($this->lng->txt(
"confirm"),
"confirmedDelete");
1540 " " . $obj->getTitle();
1542 $cgui->addItem(
"id[]", $id, $caption);
1546 $this->tpl->setContent($cgui->getHTML());
1554 $this->ctrl->redirect($this,
$_GET[
"backcmd"]);
1569 $tree->setTableNames(
'lm_tree',
'lm_data');
1570 $tree->setTreeTablePK(
"lm_id");
1574 $ilErr->raiseError($this->lng->txt(
"no_checkbox"),
$ilErr->MESSAGE);
1581 $node_data =
$tree->getNodeData($id);
1582 if (is_object($obj)) {
1583 $obj->setLMId($this->object->getId());
1585 include_once(
"./Services/History/classes/class.ilHistory.php");
1587 $this->object->getId(),
1588 "delete_" . $obj->getType(),
1590 $this->
object->getType()
1595 if (
$tree->isInTree($id)) {
1596 $tree->deleteTree($node_data);
1602 $this->
object->checkTree();
1605 ilUtil::sendSuccess($this->lng->txt(
"info_deleted"),
true);
1607 if ($a_parent_subobj_id == 0) {
1608 $this->ctrl->redirect($this,
$_GET[
"backcmd"]);
1624 $tmpPath = $this->lm_tree->getPathFull($a_endnode_id, $a_startnode_id);
1627 for (
$i = 1;
$i < (count($tmpPath) - 1);
$i++) {
1632 $path .= $tmpPath[
$i][
"title"];
1651 $notoperations = array();
1653 $operations = array();
1657 if (!in_array($row[
"name"], $notoperations)) {
1658 $operations[] =
$row;
1663 if (count($operations) > 0) {
1664 foreach ($operations as $val) {
1665 $this->tpl->setCurrentBlock(
"operation_btn");
1666 $this->tpl->setVariable(
"BTN_NAME", $val[
"name"]);
1667 $this->tpl->setVariable(
"BTN_VALUE", $this->lng->txt($val[
"lng"]));
1668 $this->tpl->parseCurrentBlock();
1671 $this->tpl->setCurrentBlock(
"operation");
1673 $this->tpl->parseCurrentBlock();
1682 if (strtolower(
$_GET[
"baseClass"]) ==
"iladministrationgui") {
1684 parent::viewObject();
1698 if (!isset(
$_POST[
"id"])) {
1699 $ilErr->raiseError($this->lng->txt(
"no_checkbox"),
$ilErr->MESSAGE);
1701 if (count(
$_POST[
"id"]) > 1) {
1702 $ilErr->raiseError($this->lng->txt(
"cont_select_max_one_item"),
$ilErr->MESSAGE);
1706 $ilErr->raiseError($this->lng->txt(
"cont_select_item"),
$ilErr->MESSAGE);
1714 if ($a_parent_subobj_id == 0) {
1715 $this->ctrl->redirect($this,
"chapters");
1743 if (!isset(
$_POST[
"id"])) {
1744 $ilErr->raiseError($this->lng->txt(
"no_checkbox"),
$ilErr->MESSAGE);
1747 ilUtil::sendInfo($this->lng->txt(
"cont_selected_items_have_been_cut"),
true);
1753 $this->ctrl->redirect($this,
"pages");
1761 if (
$_GET[
"new_type"] ==
"pg") {
1762 $this->ctrl->redirect($this,
"pages");
1764 $this->ctrl->redirect($this,
"chapters");
1776 if ($ot->getContentActivated()) {
1782 require_once(
"./Modules/LearningModule/classes/class.ilContObjectExport.php");
1784 $cont_exp->buildExportFile($opt);
1796 $changelink =
"<a href='" .
$ilCtrl->getLinkTarget($this,
"editMenuProperties") .
"'>" .
$lng->txt(
"change") .
"</a>";
1797 if (!$this->object->isActiveLMMenu()) {
1798 $add =
"<br />" .
$lng->txt(
"cont_download_no_menu") .
" " . $changelink;
1799 } elseif (!$this->object->isActiveDownloads()) {
1800 $add =
"<br />" .
$lng->txt(
"cont_download_no_download") .
" " . $changelink;
1803 $basetype = explode(
"_",
$a_type);
1804 $basetype = $basetype[0];
1806 if ($this->object->getPublicExportFile($basetype) == $a_file) {
1807 return $lng->txt(
"yes") . $add;
1822 if (!isset($a_files)) {
1825 foreach ($a_files as
$f) {
1826 $file = explode(
":", $f);
1827 if (is_int(strpos($file[0],
"_"))) {
1828 $file[0] = explode(
"_", $file[0])[0];
1830 $export_dir = $this->
object->getExportDirectory($file[0]);
1832 if ($this->object->getPublicExportFile($file[0]) ==
1834 $this->
object->setPublicExportFile($file[0],
"");
1836 $this->
object->setPublicExportFile($file[0], $file[1]);
1839 $this->
object->update();
1841 $ilCtrl->redirectByClass(
"ilexportgui");
1851 if (!isset(
$_POST[
"file"])) {
1852 $ilErr->raiseError($this->lng->txt(
"no_checkbox"),
$ilErr->MESSAGE);
1855 if (count(
$_POST[
"file"]) > 1) {
1856 $ilErr->raiseError($this->lng->txt(
"cont_select_max_one_item"),
$ilErr->MESSAGE);
1860 $export_dir = $this->
object->getOfflineDirectory();
1862 $file = basename(
$_POST[
"file"][0]);
1878 include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
1880 $cgui->setFormAction($this->ctrl->getFormAction($this));
1881 $cgui->setHeaderText($this->lng->txt(
"cont_fix_tree_confirm"));
1882 $cgui->setCancel($this->lng->txt(
"cancel"),
"showMaintenance");
1883 $cgui->setConfirm($this->lng->txt(
"cont_fix_tree"),
"fixTree");
1884 $issues = $this->
object->checkStructure();
1886 if (count($issues) > 0) {
1887 $mess =
"Found Issues: <br>" . implode(
"<br>", $issues);
1889 $this->tpl->setContent($cgui->getHTML() . $mess);
1897 $this->
object->fixTree();
1898 ilUtil::sendSuccess($this->lng->txt(
"cont_tree_fixed"),
true);
1899 $this->ctrl->redirect($this,
"showMaintenance");
1907 $a_export_format =
"",
1908 $a_active =
"content",
1909 $a_use_global_tabs =
false,
1910 $a_as_subtabs =
false,
1913 $a_export_all =
false 1923 $ilHelp->setScreenIdComponent(
"lm");
1925 if ($a_as_subtabs) {
1926 $addcmd =
"addSubTabTarget";
1927 $getcmd =
"getSubTabHTML";
1929 $addcmd =
"addTarget";
1930 $getcmd =
"getHTML";
1933 $active[$a_active] =
true;
1935 if (!$this->object->isActiveLMMenu()) {
1939 if ($a_use_global_tabs) {
1952 $showViewInFrameset =
true;
1954 if ($showViewInFrameset && !$a_offline) {
1957 $buttonTarget =
"_top";
1960 if ($a_export_format ==
"scorm") {
1965 if (!$a_offline && $ilAccess->checkAccess(
"read",
"",
$_GET[
"ref_id"])) {
1966 $ilCtrl->setParameterByClass(
"illmpresentationgui",
"obj_id",
$_GET[
"obj_id"]);
1969 $ilCtrl->getLinkTargetByClass(
"illmpresentationgui",
"layout"),
1975 if ($active[
"content"]) {
1976 $ilHelp->setScreenId(
"content");
1977 $ilHelp->setSubScreenId(
"content");
1979 } elseif ($a_offline) {
1980 $tabs_gui->setForcePresentationOfSingleTab(
true);
1984 if ($this->object->isActiveTOC() && $ilAccess->checkAccess(
"read",
"",
$_GET[
"ref_id"])) {
1986 $ilCtrl->setParameterByClass(
"illmpresentationgui",
"obj_id",
$_GET[
"obj_id"]);
1987 $link =
$ilCtrl->getLinkTargetByClass(
"illmpresentationgui",
"showTableOfContents");
1989 if ($a_export_all) {
1990 $link =
"./table_of_contents_" . $a_lang .
".html";
1992 $link =
"./table_of_contents.html";
2006 if ($this->object->isActivePrintView() && $ilAccess->checkAccess(
"read",
"",
$_GET[
"ref_id"])) {
2008 $ilCtrl->setParameterByClass(
"illmpresentationgui",
"obj_id",
$_GET[
"obj_id"]);
2009 $link =
$ilCtrl->getLinkTargetByClass(
"illmpresentationgui",
"showPrintViewSelection");
2022 if (
$ilUser->getId() == ANONYMOUS_USER_ID) {
2023 $is_public = $this->
object->isActiveDownloadsPublic();
2028 if ($this->object->isActiveDownloads() && !$a_offline && $is_public &&
2029 $ilAccess->checkAccess(
"read",
"",
$_GET[
"ref_id"])) {
2030 $ilCtrl->setParameterByClass(
"illmpresentationgui",
"obj_id",
$_GET[
"obj_id"]);
2031 $link =
$ilCtrl->getLinkTargetByClass(
"illmpresentationgui",
"showDownloadList");
2043 if ($a_export_format !=
"scorm" && !$a_offline) {
2045 $ilCtrl->setParameterByClass(
"illmpresentationgui",
"obj_id",
$_GET[
"obj_id"]);
2046 $link = $this->ctrl->getLinkTargetByClass(
2047 array(
"illmpresentationgui",
"ilinfoscreengui"),
2051 $link =
"./info.html";
2064 include_once
'./Services/Tracking/classes/class.ilLearningProgressAccess.php';
2066 $ilAccess->checkAccess(
"read",
"",
$_GET[
"ref_id"]) &&
2068 include_once
'./Services/Object/classes/class.ilObjectLP.php';
2072 "learning_progress",
2073 $this->ctrl->getLinkTargetByClass(array(
"illmpresentationgui",
"illearningprogressgui"),
"editManual"),
2077 $active[
"learning_progress"]
2081 "learning_progress",
2082 $this->ctrl->getLinkTargetByClass(array(
"illmpresentationgui",
"illearningprogressgui"),
"showtlt"),
2086 $active[
"learning_progress"]
2093 $entries = $this->lmme_obj->getMenuEntries(
true);
2094 if (count($entries) > 0 && $ilAccess->checkAccess(
"read",
"",
$_GET[
"ref_id"])) {
2095 foreach ($entries as $entry) {
2097 if ($entry[
"type"] ==
"intern") {
2098 $entry[
"link"] = ILIAS_HTTP_PATH .
"/goto.php?target=" . $entry[
"link"];
2102 if (!strstr($entry[
"link"],
'://') && !strstr($entry[
"link"],
'mailto:')) {
2103 $entry[
"link"] =
"http://" . $entry[
"link"];
2106 if (!strstr($entry[
"link"],
'mailto:')) {
2122 if (!$a_offline && $a_cur_page > 0) {
2125 $page_id = $a_cur_page;
2128 ILIAS_HTTP_PATH .
"/ilias.php?baseClass=ilLMEditorGUI&ref_id=" .
$_GET[
"ref_id"] .
2129 "&obj_id=" . $page_id .
"&to_page=1",
2133 $active[
"edit_page"]
2139 $pl_names = $ilPluginAdmin->getActivePluginsForSlot(
IL_COMP_SERVICE,
"UIComponent",
"uihk");
2140 $plugin_html =
false;
2141 foreach ($pl_names as $pl) {
2143 $gui_class = $ui_plugin->getUIClassInstance();
2144 $resp = $gui_class->modifyGUI(
2145 "Modules/LearningModule",
2159 require_once(
"./Modules/LearningModule/classes/class.ilContObjectExport.php");
2161 $cont_exp->buildExportFile();
2162 $this->offlineList();
2170 include_once(
"./Services/Object/classes/class.ilObjectTranslation.php");
2173 if ($ot->getContentActivated()) {
2177 require_once(
"./Modules/LearningModule/classes/class.ilContObjectExport.php");
2179 $cont_exp->buildExportFile();
2187 require_once(
"./Modules/LearningModule/classes/class.ilContObjectExport.php");
2189 $cont_exp->buildExportFile();
2201 if (!$a_omit_obj_id) {
2204 $lmtree = $this->
object->getTree();
2209 $path = $lmtree->getPathFull($lmtree->getRootId());
2211 $path[] = array(
"type" =>
"pg",
"child" => $this->obj_id,
2217 if (
$row[
"child"] == 1) {
2218 $this->ctrl->setParameter($this,
"obj_id",
"");
2219 $locator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this,
"chapters"));
2222 switch (
$row[
"type"]) {
2224 $this->ctrl->setParameterByClass(
"ilstructureobjectgui",
"obj_id",
$row[
"child"]);
2225 $locator->addItem(
$title, $this->ctrl->getLinkTargetByClass(
"ilstructureobjectgui",
"view"));
2229 $this->ctrl->setParameterByClass(
"illmpageobjectgui",
"obj_id",
$row[
"child"]);
2230 $locator->addItem(
$title, $this->ctrl->getLinkTargetByClass(
"illmpageobjectgui",
"edit"));
2235 if (!$a_omit_obj_id) {
2236 $this->ctrl->setParameter($this,
"obj_id",
$_GET[
"obj_id"]);
2255 include_once(
"./Modules/LearningModule/classes/class.ilLMQuestionListTableGUI.php");
2270 include_once(
"./Modules/LearningModule/classes/class.ilLMBlockedUsersTableGUI.php");
2283 include_once(
"./Services/COPage/classes/class.ilPageQuestionProcessor.php");
2284 if (is_array(
$_POST[
"userquest_id"])) {
2285 foreach (
$_POST[
"userquest_id"] as $uqid) {
2286 $uqid = explode(
":", $uqid);
2289 ilUtil::sendSuccess(
$lng->txt(
"msg_obj_modified"),
true);
2291 $ilCtrl->redirect($this,
"listBlockedUsers");
2302 include_once(
"./Services/COPage/classes/class.ilPageQuestionProcessor.php");
2303 if (is_array(
$_POST[
"userquest_id"])) {
2304 foreach (
$_POST[
"userquest_id"] as $uqid) {
2305 $uqid = explode(
":", $uqid);
2308 ilUtil::sendSuccess(
$lng->txt(
"msg_obj_modified"),
true);
2310 $ilCtrl->redirect($this,
"listBlockedUsers");
2320 if (!is_array(
$_POST[
"userquest_id"])) {
2322 $ilCtrl->redirect($this,
"listBlockedUsers");
2326 foreach (
$_POST[
"userquest_id"] as $uqid) {
2327 $uqid = explode(
":", $uqid);
2329 if (!in_array(
$login, $rcps)) {
2333 require_once
'Services/Mail/classes/class.ilMailFormCall.php';
2340 'rcp_to' => implode(
',', $rcps),
2351 $link = chr(13) . chr(10) . chr(13) . chr(10);
2352 $link .= $this->lng->txt(
'cont_blocked_users_mail_link');
2353 $link .= chr(13) . chr(10) . chr(13) . chr(10);
2354 include_once
'./Services/Link/classes/class.ilLink.php';
2356 return rawurlencode(base64_encode($link));
2373 $ilHelp->setScreenIdComponent(
"lm");
2376 parent::setTitleAndDescription();
2377 $this->tpl->setTitle($this->object->getTitle());
2378 $this->tpl->setTitleIcon(
2400 $lng->txt(
"cont_chapters"),
2401 $ilCtrl->getLinkTarget($this,
"chapters")
2407 $lng->txt(
"cont_all_pages"),
2408 $ilCtrl->getLinkTarget($this,
"pages")
2414 $lng->txt(
"cont_short_titles"),
2415 $ilCtrl->getLinkTargetByClass(
"illmeditshorttitlesgui",
"")
2419 if (
$lm_set->get(
"html_export_ids")) {
2423 $lng->txt(
"cont_html_export_ids"),
2424 $ilCtrl->getLinkTarget($this,
"showExportIDsOverview")
2429 $lng->loadLanguageModule(
"help");
2432 $lng->txt(
"cont_online_help_ids"),
2433 $ilCtrl->getLinkTarget($this,
"showExportIDsOverview")
2438 $lng->txt(
"help_tooltips"),
2439 $ilCtrl->getLinkTarget($this,
"showTooltipList")
2446 $lng->txt(
"cont_internal_links"),
2447 $ilCtrl->getLinkTarget($this,
"listLinks")
2453 $lng->txt(
"link_check"),
2454 $ilCtrl->getLinkTarget($this,
"linkChecker")
2459 $lng->txt(
"history"),
2460 $this->ctrl->getLinkTarget($this,
"history")
2466 $lng->txt(
"cont_maintenance"),
2467 $ilCtrl->getLinkTarget($this,
"showMaintenance")
2473 $lng->txt(
"cont_subtitle_files"),
2474 $ilCtrl->getLinkTargetByClass(
"ilmobmultisrtuploadgui",
"")
2480 $lng->txt(
"cont_import"),
2481 $ilCtrl->getLinkTargetByClass(
"illmimportgui",
"")
2484 $ilTabs->activateSubTab($a_active);
2485 $ilTabs->activateTab(
"content");
2502 $lng->txt(
"cont_question_stats"),
2503 $ilCtrl->getLinkTarget($this,
"listQuestions")
2509 $lng->txt(
"cont_blocked_users"),
2510 $ilCtrl->getLinkTarget($this,
"listBlockedUsers")
2513 $ilTabs->activateSubTab($a_active);
2528 $lng->txt(
"content"),
2529 $this->ctrl->getLinkTarget($this,
"chapters")
2535 $lng->txt(
"info_short"),
2536 $this->ctrl->getLinkTargetByClass(
"ilinfoscreengui",
'showSummary')
2542 $lng->txt(
"settings"),
2543 $this->ctrl->getLinkTarget($this,
'properties')
2549 $lng->txt(
"objs_qst"),
2550 $this->ctrl->getLinkTarget($this,
"listQuestions")
2554 include_once
'./Services/Tracking/classes/class.ilLearningProgressAccess.php';
2557 'learning_progress',
2558 $lng->txt(
"learning_progress"),
2559 $this->ctrl->getLinkTargetByClass(array(
'illearningprogressgui'),
'')
2563 if ($this->object->getType() !=
"lm") {
2567 $lng->txt(
"bib_data"),
2568 $this->ctrl->getLinkTarget($this,
"editBibItem")
2573 include_once
"Services/Object/classes/class.ilObjectMetaDataGUI.php";
2575 $mdtab = $mdgui->getTab();
2579 $lng->txt(
"meta_data"),
2584 if ($this->object->getType() ==
"lm") {
2588 $lng->txt(
"export"),
2589 $this->ctrl->getLinkTargetByClass(
"ilexportgui",
"")
2594 if (
$rbacsystem->checkAccess(
'edit_permission', $this->object->getRefId())) {
2597 $lng->txt(
"perm_settings"),
2598 $this->ctrl->getLinkTargetByClass(array(get_class($this),
'ilpermissiongui'),
"perm")
2603 $ilTabs->activateTab($a_act);
2607 $ilTabs->addNonTabbedLink(
2609 $lng->txt(
"cont_presentation_view"),
2610 "ilias.php?baseClass=ilLMPresentationGUI&ref_id=" . $this->
object->getRefID(),
2625 array(
"settings",
"cont_style",
"cont_lm_menu",
"public_section",
2626 "cont_glossaries",
"cont_multilinguality",
"obj_multilinguality",
2630 $ilTabs->addSubTabTarget(
2632 $this->ctrl->getLinkTarget($this,
'properties'),
2638 $ilTabs->addSubTabTarget(
2640 $this->ctrl->getLinkTarget($this,
'editStyleProperties'),
2646 $ilTabs->addSubTabTarget(
2648 $this->ctrl->getLinkTarget($this,
'editMenuProperties'),
2654 $ilTabs->addSubTabTarget(
2656 $this->ctrl->getLinkTarget($this,
'editGlossaries'),
2663 $ilTabs->addSubTabTarget(
2665 $this->ctrl->getLinkTarget($this,
'editPublicSection'),
2671 $ilTabs->addSubTabTarget(
2672 "obj_multilinguality",
2673 $this->ctrl->getLinkTargetByClass(
"ilobjecttranslationgui",
"")
2677 if ($lti_settings->hasSettingsAccess()) {
2678 $ilTabs->addSubTabTarget(
2680 $this->ctrl->getLinkTargetByClass(ilLTIProviderObjectSettingGUI::class)
2684 $ilTabs->setSubTabActive($a_active);
2695 if (!$ilAccess->checkAccessOfUser(ANONYMOUS_USER_ID,
"read",
"", $this->object->getRefId())) {
2701 $ilTabs->setTabActive(
"settings");
2703 $this->tpl->addBlockFile(
2706 "tpl.lm_public_selector.html",
2707 "Modules/LearningModule" 2715 $modes = array(
"complete" => $this->lng->txt(
"all_pages"),
"selected" => $this->lng->txt(
"selected_pages_only"));
2716 include_once(
"./Services/Form/classes/class.ilSelectInputGUI.php");
2718 $si->setOptions($modes);
2719 $si->setValue($this->object->getPublicAccessMode());
2720 $ilToolbar->addInputItem(
$si,
true);
2721 $ilToolbar->addFormButton($this->lng->txt(
"save"),
"savePublicSectionAccess");
2722 $ilToolbar->setFormAction($this->ctrl->getFormAction($this,
"savePublicSectionAccess"));
2724 if ($this->object->getPublicAccessMode() ==
"selected") {
2725 $this->tpl->setCurrentBlock(
"select_pages");
2726 $this->tpl->setVariable(
"FORMACTION", $this->ctrl->getLinkTarget($this,
"savePublicSectionPages"));
2728 include_once(
"./Modules/LearningModule/classes/class.ilPublicSectionExplorerGUI.php");
2730 $tree->setSelectMode(
"pages",
true);
2731 $tree->setSkipRootNode(
true);
2733 $this->tpl->setVariable(
"EXPLORER",
$tree->getHTML());
2734 $this->tpl->setVariable(
"TXT_SAVE", $this->lng->txt(
"save"));
2736 $this->tpl->parseCurrentBlock();
2743 $this->
object->setPublicAccessMode(
$_POST[
"lm_public_mode"]);
2744 $this->
object->updateProperties();
2746 ilUtil::sendSuccess($this->lng->txt(
"msg_obj_modified"),
true);
2747 $this->ctrl->redirect($this,
"editPublicSection");
2755 $this->
object->setPublicAccessMode(
$_POST[
"lm_public_mode"]);
2756 $this->
object->updateProperties();
2757 ilUtil::sendSuccess($this->lng->txt(
"msg_obj_modified"),
true);
2758 $this->ctrl->redirect($this,
"editPublicSection");
2767 ilUtil::sendSuccess($this->lng->txt(
"msg_obj_modified"),
true);
2768 $this->ctrl->redirect($this,
"editPublicSection");
2781 require_once(
"./Services/History/classes/class.ilHistoryTableGUI.php");
2785 $this->object->getId(),
2786 $this->
object->getType()
2789 $hist_gui->setCommentVisibility($this->object->isActiveHistoryUserComments());
2791 $this->tpl->setContent($hist_gui->getHTML());
2806 require_once
'Services/UIComponent/AdvancedSelectionList/classes/class.ilAdvancedSelectionListGUI.php';
2808 $actions->setSelectionHeaderClass(
'small');
2809 $actions->setItemLinkClass(
'xsmall');
2810 $actions->setListTitle($this->lng->txt(
'actions'));
2812 $this->ctrl->setParameterByClass(
'ilLMPageObjectGUI',
'obj_id', $row[
'page_id']);
2814 $this->lng->txt(
'edit'),
2816 $this->ctrl->getLinkTargetByClass(
'ilLMPageObjectGUI',
'edit')
2818 $this->ctrl->clearParametersByClass(
'ilLMPageObjectGUI');
2819 $row[
'action_html'] =
$actions->getHTML();
2834 require_once
'./Services/LinkChecker/classes/class.ilLinkCheckerTableGUI.php';
2839 include_once
"Services/Cron/classes/class.ilCronManager.php";
2841 include_once
'./Services/LinkChecker/classes/class.ilLinkCheckNotify.php';
2842 include_once
'Services/Form/classes/class.ilPropertyFormGUI.php';
2844 $chb =
new ilCheckboxInputGUI($this->lng->txt(
'link_check_message_a'),
'link_check_message');
2847 $chb->setOptionTitle($this->lng->txt(
'link_check_message_b'));
2850 $toolbar->addFormButton($this->lng->txt(
'save'),
'saveLinkCheck');
2851 $toolbar->setFormAction($this->ctrl->getLinkTarget($this,
'saveLinkCheck'));
2855 $tgui->setLinkChecker($this->link_checker_obj)
2856 ->setRowHandler($this)
2857 ->setRefreshButton($this->lng->txt(
'refresh'),
'refreshLinkCheck');
2859 return $tpl->setContent($tgui->prepareHTML()->getHTML() .
$toolbar->getHTML());
2867 include_once
'./Services/LinkChecker/classes/class.ilLinkCheckNotify.php';
2870 $link_check_notify->setUserId(
$ilUser->getId());
2871 $link_check_notify->setObjId($this->object->getId());
2873 if (
$_POST[
'link_check_message']) {
2874 ilUtil::sendSuccess($this->lng->txt(
'link_check_message_enabled'));
2875 $link_check_notify->addNotifier();
2877 ilUtil::sendSuccess($this->lng->txt(
'link_check_message_disabled'));
2878 $link_check_notify->deleteNotifier();
2890 $this->link_checker_obj->checkLinks();
2891 ilUtil::sendSuccess($this->lng->txt(
'link_checker_refreshed'));
2902 include_once
'./Services/LinkChecker/classes/class.ilLinkChecker.php';
2905 $this->link_checker_obj->setObjId($this->object->getId());
2912 include_once
'./Modules/LearningModule/classes/class.ilLMMenuEditor.php';
2915 $this->lmme_obj->setObjId($this->object->getId());
2932 $ilTabs->setTabActive(
"settings");
2935 $ilToolbar->addButton(
2936 $this->lng->txt(
"lm_menu_select_internal_object"),
2937 $ilCtrl->getLinkTarget($this,
"showEntrySelector")
2941 $this->tpl->setContent(
$form->getHTML());
2954 include_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
2958 $ti =
new ilTextInputGUI($this->lng->txt(
"lm_menu_entry_title"),
"title");
2961 $form->addItem($ti);
2964 $ta =
new ilTextInputGUI($this->lng->txt(
"lm_menu_entry_target"),
"target");
2967 $form->addItem($ta);
2969 if ($a_mode ==
"edit") {
2971 $this->lmme_obj->readEntry($_REQUEST[
"menu_entry"]);
2972 $ti->setValue($this->lmme_obj->getTitle());
2973 $ta->setValue($this->lmme_obj->getTarget());
2976 if (isset(
$_GET[
"link_ref_id"])) {
2977 $link_ref_id = (int)
$_GET[
"link_ref_id"];
2982 $target_link = $obj_type .
"_" . $link_ref_id;
2984 $ta->setValue($target_link);
2988 $hi->setValue($link_ref_id);
2989 $form->addItem($hi);
2994 if ($a_mode ==
"create") {
2995 $form->addCommandButton(
"saveMenuEntry",
$lng->txt(
"save"));
2996 $form->addCommandButton(
"editMenuProperties",
$lng->txt(
"cancel"));
2997 $form->setTitle(
$lng->txt(
"lm_menu_new_entry"));
2999 $form->addCommandButton(
"updateMenuEntry",
$lng->txt(
"save"));
3000 $form->addCommandButton(
"editMenuProperties",
$lng->txt(
"cancel"));
3001 $form->setTitle(
$lng->txt(
"lm_menu_edit_entry"));
3017 if (empty(
$_POST[
"title"])) {
3019 $ilCtrl->redirect($this,
"addMenuEntry");
3021 if (empty(
$_POST[
"target"])) {
3023 $ilCtrl->redirect($this,
"addMenuEntry");
3027 $this->lmme_obj->setTitle(
$_POST[
"title"]);
3028 $this->lmme_obj->setTarget(
$_POST[
"target"]);
3029 $this->lmme_obj->setLinkRefId(
$_POST[
"link_ref_id"]);
3031 if (
$_POST[
"link_ref_id"]) {
3032 $this->lmme_obj->setLinkType(
"intern");
3035 $this->lmme_obj->create();
3037 ilUtil::sendSuccess($this->lng->txt(
"msg_entry_added"),
true);
3038 $this->ctrl->redirect($this,
"editMenuProperties");
3048 if (empty(
$_GET[
"menu_entry"])) {
3049 $ilErr->raiseError($this->lng->txt(
"no_menu_entry_id"),
$ilErr->MESSAGE);
3053 $this->lmme_obj->delete(
$_GET[
"menu_entry"]);
3055 ilUtil::sendSuccess($this->lng->txt(
"msg_entry_removed"),
true);
3056 $this->ctrl->redirect($this,
"editMenuProperties");
3071 $ilTabs->setTabActive(
"settings");
3075 if (empty(
$_GET[
"menu_entry"])) {
3076 $ilErr->raiseError($this->lng->txt(
"no_menu_entry_id"),
$ilErr->MESSAGE);
3079 $ilCtrl->saveParameter($this, array(
"menu_entry"));
3080 $ilToolbar->addButton(
3081 $this->lng->txt(
"lm_menu_select_internal_object"),
3082 $ilCtrl->getLinkTarget($this,
"showEntrySelector")
3086 $this->tpl->setContent(
$form->getHTML());
3096 if (empty($_REQUEST[
"menu_entry"])) {
3097 $ilErr->raiseError($this->lng->txt(
"no_menu_entry_id"),
$ilErr->MESSAGE);
3101 if (empty(
$_POST[
"title"])) {
3102 $ilErr->raiseError($this->lng->txt(
"please_enter_title"),
$ilErr->MESSAGE);
3104 if (empty(
$_POST[
"target"])) {
3105 $ilErr->raiseError($this->lng->txt(
"please_enter_target"),
$ilErr->MESSAGE);
3109 $this->lmme_obj->readEntry($_REQUEST[
"menu_entry"]);
3110 $this->lmme_obj->setTitle(
$_POST[
"title"]);
3111 $this->lmme_obj->setTarget(
$_POST[
"target"]);
3112 if (
$_POST[
"link_ref_id"]) {
3113 $this->lmme_obj->setLinkType(
"intern");
3115 if (is_int(strpos(
$_POST[
"target"],
"."))) {
3116 $this->lmme_obj->setLinkType(
"extern");
3118 $this->lmme_obj->update();
3120 ilUtil::sendSuccess($this->lng->txt(
"msg_entry_updated"),
true);
3121 $this->ctrl->redirect($this,
"editMenuProperties");
3131 $ilTabs->setTabActive(
"settings");
3134 $ilCtrl->saveParameter($this, array(
"menu_entry"));
3136 $this->tpl->addBlockFile(
"ADM_CONTENT",
"adm_content",
"tpl.lm_menu_object_selector.html",
"Modules/LearningModule");
3140 require_once(
"./Modules/LearningModule/classes/class.ilLMMenuObjectSelector.php");
3143 $exp->
setExpand(
$_GET[
"lm_menu_expand"] ?
$_GET[
"lm_menu_expand"] : $this->tree->readRootId());
3144 $exp->setExpandTarget($this->ctrl->getLinkTarget($this,
'showEntrySelector'));
3145 $exp->setTargetGet(
"ref_id");
3146 $exp->setRefId($this->cur_ref_id);
3148 $sel_types = array(
'mcst',
'mep',
'cat',
'lm',
'glo',
'frm',
'exc',
'tst',
'svy',
'chat',
'wiki',
'sahs',
3149 "crs",
"grp",
"book",
"tst",
"file");
3150 $exp->setSelectableTypes($sel_types);
3157 foreach ($exp->format_options as $node) {
3158 if (!$node[
"container"]) {
3159 $pages[] = $node[
"child"];
3164 $this->tpl->setVariable(
"TXT_SET_PUBLIC_MODE", $this->lng->txt(
"set_public_mode"));
3165 $this->tpl->setVariable(
"TXT_CHOOSE_PUBLIC_MODE", $this->lng->txt(
"choose_public_mode"));
3166 $modes = array(
"complete" => $this->lng->txt(
"all_pages"),
"selected" => $this->lng->txt(
"selected_pages_only"));
3167 $select_public_mode =
ilUtil::formSelect($this->object->getPublicAccessMode(),
"lm_public_mode", $modes,
false,
true);
3168 $this->tpl->setVariable(
"SELECT_PUBLIC_MODE", $select_public_mode);
3170 $this->tpl->setVariable(
"TXT_EXPLORER_HEADER", $this->lng->txt(
"choose_public_pages"));
3171 $this->tpl->setVariable(
"EXP_REFRESH", $this->lng->txt(
"refresh"));
3172 $this->tpl->setVariable(
"EXPLORER",
$output);
3173 $this->tpl->setVariable(
"ONCLICK", $js_pages);
3174 $this->tpl->setVariable(
"TXT_CHECKALL", $this->lng->txt(
"check_all"));
3175 $this->tpl->setVariable(
"TXT_UNCHECKALL", $this->lng->txt(
"uncheck_all"));
3176 $this->tpl->setVariable(
"TXT_SAVE", $this->lng->txt(
"save"));
3177 $this->tpl->setVariable(
"FORMACTION", $this->ctrl->getLinkTarget($this,
"savePublicSection"));
3187 if (!isset(
$_POST[
"id"])) {
3188 $ilErr->raiseError($this->lng->txt(
"no_checkbox"),
$ilErr->MESSAGE);
3190 if (count(
$_POST[
"id"]) > 1) {
3191 $ilErr->raiseError($this->lng->txt(
"cont_select_max_one_item"),
$ilErr->MESSAGE);
3193 if (
$_POST[
"id"][0] != $this->object->getHeaderPage()) {
3194 $this->
object->setHeaderPage(
$_POST[
"id"][0]);
3196 $this->
object->setHeaderPage(0);
3198 $this->
object->updateProperties();
3199 $this->ctrl->redirect($this,
"pages");
3209 if (!isset(
$_POST[
"id"])) {
3210 $ilErr->raiseError($this->lng->txt(
"no_checkbox"),
$ilErr->MESSAGE);
3212 if (count(
$_POST[
"id"]) > 1) {
3213 $ilErr->raiseError($this->lng->txt(
"cont_select_max_one_item"),
$ilErr->MESSAGE);
3215 if (
$_POST[
"id"][0] != $this->object->getFooterPage()) {
3216 $this->
object->setFooterPage(
$_POST[
"id"][0]);
3218 $this->
object->setFooterPage(0);
3220 $this->
object->updateProperties();
3221 $this->ctrl->redirect($this,
"pages");
3233 ilUtil::sendSuccess($this->lng->txt(
"lm_save_titles"),
true);
3234 $ilCtrl->redirect($this,
"chapters");
3245 include_once(
"./Modules/LearningModule/classes/class.ilChapterHierarchyFormGUI.php");
3251 $parent_id = $this->lm_tree->getParentId($node_id);
3254 $parent_id = $node_id;
3258 for (
$i = 1;
$i <= $num;
$i++) {
3260 $chap->setType(
"st");
3261 $chap->setTitle(
$lng->txt(
"cont_new_chap"));
3262 $chap->setLMId($this->object->getId());
3267 $ilCtrl->redirect($this,
"chapters");
3279 include_once(
"./Modules/LearningModule/classes/class.ilChapterHierarchyFormGUI.php");
3284 $ilLog->write(
"InsertChapterClip, num: $num, node_id: $node_id, " .
3287 if (!$first_child) {
3288 $parent_id = $this->lm_tree->getParentId($node_id);
3291 $parent_id = $node_id;
3296 $chapters =
$ilUser->getClipboardObjects(
"st",
true);
3297 $copied_nodes = array();
3298 foreach ($chapters as $chap) {
3299 $ilLog->write(
"Call pasteTree, Target LM: " . $this->object->getId() .
", Chapter ID: " . $chap[
"id"]
3300 .
", Parent ID: " . $parent_id .
", Target: " .
$target);
3306 $chap[
"insert_time"],
3315 $ilUser->clipboardDeleteObjectsOfType(
"pg");
3316 $ilUser->clipboardDeleteObjectsOfType(
"st");
3320 $this->
object->checkTree();
3321 $ilCtrl->redirect($this,
"chapters");
3333 $ilAccess = $DIC->access();
3335 $lng = $DIC->language();
3337 if ($ilAccess->checkAccess(
"read",
"", $a_target)) {
3338 $_GET[
"baseClass"] =
"ilLMPresentationGUI";
3339 $_GET[
"ref_id"] = $a_target;
3340 $_GET[
"cmd"] =
"resume";
3341 include(
"ilias.php");
3343 } elseif ($ilAccess->checkAccess(
"visible",
"", $a_target)) {
3344 $_GET[
"baseClass"] =
"ilLMPresentationGUI";
3345 $_GET[
"ref_id"] = $a_target;
3346 $_GET[
"cmd"] =
"infoScreen";
3347 include(
"ilias.php");
3349 } elseif ($ilAccess->checkAccess(
"read",
"", ROOT_FOLDER_ID)) {
3351 $lng->txt(
"msg_no_perm_read_item"),
3370 if (!is_array($items)) {
3372 $ilCtrl->redirect($this, $a_return);
3376 foreach ($items as $k => $item) {
3381 foreach ($todel as $k) {
3388 $ilCtrl->redirect($this, $a_return);
3400 if (!is_array($items)) {
3402 $ilCtrl->redirect($this,
"chapters");
3406 foreach ($items as $k => $item) {
3411 foreach ($todel as $k) {
3417 $ilCtrl->redirect($this,
"chapters");
3450 $ilToolbar->setFormAction(
$ilCtrl->getFormAction($this));
3451 include_once(
"./Services/Form/classes/class.ilSelectInputGUI.php");
3452 $lm_tree = $this->
object->getTree();
3453 $childs = $lm_tree->getChilds($lm_tree->readRootId());
3455 foreach ($childs as
$c) {
3456 $options[$c[
"child"]] = $c[
"title"];
3461 $ilToolbar->addInputItem(
$si,
true);
3462 $ilToolbar->addFormButton(
$lng->txt(
"help_filter"),
"filterHelpChapters");
3464 include_once(
"./Modules/LearningModule/classes/class.ilHelpMappingTableGUI.php");
3467 include_once(
"./Modules/LearningModule/classes/class.ilExportIDTableGUI.php");
3485 $ilCtrl->redirect($this,
"showExportIDsOverview");
3499 if (is_array(
$_POST[
"exportid"])) {
3500 foreach (
$_POST[
"exportid"] as $pg_id => $exp_id) {
3501 if ($exp_id !=
"" && !preg_match(
3502 "/^([a-zA-Z]+)[0-9a-zA-Z_]*$/",
3511 $lng->txt(
"cont_exp_ids_not_resp_format3") .
" " .
3512 $lng->txt(
"cont_exp_ids_not_resp_format2"));
3518 if (is_array(
$_POST[
"exportid"])) {
3519 foreach (
$_POST[
"exportid"] as $pg_id => $exp_id) {
3521 $this->object->getId(),
3529 ilUtil::sendSuccess(
$lng->txt(
"cont_saved_export_ids"),
true);
3530 $ilCtrl->redirect($this,
"showExportIdsOverview");
3544 include_once(
"./Services/Help/classes/class.ilHelpMapping.php");
3545 if (is_array(
$_POST[
"screen_ids"])) {
3546 foreach (
$_POST[
"screen_ids"] as $chap => $ids) {
3547 $ids = explode(
"\n", $ids);
3551 ilUtil::sendSuccess(
$lng->txt(
"msg_obj_modified"),
true);
3552 $ilCtrl->redirect($this,
"showExportIdsOverview");
3575 $ilToolbar->setFormAction(
$ilCtrl->getFormAction($this));
3576 include_once(
"./Services/Form/classes/class.ilTextInputGUI.php");
3577 $ti =
new ilTextInputGUI($this->lng->txt(
"help_tooltip_id"),
"tooltip_id");
3580 $ilToolbar->addInputItem($ti,
true);
3581 $ilToolbar->addFormButton(
$lng->txt(
"add"),
"addTooltip");
3582 $ilToolbar->addSeparator();
3584 include_once(
"./Services/Form/classes/class.ilSelectInputGUI.php");
3592 $ilToolbar->addInputItem(
$si,
true);
3593 $ilToolbar->addFormButton(
$lng->txt(
"help_filter"),
"filterTooltips");
3595 include_once(
"./Modules/LearningModule/classes/class.ilHelpTooltipTableGUI.php");
3613 if (trim($tt_id) !=
"") {
3614 if (is_int(strpos($tt_id,
"_"))) {
3615 include_once(
"./Services/Help/classes/class.ilHelp.php");
3617 ilUtil::sendSuccess(
$lng->txt(
"msg_obj_modified"),
true);
3619 $fu = strpos($tt_id,
"_");
3620 $comp = substr($tt_id, 0, $fu);
3626 $ilCtrl->redirect($this,
"showTooltipList");
3641 $ilCtrl->redirect($this,
"showTooltipList");
3656 include_once(
"./Services/Help/classes/class.ilHelp.php");
3658 if (is_array(
$_POST[
"text"])) {
3666 ilUtil::sendSuccess(
$lng->txt(
"msg_obj_modified"),
true);
3668 $ilCtrl->redirect($this,
"showTooltipList");
3679 if (is_array(
$_POST[
"id"])) {
3680 include_once(
"./Services/Help/classes/class.ilHelp.php");
3684 ilUtil::sendSuccess(
$lng->txt(
"msg_obj_modified"),
true);
3686 $ilCtrl->redirect($this,
"showTooltipList");
3702 $lng = $DIC->language();
3706 if ($a_def_option !=
"") {
3710 $layout->addOption(
new ilRadioOption(
"<table><tr><td>" . $im_tag .
"</td><td><b>" .
3711 $lng->txt(
"cont_lm_default_layout") .
3712 "</b>: " .
$lng->txt(
"cont_layout_" . $a_def_option) .
3713 "</td></tr></table>",
""));
3720 $layout->addOption(
new ilRadioOption(
"<table><tr><td style='padding: 0px 5px 5px;'>" .
3721 $im_tag .
"</td><td style='padding:5px;'><b>" .
$lng->txt(
"cont_layout_" .
$l) .
"</b>: " .
3722 $lng->txt(
"cont_layout_" .
$l .
"_desc") .
"</td></tr></table>",
$l));
3734 $ilCtrl->setParameter($this,
"hierarchy",
"1");
3748 if (!is_array(
$_POST[
"id"])) {
3751 if ($a_in_hierarchy) {
3752 $ilCtrl->redirect($this,
"chapters");
3754 $ilCtrl->redirect($this,
"pages");
3760 $tpl->setContent($this->form->getHTML());
3771 include_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
3774 if (is_array(
$_POST[
"id"])) {
3778 $this->form->addItem($hi);
3781 $layout = self::getLayoutOption(
3782 $lng->txt(
"cont_layout"),
3784 $this->
object->getLayout()
3786 $this->form->addItem($layout);
3788 $this->form->addCommandButton(
"savePageLayout",
$lng->txt(
"save"));
3789 $this->form->addCommandButton(
"pages",
$lng->txt(
"cancel"));
3791 $this->form->setTitle(
$lng->txt(
"cont_set_layout"));
3792 $this->form->setFormAction(
$ilCtrl->getFormAction($this));
3803 $ilCtrl->setParameter($this,
"hierarchy",
$_GET[
"hierarchy"]);
3812 ilUtil::sendSuccess(
$lng->txt(
"msg_obj_modified"),
true);
3814 if (
$_GET[
"hierarchy"] == 1) {
3815 $ilCtrl->redirect($this,
"chapters");
3817 $ilCtrl->redirect($this,
"pages");
3840 $ilTabs->setTabActive(
"settings");
3843 $ilToolbar->addButton(
3845 $ilCtrl->getLinkTarget($this,
"showLMGlossarySelector")
3848 include_once(
"./Modules/LearningModule/classes/class.ilLMGlossaryTableGUI.php");
3870 $ilTabs->setTabActive(
"settings");
3873 include_once
'Services/Search/classes/class.ilSearchRootSelector.php';
3877 $exp->setExpandTarget(
$ilCtrl->getLinkTarget($this,
'showLMGlossarySelector'));
3878 $exp->setTargetClass(get_class($this));
3879 $exp->setCmd(
'confirmGlossarySelection');
3880 $exp->setClickableTypes(array(
"glo"));
3881 $exp->addFilter(
"glo");
3885 $tpl->setContent($exp->getOutput());
3897 include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
3899 $ilCtrl->setParameter($this,
"glo_ref_id",
$_GET[
"root_id"]);
3900 $cgui->setFormAction(
$ilCtrl->getFormAction($this));
3901 $cgui->setHeaderText(
$lng->txt(
"cont_link_glo_in_lm"));
3902 $cgui->setCancel(
$lng->txt(
"no"),
"selectLMGlossary");
3903 $cgui->setConfirm(
$lng->txt(
"yes"),
"selectLMGlossaryLink");
3904 $tpl->setContent($cgui->getHTML());
3915 $glo_ref_id = (int)
$_GET[
"glo_ref_id"];
3917 $this->
object->autoLinkGlossaryTerms($glo_ref_id);
3933 $glos = $this->
object->getAutoGlossaries();
3934 $glo_ref_id = (int)
$_GET[
"glo_ref_id"];
3936 if (!in_array($glo_id, $glos)) {
3939 $this->
object->setAutoGlossaries($glos);
3940 $this->
object->update();
3942 ilUtil::sendSuccess(
$lng->txt(
"msg_obj_modified"),
true);
3943 $ilCtrl->redirect($this,
"editGlossaries");
3957 $this->
object->removeAutoGlossary((
int)
$_GET[
"glo_id"]);
3958 $this->
object->update();
3960 ilUtil::sendSuccess(
$lng->txt(
"msg_obj_modified"),
true);
3961 $ilCtrl->redirect($this,
"editGlossaries");
3974 $ilCtrl->setParameter($this,
"transl",
"");
3975 if (
$_GET[
"lang_switch_mode"] ==
"short_titles") {
3976 $ilCtrl->redirectByClass(
"illmeditshorttitlesgui",
"");
3978 $ilCtrl->redirect($this,
"chapters");
3991 $ilCtrl->setParameter($this,
"transl",
$_GET[
"totransl"]);
3992 if (
$_GET[
"lang_switch_mode"] ==
"short_titles") {
3993 $ilCtrl->redirectByClass(
"illmeditshorttitlesgui",
"");
3995 $ilCtrl->redirect($this,
"chapters");
4001 return parent::redrawHeaderActionObject();
listBlockedUsers()
List blocked users.
static _lookupLogin($a_user_id)
lookup login
cutItems($a_return="chapters")
Copy items to clipboard, then cut them from the current tree.
resetNumberOfTries()
Reset number of tries.
exportSCORM()
create scorm package
unlockQuestion()
Unlock blocked question.
addTabs($a_act="")
Adds tabs.
static resetTries($a_q_id, $a_user_id)
Reset tries.
This class represents an option in a radio group.
moveChapter($a_parent_subobj_id=0)
move a single chapter (selection)
static updateInternalLinks($a_copied_nodes, $a_parent_type="lm")
Update internal links, after multiple pages have been copied.
if(isset($_REQUEST['delete'])) $list
sendMailToBlockedUsers()
Send Mail to blocked users.
static hasNotification($type, $user_id, $id)
Check notification status for object and user.
editMasterLanguage()
Edit master language.
static saveExportId($a_lm_id, $a_lmobj_id, $a_exp_id, $a_type="pg")
Save export id.
pasteChapter($a_parent_subobj_id=0)
paste chapter
Class ilObjLearningModule.
static _lookupType($a_obj_id, $a_lm_id=0)
Lookup type.
initMenuForm()
Init menu form.
setSubTabs($a_active)
Set sub tabs.
Import related features for learning modules.
saveExportIds()
Save export IDs.
setPageLayoutInHierarchy()
Set layout for multipl pages.
setValue($a_value)
Set Value.
showActions($a_actions)
show possible action (form buttons)
exportHTML()
create html package
selectLMGlossary()
Select lm glossary.
initMenuEntryForm($a_mode="edit")
Init menu entry form.
GUI class for the workflow of copying objects.
initStylePropertiesForm()
Init style properties form.
const TYPE_LM_BLOCKED_USERS
setTabs($a_act="")
output tabs
static getStyleSheetLocation($mode="output", $a_css_name="", $a_css_location="")
get full style sheet file name (path inclusive) of current user
showMaintenance()
Show maintenance.
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 saveTitles($a_lm, $a_titles, $a_lang="-")
Save titles for lm objects.
updateMenuEntry()
update a menu entry
savePageLayout()
Save page layout.
listLinks()
List all broken links.
activatePages()
activates or deactivates pages
saveTooltips()
Save tooltips.
static getAvailableLayouts()
get all available lm layouts
if(!array_key_exists('StateId', $_REQUEST)) $id
static get($a_var)
Get a value.
const LP_MODE_COLLECTION_MANUAL
static _writePublicAccessStatus($a_pages, $a_cont_obj_id)
update public access flags in lm_data for all pages of a content object
static _gotoRepositoryRoot($a_raise_error=false)
Goto repository root.
Class ilStructureObjectGUI.
static getLayoutOption($a_txt, $a_var, $a_def_option="")
Get layout option.
static set($a_var, $a_val)
Set a value.
popup()
popup window for wysiwyg editor
showExportIDsOverview($a_validation=false)
Show export IDs overview.
static _lookupTitle($a_id)
lookup object title
setQuestionsSubTabs($a_active)
Set pages tabs.
Export class for content objects.
class for checking external links in page objects Normally used in Cron jobs, but should be extensibl...
static writeLayout($a_obj_id, $a_layout, $a_lm=null)
Write layout setting.
static _getStandardStyles( $a_exclude_default_style=false, $a_include_deactivated=false, $a_scope=0)
Get standard styles.
const LP_MODE_COLLECTION_TLT
static _lookupContObjID($a_id)
get learning module / digibook id for lm object
editMenuProperties()
Edit menu properies.
viewObject()
list childs of current object
createObject()
create new object form
createPDF()
export content object
class for checking external links in page objects.
static _lookupTitle($a_obj_id)
Lookup title.
importFileObject($parent_id=null, $a_catch_errors=true)
display status information or report errors messages in case of error
saveMenuProperties()
save properties
saveAllTitles()
Save all titles of chapters/pages.
static _createEntry( $a_obj_id, $a_action, $a_info_params="", $a_obj_type="", $a_user_comment="", $a_update_last=false)
Creates a new history entry for an object.
initImportForm($a_new_type)
Init import form.
saveStyleSettings()
Save style settings.
getPropertiesFormValues()
Get values for properties form.
view()
view content object
Class ilECSLearningModuleSettings.
static _lookupObjectId($a_ref_id)
lookup object id
fixTreeConfirm()
confirm screen for tree fixing
static _lookupStandard($a_id)
Lookup standard flag.
static getTooltipComponents($a_module_id=0)
Get all tooltip components.
setilLMMenu( $a_offline=false, $a_export_format="", $a_active="content", $a_use_global_tabs=false, $a_as_subtabs=false, $a_cur_page=0, $a_lang="", $a_export_all=false)
get lm menu html
class ilLinkCheckerTableGUI
proceedDragDrop()
proceed drag and drop operations on pages/chapters
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
downloadPDFFile()
download export file
getPublicAccessColValue($a_type, $a_file)
Get public access value for export table.
Export User Interface Class.
static checkAccess($a_ref_id, $a_allow_only_read=true)
check access to learning progress
setCustomRolesForSelection($a_roles)
Set custom roles for mapping to LTI roles.
prepareOutput($a_show_subobjects=true)
prepare output
selectFooter()
select page as footer
saveProperties()
save properties
saveHelpMapping()
Save help mapping.
static storeContentObject($a_type, $a_id, $a_action="cut")
addLocations($a_omit_obj_id=false)
display locator
static appendUrlParameterString($a_url, $a_par, $xml_style=false)
append URL parameter string ("par1=value1&par2=value2...") to given URL string
afterSave(ilObject $a_new_object)
exportObject()
export object
static getMultiLangHeader($a_lm_id, $a_gui_class, $a_mode="")
Get multi lang header.
TableGUI class for (broken) links in learning module.
if(isset($_POST['submit'])) $form
GUI class for LTI provider object settings.
Upload SRT files to a set of media objects.
static clipboardCopy($a_cont_obj_id, $a_ids)
Copy a set of chapters/pages into the clipboard.
static _lookupActive($a_id, $a_parent_type, $a_check_scheduled_activation=false, $a_lang="-")
lookup activation status
deleteTooltips()
Delete tooltips.
properties()
edit properties form
static _writeActive($a_id, $a_parent_type, $a_active, $a_reset_scheduled_activation=true, $a_lang="-")
write activation status
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
copyItems()
Copy items to clipboard.
savePublicSectionAccess()
Saves lm access mode.
selectHeader()
select page as header
importObject()
display dialogue for importing XML-LeaningObjects
Class ilObjectGUI Basic methods of all Output classes.
static _lookupObjId($a_id)
addMenuEntry()
display add menu entry form
special template class to simplify handling of ITX/PEAR
omitLocator($a_omit=true)
deleteMenuEntry()
drop a menu entry
selectLMGlossaryLink()
Select a glossary and link all its terms.
static putInTree($a_obj, $a_parent_id="", $a_target_node_id="")
put this object into content object tree
static setNotification($type, $user_id, $id, $status=true)
Set notification status for object and user.
TableGUI class for glossary tables.
static clipboardCut($a_cont_obj_id, $a_ids)
Copy a set of chapters/pages into the clipboard.
This class represents a text property in a property form.
static getInstance(&$a_content_obj, $a_id=0, $a_halt=true)
insertChapterClip()
Insert Chapter from clipboard.
saveMenuEntry()
save new menu entry
copyChapter($a_parent_subobj_id=0)
copy a single chapter (selection)
Page multilinguality GUI class.
static getPluginObject($a_ctype, $a_cname, $a_slot_id, $a_pname)
Get Plugin Object.
setPageLayout($a_in_hierarchy=false)
Set layout for multipl pages.
interface ilLinkCheckerGUIRowHandling
setMaxLength($a_maxlength)
Set Max Length.
publishExportFile($a_files)
download export file
setTableNames($a_table_tree, $a_table_obj_data, $a_table_obj_reference="")
set table names The primary key of the table containing your object_data must be 'obj_id' You may use...
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
manifest.xml file not found-exception for import
static getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
Tree class data representation in hierachical trees using the Nested Set Model with Gaps by Joe Celco...
static img($a_src, $a_alt=null, $a_width="", $a_height="", $a_border=0, $a_id="", $a_class="")
Build img tag.
static _lookupType($a_id, $a_reference=false)
lookup object type
static getContentObjectType()
explorer()
output explorer tree
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
cancelDelete()
cancel delete
static stripSlashesArray($a_arr, $a_strip_html=true, $a_allow="")
Strip slashes from array.
static isOnlineHelpModule($a_id, $a_as_obj_id=false)
Is module an online module.
User interface class for advanced drop-down selection lists.
Copyright (c) 1998-2014 ILIAS open source, Extended GPL, see docs/LICENSE Date: 24.10.14 Time: 10:35.
confirmedDelete($a_parent_subobj_id=0)
delete page object or structure objects
static _getPresentationTitle( $a_pg_id, $a_mode=IL_CHAPTER_TITLE, $a_include_numbers=false, $a_time_scheduled_activation=false, $a_force_content=false, $a_lm_id=0, $a_lang="-", $a_include_short=false)
presentation title doesn't have to be page title, it may be chapter title + page title or chapter tit...
setContentSubTabs($a_active)
Set pages tabs.
static _getNotifyStatus($a_usr_id, $a_obj_id)
formatInvalidLinkArray(array $row)
editMenuEntry()
edit menu entry form
static formSelect( $selected, $varname, $options, $multiple=false, $direct_text=false, $size="0", $style_class="", $attribs="", $disabled=false)
Builds a select form field with options and shows the selected option first.
This class represents a non editable value in a property form.
static getContentObjectId()
Class ilObjStyleSheetGUI.
confirmGlossarySelection()
Confirm glossary selection.
static unlock($a_q_id, $a_user_id)
Reset tries.
filterTooltips()
Filter tooltips.
const LP_CONTEXT_REPOSITORY
This class represents a text area property in a property form.
static getInstance($a_obj_id)
Get instance.
deleteStyle()
Delete Style.
getBlockedUsersMailSignature()
Get mail signature for blocked users.
initPropertiesForm()
Init properties form.
__construct($a_data, $a_id=0, $a_call_by_reference=true, $a_prepare_output=false)
Constructor.
Class ilObjContentObjectGUI.
for($i=1; $i<=count($kw_cases_sel); $i+=1) $lang
getCreationMode()
get creation mode
getRefId()
get reference id public
getContextPath($a_endnode_id, $a_startnode_id=1)
get context path in content object tree
static deleteTooltip($a_id)
Delete tooltip.
savePublicSectionPages()
Saves public lm pages.
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
export()
export content object
setTabs()
set admin tabs public
editGlossaries()
Edit automatically linked glossaries.
initSetPageLayoutForm()
Init set page layout form.
static pasteTree( $a_target_lm, $a_item_id, $a_parent_id, $a_target, $a_insert_time, &$a_copied_nodes, $a_as_copy=false, $a_source_lm=null)
Paste item (tree) from clipboard to current lm.
Class ilObjContentObject.
switchToLanguage()
Switch to language.
if(empty($password)) $table
update()
update object in db
static saveScreenIdsForChapter($a_chap, $a_ids)
Save screen ids for chapter.
editStyleProperties()
Edit style properties.
static isJobActive($a_job_id)
Check if given job is currently active.
showLMGlossarySelector()
Select LM Glossary.
static setAction($a_action)
static updateTooltip($a_id, $a_text, $a_tt_id)
Update tooltip.
static redirect($a_script)
cutChapter()
Cut chapter(s)
static getInstance($a_obj_id)
filterHelpChapters()
Filter help chapters.
addHeaderAction()
Add header action menu.
Class ilObjUserTrackingGUI.
showTooltipList()
Show export IDs overview.
executeCommand()
execute command
static _getLink($a_ref_id, $a_type='', $a_params=array(), $append="")
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
removeLMGlossary()
Remove lm glossary.
setExpand($a_node_id)
set the expand option this value is stored in a SESSION variable to save it different view (lo view...
static addTooltip($a_tt_id, $a_text, $a_module_id=0)
Add tooltip.
for($i=6; $i< 13; $i++) for($i=1; $i< 13; $i++) $d
$GLOBALS['JPEG_Segment_Names']
Global Variable: XMP_tag_captions.
GUI class for object translation handling.
TableGUI class for all pages of a learning module.
static deliverFile( $a_file, $a_filename, $a_mime='', $isInline=false, $removeAfterDelivery=false, $a_exit_after=true)
deliver file for download via browser.
Confirmation screen class.
insertChapter()
Insert (multiple) chapters at node.
createStyle()
Create Style.
listQuestions()
List questions.
Handler class for multi srt upload in learning modules.
tree explorer lm public area
static _goto($a_target)
redirect script