ILIAS  trunk Revision v13.0_alpha-62-g3b72d83f2e5
ilObjCourseGUI Class Reference

Class ilObjCourseGUI. More...

+ Inheritance diagram for ilObjCourseGUI:
+ Collaboration diagram for ilObjCourseGUI:

Public Member Functions

 __construct ($a_data, int $a_id, bool $a_call_by_reference=true, bool $a_prepare_output=true)
 
 gatewayObject ()
 
 renderObject ()
 
 deleteObject (bool $error=false)
 Display deletion confirmation screen. More...
 
 renderContainer ()
 
 infoScreenObject ()
 this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually, if everything works through ilCtrl in the future this may be changed More...
 
 infoScreen ()
 
 saveNotificationObject ()
 
 initInfoEditor ()
 
 updateInfoObject ()
 
 updateObject ()
 updates object entry in object_data More...
 
 editObject (?ilPropertyFormGUI $form=null)
 
 sendFileObject ()
 
 setSubTabs (string $a_tab)
 
 renderAddNewItem (string ... $disabled_object_types)
 
 readMemberData (array $ids, ?array $selected_columns=null, bool $skip_names=false)
 
 updateLPFromStatus (int $a_member_id, bool $a_has_passed)
 sync course status and lp status More...
 
 autoFillObject ()
 
 leaveObject ()
 
 unsubscribeObject ()
 
 performUnsubscribeObject ()
 
 addContentTab ()
 
 executeCommand ()
 
 editMapSettingsObject ()
 
 saveMapSettingsObject ()
 
 modifyItemGUI (ilObjectListGUI $a_item_list_gui, array $a_item_data)
 @inheritDoc More...
 
 setContentSubTabs ()
 @inheritDoc More...
 
 askResetObject ()
 
 resetObject ()
 
 __checkStartObjects ()
 
 createMailSignature ()
 Create a course mail signature. More...
 
 deliverCertificateObject ()
 
 saveSortingObject ()
 
 getLocalRoles (array $a_exclude=array())
 
 setSideColumnReturn ()
 @inheritDoc More...
 
- Public Member Functions inherited from ilContainerGUI
 executeCommand ()
 
 forwardToPageObject ()
 
 addPageTabs ()
 
 getContainerPageHTML ()
 
 getContentGUI ()
 
 renderObject ()
 
 renderBlockAsynchObject ()
 render the object More...
 
 setContentSubTabs ()
 
 showAdministrationPanel ()
 
 showPermanentLink ()
 
 editPageFrameObject ()
 
 cancelPageContentObject ()
 
 showLinkListObject ()
 
 addHeaderRow (ilTemplate $a_tpl, string $a_type, bool $a_show_image=true)
 
 addMessageRow (ilTemplate $a_tpl, string $a_message, string $a_type)
 
 setPageEditorTabs ()
 
 addStandardContainerSubTabs (bool $a_include_view=true)
 Add standard container subtabs for view, manage, oderdering and text/media editor link. More...
 
 enableAdministrationPanelObject ()
 
 disableAdministrationPanelObject ()
 
 editOrderObject ()
 
 isActiveOrdering ()
 
 isActiveItemOrdering ()
 
 enableMultiDownloadObject ()
 
 isMultiDownloadEnabled ()
 
 cutObject ()
 cut object(s) out from a container and write the information to clipboard @access public More...
 
 copyObject ()
 Copy object(s) out from a container and write the information to clipboard It is not possible to copy multiple objects at once. More...
 
 downloadObject ()
 
 getBucketTitle ()
 
 linkObject ()
 create an new reference of an object in tree it's like a hard link of unix More...
 
 clearObject ()
 clear clipboard and go back to last object More...
 
 performPasteIntoMultipleObjectsObject ()
 
 initAndDisplayLinkIntoMultipleObjectsObject ()
 
 showPasteTreeObject ()
 
 cancelMoveLinkObject ()
 Cancel move|link empty clipboard and return to parent. More...
 
 keepObjectsInClipboardObject ()
 
 initAndDisplayCopyIntoMultipleObjectsObject ()
 
 initAndDisplayMoveIntoObjectObject ()
 
 pasteObject ()
 paste object from clipboard to current place Depending on the chosen command the object(s) are linked, copied or moved More...
 
 clipboardObject ()
 
 isActiveAdministrationPanel ()
 
 setColumnSettings (ilColumnGUI $column_gui)
 
 allowBlocksMoving ()
 Standard is to allow blocks moving. More...
 
 allowBlocksConfigure ()
 Standard is to allow blocks configuration. More...
 
 cloneAllObject ()
 Clone all object Overwritten method for copying container objects. More...
 
 saveSortingObject ()
 
 cloneNodes (int $srcRef, int $dstRef, array &$mapping, ?string $newName=null)
 Recursively clones all nodes of the RBAC tree. More...
 
 modifyItemGUI (ilObjectListGUI $a_item_list_gui, array $a_item_data)
 
 editStylePropertiesObject ()
 
 redrawListItemObject ()
 Redraw a list item (ajax) More...
 
 trashObject ()
 Show trash content of object. More...
 
 trashApplyFilterObject ()
 
 trashResetFilterObject ()
 
 undelete (array $trash_ids)
 
 restoreToNewLocation (array $trash_ids)
 
 confirmRemoveFromSystem (array $trash_ids)
 
 removeFromSystemObject (?int $trash_id=null)
 
 restoreToNewLocationObject (?int $trash_id=null)
 
 undeleteObject (?int $trash_id=null)
 Get objects back from trash. More...
 
 confirmRemoveFromSystemObject (?int $trash_id=null)
 
 setSideColumnReturn ()
 
 getAdminTabs ()
 administration tabs show only permissions and trash folder More...
 
 competencesObject ()
 
- Public Member Functions inherited from ilObjectGUI
 getRefId ()
 
 setAdminMode (string $mode)
 
 getAdminMode ()
 
 getObject ()
 
 executeCommand ()
 
 withReferences ()
 determines whether objects are referenced or not (got ref ids or not) More...
 
 setCreationMode (bool $mode=true)
 If true, a creation screen is displayed the current [ref_id] does belong to the parent class The mode is determined in ilRepositoryGUI. More...
 
 getCreationMode ()
 
 prepareOutput (bool $show_sub_objects=true)
 
 getAdminTabs ()
 administration tabs show only permissions and trash folder More...
 
 getHTML ()
 
 confirmedDeleteObject ()
 confirmed deletion of object -> objects are moved to trash or deleted immediately, if trash is disabled More...
 
 cancelObject ()
 cancel action and go back to previous page More...
 
 createObject ()
 create new object form More...
 
 editAvailabilityPeriodObject ()
 
 saveAvailabilityPeriodObject ()
 
 cancelCreation ()
 cancel create action and go back to repository parent More...
 
 saveObject ()
 
 getDidacticTemplateVar (string $type)
 Get didactic template setting from creation screen. More...
 
 putObjectInTree (ilObject $obj, ?int $parent_node_id=null)
 Add object to tree at given position. More...
 
 editObject ()
 
 addExternalEditFormCustom (ilPropertyFormGUI $form)
 
 updateObject ()
 updates object entry in object_data More...
 
 getFormAction (string $cmd, string $default_form_action="")
 Get form action for command (command is method name without "Object", e.g. More...
 
 isVisible (int $ref_id, string $type)
 
 viewObject ()
 viewObject container presentation for "administration -> repository, trash, permissions" More...
 
 deleteObject (bool $error=false)
 Display deletion confirmation screen. More...
 
 setColumnSettings (ilColumnGUI $column_gui)
 
 addToDeskObject ()
 
 removeFromDeskObject ()
 
- Public Member Functions inherited from ILIAS\Object\ImplementsCreationCallback
 callCreationCallback (\ilObject $object, \ilObjectDefinition $obj_definition, int $requested_crtcb)
 
- Public Member Functions inherited from ilDesktopItemHandling
 addToDeskObject ()
 
 removeFromDeskObject ()
 

Static Public Member Functions

static _forwards ()
 
static _goto ($a_target, string $a_add="")
 
static _modifyItemGUI (ilObjectListGUI $a_item_list_gui, string $a_cmd_class, array $a_item_data, bool $a_abo_status, int $a_course_ref_id, int $a_course_obj_id, int $a_parent_ref_id=0)
 
- Static Public Member Functions inherited from ilContainerGUI
static _buildPath (int $a_ref_id, int $a_course_ref_id)
 build path More...
 
- Static Public Member Functions inherited from ilObjectGUI
static _gotoRepositoryRoot (bool $raise_error=false)
 Goto repository root. More...
 
static _gotoRepositoryNode (int $ref_id, string $cmd="")
 
static _gotoSharedWorkspaceNode (int $wsp_id)
 

Data Fields

const BREADCRUMB_DEFAULT = 0
 
const BREADCRUMB_CRS_ONLY = 1
 
const BREADCRUMB_FULL_PATH = 2
 
- Data Fields inherited from ilContainerGUI
int $bl_cnt = 1
 
bool $multi_download_enabled = false
 
- Data Fields inherited from ilObjectGUI
const ADMIN_MODE_NONE = ""
 
const ADMIN_MODE_SETTINGS = "settings"
 
const ADMIN_MODE_REPOSITORY = "repository"
 
const UPLOAD_TYPE_LOCAL = 1
 
const UPLOAD_TYPE_UPLOAD_DIRECTORY = 2
 
const CFORM_NEW = 1
 
const CFORM_IMPORT = 2
 
const CFORM_CLONE = 3
 
const SUPPORTED_IMPORT_MIME_TYPES = [MimeType::APPLICATION__ZIP, MimeType::APPLICATION__X_ZIP_COMPRESSED]
 

Protected Member Functions

 afterImport (ilObject $new_object)
 Post (successful) object import hook. More...
 
 getSubServices ()
 
 confirmLPSync ()
 
 setLPSyncObject ()
 
 getEditFormValues ()
 values are already set in initEditForm Returning an empty array avoid overriding these values. More...
 
 initEditForm ()
 
 showPossibleSubObjects ()
 @inheritDoc More...
 
 afterSave (ilObject $new_object)
 @inheritDoc More...
 
 getAgreementTabs ()
 
 getTabs ()
 @abstract overwrite in derived GUI class of your object type More...
 
 membersObject ()
 
 initHeaderAction (?string $sub_type=null, ?int $sub_id=null)
 Add header action menu. More...
 
 afterSaveCallback ()
 
 redirectLocToTestConfirmedObject ()
 
 redirectLocToTestObject ($a_force_new_run=null)
 
 redirectLocToTestConfirmation (int $a_objective_id, int $a_test_id)
 Show confirmation whether user wants to start a new run or resume a previous run. More...
 
 hasAdminPermission ()
 
 jump2UsersGalleryObject ()
 
- Protected Member Functions inherited from ilContainerGUI
 getModeManager ()
 
 getItemPresentation ( $include_empty_blocks=true, ?string $lang=null)
 
 checkTrashAccess ()
 
 getEditFormValues ()
 
 afterUpdate ()
 Post (successful) object update hook. More...
 
 getDidacticTemplateIdFromQuery ()
 
 setTitleAndDescription ()
 
 showPossibleSubObjects ()
 show possible sub objects (pull down menu) More...
 
 supportsPageEditor ()
 
 gotItems ()
 
 getTabs ()
 @abstract overwrite in derived GUI class of your object type More...
 
 showContainerPageTabs ()
 
 initFormPasswordInstruction ()
 Init password form. More...
 
 savePasswordObject ()
 
 getListPresentationForRedraw (int $parent_ref_id)
 
 initEditForm ()
 
 initSortingForm (ilPropertyFormGUI $form, array $a_sorting_settings)
 Append sorting settings to property form. More...
 
 buildLabelForSortMode (int $sort_mode)
 
 initListPresentationForm (ilPropertyFormGUI $form)
 Add list presentation settings to form. More...
 
 saveListPresentation (ilPropertyFormGUI $form)
 
 initSortingDirectionForm (ilContainerSortingSettings $sorting_settings, ilRadioOption $element, string $a_prefix)
 Add sorting direction. More...
 
 initManualSortingOptionForm (ilContainerSortingSettings $settings, ilRadioOption $element, string $a_prefix, array $a_sorting_settings)
 Add manual sorting options. More...
 
 saveSortingSettings (ilPropertyFormGUI $form)
 
 trashHandleFilter (bool $action_apply, bool $action_reset)
 
 getTreeSelectorGUI (string $cmd)
 
 initFilter ()
 
 showContainerFilter ()
 
- Protected Member Functions inherited from ilObjectGUI
 getObjectService ()
 
 assignObject ()
 
 setTitleAndDescription ()
 
 createActionDispatcherGUI ()
 
 initHeaderAction (?string $sub_type=null, ?int $sub_id=null)
 Add header action menu. More...
 
 insertHeaderAction (?ilObjectListGUI $list_gui=null)
 Insert header action into main template. More...
 
 addHeaderAction ()
 Add header action menu. More...
 
 redrawHeaderActionObject ()
 Ajax call: redraw action header only. More...
 
 setTabs ()
 set admin tabs More...
 
 setAdminTabs ()
 set admin tabs More...
 
 setLocator ()
 
 addLocatorItems ()
 should be overwritten to add object specific items (repository items are preloaded) More...
 
 omitLocator (bool $omit=true)
 
 addAdminLocatorItems (bool $do_not_add_object=false)
 should be overwritten to add object specific items (repository items are preloaded) More...
 
 getCreationFormsHTML (StandardForm|ilPropertyFormGUI|array $form)
 
 getTitleForCreationFormPage ()
 
 getCreationFormTitle ()
 
 initCreateForm (string $new_type)
 
 didacticTemplatesToForm ()
 
 initDidacticTemplate (ilPropertyFormGUI $form)
 
 retrieveAdditionalDidacticTemplateOptions ()
 
 addAdoptContentLinkToToolbar ()
 
 addImportButtonToToolbar ()
 
 addAvailabilityPeriodButtonToToolbar (ilToolbarGUI $toolbar)
 
 parseDidacticTemplateVar (string $var, string $type)
 
 afterSave (ilObject $new_object)
 Post (successful) object creation hook. More...
 
 initEditForm ()
 
 initEditCustomForm (ilPropertyFormGUI $a_form)
 Add custom fields to update form. More...
 
 getEditFormValues ()
 
 getEditFormCustomValues (array &$a_values)
 Add values to custom edit fields. More...
 
 validateCustom (ilPropertyFormGUI $form)
 Validate custom values (if not possible with checkInput()) More...
 
 updateCustom (ilPropertyFormGUI $form)
 Insert custom update form values into object. More...
 
 afterUpdate ()
 Post (successful) object update hook. More...
 
 routeImportCmdObject ()
 
 importFile (string $file_to_import, string $path_to_uploaded_file_in_temp_dir)
 
 deleteUploadedImportFile (string $path_to_uploaded_file_in_temp_dir)
 
 afterImport (ilObject $new_object)
 Post (successful) object import hook. More...
 
 setFormAction (string $cmd, string $form_action)
 
 getReturnLocation (string $cmd, string $default_location="")
 Get return location for command (command is method name without "Object", e.g. More...
 
 setReturnLocation (string $cmd, string $location)
 set specific return location for command More...
 
 getTargetFrame (string $cmd, string $default_target_frame="")
 get target frame for command (command is method name without "Object", e.g. More...
 
 setTargetFrame (string $cmd, string $target_frame)
 Set specific target frame for command. More...
 
 showPossibleSubObjects ()
 show possible sub objects (pull down menu) More...
 
 getTabs ()
 @abstract overwrite in derived GUI class of your object type More...
 
 redirectToRefId (int $ref_id, string $cmd="")
 redirects to (repository) view per ref id usually to a container and usually used at the end of a save/import method where the object gui type (of the new object) doesn't match with the type of the current ["ref_id"] value of the request More...
 
 getCenterColumnHTML ()
 Get center column. More...
 
 getRightColumnHTML ()
 Display right column. More...
 
 checkPermission (string $perm, string $cmd="", string $type="", ?int $ref_id=null)
 
 checkPermissionBool (string $perm, string $cmd="", string $type="", ?int $ref_id=null)
 
 enableDragDropFileUpload ()
 Enables the file upload into this object by dropping files. More...
 
 getCreatableObjectTypes ()
 
 buildAddNewItemElements (array $subtypes, string $create_target_class=ilRepositoryGUI::class, ?int $redirect_target_ref_id=null,)
 
 buildGroup (string $create_target_class, array $obj_types_in_group, string $title, array $subtypes)
 

Protected Attributes

News $news
 
GlobalHttpState $http
 
Factory $refinery
 
ilHelpGUI $help
 
ilNavigationHistory $navigation_history
 
ilDataFactory $data_factory
 
- Protected Attributes inherited from ilContainerGUI
ILIAS Container InternalGUIService $gui
 
ILIAS Style Content GUIService $content_style_gui
 
ilRbacSystem $rbacsystem
 
ilRbacReview $rbacreview
 
ILIAS Container Content ItemPresentationManager $item_presentation = null
 
ILIAS Container InternalDomainService $domain
 
ilTabsGUI $tabs
 
ilErrorHandling $error
 
ilObjectDefinition $obj_definition
 
ilRbacAdmin $rbacadmin
 
ilPropertyFormGUI $form
 
ilLogger $log
 
ilObjectDataCache $obj_data_cache
 
Services $global_screen
 
ilAppEventHandler $app_event_handler
 
UIServices $ui
 
ilContainerFilterService $container_filter_service
 
ilContainerUserFilter $container_user_filter = null
 
Standard $ui_filter = null
 
bool $edit_order = false
 
bool $adminCommands = false
 
string $requested_redirectSource = ""
 
int $current_position = 0
 
ClipboardManager $clipboard
 
StandardGUIRequest $std_request
 
ModeManager $mode_manager = null
 
ilComponentFactory $component_factory
 
ILIAS Style Content DomainService $content_style_domain
 
ILIAS Repository InternalGUIService $repository_gui
 
- Protected Attributes inherited from ilObjectGUI
ILIAS Notes Service $notes_service
 
GlobalHttpState $http
 
ServerRequestInterface $request
 
ilLocatorGUI $locator
 
ilObjUser $user
 
ilAccessHandler $access
 
ilSetting $settings
 
ilToolbarGUI $toolbar
 
ilRbacAdmin $rbac_admin
 
ilRbacSystem $rbac_system
 
ilRbacReview $rbac_review
 
ilObjectService $object_service
 
ilObjectDefinition $obj_definition
 
ilGlobalTemplateInterface $tpl
 
ilTree $tree
 
ilCtrl $ctrl
 
ilErrorHandling $error
 
ilLanguage $lng
 
ilTabsGUI $tabs_gui
 
ILIAS $ilias
 
ArrayBasedRequestWrapper $post_wrapper
 
RequestWrapper $request_wrapper
 
Refinery $refinery
 
ilFavouritesManager $favourites
 
CustomIconFactory $custom_icon_factory
 
UIFactory $ui_factory
 
UIRenderer $ui_renderer
 
Filesystem $temp_file_system
 
ilObject $object = null
 
bool $creation_mode = false
 
 $data
 
int $id
 
bool $call_by_reference = false
 
bool $prepare_output
 
int $ref_id
 
int $obj_id
 
int $maxcount
 
array $form_action = []
 
array $return_location = []
 
array $target_frame = []
 
string $tmp_import_dir
 
string $sub_objects = ""
 
bool $omit_locator = false
 
string $type = ""
 
string $admin_mode = self::ADMIN_MODE_NONE
 
int $requested_ref_id = 0
 
int $requested_crtptrefid = 0
 
int $requested_crtcb = 0
 
string $requested_new_type = ""
 
string $link_params
 
string $html = ""
 

Private Member Functions

 checkAgreement ()
 

Private Attributes

ilAdvancedMDRecordGUI $record_gui = null
 
ilContainerStartObjects $start_obj = null
 
ilLogger $logger
 

Detailed Description

Class ilObjCourseGUI.

Author
Stefan Meyer smeye.nosp@m.r.il.nosp@m.ias@g.nosp@m.mx.d.nosp@m.e $Id$ @ilCtrl_Calls ilObjCourseGUI: ilCourseRegistrationGUI, ilCourseObjectivesGUI @ilCtrl_Calls ilObjCourseGUI: ilObjCourseGroupingGUI, ilInfoScreenGUI, ilLearningProgressGUI, ilPermissionGUI @ilCtrl_Calls ilObjCourseGUI: ilRepositorySearchGUI, ilConditionHandlerGUI @ilCtrl_Calls ilObjCourseGUI: ilCourseContentGUI, ILIAS\User\Profile\PublicProfileGUI, ilMemberExportGUI @ilCtrl_Calls ilObjCourseGUI: ilObjectCustomUserFieldsGUI, ilMemberAgreementGUI, ilSessionOverviewGUI @ilCtrl_Calls ilObjCourseGUI: ilColumnGUI, ilContainerPageGUI @ilCtrl_Calls ilObjCourseGUI: ilObjectCopyGUI, ilObjectContentStyleSettingsGUI @ilCtrl_Calls ilObjCourseGUI: ilCourseParticipantsGroupsGUI, ilExportGUI, ilCommonActionDispatcherGUI @ilCtrl_Calls ilObjCourseGUI: ilDidacticTemplateGUI, ilCertificateGUI, ilObjectServiceSettingsGUI @ilCtrl_Calls ilObjCourseGUI: ilContainerStartObjectsGUI, ilContainerStartObjectsPageGUI @ilCtrl_Calls ilObjCourseGUI: ilMailMemberSearchGUI, ilBadgeManagementGUI @ilCtrl_Calls ilObjCourseGUI: ilLOPageGUI, ilObjectMetaDataGUI, ilNewsTimelineGUI, ilContainerNewsSettingsGUI @ilCtrl_Calls ilObjCourseGUI: ilCourseMembershipGUI, ilPropertyFormGUI, ilContainerSkillGUI, ilCalendarPresentationGUI @ilCtrl_Calls ilObjCourseGUI: ilMemberExportSettingsGUI @ilCtrl_Calls ilObjCourseGUI: ilLTIProviderObjectSettingGUI, ILIAS\ILIASObject\Properties\Translations\TranslationGUI, ilBookingGatewayGUI, ilRepositoryTrashGUI

Definition at line 49 of file class.ilObjCourseGUI.php.

Constructor & Destructor Documentation

◆ __construct()

ilObjCourseGUI::__construct (   $a_data,
int  $a_id,
bool  $a_call_by_reference = true,
bool  $a_prepare_output = true 
)

Definition at line 66 of file class.ilObjCourseGUI.php.

67 {
68 global $DIC;
69
70 $this->type = "crs";
71 parent::__construct($a_data, $a_id, $a_call_by_reference, $a_prepare_output);
72
73 $this->help = $DIC->help();
74 $this->logger = $DIC->logger()->crs();
75 $this->navigation_history = $DIC['ilNavigationHistory'];
76 $this->ctrl->saveParameter($this, ['ref_id']);
77 $this->lng->loadLanguageModule('crs');
78 $this->lng->loadLanguageModule('cert');
79 $this->lng->loadLanguageModule('obj');
80 $this->data_factory = new ilDataFactory();
81 $this->http = $DIC->http();
82 $this->refinery = $DIC->refinery();
83 $this->news = $DIC->news();
84 }
static http()
Fetches the global http state from ILIAS.
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
global $DIC
Definition: shib_login.php:26

References $DIC, ILIAS\GlobalScreen\Provider\__construct(), ILIAS\Repository\ctrl(), ILIAS\Repository\help(), ILIAS\FileDelivery\http(), ILIAS\Repository\lng(), ILIAS\Repository\logger(), and ILIAS\Repository\refinery().

+ Here is the call graph for this function:

Member Function Documentation

◆ __checkStartObjects()

ilObjCourseGUI::__checkStartObjects ( )

Definition at line 2762 of file class.ilObjCourseGUI.php.

2762 : bool
2763 {
2764 if ($this->access->checkAccess('write', '', $this->object->getRefId())) {
2765 return true;
2766 }
2767 $this->start_obj = new ilContainerStartObjects(
2768 $this->object->getRefId(),
2769 $this->object->getId()
2770 );
2771 if (count($this->start_obj->getStartObjects()) &&
2772 !$this->start_obj->allFullfilled($this->user->getId())) {
2773 return false;
2774 }
2775 return true;
2776 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...

References ILIAS\Repository\access(), and ILIAS\Repository\object().

Referenced by executeCommand().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _forwards()

static ilObjCourseGUI::_forwards ( )
static

Definition at line 2483 of file class.ilObjCourseGUI.php.

2483 : array
2484 {
2485 return array("ilCourseRegisterGUI", 'ilConditionHandlerGUI');
2486 }

◆ _goto()

static ilObjCourseGUI::_goto (   $a_target,
string  $a_add = "" 
)
static

Definition at line 2493 of file class.ilObjCourseGUI.php.

2493 : void
2494 {
2495 global $DIC;
2496 $main_tpl = $DIC->ui()->mainTemplate();
2497 $ilAccess = $DIC['ilAccess'];
2498 $ilErr = $DIC['ilErr'];
2499 $lng = $DIC['lng'];
2500 $ilUser = $DIC['ilUser'];
2501 $http = $DIC->http();
2502 $refinery = $DIC->refinery();
2503
2504 $a_target = (int) $a_target;
2505
2506 if (substr($a_add, 0, 5) == 'rcode') {
2507 if ($ilUser->getId() == ANONYMOUS_USER_ID) {
2508 // Redirect to login for anonymous
2510 "login.php?target=crs_" . $a_target . "_" . $a_add . "&cmd=force_login&lang=" .
2511 $ilUser->getCurrentLanguage()
2512 );
2513 }
2514
2515 // Redirects to target location after assigning user to course
2517 $a_target,
2519 substr($a_add, 5)
2520 );
2521 }
2522
2523 if ($a_add == "mem" && $ilAccess->checkAccess("manage_members", "", $a_target)) {
2524 ilObjectGUI::_gotoRepositoryNode($a_target, "members");
2525 }
2526
2527 if ($a_add == "comp" && ilContSkillPresentationGUI::isAccessible($a_target)) {
2528 ilObjectGUI::_gotoRepositoryNode($a_target, "competences");
2529 }
2530
2531 if ($ilAccess->checkAccess("read", "", $a_target)) {
2533 } else {
2534 // to do: force flat view
2535 if ($ilAccess->checkAccess("visible", "", $a_target)) {
2536 ilObjectGUI::_gotoRepositoryNode($a_target, "infoScreenGoto");
2537 } else {
2538 if ($ilAccess->checkAccess("read", "", ROOT_FOLDER_ID)) {
2539 $main_tpl->setOnScreenMessage('failure', sprintf(
2540 $lng->txt("msg_no_perm_read_item"),
2542 ), true);
2544 }
2545 }
2546 }
2547 $ilErr->raiseError($lng->txt("msg_no_perm_read"), $ilErr->FATAL);
2548 }
txt(string|LanguageIdentifier $a_topic, ?int $n=null)
gets the text for a given topic if the topic is not in the list, the topic itself with "-" will be re...
static handleCode(int $a_ref_id, string $a_type, string $a_code)
GlobalHttpState $http
static _gotoRepositoryRoot(bool $raise_error=false)
Goto repository root.
static _gotoRepositoryNode(int $ref_id, string $cmd="")
ilLanguage $lng
static _lookupType(int $id, bool $reference=false)
static _lookupObjId(int $ref_id)
static _lookupTitle(int $obj_id)
static redirect(string $a_script)
const ANONYMOUS_USER_ID
Definition: constants.php:27
const ROOT_FOLDER_ID
Definition: constants.php:32

References $DIC, $http, ilObjectGUI\$lng, $refinery, ilObjectGUI\_gotoRepositoryNode(), ilObjectGUI\_gotoRepositoryRoot(), ilObject\_lookupObjId(), ilObject\_lookupTitle(), ilObject\_lookupType(), ANONYMOUS_USER_ID, ilMembershipRegistrationCodeUtils\handleCode(), ILIAS\Repository\int(), ilContSkillPresentationGUI\isAccessible(), ilUtil\redirect(), ROOT_FOLDER_ID, and ilLanguage\txt().

Referenced by ILIAS\StaticURL\Handler\LegacyGotoHandler\handle().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _modifyItemGUI()

static ilObjCourseGUI::_modifyItemGUI ( ilObjectListGUI  $a_item_list_gui,
string  $a_cmd_class,
array  $a_item_data,
bool  $a_abo_status,
int  $a_course_ref_id,
int  $a_course_obj_id,
int  $a_parent_ref_id = 0 
)
static

Definition at line 2650 of file class.ilObjCourseGUI.php.

2658 : void {
2659 global $DIC;
2660 $lng = $DIC->language();
2661 $ilAccess = $DIC->access();
2662
2663 // this is set for folders within the course
2664 if ($a_parent_ref_id == 0) {
2665 $a_parent_ref_id = $a_course_ref_id;
2666 }
2667
2668 // Special handling for tests in courses with learning objectives
2669 if ($a_item_data['type'] == 'tst' && ilObjCourse::_lookupViewMode($a_course_obj_id) == ilContainer::VIEW_OBJECTIVE) {
2670 $a_item_list_gui->addCommandLinkParameter(array('crs_show_result' => $a_course_ref_id));
2671 }
2672
2673 $a_item_list_gui->enableSubscribe($a_abo_status);
2674
2675 $is_tutor = ($ilAccess->checkAccess(
2676 'write',
2677 '',
2678 $a_course_ref_id,
2679 'crs',
2680 $a_course_obj_id
2681 ));
2682 }
static _lookupViewMode(int $a_id)
enableSubscribe(bool $status)

Referenced by modifyItemGUI(), ilObjFolderGUI\modifyItemGUI(), ilObjGroupGUI\modifyItemGUI(), and ilObjSessionGUI\modifyItemGUI().

+ Here is the caller graph for this function:

◆ addContentTab()

ilObjCourseGUI::addContentTab ( )

Definition at line 1769 of file class.ilObjCourseGUI.php.

1769 : void
1770 {
1771 $this->tabs_gui->addTab(
1772 "view_content",
1773 $this->lng->txt("content"),
1774 $this->ctrl->getLinkTarget($this, "view")
1775 );
1776 }

References ILIAS\Repository\lng().

Referenced by getTabs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ afterImport()

ilObjCourseGUI::afterImport ( ilObject  $new_object)
protected

Post (successful) object import hook.

Reimplemented from ilObjectGUI.

Definition at line 94 of file class.ilObjCourseGUI.php.

94 : void
95 {
97 $part->add($this->user->getId(), ilCourseConstants::CRS_ADMIN);
98 $part->updateNotification(
99 $this->user->getId(),
100 (bool) $this->settings->get('mail_crs_admin_notification', '1')
101 );
102 parent::afterImport($new_object);
103 }
static _getInstanceByObjId(int $a_obj_id)

References ilCourseParticipants\_getInstanceByObjId(), ilCourseConstants\CRS_ADMIN, ilObject\getId(), and ILIAS\Repository\user().

+ Here is the call graph for this function:

◆ afterSave()

ilObjCourseGUI::afterSave ( ilObject  $new_object)
protected

@inheritDoc

Reimplemented from ilObjectGUI.

Definition at line 1545 of file class.ilObjCourseGUI.php.

1545 : void
1546 {
1547 $new_object->getMemberObject()->add($this->user->getId(), ilParticipants::IL_CRS_ADMIN);
1548 $new_object->getMemberObject()->updateNotification(
1549 $this->user->getId(),
1550 $this->settings->get('mail_crs_admin_notification', '1')
1551 );
1552 $new_object->getMemberObject()->updateContact($this->user->getId(), 1);
1553 $new_object->update();
1554
1555 ilChangeEvent::_recordWriteEvent($new_object->getId(), $this->user->getId(), 'create');
1556 // END ChangeEvent: Record write event.
1557
1558 // always send a message
1559 $this->tpl->setOnScreenMessage('success', $this->lng->txt("crs_added"), true);
1560 $this->ctrl->setParameter($this, "ref_id", $new_object->getRefId());
1562 "save",
1563 $this->ctrl->getLinkTarget($this, "edit", "")
1564 ));
1565 }
static _recordWriteEvent(int $obj_id, int $usr_id, string $action, ?int $parent_obj_id=null)
Records a write event.
getReturnLocation(string $cmd, string $default_location="")
Get return location for command (command is method name without "Object", e.g.

References ilChangeEvent\_recordWriteEvent(), ILIAS\Repository\ctrl(), ilObject\getId(), ilObject\getRefId(), ilObjectGUI\getReturnLocation(), ilParticipants\IL_CRS_ADMIN, ILIAS\Repository\lng(), ilUtil\redirect(), ilObject\update(), and ILIAS\Repository\user().

+ Here is the call graph for this function:

◆ afterSaveCallback()

ilObjCourseGUI::afterSaveCallback ( )
protected

Definition at line 2892 of file class.ilObjCourseGUI.php.

2892 : void
2893 {
2894 $this->ctrl->redirectByClass(array('ilrepositorygui', 'ilobjcoursegui', 'illoeditorgui'), 'materials');
2895 }

References ILIAS\Repository\ctrl().

+ Here is the call graph for this function:

◆ askResetObject()

ilObjCourseGUI::askResetObject ( )

Definition at line 2732 of file class.ilObjCourseGUI.php.

2732 : void
2733 {
2734 $this->checkPermission('write');
2735 //$this->tpl->setOnScreenMessage('question', $this->lng->txt('crs_objectives_reset_sure'));
2736 $confirm = new ilConfirmationGUI();
2737 $confirm->setHeaderText($this->lng->txt('crs_objectives_reset_sure'));
2738 $confirm->setFormAction($this->ctrl->getFormAction($this));
2739 $confirm->setConfirm($this->lng->txt('reset'), 'reset');
2740 $confirm->setCancel($this->lng->txt('cancel'), 'cancel');
2741 $this->tpl->setContent($confirm->getHTML());
2742 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
checkPermission(string $perm, string $cmd="", string $type="", ?int $ref_id=null)

References ILIAS\Repository\ctrl(), and ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ autoFillObject()

ilObjCourseGUI::autoFillObject ( )

Definition at line 1683 of file class.ilObjCourseGUI.php.

1683 : bool
1684 {
1685 $this->checkPermission('write');
1686 if (
1687 $this->object->isSubscriptionMembershipLimited() &&
1688 $this->object->getSubscriptionMaxMembers() &&
1689 $this->object->getSubscriptionMaxMembers() <= $this->object->getMembersObject()->getCountMembers()
1690 ) {
1691 $this->tpl->setOnScreenMessage('failure', $this->lng->txt("crs_max_members_reached"));
1692 $this->membersObject();
1693 return false;
1694 }
1695 if ($number = $this->object->getMembersObject()->autoFillSubscribers()) {
1696 $this->tpl->setOnScreenMessage('success', $this->lng->txt("crs_number_users_added") . " " . $number);
1697 } else {
1698 $this->tpl->setOnScreenMessage('failure', $this->lng->txt("crs_no_users_added"));
1699 }
1700 $this->membersObject();
1701 return true;
1702 }

References ilObjectGUI\checkPermission(), ILIAS\Repository\lng(), membersObject(), and ILIAS\Repository\object().

+ Here is the call graph for this function:

◆ checkAgreement()

ilObjCourseGUI::checkAgreement ( )
private

Definition at line 2448 of file class.ilObjCourseGUI.php.

2448 : bool
2449 {
2450 if ($this->access->checkAccess('write', '', $this->object->getRefId())) {
2451 return true;
2452 }
2453
2454 // Disable aggrement if is not member of course
2455 if (!$this->object->getMemberObject()->isAssigned()) {
2456 return true;
2457 }
2458
2459 if (ilMemberViewSettings::getInstance()->isActive()) {
2460 return true;
2461 }
2462
2463 $privacy = ilPrivacySettings::getInstance();
2464
2465 // Check agreement
2466 if (
2467 (
2468 $privacy->courseConfirmationRequired() || ilCourseDefinedFieldDefinition::_hasFields($this->object->getId())
2469 ) &&
2470 !ilMemberAgreement::_hasAccepted($this->user->getId(), $this->object->getId())
2471 ) {
2472 $this->logger->warning('Missing course confirmation.');
2473 return false;
2474 }
2475 // Check required fields
2476 if (!ilCourseUserData::_checkRequired($this->user->getId(), $this->object->getId())) {
2477 $this->logger->warning('Missing required fields');
2478 return false;
2479 }
2480 return true;
2481 }
static _hasFields(int $a_container_id)
Check if there are any define fields.
static _checkRequired(int $a_usr_id, int $a_obj_id)
static _hasAccepted(int $a_usr_id, int $a_obj_id)
Check if user has accepted agreement.

References ilCourseUserData\_checkRequired(), ilMemberAgreement\_hasAccepted(), ilCourseDefinedFieldDefinition\_hasFields(), ILIAS\Repository\access(), ilMemberViewSettings\getInstance(), ilPrivacySettings\getInstance(), ILIAS\Repository\logger(), ILIAS\Repository\object(), and ILIAS\Repository\user().

+ Here is the call graph for this function:

◆ confirmLPSync()

ilObjCourseGUI::confirmLPSync ( )
protected

Definition at line 905 of file class.ilObjCourseGUI.php.

905 : void
906 {
907 $cgui = new ilConfirmationGUI();
908 $cgui->setFormAction($this->ctrl->getFormAction($this, "setLPSync"));
909 $cgui->setHeaderText($this->lng->txt("crs_status_determination_sync"));
910 $cgui->setCancel($this->lng->txt("cancel"), "edit");
911 $cgui->setConfirm($this->lng->txt("confirm"), "setLPSync");
912 $this->tpl->setContent($cgui->getHTML());
913 }

References ILIAS\Repository\ctrl(), and ILIAS\Repository\lng().

Referenced by updateObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ createMailSignature()

ilObjCourseGUI::createMailSignature ( )

Create a course mail signature.

Returns
string

Definition at line 2782 of file class.ilObjCourseGUI.php.

2782 : string
2783 {
2784 $link = chr(13) . chr(10) . chr(13) . chr(10);
2785 $link .= $this->lng->txt('crs_mail_permanent_link');
2786 $link .= chr(13) . chr(10) . chr(13) . chr(10);
2787 $link .= ilLink::_getLink($this->object->getRefId());
2788 return rawurlencode(base64_encode($link));
2789 }

References ILIAS\Repository\lng(), and ILIAS\Repository\object().

Referenced by infoScreen().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ deleteObject()

ilObjCourseGUI::deleteObject ( bool  $error = false)

Display deletion confirmation screen.

Only for referenced objects. For user,role & rolt overwrite this function in the appropriate Object folders classes (ilObjUserFolderGUI,ilObjRoleFolderGUI)

Reimplemented from ilObjectGUI.

Definition at line 163 of file class.ilObjCourseGUI.php.

163 : void
164 {
165 $this->tabs_gui->activateTab('view_content');
166 parent::deleteObject($error);
167 }
ilErrorHandling $error

References ilContainerGUI\$error.

◆ deliverCertificateObject()

ilObjCourseGUI::deliverCertificateObject ( )
Todo:
get rid of cert logger

Definition at line 2855 of file class.ilObjCourseGUI.php.

2855 : void
2856 {
2857 $user_id = null;
2858 if ($this->access->checkAccess('manage_members', '', $this->ref_id)) {
2859 $user_id = 0;
2860 if ($this->http->wrapper()->query()->has('member_id')) {
2861 $user_id = $this->http->wrapper()->query()->retrieve(
2862 'member_id',
2863 $this->refinery->kindlyTo()->int()
2864 );
2865 }
2866 }
2867 if (!$user_id) {
2868 $user_id = $this->user->getId();
2869 }
2870
2871 $objId = $this->object->getId();
2872
2873 $validator = new ilCertificateDownloadValidator();
2874
2875 if (false === $validator->isCertificateDownloadable($user_id, $objId)) {
2876 $this->tpl->setOnScreenMessage('failure', $this->lng->txt("permission_denied"), true);
2877 $this->ctrl->redirect($this);
2878 }
2879
2880 $repository = new ilUserCertificateRepository();
2881
2882 $pdfGenerator = new ilPdfGenerator($repository);
2883
2884 $pdfAction = new ilCertificatePdfAction(
2885 $pdfGenerator,
2887 $this->lng->txt('error_creating_certificate_pdf')
2888 );
2889 $pdfAction->downloadPdf((int) $user_id, $objId);
2890 }
Validates if an active certificate is stored in the database and can be downloaded by the user.
Just a wrapper class to create Unit Test for other classes.
$objId
Definition: xapitoken.php:57

References $objId, $user_id, ILIAS\Repository\access(), ILIAS\Repository\ctrl(), ILIAS\FileDelivery\http(), ILIAS\Repository\lng(), ILIAS\Repository\refinery(), and ILIAS\Repository\user().

+ Here is the call graph for this function:

◆ editMapSettingsObject()

ilObjCourseGUI::editMapSettingsObject ( )

Definition at line 2550 of file class.ilObjCourseGUI.php.

2550 : void
2551 {
2552 $this->checkPermission('write');
2553
2554 $this->setSubTabs("properties");
2555 $this->tabs_gui->activateTab('settings');
2556 $this->tabs_gui->activateSubTab('crs_map_settings');
2557
2558 if (!ilMapUtil::isActivated()) {
2559 return;
2560 }
2561
2562 $latitude = $this->object->getLatitude();
2563 $longitude = $this->object->getLongitude();
2564 $zoom = $this->object->getLocationZoom();
2565
2566 // Get Default settings, when nothing is set
2567 if ($latitude == 0 && $longitude == 0 && $zoom == 0) {
2569 $latitude = $def["latitude"];
2570 $longitude = $def["longitude"];
2571 $zoom = $def["zoom"];
2572 }
2573
2574 $form = new ilPropertyFormGUI();
2575 $form->setFormAction($this->ctrl->getFormAction($this));
2576 $form->setTitle($this->lng->txt("crs_map_settings"));
2577
2578 // enable map
2579 $public = new ilCheckboxInputGUI(
2580 $this->lng->txt("crs_enable_map"),
2581 "enable_map"
2582 );
2583 $public->setValue("1");
2584 $public->setChecked($this->object->getEnableCourseMap());
2585 $form->addItem($public);
2586
2587 // map location
2588 $loc_prop = new ilLocationInputGUI(
2589 $this->lng->txt("crs_map_location"),
2590 "location"
2591 );
2592 $loc_prop->setLatitude((float) $latitude);
2593 $loc_prop->setLongitude((float) $longitude);
2594 $loc_prop->setZoom((int) $zoom);
2595 $form->addItem($loc_prop);
2596
2597 $form->addCommandButton("saveMapSettings", $this->lng->txt("save"));
2598
2599 $this->tpl->setVariable("ADM_CONTENT", $form->getHTML());
2600 //$this->tpl->show();
2601 }
This class represents a checkbox property in a property form.
ilPropertyFormGUI $form
setFormAction(string $a_formaction)
This class represents a location property in a property form.
static isActivated()
Checks whether Map feature is activated.
static getDefaultSettings()
Get default longitude, latitude and zoom.
setSubTabs(string $a_tab)
This class represents a property form user interface.
addCommandButton(string $a_cmd, string $a_text, string $a_id="")

References ilContainerGUI\$form, ilPropertyFormGUI\addCommandButton(), ilPropertyFormGUI\addItem(), ilObjectGUI\checkPermission(), ILIAS\Repository\ctrl(), ilMapUtil\getDefaultSettings(), ilPropertyFormGUI\getHTML(), ilMapUtil\isActivated(), ILIAS\Repository\lng(), ILIAS\Repository\object(), ilFormGUI\setFormAction(), setSubTabs(), and ilPropertyFormGUI\setTitle().

+ Here is the call graph for this function:

◆ editObject()

ilObjCourseGUI::editObject ( ?ilPropertyFormGUI  $form = null)

Definition at line 925 of file class.ilObjCourseGUI.php.

925 : void
926 {
927 $this->checkPermission('write');
928 $this->setSubTabs('properties');
929 $this->tabs_gui->setSubTabActive('general');
930
931 if ($form instanceof ilPropertyFormGUI) {
932 $GLOBALS['DIC']['tpl']->setContent($form->getHTML());
933 } else {
934 parent::editObject();
935 }
936 }
$GLOBALS["DIC"]
Definition: wac.php:66

References ilContainerGUI\$form, $GLOBALS, ilObjectGUI\checkPermission(), ilPropertyFormGUI\getHTML(), and setSubTabs().

+ Here is the call graph for this function:

◆ executeCommand()

ilObjCourseGUI::executeCommand ( )

Reimplemented from ilContainerGUI.

Definition at line 1973 of file class.ilObjCourseGUI.php.

1973 : void
1974 {
1975 $next_class = $this->ctrl->getNextClass($this);
1976 $cmd = $this->ctrl->getCmd();
1977
1978 $this->prepareOutput();
1979
1980 // add entry to navigation history
1981 if (!$this->getCreationMode() &&
1982 $this->access->checkAccess('read', '', $this->ref_id)) {
1983 $this->navigation_history->addItem(
1984 $this->ref_id,
1985 ilLink::_getLink($this->ref_id, "crs"),
1986 "crs"
1987 );
1988 }
1989 $header_action = true;
1990 switch ($next_class) {
1991 case strtolower(ilRepositoryTrashGUI::class):
1992 $ru = new \ilRepositoryTrashGUI($this);
1993 $this->ctrl->setReturn($this, 'trash');
1994 $this->ctrl->forwardCommand($ru);
1995 break;
1996
1997 case 'illtiproviderobjectsettinggui':
1998
1999 $this->setSubTabs('properties');
2000 $this->tabs_gui->activateTab('settings');
2001 $this->tabs_gui->activateSubTab('lti_provider');
2002 $lti_gui = new ilLTIProviderObjectSettingGUI($this->object->getRefId());
2003 $lti_gui->setCustomRolesForSelection($GLOBALS['DIC']->rbac()->review()->getLocalRoles($this->object->getRefId()));
2004 $lti_gui->offerLTIRolesForSelection(false);
2005 $this->ctrl->forwardCommand($lti_gui);
2006 break;
2007
2008 case 'ilcoursemembershipgui':
2009
2010 $this->tabs_gui->activateTab('members');
2011
2012 $mem_gui = new ilCourseMembershipGUI($this, $this->object);
2013 $this->ctrl->forwardCommand($mem_gui);
2014 break;
2015
2016 case "ilinfoscreengui":
2017 $this->infoScreen(); // forwards command
2018 break;
2019
2020 case 'ilobjectmetadatagui':
2021 if (!$this->access->checkAccess('write', '', $this->object->getRefId())) {
2022 $this->error->raiseError($this->lng->txt('permission_denied'), $this->error->WARNING);
2023 }
2024 $this->tabs_gui->setTabActive('meta_data');
2025 $md_gui = new ilObjectMetaDataGUI($this->object);
2026 $this->ctrl->forwardCommand($md_gui);
2027 break;
2028
2029 case 'ilcourseregistrationgui':
2030 $this->ctrl->setReturn($this, '');
2031 $this->tabs_gui->setTabActive('join');
2032 $registration = new ilCourseRegistrationGUI($this->object, $this);
2033 $this->ctrl->forwardCommand($registration);
2034 break;
2035
2036 case 'ilobjectcustomuserfieldsgui':
2037 $cdf_gui = new ilObjectCustomUserFieldsGUI($this->object->getId());
2038 $this->setSubTabs('properties');
2039 $this->tabs_gui->activateTab('settings');
2040 $this->tabs_gui->activateSubTab('crs_custom_user_fields');
2041 $this->ctrl->forwardCommand($cdf_gui);
2042 break;
2043
2044 case "ilcourseobjectivesgui":
2045
2046 $this->ctrl->setReturn($this, "");
2047 $reg_gui = new ilCourseObjectivesGUI($this->object->getRefId());
2048 $this->ctrl->forwardCommand($reg_gui);
2049 break;
2050
2051 case 'ilobjcoursegroupinggui':
2052
2053 $this->ctrl->setReturn($this, 'edit');
2054 $this->setSubTabs('properties');
2055 $this->tabs_gui->activateTab('settings');
2056 $this->tabs_gui->activateSubTab('groupings');
2057
2058 $grouping_id = 0;
2059 if ($this->http->wrapper()->query()->has('obj_id')) {
2060 $grouping_id = $this->http->wrapper()->query()->retrieve(
2061 'obj_id',
2062 $this->refinery->kindlyTo()->int()
2063 );
2064 }
2065 $crs_grp_gui = new ilObjCourseGroupingGUI($this->object, $grouping_id);
2066 $this->ctrl->forwardCommand($crs_grp_gui);
2067 break;
2068
2069 case "ilpropertyformgui":
2070 // only case is currently adv metadata internal link in info settings, see #24497
2071 $form = $this->initInfoEditor();
2072 $this->ctrl->forwardCommand($form);
2073 break;
2074
2075 case "ilcolumngui":
2076 $this->ctrl->setReturn($this, "");
2077 $this->tabs_gui->setTabActive('none');
2078 $this->checkPermission("read");
2079 //$this->prepareOutput();
2080 //$this->tpl->setVariable("LOCATION_CONTENT_STYLESHEET",
2081 // ilObjStyleSheet::getContentStylePath(0));
2082 //$this->renderObject();
2083 $this->viewObject();
2084 break;
2085
2086 case "ilconditionhandlergui":
2087 // preconditions for whole course
2088 $this->setSubTabs("properties");
2089 $this->tabs_gui->activateTab('settings');
2090 $this->tabs_gui->activateSubTab('preconditions');
2091 $new_gui = new ilConditionHandlerGUI($this->object->getRefId());
2092 $this->ctrl->forwardCommand($new_gui);
2093 break;
2094
2095 case "illearningprogressgui":
2096
2097 $user_id = $this->user->getId();
2098 if ($this->http->wrapper()->query()->has('user_id')) {
2099 $user_id = $this->http->wrapper()->query()->retrieve(
2100 'user_id',
2101 $this->refinery->kindlyTo()->int()
2102 );
2103 }
2104 $new_gui = new ilLearningProgressGUI(
2106 $this->object->getRefId(),
2107 $user_id
2108 );
2109 $this->ctrl->forwardCommand($new_gui);
2110 $this->tabs_gui->setTabActive('learning_progress');
2111 break;
2112
2113 case 'ilpermissiongui':
2114 $this->tabs_gui->setTabActive('perm_settings');
2115 $perm_gui = new ilPermissionGUI($this);
2116 $this->ctrl->forwardCommand($perm_gui);
2117 break;
2118
2119 case 'ilcalendarpresentationgui':
2120 $cal = new ilCalendarPresentationGUI($this->object->getRefId());
2121 $ret = $this->ctrl->forwardCommand($cal);
2122 $header_action = false;
2123 break;
2124
2125 case 'ilcoursecontentgui':
2126 $this->ctrl->setReturn($this, 'members');
2127 $course_content_obj = new ilCourseContentGUI($this);
2128 $this->ctrl->forwardCommand($course_content_obj);
2129 break;
2130
2131 case strtolower(PublicProfileGUI::class):
2132 $this->setSubTabs('members');
2133 $this->tabs_gui->setTabActive('members');
2134
2135 $user_id = $this->user->getId();
2136 if ($this->http->wrapper()->query()->has('user_id')) {
2137 $user_id = $this->http->wrapper()->query()->retrieve(
2138 'user_id',
2139 $this->refinery->kindlyTo()->int()
2140 );
2141 }
2142 $profile_gui = new PublicProfileGUI($user_id);
2143 $profile_gui->setBackUrl($this->ctrl->getLinkTargetByClass(["ilCourseMembershipGUI",
2144 "ilUsersGalleryGUI"
2145 ], 'view'));
2146 $this->tabs_gui->setSubTabActive('crs_members_gallery');
2147 $html = $this->ctrl->forwardCommand($profile_gui);
2148 $this->tpl->setVariable("ADM_CONTENT", $html);
2149 break;
2150
2151 case 'ilmemberagreementgui':
2152 $this->tabs_gui->clearTargets();
2153
2154 $this->ctrl->setReturn($this, '');
2155 $agreement = new ilMemberAgreementGUI($this->object->getRefId());
2156 $this->ctrl->forwardCommand($agreement);
2157 break;
2158
2159 // container page editing
2160 case "ilcontainerpagegui":
2161 $ret = $this->forwardToPageObject();
2162 if ($ret != "") {
2163 $this->tpl->setContent($ret);
2164 }
2165 $header_action = false;
2166 break;
2167
2168 case "ilcontainerstartobjectspagegui":
2169 // file downloads, etc. (currently not active)
2170 $pgui = new ilContainerStartObjectsPageGUI($this->object->getId());
2171 $ret = $this->ctrl->forwardCommand($pgui);
2172 if ($ret) {
2173 $this->tpl->setContent($ret);
2174 }
2175 break;
2176
2177 case 'ilobjectcopygui':
2178 $cp = new ilObjectCopyGUI($this);
2179 $cp->setType('crs');
2180 $this->ctrl->forwardCommand($cp);
2181 break;
2182
2183 case "ilobjectcontentstylesettingsgui":
2184
2185 global $DIC;
2186
2187 $this->checkPermission("write");
2188 $this->setTitleAndDescription();
2189 $this->showContainerPageTabs();
2190 $settings_gui = $DIC->contentStyle()->gui()
2191 ->objectSettingsGUIForRefId(
2192 null,
2193 $this->object->getRefId()
2194 );
2195 $this->ctrl->forwardCommand($settings_gui);
2196 break;
2197
2198 case 'ilexportgui':
2199 $this->tabs_gui->setTabActive('export');
2200 $exp = new ilExportGUI($this);
2201 $exp->addFormat('xml');
2202 $this->ctrl->forwardCommand($exp);
2203 break;
2204
2205 case "ilcommonactiondispatchergui":
2207 $this->ctrl->forwardCommand($gui);
2208 break;
2209
2210 case 'ildidactictemplategui':
2211 $this->ctrl->setReturn($this, 'edit');
2212 $did = new ilDidacticTemplateGUI($this, $this->getDidacticTemplateIdFromQuery());
2213 $this->ctrl->forwardCommand($did);
2214 break;
2215
2216 case "ilcertificategui":
2217 $this->checkPermission('write');
2218 $this->tabs_gui->activateTab("settings");
2219 $this->setSubTabs("properties");
2220 $this->tabs_gui->activateSubTab('certificate');
2221
2222 $guiFactory = new ilCertificateGUIFactory();
2223 $output_gui = $guiFactory->create($this->object);
2224 $this->ctrl->forwardCommand($output_gui);
2225 break;
2226
2227 case 'illoeditorgui':
2228 #$this->tabs_gui->clearTargets();
2229 #$this->tabs_gui->setBackTarget($this->lng->txt('back'),$this->ctrl->getLinkTarget($this,''));
2230 $this->tabs_gui->activateTab('crs_objectives');
2231
2232 $editor = new ilLOEditorGUI($this);
2233 $this->ctrl->forwardCommand($editor);
2234 if (strtolower($this->ctrl->getCmdClass()) === "illopagegui") {
2235 $header_action = false;
2236 }
2237 break;
2238
2239 case 'ilcontainerstartobjectsgui':
2240 $this->ctrl->setReturn($this, 'edit');
2241 $this->tabs_gui->clearTargets();
2242 $this->tabs_gui->setBackTarget(
2243 $this->lng->txt("back_to_crs_content"),
2244 $this->ctrl->getLinkTarget($this, "edit")
2245 );
2246 $this->tabs_gui->addTab(
2247 "start",
2248 $this->lng->txt("crs_start_objects"),
2249 $this->ctrl->getLinkTargetByClass("ilcontainerstartobjectsgui", "listStructure")
2250 );
2251 $this->tabs_gui->activateTab("start");
2252 if (strtolower($this->ctrl->getCmdClass()) ==
2253 "ilcontainerstartobjectspagegui") {
2254 $header_action = false;
2255 }
2256 global $DIC;
2257
2258 $ilHelp = $DIC['ilHelp'];
2259 $this->help->setScreenIdComponent("crs");
2260 $stgui = new ilContainerStartObjectsGUI($this->object);
2261 $this->ctrl->forwardCommand($stgui);
2262 break;
2263
2264 case 'illomembertestresultgui':
2265 $GLOBALS['DIC']['ilCtrl']->setReturn($this, 'members');
2266 $GLOBALS['DIC']['ilTabs']->clearTargets();
2267 $GLOBALS['DIC']['ilTabs']->setBackTarget(
2268 $GLOBALS['DIC']['lng']->txt('back'),
2269 $GLOBALS['DIC']['ilCtrl']->getLinkTarget($this, 'members')
2270 );
2271
2272 $uid = 0;
2273 if ($this->http->wrapper()->query()->has('uid')) {
2274 $uid = $this->http->wrapper()->query()->retrieve(
2275 'uid',
2276 $this->refinery->kindlyTo()->int()
2277 );
2278 }
2279 $result_view = new ilLOMemberTestResultGUI($this, $this->object, $uid);
2280 $this->ctrl->forwardCommand($result_view);
2281 break;
2282
2283 case 'ilmailmembersearchgui':
2284 $mail = new ilMail($this->user->getId());
2285
2286 if (
2287 !($this->object->getMailToMembersType() == ilCourseConstants::MAIL_ALLOWED_ALL ||
2288 $this->access->checkAccess('manage_members', "", $this->object->getRefId())) &&
2289 $this->rbac_system->checkAccess('internal_mail', $mail->getMailObjectReferenceId())) {
2290 $this->error->raiseError($this->lng->txt("msg_no_perm_read"), $this->error->MESSAGE);
2291 }
2292
2293 $this->tabs_gui->setTabActive('members');
2294
2295 $mail_search = new ilMailMemberSearchGUI(
2296 $this,
2297 $this->object->getRefId(),
2299 );
2300 $mail_search->setObjParticipants(
2302 );
2303 $this->ctrl->forwardCommand($mail_search);
2304 break;
2305
2306 case 'ilbadgemanagementgui':
2307 $this->tabs_gui->setTabActive('obj_tool_setting_badges');
2308 $bgui = new ilBadgeManagementGUI($this->object->getRefId(), $this->object->getId(), 'crs');
2309 $this->ctrl->forwardCommand($bgui);
2310 break;
2311
2312 case "ilcontainernewssettingsgui":
2313 $this->setSubTabs("properties");
2314 $this->tabs_gui->activateTab('settings');
2315 $this->tabs_gui->activateSubTab('obj_news_settings');
2316 $news_set_gui = new ilContainerNewsSettingsGUI($this);
2317 $news_set_gui->setTimeline(true);
2318 $news_set_gui->setCronNotifications(true);
2319 $news_set_gui->setHideByDate(true);
2320 $this->ctrl->forwardCommand($news_set_gui);
2321 break;
2322
2323 case strtolower(ilNewsTimelineGUI::class):
2324 if (!$this->__checkStartObjects()) { // see #37236
2325 $this->ctrl->redirectByClass(self::class, "view");
2326 }
2327 $this->tabs_gui->setTabActive('news_timeline');
2329 $this->object->getRefId(),
2330 $this->object->getNewsTimelineAutoEntries()
2331 );
2332 $t->setUserEditAll($this->access->checkAccess('write', '', $this->object->getRefId(), 'grp'));
2333 $this->showPermanentLink();
2334 $this->ctrl->forwardCommand($t);
2336 $this->user->getId(),
2337 $this->object->getId(),
2338 $this->object->getRefId(),
2339 'crs'
2340 );
2341 break;
2342
2343 case 'ilmemberexportsettingsgui':
2344 $this->setSubTabs('properties');
2345 $this->tabs_gui->activateTab('properties');
2346 $this->tabs_gui->activateSubTab('export_members');
2347 $settings_gui = new ilMemberExportSettingsGUI($this->object->getType(), $this->object->getId());
2348 $this->ctrl->forwardCommand($settings_gui);
2349 break;
2350
2351 case "ilcontainerskillgui":
2352 $this->tabs_gui->activateTab('obj_tool_setting_skills');
2353 $gui = new ilContainerSkillGUI($this);
2354 $this->ctrl->forwardCommand($gui);
2355 break;
2356
2357 case strtolower(TranslationGUI::class):
2358 $this->checkPermissionBool("write");
2359 $this->setSubTabs("properties");
2360 $this->tabs_gui->activateTab("settings");
2361 $this->tabs_gui->activateSubTab("obj_multilinguality");
2362 $transgui = new TranslationGUI(
2363 $this->getObject(),
2364 $this->lng,
2365 $this->access,
2366 $this->user,
2367 $this->ctrl,
2368 $this->tpl,
2369 $this->ui_factory,
2370 $this->ui_renderer,
2371 $this->http,
2372 $this->refinery,
2373 $this->toolbar
2374 );
2375 $this->ctrl->forwardCommand($transgui);
2376 break;
2377
2378 case "ilbookinggatewaygui":
2379 $this->tabs_gui->activateTab('obj_tool_setting_booking');
2380 $gui = new ilBookingGatewayGUI($this);
2381 $this->ctrl->forwardCommand($gui);
2382 break;
2383
2384 default:
2385 // #9401 - see also ilStartupGUI::_checkGoto()
2386 if ($cmd == 'infoScreenGoto') {
2387 if (ilObjCourse::_isActivated($this->object->getId()) &&
2388 ilObjCourse::_registrationEnabled($this->object->getId())) {
2389 $cmd = 'join';
2390 } else {
2391 $cmd = 'infoScreen';
2392 }
2393 }
2394
2395 if (!$this->creation_mode) {
2396 if ($cmd == "infoScreen") {
2397 $this->checkPermission("visible");
2398 } else {
2399 // $this->checkPermission("read");
2400 }
2401 }
2402
2403 if (!$this->creation_mode
2404 && $cmd != 'infoScreen'
2405 && $cmd != 'sendfile'
2406 && $cmd != 'unsubscribe'
2407 && $cmd != 'deliverCertificate'
2408 && $cmd != 'performUnsubscribe'
2409 && $cmd != 'removeFromDesk'
2410 && $cmd !== 'leave'
2411 && !$this->access->checkAccess("read", '', $this->object->getRefId())
2412 || $cmd == 'join'
2413 || $cmd == 'subscribe'
2414 || $cmd === 'leaveWaitList') {
2415 if ($this->rbac_system->checkAccess('join', $this->object->getRefId()) &&
2416 !ilCourseParticipants::_isParticipant($this->object->getRefId(), $this->user->getId())) {
2417 $this->ctrl->redirectByClass("ilCourseRegistrationGUI");
2418 } else {
2419 $this->infoScreenObject();
2420 break;
2421 }
2422 }
2423
2424 if ($cmd == 'listObjectives') {
2425 $this->ctrl->setReturn($this, "");
2426 $obj_gui = new ilCourseObjectivesGUI($this->object->getRefId());
2427 $this->ctrl->forwardCommand($obj_gui);
2428 break;
2429 }
2430 // if news timeline is landing page, redirect if necessary
2431 if ($cmd == "" && $this->object->isNewsTimelineLandingPageEffective()) {
2432 $this->ctrl->redirectByClass(ilNewsTimelineGUI::class);
2433 }
2434
2435 if (!$cmd) {
2436 $cmd = 'view';
2437 }
2438 $cmd .= 'Object';
2439 $this->$cmd();
2440 break;
2441 }
2442
2443 if ($header_action) {
2444 $this->addHeaderAction();
2445 }
2446 }
GUI class for public user profile presentation.
@ilCtrl_Calls ilBadgeManagementGUI: ilPropertyFormGUI
This class is used for integration of the booking manager as a service into other repository objects,...
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
class ilConditionHandlerGUI
ILIAS Container InternalGUIService $gui
Skills for container (course/group) (top gui class)
Class ilContainerStartObjectsGUI.
Container start objects page GUI class.
Class ilCourseContentGUI.
class ilobjcourseobjectivesgui
GUI class for course registrations.
GUI class for didactic template settings inside repository objects.
Export User Interface Class.
Class ilLOEditorGUI.
The tab of an ILIAS object that releases it to the platforms allowed for its type,...
Class ilObjUserTrackingGUI.
static _tracProgress(int $a_user_id, int $a_obj_id, int $a_ref_id, string $a_obj_type='')
Class ilMailMemberCourseRoles.
static getInstance(int $a_ref_id, bool $a_include_auto_entries)
infoScreenObject()
this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually,...
getLocalRoles(array $a_exclude=array())
Class ilObjCourseGroupingGUI.
static _registrationEnabled(int $a_obj_id)
Registration enabled? Method is in Access class, since it is needed by Access/ListGUI.
static _isActivated(int $a_obj_id)
Is activated.
GUI class for the workflow of copying objects.
viewObject()
viewObject container presentation for "administration -> repository, trash, permissions"
checkPermissionBool(string $perm, string $cmd="", string $type="", ?int $ref_id=null)
addHeaderAction()
Add header action menu.
prepareOutput(bool $show_sub_objects=true)
Class ilObjectMetaDataGUI.
static _isParticipant(int $a_ref_id, int $a_usr_id)
Static function to check if a user is a participant of the container object.
Repository GUI Utilities.
if(!file_exists('../ilias.ini.php'))

References $DIC, ilContainerGUI\$form, $GLOBALS, ilContainerGUI\$gui, ilObjectGUI\$html, $user_id, __checkStartObjects(), ilCourseParticipants\_getInstanceByObjId(), ilObjCourse\_isActivated(), ilParticipants\_isParticipant(), ilObjCourse\_registrationEnabled(), ilLearningProgress\_tracProgress(), ILIAS\Repository\access(), ilObjectGUI\addHeaderAction(), ilObjectGUI\checkPermission(), ilObjectGUI\checkPermissionBool(), ILIAS\Repository\ctrl(), ilContainerGUI\forwardToPageObject(), ilObjectGUI\getCreationMode(), ilContainerGUI\getDidacticTemplateIdFromQuery(), ilNewsTimelineGUI\getInstance(), ilCommonActionDispatcherGUI\getInstanceFromAjaxCall(), getLocalRoles(), ilObjectGUI\getObject(), ILIAS\Repository\help(), ILIAS\FileDelivery\http(), infoScreen(), infoScreenObject(), initInfoEditor(), ILIAS\Repository\lng(), ilLearningProgressBaseGUI\LP_CONTEXT_REPOSITORY, ilCourseConstants\MAIL_ALLOWED_ALL, ILIAS\Repository\object(), ilObjectGUI\prepareOutput(), ILIAS\Repository\rbac(), ILIAS\Repository\refinery(), setSubTabs(), ilContainerGUI\setTitleAndDescription(), ilContainerGUI\showContainerPageTabs(), ilContainerGUI\showPermanentLink(), ILIAS\Repository\toolbar(), ILIAS\Repository\user(), and ilObjectGUI\viewObject().

+ Here is the call graph for this function:

◆ gatewayObject()

ilObjCourseGUI::gatewayObject ( )
Todo:
check deletable

Definition at line 89 of file class.ilObjCourseGUI.php.

89 : void
90 {
91 $this->viewObject();
92 }

References ilObjectGUI\viewObject().

+ Here is the call graph for this function:

◆ getAgreementTabs()

ilObjCourseGUI::getAgreementTabs ( )
protected

Definition at line 1744 of file class.ilObjCourseGUI.php.

1744 : void
1745 {
1746 if ($this->access->checkAccess('visible', '', $this->ref_id)) {
1747 $this->tabs->addTarget(
1748 "info_short",
1749 $this->ctrl->getLinkTargetByClass(
1750 array("ilobjcoursegui", "ilinfoscreengui"),
1751 "showSummary"
1752 ),
1753 "infoScreen"
1754 );
1755 }
1756 if (
1757 $this->access->checkAccess('leave', '', $this->object->getRefId()) &&
1758 $this->object->getMemberObject()->isMember()
1759 ) {
1760 $this->tabs->addTarget(
1761 "crs_unsubscribe",
1762 $this->ctrl->getLinkTarget($this, "unsubscribe"),
1763 'leave',
1764 ""
1765 );
1766 }
1767 }

References ILIAS\Repository\access(), ILIAS\Repository\ctrl(), and ILIAS\Repository\tabs().

+ Here is the call graph for this function:

◆ getEditFormValues()

ilObjCourseGUI::getEditFormValues ( )
protected

values are already set in initEditForm Returning an empty array avoid overriding these values.

Reimplemented from ilContainerGUI.

Definition at line 942 of file class.ilObjCourseGUI.php.

942 : array
943 {
944 return [];
945 }

◆ getLocalRoles()

ilObjCourseGUI::getLocalRoles ( array  $a_exclude = array())
Returns
array localroles
Parameters
int[]$a_excludea list of role ids which will not added to the results (optional) returns all local roles [role_id] => title

Definition at line 3023 of file class.ilObjCourseGUI.php.

3023 : array
3024 {
3025 $crs_admin = $this->object->getDefaultAdminRole();
3026 $crs_member = $this->object->getDefaultMemberRole();
3027 $local_roles = $this->object->getLocalCourseRoles(false);
3028 $crs_roles = [];
3029
3030 //put the course member role to the top of the crs_roles array
3031 if (in_array($crs_member, $local_roles)) {
3032 #$crs_roles[$crs_member] = ilObjRole::_getTranslation(array_search ($crs_member, $local_roles));
3033 #unset($local_roles[$crs_roles[$crs_member]]);
3034 }
3035
3036 foreach ($local_roles as $title => $role_id) {
3037 if ($role_id == $crs_admin && !$this->hasAdminPermission()) {
3038 continue;
3039 }
3040
3041 $crs_roles[$role_id] = ilObjRole::_getTranslation($title);
3042 }
3043
3044 if ($a_exclude !== []) {
3045 foreach ($a_exclude as $excluded_role) {
3046 if (isset($crs_roles[$excluded_role])) {
3047 unset($crs_roles[$excluded_role]);
3048 }
3049 }
3050 }
3051 return $crs_roles;
3052 }
static _getTranslation(string $a_role_title)

References ilObjRole\_getTranslation().

Referenced by executeCommand().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getSubServices()

ilObjCourseGUI::getSubServices ( )
protected

Definition at line 885 of file class.ilObjCourseGUI.php.

885 : array
886 {
887 $subs = array(
897 );
898 if ($this->news->isGloballyActivated()) {
900 }
901
902 return $subs;
903 }

References ilObjectServiceSettingsGUI\AUTO_RATING_NEW_OBJECTS, ilObjectServiceSettingsGUI\BADGES, ilObjectServiceSettingsGUI\BOOKING, ilObjectServiceSettingsGUI\CALENDAR_CONFIGURATION, ilObjectServiceSettingsGUI\CUSTOM_METADATA, ilObjectServiceSettingsGUI\EXTERNAL_MAIL_PREFIX, ilObjectServiceSettingsGUI\ORGU_POSITION_ACCESS, ilObjectServiceSettingsGUI\SKILLS, ilObjectServiceSettingsGUI\TAG_CLOUD, and ilObjectServiceSettingsGUI\USE_NEWS.

◆ getTabs()

ilObjCourseGUI::getTabs ( )
protected

@abstract overwrite in derived GUI class of your object type

Reimplemented from ilContainerGUI.

Definition at line 1778 of file class.ilObjCourseGUI.php.

1778 : void
1779 {
1780 $this->help->setScreenIdComponent("crs");
1781 $this->ctrl->setParameter($this, "ref_id", $this->ref_id);
1782
1783 if ($this->access->checkAccess('read', '', $this->ref_id)) {
1784 // default activation
1785 $this->tabs_gui->activateTab('view_content');
1786 if ($this->object->isNewsTimelineEffective()) {
1787 if (!$this->object->isNewsTimelineLandingPageEffective()) {
1788 $this->addContentTab();
1789 }
1790 $this->tabs_gui->addTab(
1791 "news_timeline",
1792 $this->lng->txt("cont_news_timeline_tab"),
1793 $this->ctrl->getLinkTargetByClass(ilNewsTimelineGUI::class, "show")
1794 );
1795 if ($this->object->isNewsTimelineLandingPageEffective()) {
1796 $this->addContentTab();
1797 }
1798 } else {
1799 $this->addContentTab();
1800 }
1801 }
1802
1803 if ($this->object->getViewMode() == ilCourseConstants::IL_CRS_VIEW_TIMING && $this->access->checkAccess('write', '', $this->ref_id)
1804 ) {
1805 $this->tabs->addTab(
1806 'timings_timings',
1807 $this->lng->txt('timings_timings'),
1808 $this->ctrl->getLinkTargetByClass('ilcoursecontentgui', 'manageTimings')
1809 );
1810 } elseif (
1811 $this->object->getViewMode() == ilCourseConstants::IL_CRS_VIEW_TIMING && $this->object->getMemberObject()->isParticipant() && $this->access->checkAccess('read', '', $this->ref_id)) {
1812 $this->tabs->addTab(
1813 'timings_timings',
1814 $this->lng->txt('timings_timings'),
1815 $this->ctrl->getLinkTargetByClass('ilcoursecontentgui', 'managePersonalTimings')
1816 );
1817 }
1818
1819 // learning objectives
1820 if ($this->access->checkAccess('write', '', $this->ref_id)) {
1821 if ($this->object->getViewMode() == ilCourseConstants::IL_CRS_VIEW_OBJECTIVE or ilCourseObjective::_getCountObjectives($this->object->getId())) {
1822 $this->tabs_gui->addTarget(
1823 'crs_objectives',
1824 $this->ctrl->getLinkTargetByClass('illoeditorgui', ''),
1825 'illoeditorgui'
1826 );
1827 }
1828 }
1829
1830 if (
1831 $this->access->checkAccess('visible', '', $this->ref_id) ||
1832 $this->access->checkAccess('join', '', $this->ref_id) ||
1833 $this->access->checkAccess('read', '', $this->ref_id)
1834 ) {
1835 $force_active =
1836 strcasecmp($this->ctrl->getCmdClass(), ilInfoScreenGUI::class) === 0 ||
1837 strcasecmp($this->ctrl->getCmdClass(), ilNoteGUI::class) === 0;
1838 $this->tabs_gui->addTarget(
1839 "info_short",
1840 $this->ctrl->getLinkTargetByClass(
1841 array("ilobjcoursegui", "ilinfoscreengui"),
1842 "showSummary"
1843 ),
1844 "infoScreen",
1845 "",
1846 "",
1847 $force_active
1848 );
1849 }
1850 if ($this->access->checkAccess('write', '', $this->ref_id)) {
1851 $force_active =
1852 strcasecmp($this->ctrl->getCmdClass(), ilConditionHandlerGUI::class) &&
1853 !$this->http->wrapper()->query()->has('item_id');
1854 $this->tabs_gui->addTarget(
1855 "settings",
1856 $this->ctrl->getLinkTarget($this, "edit"),
1857 array("edit", "editMapSettings", "editCourseIcons", "listStructure"),
1858 "",
1859 "",
1860 $force_active
1861 );
1862 }
1863
1864 $is_participant = ilCourseParticipants::_isParticipant($this->ref_id, $this->user->getId());
1865 $mail = new ilMail($this->user->getId());
1866
1867 $membership_gui = new ilCourseMembershipGUI($this, $this->object);
1868 $membership_gui->addMemberTab($this->tabs_gui, $is_participant);
1869
1870 // badges
1871 if ($this->access->checkAccess('write', '', $this->ref_id)) {
1872 if (ilBadgeHandler::getInstance()->isObjectActive($this->object->getId())) {
1873 $this->tabs_gui->addTarget(
1874 "obj_tool_setting_badges",
1875 $this->ctrl->getLinkTargetByClass("ilbadgemanagementgui", ""),
1876 "",
1877 "ilbadgemanagementgui"
1878 );
1879 }
1880 }
1881
1882 // skills
1883 if (ilContSkillPresentationGUI::isAccessible($this->ref_id)) {
1884 $this->tabs_gui->addTarget(
1885 "obj_tool_setting_skills",
1886 $this->ctrl->getLinkTargetByClass(array("ilcontainerskillgui", "ilcontskillpresentationgui"), ""),
1887 "",
1888 array("ilcontainerskillgui", "ilcontskillpresentationgui", "ilcontskilladmingui")
1889 );
1890 }
1891
1892 // booking
1893 if ($this->access->checkAccess('write', '', $this->ref_id) && ilContainer::_lookupContainerSetting(
1894 $this->object->getId(),
1896 '0'
1897 )) {
1898 $this->tabs_gui->addTarget(
1899 "obj_tool_setting_booking",
1900 $this->ctrl->getLinkTargetByClass(array("ilbookinggatewaygui"), "")
1901 );
1902 }
1903
1904 // learning progress
1905 if (ilLearningProgressAccess::checkAccess($this->object->getRefId(), $is_participant)) {
1906 $this->tabs_gui->addTarget(
1907 'learning_progress',
1908 $this->ctrl->getLinkTargetByClass(array('ilobjcoursegui', 'illearningprogressgui'), ''),
1909 '',
1910 array('illplistofobjectsgui', 'illplistofsettingsgui', 'illearningprogressgui', 'illplistofprogressgui')
1911 );
1912 }
1913
1914 // meta data
1915 if ($this->access->checkAccess('write', '', $this->ref_id)) {
1916 $mdgui = new ilObjectMetaDataGUI($this->object);
1917 $mdtab = $mdgui->getTab();
1918 if ($mdtab) {
1919 $this->tabs_gui->addTarget(
1920 "meta_data",
1921 $mdtab,
1922 "",
1923 "ilobjectmetadatagui"
1924 );
1925 }
1926 }
1927
1928 if ($this->access->checkAccess('write', '', $this->object->getRefId())) {
1929 $this->tabs_gui->addTarget(
1930 'export',
1931 $this->ctrl->getLinkTargetByClass('ilexportgui', ''),
1932 'export',
1933 'ilexportgui'
1934 );
1935 }
1936
1937 if ($this->access->checkAccess('edit_permission', '', $this->ref_id)) {
1938 $this->tabs_gui->addTarget(
1939 "perm_settings",
1940 $this->ctrl->getLinkTargetByClass(array(get_class($this), 'ilpermissiongui'), "perm"),
1941 array("perm", "info", "owner"),
1942 'ilpermissiongui'
1943 );
1944 }
1945
1946 // Join/Leave
1947 if ($this->access->checkAccess('join', '', $this->ref_id) && !$this->object->getMemberObject()->isAssigned()) {
1948 if (ilCourseWaitingList::_isOnList($this->user->getId(), $this->object->getId())) {
1949 $this->tabs_gui->addTab(
1950 'leave',
1951 $this->lng->txt('membership_leave'),
1952 $this->ctrl->getLinkTargetByClass('ilcourseregistrationgui', 'show', '')
1953 );
1954 } else {
1955 $this->tabs_gui->addTarget(
1956 "join",
1957 $this->ctrl->getLinkTargetByClass('ilcourseregistrationgui', "show"),
1958 'show',
1959 ""
1960 );
1961 }
1962 }
1963 if ($this->access->checkAccess('leave', '', $this->object->getRefId()) && $this->object->getMemberObject()->isMember()) {
1964 $this->tabs_gui->addTarget(
1965 "crs_unsubscribe",
1966 $this->ctrl->getLinkTarget($this, "unsubscribe"),
1967 'leave',
1968 ""
1969 );
1970 }
1971 }
static _lookupContainerSetting(int $a_id, string $a_keyword, ?string $a_default_value=null)
static _getCountObjectives(int $a_obj_id, bool $a_activated_only=false)
static checkAccess(int $a_ref_id, bool $a_allow_only_read=true)
check access to learning progress
static _isOnList(int $a_usr_id, int $a_obj_id)

References ilCourseObjective\_getCountObjectives(), ilWaitingList\_isOnList(), ilParticipants\_isParticipant(), ilContainer\_lookupContainerSetting(), ILIAS\Repository\access(), addContentTab(), ilObjectServiceSettingsGUI\BOOKING, ilLearningProgressAccess\checkAccess(), ILIAS\Repository\ctrl(), ilBadgeHandler\getInstance(), ILIAS\Repository\help(), ILIAS\FileDelivery\http(), ilCourseConstants\IL_CRS_VIEW_OBJECTIVE, ilCourseConstants\IL_CRS_VIEW_TIMING, ilContSkillPresentationGUI\isAccessible(), ILIAS\Repository\lng(), ILIAS\Repository\object(), ILIAS\Repository\tabs(), and ILIAS\Repository\user().

+ Here is the call graph for this function:

◆ hasAdminPermission()

ilObjCourseGUI::hasAdminPermission ( )
protected

Definition at line 3054 of file class.ilObjCourseGUI.php.

3054 : bool
3055 {
3056 return
3057 ilCourseParticipant::_getInstanceByObjId($this->object->getId(), $this->user->getId())->isAdmin() ||
3058 $this->checkPermissionBool('edit_permission');
3059 }
static _getInstanceByObjId(int $a_obj_id, int $a_usr_id)

References ilCourseParticipant\_getInstanceByObjId(), and ILIAS\Repository\object().

+ Here is the call graph for this function:

◆ infoScreen()

ilObjCourseGUI::infoScreen ( )

Definition at line 188 of file class.ilObjCourseGUI.php.

188 : void
189 {
190 if (!$this->checkPermissionBool('read')) {
191 $this->checkPermission('visible');
192 }
193
194 $this->tabs_gui->setTabActive('info_short');
196
197 $info = new ilInfoScreenGUI($this);
198 $info->enablePrivateNotes();
199 $info->enableFeedback();
200 $info->enableNews();
201 $info->enableBookingInfo(true);
202 if ($this->access->checkAccess("write", "", $this->ref_id)) {
203 $info->enableNewsEditing();
204 }
205
206 if (
207 strlen($this->object->getImportantInformation()) ||
208 strlen($this->object->getSyllabus()) ||
209 strlen((string) $this->object->getTargetGroup()) ||
210 count($files)) {
211 $info->addSection($this->lng->txt('crs_general_informations'));
212 }
213
214 if (strlen($this->object->getImportantInformation())) {
215 $info->addProperty(
216 $this->lng->txt('crs_important_info'),
217 "<strong>" . nl2br(
218 ilUtil::makeClickable($this->object->getImportantInformation(), true) . "</strong>"
219 )
220 );
221 }
222 if (strlen($this->object->getSyllabus())) {
223 $info->addProperty($this->lng->txt('crs_syllabus'), nl2br(
224 ilUtil::makeClickable($this->object->getSyllabus(), true)
225 ));
226 }
227 if (strlen((string) $this->object->getTargetGroup())) {
228 $info->addProperty(
229 $this->lng->txt('crs_target_group'),
230 nl2br(
231 \ilUtil::makeClickable($this->object->getTargetGroup(), true)
232 )
233 );
234 }
235 // files
236 if ($files !== []) {
237 $tpl = new ilTemplate('tpl.event_info_file.html', true, true, 'components/ILIAS/Course');
238
239 foreach ($files as $file) {
240 $tpl->setCurrentBlock("files");
241 $this->ctrl->setParameter($this, 'file_id', $file->getFileId());
242 $tpl->setVariable("DOWN_LINK", $this->ctrl->getLinkTarget($this, 'sendfile'));
243 $tpl->setVariable("DOWN_NAME", $file->getFileName());
244 $tpl->setVariable("DOWN_INFO_TXT", $this->lng->txt('crs_file_size_info'));
245 $tpl->setVariable("DOWN_SIZE", $file->getFileSize());
246 $tpl->setVariable("TXT_BYTES", $this->lng->txt('bytes'));
248 }
249 $info->addProperty(
250 $this->lng->txt('crs_file_download'),
251 $tpl->get()
252 );
253 }
254
258
259 // meta data
260 $info->addMetaDataSections($this->object->getId(), 0, $this->object->getType());
261
262 // contact
263 if ($this->object->hasContactData()) {
264 $info->addSection($this->lng->txt("crs_contact"));
265 }
266 if (strlen($this->object->getContactName())) {
267 $info->addProperty(
268 $this->lng->txt("crs_contact_name"),
269 $this->object->getContactName()
270 );
271 }
272 if (strlen($this->object->getContactResponsibility())) {
273 $info->addProperty(
274 $this->lng->txt("crs_contact_responsibility"),
275 $this->object->getContactResponsibility()
276 );
277 }
278 if (strlen($this->object->getContactPhone())) {
279 $info->addProperty(
280 $this->lng->txt("crs_contact_phone"),
281 $this->object->getContactPhone()
282 );
283 }
284 if ($this->object->getContactEmail()) {
285 /* needs to be rbacsystem, does not work with ilAccess */
286 $has_mail_access = $this->rbacsystem->checkAccessOfUser(
287 $this->user->getId(),
288 'internal_mail',
290 );
291 $emails = explode(",", $this->object->getContactEmail());
292 $mailString = '';
293 foreach ($emails as $email) {
294 $email = trim($email);
295 if (!$has_mail_access) {
296 $mailString .= $email . "<br />";
297 continue;
298 }
299 $etpl = new ilTemplate("tpl.crs_contact_email.html", true, true, 'components/ILIAS/Course');
300 $etpl->setVariable(
301 "EMAIL_LINK",
303 $info,
304 'showSummary',
305 array(),
306 array(
307 'type' => 'new',
308 'rcp_to' => $email,
309 'sig' => $this->createMailSignature()
310 ),
311 array(
313 'ref_id' => $this->object->getRefId(),
314 'ts' => time()
315 )
316 )
317 );
318 $etpl->setVariable("CONTACT_EMAIL", $email);
319 $mailString .= $etpl->get() . "<br />";
320 }
321 $info->addProperty($this->lng->txt("crs_contact_email"), $mailString);
322 }
323 if (strlen($this->object->getContactConsultation())) {
324 $info->addProperty(
325 $this->lng->txt("crs_contact_consultation"),
326 nl2br($this->object->getContactConsultation())
327 );
328 }
329 // support contacts
330 $parts = ilParticipants::getInstanceByObjId($this->object->getId());
331 $conts = $parts->getContacts();
332 if ($conts !== []) {
333 $info->addSection($this->lng->txt("crs_mem_contacts"));
334 foreach ($conts as $c) {
335 $pgui = new PublicProfileGUI($c);
336 $pgui->setBackUrl($this->ctrl->getLinkTargetByClass("ilinfoscreengui"));
337 $pgui->setEmbedded(true);
338 $info->addProperty("", $pgui->getHTML());
339 }
340 }
341
342 // #10360
343 $info->enableAvailability(false);
344 $this->lng->loadLanguageModule("rep");
345 $info->addSection($this->lng->txt("rep_activation_availability"));
346 $info->showLDAPRoleGroupMappingInfo();
347
348 // activation
349 $info->addAccessPeriodProperty();
350
351 $txt = '';
352 switch ($this->object->getSubscriptionLimitationType()) {
354 $txt = $this->lng->txt("crs_info_reg_deactivated");
355 break;
356
357 default:
358 switch ($this->object->getSubscriptionType()) {
360 $txt = $this->lng->txt("crs_info_reg_confirmation");
361 break;
363 $txt = $this->lng->txt("crs_info_reg_direct");
364 break;
366 $txt = $this->lng->txt("crs_info_reg_password");
367 break;
368 }
369 }
370
371 // subscription
372 $info->addProperty($this->lng->txt("crs_info_reg"), $txt);
373 if ($this->object->getSubscriptionLimitationType() != ilCourseConstants::IL_CRS_SUBSCRIPTION_DEACTIVATED) {
374 if ($this->object->getSubscriptionUnlimitedStatus()) {
375 $info->addProperty(
376 $this->lng->txt("crs_reg_until"),
377 $this->lng->txt('crs_unlimited')
378 );
379 } elseif ($this->object->getSubscriptionStart() < time()) {
380 $info->addProperty(
381 $this->lng->txt("crs_reg_until"),
382 $this->lng->txt('crs_to') . ' ' .
383 ilDatePresentation::formatDate(new ilDateTime($this->object->getSubscriptionEnd(), IL_CAL_UNIX))
384 );
385 } elseif ($this->object->getSubscriptionStart() > time()) {
386 $info->addProperty(
387 $this->lng->txt("crs_reg_until"),
388 $this->lng->txt('crs_from') . ' ' .
389 ilDatePresentation::formatDate(new ilDateTime($this->object->getSubscriptionStart(), IL_CAL_UNIX))
390 );
391 }
392 if ($this->object->isSubscriptionMembershipLimited()) {
393 if ($this->object->getSubscriptionMinMembers()) {
394 $info->addProperty(
395 $this->lng->txt("mem_min_users"),
396 $this->object->getSubscriptionMinMembers()
397 );
398 }
399 if ($this->object->getSubscriptionMaxMembers()) {
400 $reg_info = ilObjCourseAccess::lookupRegistrationInfo($this->object->getId());
401 $info->addProperty(
402 $this->lng->txt('mem_free_places'),
403 (string) ($reg_info['reg_info_free_places'] ?? '0')
404 );
405 }
406 }
407 }
408
409 if ($this->object->getCancellationEnd()) {
410 $info->addProperty(
411 $this->lng->txt('crs_cancellation_end'),
412 ilDatePresentation::formatDate($this->object->getCancellationEnd())
413 );
414 }
415
416 if (
417 $this->object->getCourseStart() instanceof ilDateTime &&
418 !$this->object->getCourseStart()->isNull()
419 ) {
420 $info->addProperty(
421 $this->lng->txt('crs_period'),
423 $this->object->getCourseStart(),
424 $this->object->getCourseEnd()
425 )
426 );
427 }
428
429 // Confirmation
431
432 if ($privacy->courseConfirmationRequired() || ilCourseDefinedFieldDefinition::_getFields($this->object->getId()) || $privacy->enabledCourseExport()) {
433 $field_info = ilExportFieldsInfo::_getInstanceByType($this->object->getType());
434
435 $this->lng->loadLanguageModule('ps');
436 $info->addSection($this->lng->txt('crs_user_agreement_info'));
437 $info->addProperty($this->lng->txt('ps_export_data'), $field_info->exportableFieldsToInfoString());
438
439 if ($fields = ilCourseDefinedFieldDefinition::_fieldsToInfoString($this->object->getId())) {
440 $info->addProperty($this->lng->txt('ps_crs_user_fields'), $fields);
441 }
442 }
443 $info->enableLearningProgress(true);
444
445 // forward the command
446 $this->ctrl->forwardCommand($info);
447 }
const IL_CAL_UNIX
setInfoObject(ilInfoScreenGUI $info)
get info sections
static _getFields(int $a_container_id, $a_sort=self::IL_CDF_SORT_NAME)
Get all fields of a container.
static _readFilesByCourse(int $a_course_id)
static formatDate(ilDateTime $date, bool $a_skip_day=false, bool $a_include_wd=false, bool $include_seconds=false, ?ilObjUser $user=null,)
static formatPeriod(ilDateTime $start, ilDateTime $end, bool $a_skip_starting_day=false, ?ilObjUser $user=null)
Format a period of two dates Shows: 14.
@classDescription Date and time handling
isNull()
Check if a date is null (Datetime == '0000-00-00 00:00:00', unixtime == 0,...)
static _getInstanceByType(string $a_type)
Get Singleton Instance.
Class ilInfoScreenGUI.
static getLinkTarget( $gui, string $cmd, array $gui_params=[], array $mail_params=[], array $context_params=[])
final const string CONTEXT_KEY
static lookupRegistrationInfo(int $a_obj_id)
createMailSignature()
Create a course mail signature.
ilAdvancedMDRecordGUI $record_gui
ilGlobalTemplateInterface $tpl
static getInstanceByObjId(int $a_obj_id)
Get instance by obj type.
special template class to simplify handling of ITX/PEAR
static makeClickable(string $a_text, bool $detectGotoLinks=false, ?string $ilias_http_path=null)
$info
Definition: entry_point.php:21
setVariable(string $variable, $value='')
Sets the given variable to the given value.
parseCurrentBlock(string $block_name=self::DEFAULT_BLOCK)
Parses the given block.
setCurrentBlock(string $part=self::DEFAULT_BLOCK)
Sets the template to the given block.
get(string $part=self::DEFAULT_BLOCK)
Renders the given block and returns the html string.

References Vendor\Package\$c, $files, $info, $record_gui, ilObjectGUI\$tpl, ilCourseDefinedFieldDefinition\_fieldsToInfoString(), ilCourseDefinedFieldDefinition\_getFields(), ilExportFieldsInfo\_getInstanceByType(), ilCourseFile\_readFilesByCourse(), ILIAS\Repository\access(), ilObjectGUI\checkPermission(), ilObjectGUI\checkPermissionBool(), ilMailFormCall\CONTEXT_KEY, createMailSignature(), ILIAS\Repository\ctrl(), ilDatePresentation\formatDate(), ilDatePresentation\formatPeriod(), ILIAS\UICore\GlobalTemplate\get(), ilPrivacySettings\getInstance(), ilParticipants\getInstanceByObjId(), ilMailFormCall\getLinkTarget(), ilMailGlobalServices\getMailObjectRefId(), ilCourseMailTemplateMemberContext\ID, IL_CAL_UNIX, ilCourseConstants\IL_CRS_SUBSCRIPTION_CONFIRMATION, ilCourseConstants\IL_CRS_SUBSCRIPTION_DEACTIVATED, ilCourseConstants\IL_CRS_SUBSCRIPTION_DIRECT, ilCourseConstants\IL_CRS_SUBSCRIPTION_PASSWORD, ilDateTime\isNull(), ILIAS\Repository\lng(), ilObjCourseAccess\lookupRegistrationInfo(), ilUtil\makeClickable(), ilAdvancedMDRecordGUI\MODE_INFO, ILIAS\Repository\object(), ilAdvancedMDRecordGUI\parse(), ILIAS\UICore\GlobalTemplate\parseCurrentBlock(), ILIAS\UICore\GlobalTemplate\setCurrentBlock(), ilAdvancedMDRecordGUI\setInfoObject(), ILIAS\UICore\GlobalTemplate\setVariable(), and ILIAS\Repository\user().

Referenced by executeCommand().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ infoScreenObject()

ilObjCourseGUI::infoScreenObject ( )

this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually, if everything works through ilCtrl in the future this may be changed

Todo:

Definition at line 180 of file class.ilObjCourseGUI.php.

180 : void
181 {
182 $this->ctrl->redirectByClass([
183 static::class,
184 ilInfoScreenGUI::class
185 ]);
186 }

References ILIAS\Repository\ctrl().

Referenced by executeCommand().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initEditForm()

ilObjCourseGUI::initEditForm ( )
protected

Reimplemented from ilContainerGUI.

Definition at line 947 of file class.ilObjCourseGUI.php.

948 {
949 $obj_service = $this->getObjectService();
950 $setting = $this->settings;
951
952 $form = new ilPropertyFormGUI();
953 $form->setTitle($this->lng->txt('crs_edit'));
954
955 $form->addCommandButton('update', $this->lng->txt('save'));
956 $form->addCommandButton('cancel', $this->lng->txt('cancel'));
957
958 $form->setFormAction($this->ctrl->getFormAction($this, 'update'));
959
960 // title and description
961 $this->initFormTitleDescription($form);
962
963 // Show didactic template type
965
966 // period
967 $cdur = new ilDateDurationInputGUI($this->lng->txt('crs_period'), 'period');
968 $this->lng->loadLanguageModule('mem');
969 $cdur->enableToggleFullTime(
970 $this->lng->txt('mem_period_without_time'),
971 !$this->object->getCourseStartTimeIndication()
972 );
973 $cdur->setShowTime(true);
974 $cdur->setInfo($this->lng->txt('crs_period_info'));
975 $cdur->setStart($this->object->getCourseStart());
976 $cdur->setEnd($this->object->getCourseEnd());
977 $form->addItem($cdur);
978
979 // activation/availability
980
981 $this->lng->loadLanguageModule('rep');
982
983 $section = new ilFormSectionHeaderGUI();
984 $section->setTitle($this->lng->txt('rep_activation_availability'));
985 $form->addItem($section);
986
987 $online = new ilCheckboxInputGUI($this->lng->txt('rep_activation_online'), 'activation_online');
988 $online->setChecked(!$this->object->getOfflineStatus());
989 $online->setInfo($this->lng->txt('crs_activation_online_info'));
990 $form->addItem($online);
991
992 $dur = new ilDateDurationInputGUI($this->lng->txt('rep_time_period'), "access_period");
993 $dur->setShowTime(true);
994 $dur->setStart(new ilDateTime($this->object->getActivationStart(), IL_CAL_UNIX));
995 $dur->setEnd(new ilDateTime($this->object->getActivationEnd(), IL_CAL_UNIX));
996 $form->addItem($dur);
997
998 $visible = new ilCheckboxInputGUI(
999 $this->lng->txt('rep_activation_limited_visibility'),
1000 'activation_visibility'
1001 );
1002 $visible->setInfo($this->lng->txt('crs_activation_limited_visibility_info'));
1003 $visible->setChecked((bool) $this->object->getActivationVisibility());
1004 $dur->addSubItem($visible);
1005
1006 $section = new ilFormSectionHeaderGUI();
1007 $section->setTitle($this->lng->txt('crs_reg'));
1008 $form->addItem($section);
1009
1010 // time limit
1011 $sdur = new ilDateDurationInputGUI($this->lng->txt('crs_registration_limited'), "subscription_period");
1012 $sdur->setShowTime(true);
1013 if ($this->object->getSubscriptionStart()) {
1014 $sdur->setStart(new ilDateTime($this->object->getSubscriptionStart(), IL_CAL_UNIX));
1015 }
1016 if ($this->object->getSubscriptionEnd()) {
1017 $sdur->setEnd(new ilDateTime($this->object->getSubscriptionEnd(), IL_CAL_UNIX));
1018 }
1019
1020 $reg_proc = new ilRadioGroupInputGUI('', 'subscription_type');
1021 $reg_proc->setValue(
1022 ($this->object->getSubscriptionLimitationType() != ilCourseConstants::IL_CRS_SUBSCRIPTION_DEACTIVATED)
1023 ? (string) $this->object->getSubscriptionType()
1025 );
1026
1027 $opt = new ilRadioOption(
1028 $this->lng->txt('crs_subscription_options_direct'),
1029 (string) ilCourseConstants::IL_CRS_SUBSCRIPTION_DIRECT
1030 );
1031 $reg_proc->addOption($opt);
1032
1033 $opt = new ilRadioOption(
1034 $this->lng->txt('crs_subscription_options_password'),
1036 );
1037
1038 $pass = new ilTextInputGUI($this->lng->txt("password"), 'subscription_password');
1039 $pass->setRequired(true);
1040 $pass->setInfo($this->lng->txt('crs_reg_password_info'));
1041 $pass->setSubmitFormOnEnter(true);
1042 $pass->setSize(32);
1043 $pass->setMaxLength(32);
1044 $pass->setValue($this->object->getSubscriptionPassword());
1045
1046 $opt->addSubItem($pass);
1047 $reg_proc->addOption($opt);
1048
1049 $opt = new ilRadioOption(
1050 $this->lng->txt('crs_subscription_options_confirmation'),
1052 );
1053 $opt->setInfo($this->lng->txt('crs_registration_confirmation_info'));
1054 $reg_proc->addOption($opt);
1055
1056 $opt_self_enrollment_enabled = new ilRadioOption(
1057 $this->lng->txt('crs_reg_selfreg'),
1059 );
1060 $opt_self_enrollment_enabled->addSubItem($reg_proc);
1061 $opt_self_enrollment_enabled->addSubItem($sdur);
1062 $opt_self_enrollment_disabled = new ilRadioOption(
1063 $this->lng->txt('crs_reg_no_selfreg'),
1065 );
1066 $opt_self_enrollment_disabled->setInfo($this->lng->txt('crs_registration_deactivated'));
1067 $reg_proc_subscription_reg_type = new ilRadioGroupInputGUI(
1068 $this->lng->txt('crs_registration_type'),
1069 'subscription_limitation_type'
1070 );
1071 $reg_proc_subscription_reg_type->setValue(
1072 $this->object->getSubscriptionLimitationType() !== ilCourseConstants::IL_CRS_SUBSCRIPTION_DEACTIVATED
1075 );
1076 $reg_proc_subscription_reg_type->addOption($opt_self_enrollment_enabled);
1077 $reg_proc_subscription_reg_type->addOption($opt_self_enrollment_disabled);
1078 $form->addItem($reg_proc_subscription_reg_type);
1079
1080 // Registration codes
1081 $reg_code = new ilCheckboxInputGUI($this->lng->txt('crs_reg_code'), 'reg_code_enabled');
1082 $reg_code->setChecked($this->object->isRegistrationAccessCodeEnabled());
1083 $reg_code->setValue('1');
1084 $reg_code->setInfo($this->lng->txt('crs_reg_code_enabled_info'));
1085
1086 // Create default access code
1087 if (!$this->object->getRegistrationAccessCode()) {
1088 $this->object->setRegistrationAccessCode(ilMembershipRegistrationCodeUtils::generateCode());
1089 }
1090 $reg_link = new ilHiddenInputGUI('reg_code');
1091 $reg_link->setValue($this->object->getRegistrationAccessCode());
1092 $form->addItem($reg_link);
1093
1094 $link = new ilCustomInputGUI($this->lng->txt('crs_reg_code_link'));
1095 $val = ilLink::_getLink(
1096 $this->object->getRefId(),
1097 $this->object->getType(),
1098 array(),
1099 'rcode' . $this->object->getRegistrationAccessCode()
1100 );
1101 $link->setHtml('<span class="small">' . $val . '</span>');
1102 $reg_code->addSubItem($link);
1103
1104 $form->addItem($reg_code);
1105
1106 // cancellation limit
1107 $cancel = new ilDateTimeInputGUI($this->lng->txt('crs_cancellation_end'), 'cancel_end');
1108 $cancel->setInfo($this->lng->txt('crs_cancellation_end_info'));
1109 $cancel_end = $this->object->getCancellationEnd();
1110 if ($cancel_end) {
1111 $cancel->setDate($cancel_end);
1112 }
1113 $form->addItem($cancel);
1114
1115 // Max members
1116 $lim = new ilCheckboxInputGUI(
1117 $this->lng->txt('crs_subscription_max_members_short'),
1118 'subscription_membership_limitation'
1119 );
1120 $lim->setInfo($this->lng->txt('crs_subscription_max_members_short_info'));
1121 $lim->setValue((string) 1);
1122 $lim->setChecked($this->object->isSubscriptionMembershipLimited());
1123
1124 $min = new ilTextInputGUI('', 'subscription_min');
1125 $min->setSubmitFormOnEnter(true);
1126 $min->setSize(4);
1127 $min->setMaxLength(4);
1128 $min->setValue($this->object->getSubscriptionMinMembers() ?: '');
1129 $min->setTitle($this->lng->txt('crs_subscription_min_members'));
1130 $min->setInfo($this->lng->txt('crs_subscription_min_members_info'));
1131 $lim->addSubItem($min);
1132
1133 $max = new ilTextInputGUI('', 'subscription_max');
1134 $max->setSubmitFormOnEnter(true);
1135 $max->setSize(4);
1136 $max->setMaxLength(4);
1137 $max->setValue($this->object->getSubscriptionMaxMembers() ?: '');
1138 $max->setTitle($this->lng->txt('crs_subscription_max_members'));
1139 $max->setInfo($this->lng->txt('crs_reg_max_info'));
1140
1141 $lim->addSubItem($max);
1142
1143 $wait = new ilRadioGroupInputGUI($this->lng->txt('crs_waiting_list'), 'waiting_list');
1144 $option = new ilRadioOption($this->lng->txt('none'), '0');
1145 $wait->addOption($option);
1146
1147 $option = new ilRadioOption($this->lng->txt('crs_waiting_list_no_autofill'), '1');
1148 $option->setInfo($this->lng->txt('crs_wait_info'));
1149 $wait->addOption($option);
1150
1151 $option = new ilRadioOption($this->lng->txt('crs_waiting_list_autofill'), '2');
1152 $option->setInfo($this->lng->txt('crs_waiting_list_autofill_info'));
1153 $wait->addOption($option);
1154
1155 if ($this->object->hasWaitingListAutoFill()) {
1156 $wait->setValue('2');
1157 } elseif ($this->object->enabledWaitingList()) {
1158 $wait->setValue('1');
1159 } else {
1160 $wait->setValue('0');
1161 }
1162 $lim->addSubItem($wait);
1163 $form->addItem($lim);
1164 $pres = new ilFormSectionHeaderGUI();
1165 $pres->setTitle($this->lng->txt('crs_view_mode'));
1166
1167 $form->addItem($pres);
1168
1169 // title and icon visibility
1170 $form = $obj_service->commonSettings()->legacyForm($form, $this->object)->addTitleIconVisibility();
1171
1172 // top actions visibility
1173 $form = $obj_service->commonSettings()->legacyForm($form, $this->object)->addTopActionsVisibility();
1174
1175 // breadcrumbs
1176 if ($setting->get("rep_breadcr_crs") && $setting->get("rep_breadcr_crs_overwrite")) {
1177 $add = $setting->get("rep_breadcr_crs_default")
1178 ? " (" . $this->lng->txt("crs_breadcrumb_crs_only") . ")"
1179 : " (" . $this->lng->txt("crs_breadcrumb_full_path") . ")";
1180 $options = array(
1181 self::BREADCRUMB_DEFAULT => $this->lng->txt("crs_sys_default") . $add,
1182 self::BREADCRUMB_CRS_ONLY => $this->lng->txt("crs_breadcrumb_crs_only"),
1183 self::BREADCRUMB_FULL_PATH => $this->lng->txt("crs_breadcrumb_full_path")
1184 );
1185 $si = new ilSelectInputGUI($this->lng->txt("crs_shorten_breadcrumb"), "rep_breacrumb");
1186 $si->setValue((int) ilContainer::_lookupContainerSetting($this->object->getId(), "rep_breacrumb"));
1187 $si->setOptions($options);
1188 $form->addItem($si);
1189 }
1190
1191 // custom icon
1192 $form = $obj_service->commonSettings()->legacyForm($form, $this->object)->addIcon();
1193
1194 // tile image
1195 $form = $obj_service->commonSettings()->legacyForm($form, $this->object)->addTileImage();
1196
1197 // list presentation
1199
1200 // presentation type
1201 $view_type = new ilRadioGroupInputGUI($this->lng->txt('crs_presentation_type'), 'view_mode');
1202 $view_type->setValue($this->object->getViewMode());
1203
1204 $opts = new ilRadioOption(
1205 $this->lng->txt('cntr_view_sessions'),
1207 );
1208 $opts->setInfo($this->lng->txt('cntr_view_info_sessions'));
1209 $view_type->addOption($opts);
1210
1211 // Limited sessions
1212 $sess = new ilCheckboxInputGUI($this->lng->txt('sess_limit'), 'sl');
1213 $sess->setValue('1');
1214 $sess->setChecked($this->object->isSessionLimitEnabled());
1215 $sess->setInfo($this->lng->txt('sess_limit_info'));
1216
1217 $prev = new ilNumberInputGUI($this->lng->txt('sess_num_prev'), 'sp');
1218 #$prev->setSubmitFormOnEnter(true);
1219 $prev->setMinValue(0);
1220 $prev->setValue(
1221 $this->object->getNumberOfPreviousSessions() == -1 ?
1222 '' :
1223 $this->object->getNumberOfPreviousSessions()
1224 );
1225 $prev->setSize(2);
1226 $prev->setMaxLength(3);
1227 $sess->addSubItem($prev);
1228
1229 $next = new ilNumberInputGUI($this->lng->txt('sess_num_next'), 'sn');
1230 #$next->setSubmitFormOnEnter(true);
1231 $next->setMinValue(0);
1232 $next->setValue(
1233 $this->object->getNumberOfNextSessions() == -1 ?
1234 '' :
1235 $this->object->getNumberOfnextSessions()
1236 );
1237 $next->setSize(2);
1238 $next->setMaxLength(3);
1239 $sess->addSubItem($next);
1240
1241 $opts->addSubItem($sess);
1242
1243 $optsi = new ilRadioOption($this->lng->txt('cntr_view_simple'), (string) ilCourseConstants::IL_CRS_VIEW_SIMPLE);
1244 $optsi->setInfo($this->lng->txt('cntr_view_info_simple'));
1245 $view_type->addOption($optsi);
1246
1247 $optbt = new ilRadioOption(
1248 $this->lng->txt('cntr_view_by_type'),
1250 );
1251 $optbt->setInfo($this->lng->txt('cntr_view_info_by_type'));
1252 $view_type->addOption($optbt);
1253
1254 $opto = new ilRadioOption(
1255 $this->lng->txt('crs_view_objective'),
1257 );
1258 $opto->setInfo($this->lng->txt('crs_view_info_objective'));
1259 $view_type->addOption($opto);
1260
1261 $optt = new ilRadioOption($this->lng->txt('crs_view_timing'), (string) ilCourseConstants::IL_CRS_VIEW_TIMING);
1262 $optt->setInfo($this->lng->txt('crs_view_info_timing'));
1263
1264 // cognos-blu-patch: begin
1265 $timing = new ilRadioGroupInputGUI($this->lng->txt('crs_view_timings'), "timing_mode");
1266 $timing->setValue($this->object->getTimingMode());
1267
1268 $absolute = new ilRadioOption(
1269 $this->lng->txt('crs_view_timing_absolute'),
1271 );
1272 $absolute->setInfo($this->lng->txt('crs_view_info_timing_absolute'));
1273 $timing->addOption($absolute);
1274
1275 $relative = new ilRadioOption(
1276 $this->lng->txt('crs_view_timing_relative'),
1278 );
1279 $relative->setInfo($this->lng->txt('crs_view_info_timing_relative'));
1280 $timing->addOption($relative);
1281
1282 $optt->addSubItem($timing);
1283 // cognos-blu-patch: end
1284
1285 $view_type->addOption($optt);
1286
1287 $form->addItem($view_type);
1288
1289 $this->initSortingForm(
1290 $form,
1291 array(
1296 )
1297 );
1298
1299 $tutorial_support_panel_checkbox = new ilCheckboxInputGUI(
1300 $this->lng->txt('tutorial_support_block_setting_title'),
1301 'tutorial_support_block_checkbox'
1302 );
1303 //$tutorial_support_panel_checkbox->setValue($this->object->getTutorialSupportBlockSettingValue());
1304 $tutorial_support_panel_checkbox->setChecked((bool) $this->object->getTutorialSupportBlockSettingValue());
1305 $tutorial_support_panel_checkbox->setInfo($this->lng->txt('tutorial_support_block_byline'));
1306 $form->addItem($tutorial_support_panel_checkbox);
1307
1308 // lp vs. course status
1310 $olp = ilObjectLP::getInstance($this->object->getId());
1311 if ($olp->getCurrentMode()) {
1312 $lp_status = new ilFormSectionHeaderGUI();
1313 $lp_status->setTitle($this->lng->txt('crs_course_status_of_users'));
1314 $form->addItem($lp_status);
1315
1316 $lp_status_options = new ilRadioGroupInputGUI($this->lng->txt('crs_status_determination'), "status_dt");
1317 // $lp_status_options->setRequired(true);
1318 $lp_status_options->setValue($this->object->getStatusDetermination());
1319
1320 $lp_option = new ilRadioOption(
1321 $this->lng->txt('crs_status_determination_lp'),
1323 $this->lng->txt('crs_status_determination_lp_info')
1324 );
1325 $lp_status_options->addOption($lp_option);
1326 $lp_status_options->addOption(new ilRadioOption(
1327 $this->lng->txt('crs_status_determination_manual'),
1329 ));
1330
1331 $form->addItem($lp_status_options);
1332 }
1333 }
1334
1335 // additional features
1336 $feat = new ilFormSectionHeaderGUI();
1337 $feat->setTitle($this->lng->txt('obj_features'));
1338 $form->addItem($feat);
1339
1341 $this->object->getId(),
1342 $form,
1343 $this->getSubServices()
1344 );
1345
1346 $mem = new ilCheckboxInputGUI($this->lng->txt('crs_show_members'), 'show_members');
1347 $mem->setChecked($this->object->getShowMembers());
1348 $mem->setInfo($this->lng->txt('crs_show_members_info'));
1349 $form->addItem($mem);
1350
1351 // check privacy
1352 if (\ilPrivacySettings::getInstance()->participantsListInCoursesEnabled()) {
1353 $part_list = new ilCheckboxInputGUI($this->lng->txt('crs_show_member_export'), 'show_members_export');
1354 $part_list->setChecked($this->object->getShowMembersExport());
1355 $part_list->setInfo($this->lng->txt('crs_show_member_export_info'));
1356 $mem->addSubItem($part_list);
1357 }
1358
1359 // Show members type
1360 $mail_type = new ilRadioGroupInputGUI($this->lng->txt('crs_mail_type'), 'mail_type');
1361 $mail_type->setValue($this->object->getMailToMembersType());
1362
1363 $mail_tutors = new ilRadioOption(
1364 $this->lng->txt('crs_mail_tutors_only'),
1366 $this->lng->txt('crs_mail_tutors_only_info')
1367 );
1368 $mail_type->addOption($mail_tutors);
1369
1370 $mail_all = new ilRadioOption(
1371 $this->lng->txt('crs_mail_all'),
1373 $this->lng->txt('crs_mail_all_info')
1374 );
1375 $mail_type->addOption($mail_all);
1376 $form->addItem($mail_type);
1377
1378 // Notification Settings
1379 /*$notification = new ilFormSectionHeaderGUI();
1380 $notification->setTitle($this->lng->txt('crs_notification'));
1381 $form->addItem($notification);*/
1382
1383 // Self notification
1384 $not = new ilCheckboxInputGUI($this->lng->txt('crs_auto_notification'), 'auto_notification');
1385 $not->setValue('1');
1386 $not->setInfo($this->lng->txt('crs_auto_notification_info'));
1387 $not->setChecked($this->object->getAutoNotification());
1388 $form->addItem($not);
1389
1390 $desk = new ilCheckboxInputGUI($this->lng->txt('crs_add_remove_from_desktop'), 'abo');
1391 $desk->setChecked($this->object->getAboStatus());
1392 $desk->setInfo($this->lng->txt('crs_add_remove_from_desktop_info'));
1393 $form->addItem($desk);
1394
1395 // Edit ecs export settings
1396 $ecs = new ilECSCourseSettings($this->object);
1397 $ecs->addSettingsToForm($form, 'crs');
1398 return $form;
1399 }
initSortingForm(ilPropertyFormGUI $form, array $a_sorting_settings)
Append sorting settings to property form.
initListPresentationForm(ilPropertyFormGUI $form)
Add list presentation settings to form.
This class represents a custom property in a property form.
input GUI for a time span (start and end date)
This class represents a date/time property in a property form.
Class ilECSCourseSettings.
This class represents a section header in a property form.
This class represents a hidden form property in a property form.
static generateCode()
Generate new registration key.
This class represents a number property in a property form.
const int STATUS_DETERMINATION_MANUAL
const int STATUS_DETERMINATION_LP
initDidacticTemplate(ilPropertyFormGUI $form)
ilSetting $settings
static getInstance(int $obj_id)
static initServiceSettingsForm(int $obj_id, ilPropertyFormGUI $form, array $services)
This class represents a property in a property form.
This class represents an option in a radio group.
This class represents a selection list property in a property form.
This class represents a text property in a property form.

References ilContainerGUI\$form, ILIAS\UI\Implementation\Component\Input\Field\$options, ilObjectGUI\$settings, ilObjUserTracking\_enabledLearningProgress(), ilContainer\_lookupContainerSetting(), ilPropertyFormGUI\addCommandButton(), ilPropertyFormGUI\addItem(), ILIAS\Repository\ctrl(), ilMembershipRegistrationCodeUtils\generateCode(), ilPrivacySettings\getInstance(), ilObjectLP\getInstance(), ilObjectGUI\getObjectService(), IL_CAL_UNIX, ilCourseConstants\IL_CRS_SUBSCRIPTION_CONFIRMATION, ilCourseConstants\IL_CRS_SUBSCRIPTION_DEACTIVATED, ilCourseConstants\IL_CRS_SUBSCRIPTION_DIRECT, ilCourseConstants\IL_CRS_SUBSCRIPTION_PASSWORD, ilCourseConstants\IL_CRS_SUBSCRIPTION_UNLIMITED, ilCourseConstants\IL_CRS_VIEW_BY_TYPE, ilCourseConstants\IL_CRS_VIEW_OBJECTIVE, ilCourseConstants\IL_CRS_VIEW_SESSIONS, ilCourseConstants\IL_CRS_VIEW_SIMPLE, ilCourseConstants\IL_CRS_VIEW_TIMING, ilCourseConstants\IL_CRS_VIEW_TIMING_ABSOLUTE, ilCourseConstants\IL_CRS_VIEW_TIMING_RELATIVE, ilObjectGUI\initDidacticTemplate(), ilContainerGUI\initListPresentationForm(), ilObjectServiceSettingsGUI\initServiceSettingsForm(), ilContainerGUI\initSortingForm(), ILIAS\Repository\lng(), ilCourseConstants\MAIL_ALLOWED_ALL, ilCourseConstants\MAIL_ALLOWED_TUTORS, ILIAS\Repository\object(), ilFormGUI\setFormAction(), ilPropertyFormGUI\setTitle(), ilContainer\SORT_ACTIVATION, ilContainer\SORT_CREATION, ilContainer\SORT_MANUAL, ilContainer\SORT_TITLE, ilObjCourse\STATUS_DETERMINATION_LP, and ilObjCourse\STATUS_DETERMINATION_MANUAL.

Referenced by updateObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initHeaderAction()

ilObjCourseGUI::initHeaderAction ( ?string  $sub_type = null,
?int  $sub_id = null 
)
protected

Add header action menu.

Reimplemented from ilObjectGUI.

Definition at line 2791 of file class.ilObjCourseGUI.php.

2792 {
2793 $lg = parent::initHeaderAction($sub_type, $sub_id);
2794
2795 if ($lg && $this->ref_id && ilCourseParticipants::_isParticipant($this->ref_id, $this->user->getId())) {
2796 // certificate
2797
2798 $validator = new ilCertificateDownloadValidator();
2799 if ($validator->isCertificateDownloadable($this->user->getId(), $this->object->getId())) {
2800 $cert_url = $this->ctrl->getLinkTarget($this, "deliverCertificate");
2801
2802 $this->lng->loadLanguageModule("certificate");
2803 $lg->addCustomCommand($cert_url, "download_certificate");
2804
2805 $lg->addHeaderIcon(
2806 "cert_icon",
2807 ilUtil::getImagePath("standard/icon_cert.svg"),
2808 $this->lng->txt("download_certificate"),
2809 null,
2810 null,
2811 $cert_url
2812 );
2813 }
2814
2815 // notification
2817 $noti = new ilMembershipNotifications($this->ref_id);
2818 if (!$noti->isCurrentUserActive()) {
2819 $lg->addHeaderIcon(
2820 "not_icon",
2821 ilUtil::getImagePath("object/notification_off.svg"),
2822 $this->lng->txt("crs_notification_deactivated")
2823 );
2824
2825 $this->ctrl->setParameter($this, "crs_ntf", 1);
2826 $caption = "crs_activate_notification";
2827 } else {
2828 $lg->addHeaderIcon(
2829 "not_icon",
2830 ilUtil::getImagePath("object/notification_on.svg"),
2831 $this->lng->txt("crs_notification_activated")
2832 );
2833
2834 $this->ctrl->setParameter($this, "crs_ntf", 0);
2835 $caption = "crs_deactivate_notification";
2836 }
2837
2838 if ($noti->canCurrentUserEdit()) {
2839 $lg->addCustomCommand(
2840 $this->ctrl->getLinkTarget($this, "saveNotification"),
2841 $caption
2842 );
2843 }
2844
2845 $this->ctrl->setParameter($this, "crs_ntf", "");
2846 }
2847 }
2848
2849 return $lg;
2850 }
Membership notification settings.
static getImagePath(string $image_name, string $module_path="", string $mode="output", bool $offline=false)
get image path (for images located in a template directory)

References ilParticipants\_isParticipant(), ILIAS\Repository\ctrl(), ilUtil\getImagePath(), ilMembershipNotifications\isActiveForRefId(), ILIAS\Repository\lng(), and ILIAS\Repository\user().

+ Here is the call graph for this function:

◆ initInfoEditor()

ilObjCourseGUI::initInfoEditor ( )

Definition at line 500 of file class.ilObjCourseGUI.php.

501 {
502 $form = new ilPropertyFormGUI();
503 $form->setFormAction($this->ctrl->getFormAction($this, 'updateInfo'));
504 $form->setMultipart(true);
505 $form->setTitle($this->lng->txt('crs_general_info'));
506 $form->addCommandButton('updateInfo', $this->lng->txt('save'));
507 $form->addCommandButton('cancel', $this->lng->txt('cancel'));
508
509 $area = new ilTextAreaInputGUI($this->lng->txt('crs_important_info'), 'important');
510 $area->setValue($this->object->getImportantInformation());
511 $area->setRows(6);
512 $area->setCols(80);
513 $form->addItem($area);
514
515 $area = new ilTextAreaInputGUI($this->lng->txt('crs_syllabus'), 'syllabus');
516 $area->setValue($this->object->getSyllabus());
517 $area->setRows(6);
518 $area->setCols(80);
519 $form->addItem($area);
520
521 $tg = new \ilTextAreaInputGUI($this->lng->txt('crs_target_group'), 'target_group');
522 $tg->setValue($this->object->getTargetGroup() ?? "");
523 $tg->setRows(6);
524 $form->addItem($tg);
525
526 $section = new ilFormSectionHeaderGUI();
527 $section->setTitle($this->lng->txt('crs_info_download'));
528 $form->addItem($section);
529
530 $file = new ilFileInputGUI($this->lng->txt('crs_file'), 'file');
531 $file->enableFileNameSelection('file_name');
532 $form->addItem($file);
533
534 $section = new ilFormSectionHeaderGUI();
535 $section->setTitle($this->lng->txt('crs_contact'));
536 $form->addItem($section);
537
538 $text = new ilTextInputGUI($this->lng->txt('crs_contact_name'), 'contact_name');
539 $text->setValue($this->object->getContactName());
540 $text->setSize(40);
541 $text->setMaxLength(70);
543
544 $text = new ilTextInputGUI($this->lng->txt('crs_contact_responsibility'), 'contact_responsibility');
545 $text->setValue($this->object->getContactResponsibility());
546 $text->setSize(40);
547 $text->setMaxLength(70);
549
550 $text = new ilTextInputGUI($this->lng->txt('crs_contact_phone'), 'contact_phone');
551 $text->setValue($this->object->getContactPhone());
552 $text->setSize(40);
553 $text->setMaxLength(40);
555
556 $text = new ilTextInputGUI($this->lng->txt('crs_contact_email'), 'contact_email');
557 $text->setValue($this->object->getContactEmail());
558 $text->setInfo($this->lng->txt('crs_contact_email_info'));
559 $text->setSize(40);
560 $text->setMaxLength(255);
562
563 $area = new ilTextAreaInputGUI($this->lng->txt('crs_contact_consultation'), 'contact_consultation');
564 $area->setValue($this->object->getContactConsultation());
565 $area->setRows(6);
566 $area->setCols(80);
567 $form->addItem($area);
568
569 $this->record_gui = new ilAdvancedMDRecordGUI(
571 'crs',
572 $this->object->getId()
573 );
574 $this->record_gui->setPropertyForm($form);
575 $this->record_gui->parse();
576 return $form;
577 }
This class represents a file property in a property form.
setMultipart(bool $a_multipart)
This class represents a text area property in a property form.
$text
Definition: xapiexit.php:21

References ilContainerGUI\$form, $text, ilPropertyFormGUI\addCommandButton(), ilPropertyFormGUI\addItem(), ILIAS\Repository\ctrl(), ILIAS\Repository\lng(), ilAdvancedMDRecordGUI\MODE_EDITOR, ILIAS\Repository\object(), ilFormGUI\setFormAction(), ilFormGUI\setMultipart(), and ilPropertyFormGUI\setTitle().

Referenced by executeCommand(), and updateInfoObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ jump2UsersGalleryObject()

ilObjCourseGUI::jump2UsersGalleryObject ( )
protected

Definition at line 3061 of file class.ilObjCourseGUI.php.

3061 : void
3062 {
3063 $this->ctrl->redirectByClass(ilUsersGalleryGUI::class);
3064 }

References ILIAS\Repository\ctrl().

+ Here is the call graph for this function:

◆ leaveObject()

ilObjCourseGUI::leaveObject ( )

Definition at line 1704 of file class.ilObjCourseGUI.php.

1704 : void
1705 {
1706 $this->checkPermission('leave');
1707
1708 if ($this->object->getMembersObject()->isLastAdmin($this->user->getId())) {
1709 $this->tpl->setOnScreenMessage('failure', $this->lng->txt('crs_min_one_admin'));
1710 $this->viewObject();
1711 return;
1712 }
1713
1714 $this->tabs_gui->setTabActive('crs_unsubscribe');
1715 $cgui = new ilConfirmationGUI();
1716 $cgui->setHeaderText($this->lng->txt('crs_unsubscribe_sure'));
1717 $cgui->setFormAction($this->ctrl->getFormAction($this));
1718 $cgui->setCancel($this->lng->txt("cancel"), "cancel");
1719 $cgui->setConfirm($this->lng->txt("crs_unsubscribe"), "performUnsubscribe");
1720 $this->tpl->setContent($cgui->getHTML());
1721 }

References ilObjectGUI\checkPermission(), ILIAS\Repository\ctrl(), ILIAS\Repository\lng(), ILIAS\Repository\object(), and ilObjectGUI\viewObject().

Referenced by unsubscribeObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ membersObject()

ilObjCourseGUI::membersObject ( )
protected

Definition at line 2488 of file class.ilObjCourseGUI.php.

2488 : void
2489 {
2490 $this->ctrl->redirectByClass('ilcoursemembershipgui');
2491 }

References ILIAS\Repository\ctrl().

Referenced by autoFillObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ modifyItemGUI()

ilObjCourseGUI::modifyItemGUI ( ilObjectListGUI  $a_item_list_gui,
array  $a_item_data 
)

@inheritDoc

Reimplemented from ilContainerGUI.

Definition at line 2638 of file class.ilObjCourseGUI.php.

2638 : void
2639 {
2641 $a_item_list_gui,
2642 'ilcoursecontentgui',
2643 $a_item_data,
2644 $this->object->getAboStatus(),
2645 $this->object->getRefId(),
2646 $this->object->getId()
2647 );
2648 }
static _modifyItemGUI(ilObjectListGUI $a_item_list_gui, string $a_cmd_class, array $a_item_data, bool $a_abo_status, int $a_course_ref_id, int $a_course_obj_id, int $a_parent_ref_id=0)

References _modifyItemGUI(), and ILIAS\Repository\object().

+ Here is the call graph for this function:

◆ performUnsubscribeObject()

ilObjCourseGUI::performUnsubscribeObject ( )

Definition at line 1728 of file class.ilObjCourseGUI.php.

1729 {
1730 $this->checkPermission('leave');
1731 $this->getObject()->getMembersObject()->delete($this->user->getId());
1732 $this->getObject()->getMembersObject()->sendUnsubscribeNotificationToAdmins($this->user->getId());
1733 $this->getObject()->getMembersObject()->sendNotification(
1735 $this->user->getId()
1736 );
1737 $this->tpl->setOnScreenMessage('success', $this->lng->txt('crs_unsubscribed_from_crs'), true);
1738
1739 $this->ctrl->setParameterByClass("ilrepositorygui", "ref_id", $this->tree->getParentId($this->ref_id));
1740 $this->ctrl->redirectByClass("ilrepositorygui", "");
1741 }

References ilObjectGUI\checkPermission(), ILIAS\Repository\ctrl(), ilObjectGUI\getObject(), ILIAS\Repository\lng(), ilCourseMembershipMailNotification\TYPE_UNSUBSCRIBE_MEMBER, and ILIAS\Repository\user().

+ Here is the call graph for this function:

◆ readMemberData()

ilObjCourseGUI::readMemberData ( array  $ids,
?array  $selected_columns = null,
bool  $skip_names = false 
)

When building the members table in a course, user names are already read out via ilUserQuery::getUserListData (#31394). Adding skip_name as a parameter here is not super elegant, but seems like the only practical way avoid unnecessarily reading out the names again.

Definition at line 1567 of file class.ilObjCourseGUI.php.

1567 : array
1568 {
1569 $show_tracking =
1570 (
1573 );
1574 if ($show_tracking) {
1575 $olp = ilObjectLP::getInstance($this->object->getId());
1576 $show_tracking = $olp->isActive();
1577 }
1578
1579 if ($show_tracking) {
1580 $completed = ilLPStatusWrapper::_lookupCompletedForObject($this->object->getId());
1581 $in_progress = ilLPStatusWrapper::_lookupInProgressForObject($this->object->getId());
1582 $failed = ilLPStatusWrapper::_lookupFailedForObject($this->object->getId());
1583 }
1584 $privacy = ilPrivacySettings::getInstance();
1585
1586 if ($privacy->enabledCourseAccessTimes()) {
1587 $progress = ilLearningProgress::_lookupProgressByObjId($this->object->getId());
1588 }
1589
1590 $do_prtf = (is_array($selected_columns) &&
1591 in_array('prtf', $selected_columns) &&
1592 is_array($ids));
1593 if ($do_prtf) {
1595 $ids
1596 );
1597 }
1598
1599 $members = [];
1600 foreach ($ids as $usr_id) {
1608 if (!$skip_names) {
1609 $name = ilObjUser::_lookupName($usr_id);
1610 $tmp_data['firstname'] = $name['firstname'];
1611 $tmp_data['lastname'] = $name['lastname'];
1612 $tmp_data['login'] = $name['login'];
1613 }
1614 $tmp_data['passed'] = $this->object->getMembersObject()->hasPassed($usr_id) ? 1 : 0;
1615 if ($this->object->getStatusDetermination() == ilObjCourse::STATUS_DETERMINATION_LP) {
1616 $tmp_data['passed_info'] = $this->object->getMembersObject()->getPassedInfo($usr_id);
1617 }
1618 $tmp_data['notification'] = $this->object->getMembersObject()->isNotificationEnabled($usr_id) ? 1 : 0;
1619 $tmp_data['blocked'] = $this->object->getMembersObject()->isBlocked($usr_id) ? 1 : 0;
1620 $tmp_data['contact'] = $this->object->getMembersObject()->isContact($usr_id) ? 1 : 0;
1621
1622 $tmp_data['usr_id'] = $usr_id;
1623
1624 if ($show_tracking) {
1625 if (in_array($usr_id, $completed)) {
1626 $tmp_data['progress'] = ilLPStatus::LP_STATUS_COMPLETED;
1627 } elseif (in_array($usr_id, $in_progress)) {
1628 $tmp_data['progress'] = ilLPStatus::LP_STATUS_IN_PROGRESS;
1629 } elseif (in_array($usr_id, $failed)) {
1630 $tmp_data['progress'] = ilLPStatus::LP_STATUS_FAILED;
1631 } else {
1632 $tmp_data['progress'] = ilLPStatus::LP_STATUS_NOT_ATTEMPTED;
1633 }
1634 }
1635
1636 if ($privacy->enabledCourseAccessTimes()) {
1637 if (isset($progress[$usr_id]['ts']) && $progress[$usr_id]['ts']) {
1638 $tmp_data['access_ut'] = $progress[$usr_id]['ts'];
1639 $tmp_data['access_time'] = ilDatePresentation::formatDate(new ilDateTime(
1640 $progress[$usr_id]['ts'],
1642 ));
1643 } else {
1644 $tmp_data['access_ut'] = 0;
1645 $tmp_data['access_time'] = $this->lng->txt('no_date');
1646 }
1647 }
1648
1649 if ($do_prtf) {
1650 $tmp_data['prtf_data'] = $all_prtf[$usr_id] ?? null;
1651 $tmp_data['prtf'] = implode(', ', $all_prtf[$usr_id] ?? []); // just for sorting
1652 }
1653
1654 $members[$usr_id] = $tmp_data;
1655 }
1656 return $members;
1657 }
static _lookupCompletedForObject(int $a_obj_id, ?array $a_user_ids=null)
static _lookupFailedForObject(int $a_obj_id, ?array $a_user_ids=null)
static _lookupInProgressForObject(int $a_obj_id, ?array $a_user_ids=null)
const string LP_STATUS_COMPLETED
const string LP_STATUS_IN_PROGRESS
const string LP_STATUS_NOT_ATTEMPTED
const string LP_STATUS_FAILED
static _lookupProgressByObjId(int $a_obj_id)
lookup progress for a specific object
static getAvailablePortfolioLinksForUserIds(array $a_owner_ids)
static _lookupName(int $a_user_id)

References ilObjUserTracking\_enabledLearningProgress(), ilObjUserTracking\_enabledUserRelatedData(), ilLPStatusWrapper\_lookupCompletedForObject(), ilLPStatusWrapper\_lookupFailedForObject(), ilLPStatusWrapper\_lookupInProgressForObject(), ilObjUser\_lookupName(), ilLearningProgress\_lookupProgressByObjId(), ilDatePresentation\formatDate(), ilObjPortfolio\getAvailablePortfolioLinksForUserIds(), ilPrivacySettings\getInstance(), ilObjectLP\getInstance(), IL_CAL_UNIX, ILIAS\Repository\lng(), ilLPStatus\LP_STATUS_COMPLETED, ilLPStatus\LP_STATUS_FAILED, ilLPStatus\LP_STATUS_IN_PROGRESS, ilLPStatus\LP_STATUS_NOT_ATTEMPTED, ILIAS\Repository\object(), and ilObjCourse\STATUS_DETERMINATION_LP.

+ Here is the call graph for this function:

◆ redirectLocToTestConfirmation()

ilObjCourseGUI::redirectLocToTestConfirmation ( int  $a_objective_id,
int  $a_test_id 
)
protected

Show confirmation whether user wants to start a new run or resume a previous run.

Definition at line 2997 of file class.ilObjCourseGUI.php.

2997 : void
2998 {
2999 $confirm = new ilConfirmationGUI();
3000 $confirm->setFormAction($GLOBALS['DIC']['ilCtrl']->getFormAction($this));
3001
3002 if ($a_objective_id) {
3003 $question = $this->lng->txt('crs_loc_objective_passed_confirmation');
3004 } else {
3005 $question = $this->lng->txt('crs_loc_objectives_passed_confirmation');
3006 }
3007
3008 $confirm->setHeaderText($question);
3009 $confirm->addHiddenItem('objective_id', (string) $a_objective_id);
3010 $confirm->addHiddenItem('tid', (string) $a_test_id);
3011 $confirm->setConfirm($this->lng->txt('crs_loc_tst_start'), 'redirectLocToTestConfirmed');
3012 $confirm->setCancel($this->lng->txt('cancel'), 'view');
3013
3014 //$this->tpl->setOnScreenMessage('question', $question);
3015 $this->tpl->setContent($confirm->getHTML());
3016 }
getFormAction(string $cmd, string $default_form_action="")
Get form action for command (command is method name without "Object", e.g.

References $GLOBALS, and ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ redirectLocToTestConfirmedObject()

ilObjCourseGUI::redirectLocToTestConfirmedObject ( )
protected

Definition at line 2929 of file class.ilObjCourseGUI.php.

2929 : void
2930 {
2931 $tid = 0;
2932 if ($this->http->wrapper()->query()->has('tid')) {
2933 $tid = $this->http->wrapper()->query()->retrieve(
2934 'tid',
2935 $this->refinery->kindlyTo()->int()
2936 );
2937 } elseif ($this->http->wrapper()->post()->has('tid')) {
2938 $tid = $this->http->wrapper()->post()->retrieve(
2939 'tid',
2940 $this->refinery->kindlyTo()->int()
2941 );
2942 }
2943 ilUtil::redirect(ilLink::_getLink($tid));
2944 }

References ILIAS\FileDelivery\http(), ilUtil\redirect(), and ILIAS\Repository\refinery().

+ Here is the call graph for this function:

◆ redirectLocToTestObject()

ilObjCourseGUI::redirectLocToTestObject (   $a_force_new_run = null)
protected

Definition at line 2946 of file class.ilObjCourseGUI.php.

2946 : void
2947 {
2948 $tid = 0;
2949 if ($this->http->wrapper()->query()->has('tid')) {
2950 $tid = $this->http->wrapper()->query()->retrieve(
2951 'tid',
2952 $this->refinery->kindlyTo()->int()
2953 );
2954 }
2955 $objective_id = 0;
2956 if ($this->http->wrapper()->query()->has('objective_id')) {
2957 $objective_id = $this->http->wrapper()->query()->retrieve(
2958 'objective_id',
2959 $this->refinery->kindlyTo()->int()
2960 );
2961 }
2962
2963 $res = new ilLOUserResults(
2964 $this->object->getId(),
2965 $this->user->getId()
2966 );
2967 $passed = $res->getCompletedObjectiveIds();
2968
2969 $has_completed = false;
2970 if ($objective_id) {
2971 $objective_ids = array($objective_id);
2972 if (in_array($objective_id, $passed)) {
2973 $has_completed = true;
2974 $passed = array();
2975 }
2976 } else {
2977 $objective_ids = ilCourseObjective::_getObjectiveIds($this->object->getId(), true);
2978
2979 // do not disable objective question if all are passed
2980 if (count($objective_ids) === count($passed)) {
2981 $has_completed = true;
2982 $passed = array();
2983 }
2984 }
2985
2986 if ($has_completed) {
2987 // show confirmation
2988 $this->redirectLocToTestConfirmation($objective_id, $tid);
2989 return;
2990 }
2991 ilUtil::redirect(ilLink::_getLink($tid));
2992 }
static _getObjectiveIds(int $course_id, bool $a_activated_only=false)
redirectLocToTestConfirmation(int $a_objective_id, int $a_test_id)
Show confirmation whether user wants to start a new run or resume a previous run.
foreach($_POST as $key=> $value) $res

References $res, ilCourseObjective\_getObjectiveIds(), ILIAS\FileDelivery\http(), ILIAS\Repository\object(), ilUtil\redirect(), and ILIAS\Repository\refinery().

+ Here is the call graph for this function:

◆ renderAddNewItem()

ilObjCourseGUI::renderAddNewItem ( string ...  $disabled_object_types)

Definition at line 1528 of file class.ilObjCourseGUI.php.

1528 : void
1529 {
1530 $createble_object_types = $this->getCreatableObjectTypes();
1531
1532 foreach ($disabled_object_types as $type) {
1533 unset($createble_object_types[$type]);
1534 }
1535
1537 $this->buildAddNewItemElements($createble_object_types)
1538 );
1539 $gui->renderToolbarAction();
1540 }
Render add new item selector.
buildAddNewItemElements(array $subtypes, string $create_target_class=ilRepositoryGUI::class, ?int $redirect_target_ref_id=null,)

References ilContainerGUI\$gui, ilObjectGUI\$type, ilObjectGUI\buildAddNewItemElements(), and ilObjectGUI\getCreatableObjectTypes().

Referenced by showPossibleSubObjects().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ renderContainer()

ilObjCourseGUI::renderContainer ( )

Definition at line 169 of file class.ilObjCourseGUI.php.

169 : void
170 {
171 parent::renderObject();
172 }

◆ renderObject()

ilObjCourseGUI::renderObject ( )

Reimplemented from ilContainerGUI.

Definition at line 105 of file class.ilObjCourseGUI.php.

105 : void
106 {
107 $this->viewObject();
108 }

References ilObjectGUI\viewObject().

+ Here is the call graph for this function:

◆ resetObject()

ilObjCourseGUI::resetObject ( )

Definition at line 2744 of file class.ilObjCourseGUI.php.

2744 : void
2745 {
2746 $this->checkPermission('write');
2747 $usr_results = new ilLOUserResults($this->object->getId(), $GLOBALS['DIC']['ilUser']->getId());
2748 $usr_results->delete();
2750 $this->object->getId(),
2751 $GLOBALS['DIC']['ilUser']->getId()
2752 );
2753
2754 $tmp_obj_res = new ilCourseObjectiveResult($this->user->getId());
2755 $tmp_obj_res->reset($this->object->getId());
2756
2757 $this->user->deletePref('crs_objectives_force_details_' . $this->object->getId());
2758 $this->tpl->setOnScreenMessage('success', $this->lng->txt('crs_objectives_reseted'));
2759 $this->viewObject();
2760 }
static deleteRuns(int $a_container_id, int $a_user_id)

References $GLOBALS, ilLOTestRun\deleteRuns(), ILIAS\Repository\lng(), ILIAS\Repository\object(), and ILIAS\Repository\user().

+ Here is the call graph for this function:

◆ saveMapSettingsObject()

ilObjCourseGUI::saveMapSettingsObject ( )
Todo:
centralize for course, group, others

Definition at line 2606 of file class.ilObjCourseGUI.php.

2606 : void
2607 {
2608 $this->checkPermission('write');
2609
2610 $location = [];
2611 if ($this->http->wrapper()->post()->has('location')) {
2612 $custom_transformer = $this->refinery->custom()->transformation(
2613 fn($array) => $array
2614 );
2615 $location = $this->http->wrapper()->post()->retrieve(
2616 'location',
2617 $custom_transformer
2618 );
2619 }
2620 $enable_map = false;
2621 if ($this->http->wrapper()->post()->has('enable_map')) {
2622 $enable_map = $this->http->wrapper()->post()->retrieve(
2623 'enable_map',
2624 $this->refinery->kindlyTo()->bool()
2625 );
2626 }
2627 $this->object->setLatitude($location['latitude']);
2628 $this->object->setLongitude($location['longitude']);
2629 $this->object->setLocationZoom($location['zoom']);
2630 $this->object->setEnableCourseMap($enable_map);
2631 $this->object->update();
2632 $this->ctrl->redirect($this, "editMapSettings");
2633 }
$location
Definition: buildRTE.php:22

References $location, ilObjectGUI\checkPermission(), ILIAS\Repository\ctrl(), ILIAS\FileDelivery\http(), and ILIAS\Repository\refinery().

+ Here is the call graph for this function:

◆ saveNotificationObject()

ilObjCourseGUI::saveNotificationObject ( )

Definition at line 449 of file class.ilObjCourseGUI.php.

449 : void
450 {
451 $noti = new ilMembershipNotifications($this->ref_id);
452 if ($noti->canCurrentUserEdit()) {
453 $crs_ntf = false;
454 if ($this->http->wrapper()->query()->has('crs_ntf')) {
455 $crs_ntf = $this->http->wrapper()->query()->retrieve(
456 'crs_ntf',
457 $this->refinery->kindlyTo()->bool()
458 );
459 }
460 if ($crs_ntf) {
461 $noti->activateUser();
462 } else {
463 $noti->deactivateUser();
464 }
465 }
466 $this->tpl->setOnScreenMessage('success', $this->lng->txt("settings_saved"), true);
467 $this->ctrl->redirect($this, "");
468 }

References ILIAS\Repository\ctrl(), ILIAS\FileDelivery\http(), ILIAS\Repository\lng(), and ILIAS\Repository\refinery().

+ Here is the call graph for this function:

◆ saveSortingObject()

ilObjCourseGUI::saveSortingObject ( )

Reimplemented from ilContainerGUI.

Definition at line 2897 of file class.ilObjCourseGUI.php.

2897 : void
2898 {
2899 $post_position = (array) ($this->http->request()->getParsedBody()['position'] ?? []);
2900 if (isset($post_position['lobj'])) {
2901 $lobj = $post_position['lobj'];
2902 $objective_order = array();
2903 foreach ($lobj as $objective_id => $materials) {
2904 $objective_order[$objective_id] = $materials[0];
2905 unset($lobj[$objective_id][0]);
2906 }
2907 // objective order
2908 asort($objective_order);
2909 $pos = 0;
2910 foreach (array_keys($objective_order) as $objective_id) {
2911 $obj = new ilCourseObjective($this->object, $objective_id);
2912 $obj->writePosition(++$pos);
2913 }
2914
2915 // material order
2916 foreach ($lobj as $objective_id => $materials) {
2917 $objmat = new ilCourseObjectiveMaterials($objective_id);
2918
2919 asort($materials);
2920 $pos = 0;
2921 foreach (array_keys($materials) as $ass_id) {
2922 $objmat->writePosition($ass_id, ++$pos);
2923 }
2924 }
2925 }
2926 parent::saveSortingObject();
2927 }
class ilCourseObjectiveMaterials
class ilcourseobjective

References $ass_id, and ILIAS\FileDelivery\http().

+ Here is the call graph for this function:

◆ sendFileObject()

ilObjCourseGUI::sendFileObject ( )

Definition at line 1401 of file class.ilObjCourseGUI.php.

1401 : void
1402 {
1403 $file_id = 0;
1404 if ($this->http->wrapper()->query()->has('file_id')) {
1405 $file_id = $this->http->wrapper()->query()->retrieve(
1406 'file_id',
1407 $this->refinery->kindlyTo()->int()
1408 );
1409 }
1410 $file = new ilCourseFile($file_id);
1411 ilFileDelivery::deliverFileLegacy($file->getAbsolutePath(), $file->getFileName(), $file->getFileType());
1412 }
static deliverFileLegacy(string $a_file, ?string $a_filename=null, ?string $a_mime=null, ?bool $isInline=false, ?bool $removeAfterDelivery=false, ?bool $a_exit_after=true)

References ilFileDelivery\deliverFileLegacy(), ILIAS\FileDelivery\http(), and ILIAS\Repository\refinery().

+ Here is the call graph for this function:

◆ setContentSubTabs()

ilObjCourseGUI::setContentSubTabs ( )

@inheritDoc

Reimplemented from ilContainerGUI.

Definition at line 2687 of file class.ilObjCourseGUI.php.

2687 : void
2688 {
2689 global $DIC;
2690
2691 $ilAccess = $DIC['ilAccess'];
2692 $lng = $DIC['lng'];
2693 $ilCtrl = $DIC['ilCtrl'];
2694
2695 if ($this->object->getType() != 'crs') {
2696 return;
2697 }
2698 if (!$this->access->checkAccess(
2699 'write',
2700 '',
2701 $this->object->getRefId(),
2702 'crs',
2703 $this->object->getId()
2704 )) {
2705 $is_tutor = false;
2706 // No further tabs if objective view or archives
2707 if ($this->object->enabledObjectiveView()) {
2708 return;
2709 }
2710 } else {
2711 $is_tutor = true;
2712 }
2713
2714 if (!$this->isActiveAdministrationPanel()) {
2715 $this->tabs_gui->addSubTab(
2716 "view_content",
2717 $lng->txt("view"),
2718 $this->ctrl->getLinkTargetByClass("ilobjcoursegui", "view")
2719 );
2720 } else {
2721 $this->tabs_gui->addSubTab(
2722 "view_content",
2723 $lng->txt("view"),
2724 $this->ctrl->getLinkTargetByClass("ilobjcoursegui", "disableAdministrationPanel")
2725 );
2726 }
2727 //}
2728
2729 $this->addStandardContainerSubTabs(false);
2730 }
addStandardContainerSubTabs(bool $a_include_view=true)
Add standard container subtabs for view, manage, oderdering and text/media editor link.

References $DIC, $lng, ILIAS\Repository\access(), and ILIAS\Repository\object().

+ Here is the call graph for this function:

◆ setLPSyncObject()

ilObjCourseGUI::setLPSyncObject ( )
protected

Definition at line 915 of file class.ilObjCourseGUI.php.

915 : void
916 {
917 $this->checkPermission('write');
918 $this->object->setStatusDetermination(ilObjCourse::STATUS_DETERMINATION_LP);
919 $this->object->update();
920 $this->object->syncMembersStatusWithLP();
921 $this->tpl->setOnScreenMessage('success', $this->lng->txt("settings_saved"), true);
922 $this->ctrl->redirect($this, "edit");
923 }

References ilObjectGUI\checkPermission(), ILIAS\Repository\ctrl(), ILIAS\Repository\lng(), and ilObjCourse\STATUS_DETERMINATION_LP.

+ Here is the call graph for this function:

◆ setSideColumnReturn()

ilObjCourseGUI::setSideColumnReturn ( )

@inheritDoc

Reimplemented from ilContainerGUI.

Definition at line 3069 of file class.ilObjCourseGUI.php.

3069 : void
3070 {
3071 $this->ctrl->setReturn($this, "view");
3072 }

References ILIAS\Repository\ctrl().

+ Here is the call graph for this function:

◆ setSubTabs()

ilObjCourseGUI::setSubTabs ( string  $a_tab)

Definition at line 1414 of file class.ilObjCourseGUI.php.

1414 : void
1415 {
1416 switch ($a_tab) {
1417 case "properties":
1418 $this->tabs_gui->addSubTabTarget(
1419 "general",
1420 $this->ctrl->getLinkTarget($this, 'edit'),
1421 "edit",
1422 get_class($this)
1423 );
1424
1425 $this->tabs_gui->addSubTabTarget(
1426 "crs_info_settings",
1427 $this->ctrl->getLinkTarget($this, 'editInfo'),
1428 "editInfo",
1429 get_class($this)
1430 );
1431
1432 $this->tabs_gui->addSubTabTarget(
1433 "preconditions",
1434 $this->ctrl->getLinkTargetByClass('ilConditionHandlerGUI', 'listConditions'),
1435 "",
1436 "ilConditionHandlerGUI"
1437 );
1438
1439 $this->tabs_gui->addSubTabTarget(
1440 "crs_start_objects",
1441 $this->ctrl->getLinkTargetByClass('ilContainerStartObjectsGUI', 'listStructure'),
1442 "listStructure",
1443 get_class($this)
1444 );
1445
1446 $this->tabs_gui->addSubTabTarget(
1447 'groupings',
1448 $this->ctrl->getLinkTargetByClass('ilobjcoursegroupinggui', 'listGroupings'),
1449 'listGroupings',
1450 get_class($this)
1451 );
1452 $lti_settings = new ilLTIProviderObjectSettingGUI($this->object->getRefId());
1453 if ($lti_settings->hasSettingsAccess()) {
1454 $this->tabs_gui->addSubTabTarget(
1455 'lti_provider',
1456 $this->ctrl->getLinkTargetByClass(ilLTIProviderObjectSettingGUI::class)
1457 );
1458 }
1459
1460 // map settings
1461 if (ilMapUtil::isActivated()) {
1462 $this->tabs_gui->addSubTabTarget(
1463 "crs_map_settings",
1464 $this->ctrl->getLinkTarget($this, 'editMapSettings'),
1465 "editMapSettings",
1466 get_class($this)
1467 );
1468 }
1469
1470 // only show if export permission is granted
1471 if (ilPrivacySettings::getInstance()->checkExportAccess($this->object->getRefId()) || ilCourseDefinedFieldDefinition::_hasFields($this->object->getId())) {
1472 $this->tabs_gui->addSubTabTarget(
1473 'crs_custom_user_fields',
1474 $this->ctrl->getLinkTargetByClass('ilobjectcustomuserfieldsgui'),
1475 '',
1476 'ilobjectcustomuserfieldsgui'
1477 );
1478 }
1479
1480 // certificates
1481 $validator = new ilCertificateActiveValidator();
1482 if (true === $validator->validate()) {
1483 $this->tabs_gui->addSubTabTarget(
1484 "certificate",
1485 $this->ctrl->getLinkTargetByClass("ilcertificategui", "certificateeditor"),
1486 "",
1487 "ilcertificategui"
1488 );
1489 }
1490 // news settings
1491 if ($this->object->getUseNews()) {
1492 $this->tabs_gui->addSubTab(
1493 'obj_news_settings',
1494 $this->lng->txt("cont_news_settings"),
1495 $this->ctrl->getLinkTargetByClass('ilcontainernewssettingsgui')
1496 );
1497 }
1498 if ($this->object->getShowMembersExport()) {
1499 $this->tabs_gui->addSubTab(
1500 'export_members',
1501 $this->lng->txt('crs_show_member_export_settings'),
1502 $this->ctrl->getLinkTargetByClass('ilmemberexportsettingsgui', '')
1503 );
1504 }
1505 $this->tabs_gui->addSubTabTarget(
1506 "obj_multilinguality",
1507 $this->ctrl->getLinkTargetByClass(TranslationGUI::class, ""),
1508 "",
1509 TranslationGUI::class
1510 );
1511 break;
1512 }
1513 }

References ilCourseDefinedFieldDefinition\_hasFields(), ILIAS\Repository\ctrl(), ilPrivacySettings\getInstance(), ilMapUtil\isActivated(), ILIAS\Repository\lng(), and ILIAS\Repository\object().

Referenced by editMapSettingsObject(), editObject(), and executeCommand().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showPossibleSubObjects()

ilObjCourseGUI::showPossibleSubObjects ( )
protected

@inheritDoc

Reimplemented from ilContainerGUI.

Definition at line 1518 of file class.ilObjCourseGUI.php.

1518 : void
1519 {
1520 if (
1521 $this->object->getViewMode() == ilContainer::VIEW_OBJECTIVE &&
1522 !$this->isActiveAdministrationPanel()) {
1523 return;
1524 }
1525 $this->renderAddNewItem();
1526 }
renderAddNewItem(string ... $disabled_object_types)

References ILIAS\Repository\object(), renderAddNewItem(), and ilContainer\VIEW_OBJECTIVE.

+ Here is the call graph for this function:

◆ unsubscribeObject()

ilObjCourseGUI::unsubscribeObject ( )

Definition at line 1723 of file class.ilObjCourseGUI.php.

1723 : void
1724 {
1725 $this->leaveObject();
1726 }

References leaveObject().

+ Here is the call graph for this function:

◆ updateInfoObject()

ilObjCourseGUI::updateInfoObject ( )
Todo:
switch to form

Definition at line 582 of file class.ilObjCourseGUI.php.

582 : void
583 {
584 $this->checkPermission('write');
585
586 $form = $this->initInfoEditor();
587 if ($form->checkInput()) {
588 $this->object->setImportantInformation((string) $form->getInput('important'));
589 $this->object->setSyllabus((string) $form->getInput('syllabus'));
590 $this->object->setTargetGroup((string) $form->getInput('target_group'));
591 $this->object->setContactName((string) $form->getInput('contact_name'));
592 $this->object->setContactResponsibility((string) $form->getInput('contact_responsibility'));
593 $this->object->setContactPhone((string) $form->getInput('contact_phone'));
594 $this->object->setContactEmail((string) $form->getInput('contact_email'));
595 $this->object->setContactConsultation((string) $form->getInput('contact_consultation'));
596
597 $file_info = $form->getInput('file');
598 $file_name = $form->getItemByPostVar('file')->getFilename();
599 $file_name = ilFileUtils::getValidFilename($file_name);
600
601 $file_obj = new ilCourseFile();
602 $file_obj->setCourseId($this->object->getId());
603 $file_obj->setFileName((string) $file_name);
604 $file_obj->setFileSize((int) $file_info['size']);
605 $file_obj->setFileType((string) $file_info['type']);
606 $file_obj->setTemporaryName((string) $file_info['tmp_name']);
607 $file_obj->setErrorCode((int) $file_info['error']);
608
609 $error = false;
610 $this->error->setMessage('');
611 $file_obj->validate();
612 $this->object->validateInfoSettings();
613 if (strlen($this->error->getMessage())) {
614 $error = $this->error->getMessage();
615 }
616 if (!$this->record_gui->importEditFormPostValues()) {
617 $error = true;
618 }
619 if ($error) {
620 if ($error !== true) {
621 $this->tpl->setOnScreenMessage('failure', $this->error->getMessage());
622 }
624 $this->editInfoObject($form);
625 return;
626 }
627 $this->object->update();
628 $file_obj->create();
629 $this->record_gui->writeEditForm();
630
631 // Update ecs content
632 $ecs = new ilECSCourseSettings($this->object);
633 $ecs->handleContentUpdate();
634
635 $this->tpl->setOnScreenMessage('success', $this->lng->txt("crs_settings_saved"));
636 $this->editInfoObject();
637 } else {
638 $this->tpl->setOnScreenMessage(
640 $this->lng->txt('settings_saved')
641 );
642 }
643 }
setMessage(string $a_message)
static getValidFilename(string $a_filename)
getInput(string $a_post_var, bool $ensureValidation=true)
Returns the input of an item, if item provides getInput method and as fallback the value of the HTTP-...
getItemByPostVar(string $a_post_var)

References ilContainerGUI\$error, ilContainerGUI\$form, ilPropertyFormGUI\checkInput(), ilObjectGUI\checkPermission(), ilPropertyFormGUI\getInput(), ilPropertyFormGUI\getItemByPostVar(), ilErrorHandling\getMessage(), ilFileUtils\getValidFilename(), initInfoEditor(), ILIAS\Repository\lng(), ILIAS\UICore\GlobalTemplate\MESSAGE_TYPE_SUCCESS, ILIAS\Repository\object(), ilErrorHandling\setMessage(), and ilPropertyFormGUI\setValuesByPost().

+ Here is the call graph for this function:

◆ updateLPFromStatus()

ilObjCourseGUI::updateLPFromStatus ( int  $a_member_id,
bool  $a_has_passed 
)

sync course status and lp status

Definition at line 1662 of file class.ilObjCourseGUI.php.

1662 : void
1663 {
1665 $this->object->getStatusDetermination() == ilObjCourse::STATUS_DETERMINATION_LP) {
1666 $olp = ilObjectLP::getInstance($this->object->getId());
1667 if ($olp->getCurrentMode() == ilLPObjSettings::LP_MODE_MANUAL_BY_TUTOR) {
1668 $marks = new ilLPMarks($this->object->getId(), $a_member_id);
1669
1670 // only if status has changed
1671 if ($marks->getCompleted() !== $a_has_passed) {
1672 $marks->setCompleted($a_has_passed);
1673 $marks->update();
1674
1675 // as course is origin of LP status change, block syncing
1677 ilLPStatusWrapper::_updateStatus($this->object->getId(), $a_member_id);
1678 }
1679 }
1680 }
1681 }
static setBlockedForLP(bool $a_status)
Toggle LP blocking property status.
const int LP_MODE_MANUAL_BY_TUTOR
static _updateStatus(int $a_obj_id, int $a_usr_id, ?object $a_obj=null, bool $a_percentage=false, bool $a_force_raise=false)

References ilObjUserTracking\_enabledLearningProgress(), ilLPStatusWrapper\_updateStatus(), ilObjectLP\getInstance(), ilLPObjSettings\LP_MODE_MANUAL_BY_TUTOR, ILIAS\Repository\object(), ilCourseAppEventListener\setBlockedForLP(), and ilObjCourse\STATUS_DETERMINATION_LP.

+ Here is the call graph for this function:

◆ updateObject()

ilObjCourseGUI::updateObject ( )

updates object entry in object_data

Reimplemented from ilObjectGUI.

Definition at line 645 of file class.ilObjCourseGUI.php.

645 : void
646 {
647 $this->checkPermission('write');
648 $obj_service = $this->getObjectService();
649 $setting = $this->settings;
650
651 $form = $this->initEditForm();
652
653 if (!$form->checkInput()) {
655 $this->tpl->setOnScreenMessage('failure', $GLOBALS['DIC']->language()->txt('err_check_input'));
656 $this->editObject($form);
657 return;
658 }
659
660 // Additional checks: subsription min/max
661 if (
662 $form->getInput('subscription_max') &&
663 $form->getInput('subscription_min') &&
664 ($form->getInput('subscription_max') < $form->getInput('subscription_min'))
665 ) {
666 $min = $form->getItemByPostVar('subscription_min');
667 $min->setAlert($this->lng->txt('crs_subscription_min_members_err'));
668 $this->tpl->setOnScreenMessage('failure', $GLOBALS['DIC']->language()->txt('err_check_input'));
669 $this->editObject($form);
670 return;
671 }
672
673 // Additional checks: both tile and objective view activated (not supported)
674 if (
675 $form->getInput('list_presentation') == "tile" &&
677 $this->tpl->setOnScreenMessage(
678 'failure',
679 $GLOBALS['DIC']->language()->txt('crs_tile_and_objective_view_not_supported')
680 );
681 $this->editObject($form);
682 return;
683 }
684
685 // Additional checks: both tile and session limitation activated (not supported)
686 if ($form->getInput('sl') == "1" &&
687 $form->getInput('list_presentation') == "tile") {
688 $this->tpl->setOnScreenMessage(
689 'failure',
690 $GLOBALS['DIC']->language()->txt('crs_tile_and_session_limit_not_supported')
691 );
692 $this->editObject($form);
693 return;
694 }
695
696 // check successful
697 // title/desc
698 $this->object->setTitle($form->getInput('title'));
699 $this->object->setDescription($form->getInput('desc'));
700
701 // period
702 $crs_period = $form->getItemByPostVar("period");
703
704 $this->object->setCoursePeriod(
705 $crs_period->getStart(),
706 $crs_period->getEnd()
707 );
708
709 // activation period
710 $period = $form->getItemByPostVar("access_period");
711 if ($period->getStart() && $period->getEnd()) {
712 $this->object->setActivationStart($period->getStart()->get(IL_CAL_UNIX));
713 $this->object->setActivationEnd($period->getEnd()->get(IL_CAL_UNIX));
714 $this->object->setActivationVisibility((int) $form->getInput('activation_visibility'));
715 } else {
716 $this->object->setActivationStart(0);
717 $this->object->setActivationEnd(0);
718 }
719
720 // subscription settings
721 $this->object->setSubscriptionPassword($form->getInput('subscription_password'));
722 $this->object->setSubscriptionStart(0);
723 $this->object->setSubscriptionEnd(0);
724
725 $sub_type = (int) $form->getInput('subscription_type');
726 $sub_reg_type = (int) $form->getInput('subscription_limitation_type');
727 $sub_period = $form->getItemByPostVar('subscription_period');
728
729 $this->object->setSubscriptionType(
731 ? $sub_type
733 );
735 if ($sub_period->getStart() && $sub_period->getEnd()) {
736 $this->object->setSubscriptionLimitationType(ilCourseConstants::IL_CRS_SUBSCRIPTION_LIMITED);
737 $this->object->setSubscriptionStart($sub_period->getStart()->get(IL_CAL_UNIX));
738 $this->object->setSubscriptionEnd($sub_period->getEnd()->get(IL_CAL_UNIX));
739 } else {
740 $this->object->setSubscriptionLimitationType(ilCourseConstants::IL_CRS_SUBSCRIPTION_UNLIMITED);
741 }
742 } else {
743 $this->object->setSubscriptionType(ilCourseConstants::IL_CRS_SUBSCRIPTION_DIRECT);
744 $this->object->setSubscriptionLimitationType(ilCourseConstants::IL_CRS_SUBSCRIPTION_DEACTIVATED);
745 }
746
747 // registration code
748 $this->object->enableRegistrationAccessCode((bool) $form->getInput('reg_code_enabled'));
749 $this->object->setRegistrationAccessCode($form->getInput('reg_code'));
750
751 // cancellation end
752 $this->object->setCancellationEnd($form->getItemByPostVar("cancel_end")->getDate());
753
754 // waiting list
755 $this->object->enableSubscriptionMembershipLimitation((bool) $form->getInput('subscription_membership_limitation'));
756 $this->object->setSubscriptionMaxMembers((int) $form->getInput('subscription_max'));
757 $this->object->setSubscriptionMinMembers((int) $form->getInput('subscription_min'));
758 switch ((int) $form->getInput('waiting_list')) {
759 case 2:
760 $this->object->enableWaitingList(true);
761 $this->object->setWaitingListAutoFill(true);
762 break;
763
764 case 1:
765 $this->object->enableWaitingList(true);
766 $this->object->setWaitingListAutoFill(false);
767 break;
768
769 default:
770 $this->object->enableWaitingList(false);
771 $this->object->setWaitingListAutoFill(false);
772 break;
773 }
774 $this->object->handleAutoFill();
775
776 $property_online = $this->object->getObjectProperties()->getPropertyIsOnline();
777 $online = $form->getInput('activation_online') ? $property_online->withOnline() : $property_online->withOffline();
778 $this->object->getObjectProperties()->storePropertyIsOnline($online);
779
780 $obj_service->commonSettings()->legacyForm($form, $this->object)->saveTitleIconVisibility();
781 $obj_service->commonSettings()->legacyForm($form, $this->object)->saveTopActionsVisibility();
782 ilContainer::_writeContainerSetting($this->object->getId(), "rep_breacrumb", $form->getInput('rep_breacrumb'));
783 $obj_service->commonSettings()->legacyForm($form, $this->object)->saveIcon();
784 $obj_service->commonSettings()->legacyForm($form, $this->object)->saveTileImage();
786
787 $this->object->setViewMode((int) $form->getInput('view_mode'));
788 if ($this->object->getViewMode() == ilCourseConstants::IL_CRS_VIEW_TIMING) {
789 $this->object->setOrderType(ilContainer::SORT_ACTIVATION);
790 $this->object->setTimingMode((int) $form->getInput('timing_mode'));
791 }
792 $this->object->setTimingMode((int) $form->getInput('timing_mode'));
793 $this->object->setOrderType((int) $form->getInput('sorting'));
795
796 $this->log->debug(
797 "\n\n\nValue: " . (int) $form->getInput('tutorial_support_block_checkbox') . "\n\n\n"
798 );
799 $this->object->setTutorialSupportBlockSettingValue(
800 (int) $form->getInput('tutorial_support_block_checkbox')
801 );
802
803 $this->object->setAboStatus((bool) $form->getInput('abo'));
804 $this->object->setShowMembers((bool) $form->getInput('show_members'));
805
806 if (\ilPrivacySettings::getInstance()->participantsListInCoursesEnabled()) {
807 $this->object->setShowMembersExport((bool) $form->getInput('show_members_export'));
808 }
809 $this->object->setMailToMembersType((int) $form->getInput('mail_type'));
810
811 $this->object->enableSessionLimit((int) $form->getInput('sl'));
812
813 $session_sp = $form->getInput('sp');
814 $this->object->setNumberOfPreviousSessions(is_numeric($session_sp) ? (int) $session_sp : -1);
815 $session_sn = $form->getInput('sn');
816 $this->object->setNumberOfnextSessions(is_numeric($session_sn) ? (int) $session_sn : -1);
817 $this->object->setAutoNotification($form->getInput('auto_notification') == 1 ? true : false);
818
819 // lp sync
820 $show_lp_sync_confirmation = false;
821
822 // could be hidden in form
823 if ($this->http->wrapper()->post()->has('status_dt')) {
824 $status_dt = $this->http->wrapper()->post()->retrieve(
825 'status_dt',
826 $this->refinery->kindlyTo()->int()
827 );
828 if (
829 $this->object->getStatusDetermination() != ilObjCourse::STATUS_DETERMINATION_LP &&
831 ) {
832 $show_lp_sync_confirmation = true;
833 } else {
834 $this->object->setStatusDetermination($status_dt);
835 }
836 }
837
838 $this->object->update();
839
841 $this->object->getId(),
842 $form,
843 $this->getSubServices()
844 );
845
846 ilChangeEvent::_recordWriteEvent($this->object->getId(), $this->user->getId(), 'update');
847
848 // lp sync confirmation required
849 if ($show_lp_sync_confirmation) {
850 $this->confirmLPSync();
851 return;
852 }
853
854 // Update ecs export settings
855 $ecs = new ilECSCourseSettings($this->object);
856 if (!$ecs->handleSettingsUpdate($form)) {
858 $this->tpl->setOnScreenMessage('failure', $GLOBALS['DIC']->language()->txt('err_check_input'));
859 $this->editObject($form);
860 return;
861 }
862
863 // 29589
864 if (
866 (
867 !is_null($sub_period->getStart()) ||
868 !is_null($sub_period->getEnd())
869 )
870 ) {
871 $this->tpl->setOnScreenMessage(
872 'failure',
873 $this->lng->txt('crs_msg_no_self_registration_period_if_self_enrolment_disabled'),
874 true
875 );
877 $this->tpl->setOnScreenMessage('failure', $GLOBALS['DIC']->language()->txt('err_check_input'));
878 $this->editObject($form);
879 return;
880 }
881
882 $this->afterUpdate();
883 }
afterUpdate()
Post (successful) object update hook.
saveListPresentation(ilPropertyFormGUI $form)
saveSortingSettings(ilPropertyFormGUI $form)
static _writeContainerSetting(int $a_id, string $a_keyword, string $a_value)
static updateServiceSettingsForm(int $obj_id, ilPropertyFormGUI $form, array $services)

References ilContainerGUI\$form, $GLOBALS, ilObjectGUI\$settings, ilChangeEvent\_recordWriteEvent(), ilContainer\_writeContainerSetting(), ilContainerGUI\afterUpdate(), ilPropertyFormGUI\checkInput(), ilObjectGUI\checkPermission(), confirmLPSync(), ilObjectGUI\editObject(), ilPropertyFormGUI\getInput(), ilPrivacySettings\getInstance(), ilPropertyFormGUI\getItemByPostVar(), ilObjectGUI\getObjectService(), ILIAS\FileDelivery\http(), IL_CAL_UNIX, ilCourseConstants\IL_CRS_SUBSCRIPTION_DEACTIVATED, ilCourseConstants\IL_CRS_SUBSCRIPTION_DIRECT, ilCourseConstants\IL_CRS_SUBSCRIPTION_LIMITED, ilCourseConstants\IL_CRS_SUBSCRIPTION_UNLIMITED, ilCourseConstants\IL_CRS_VIEW_OBJECTIVE, ilCourseConstants\IL_CRS_VIEW_TIMING, initEditForm(), ILIAS\Repository\int(), ILIAS\UI\examples\Symbol\Glyph\Language\language(), ILIAS\Repository\lng(), ILIAS\Repository\object(), ILIAS\Repository\refinery(), ilContainerGUI\saveListPresentation(), ilContainerGUI\saveSortingSettings(), ilPropertyFormGUI\setValuesByPost(), ilContainer\SORT_ACTIVATION, ilObjCourse\STATUS_DETERMINATION_LP, and ilObjectServiceSettingsGUI\updateServiceSettingsForm().

+ Here is the call graph for this function:

Field Documentation

◆ $data_factory

ilDataFactory ilObjCourseGUI::$data_factory
protected

Definition at line 64 of file class.ilObjCourseGUI.php.

◆ $help

ilHelpGUI ilObjCourseGUI::$help
protected

Definition at line 62 of file class.ilObjCourseGUI.php.

◆ $http

GlobalHttpState ilObjCourseGUI::$http
protected

Definition at line 60 of file class.ilObjCourseGUI.php.

Referenced by _goto().

◆ $logger

ilLogger ilObjCourseGUI::$logger
private

Definition at line 59 of file class.ilObjCourseGUI.php.

◆ $navigation_history

ilNavigationHistory ilObjCourseGUI::$navigation_history
protected

Definition at line 63 of file class.ilObjCourseGUI.php.

◆ $news

News ilObjCourseGUI::$news
protected

Definition at line 54 of file class.ilObjCourseGUI.php.

◆ $record_gui

ilAdvancedMDRecordGUI ilObjCourseGUI::$record_gui = null
private

Definition at line 56 of file class.ilObjCourseGUI.php.

Referenced by infoScreen().

◆ $refinery

Factory ilObjCourseGUI::$refinery
protected

Definition at line 61 of file class.ilObjCourseGUI.php.

Referenced by _goto().

◆ $start_obj

ilContainerStartObjects ilObjCourseGUI::$start_obj = null
private

Definition at line 57 of file class.ilObjCourseGUI.php.

◆ BREADCRUMB_CRS_ONLY

const ilObjCourseGUI::BREADCRUMB_CRS_ONLY = 1

Definition at line 52 of file class.ilObjCourseGUI.php.

◆ BREADCRUMB_DEFAULT

const ilObjCourseGUI::BREADCRUMB_DEFAULT = 0

Definition at line 51 of file class.ilObjCourseGUI.php.

Referenced by ilLocatorGUI\addRepositoryItems().

◆ BREADCRUMB_FULL_PATH

const ilObjCourseGUI::BREADCRUMB_FULL_PATH = 2

Definition at line 53 of file class.ilObjCourseGUI.php.

Referenced by ilLocatorGUI\addRepositoryItems().


The documentation for this class was generated from the following file: