ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
All Data Structures Namespaces Files Functions Variables Modules Pages
ilObjCourseGUI Class Reference

Class ilObjCourseGUI. More...

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

Public Member Functions

 __construct ()
 Constructor public. More...
 
 gatewayObject ()
 
 renderObject ()
 
 viewObject ()
 
 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 ()
 Show info screen. More...
 
 saveNotificationObject ()
 :TEMP: Save notification setting (from infoscreen) More...
 
 editInfoObject (ilPropertyFormGUI $a_form=null)
 Edit info page informations. More...
 
 confirmDeleteInfoFilesObject ()
 show info file donfimation table More...
 
 deleteInfoFilesObject ()
 Delete info files. More...
 
 initInfoEditor ()
 init info editor More...
 
 updateInfoObject ()
 
 updateObject ()
 Update course settings type $ilUser. More...
 
 editObject (ilPropertyFormGUI $form=null)
 edit object More...
 
 sendFileObject ()
 
 setSubTabs ($a_tab)
 set sub tabs More...
 
 showPossibleSubObjects ()
 show possible sub objects selection list More...
 
 setShowHidePrefs ()
 set preferences (show/hide tabel content) More...
 
 readMemberData ($ids, $selected_columns=null)
 
 updateLPFromStatus ($a_member_id, $a_has_passed)
 sync course status and lp status More...
 
 autoFillObject ()
 
 leaveObject ()
 
 unsubscribeObject ()
 DEPRECATED? More...
 
 performUnsubscribeObject ()
 
 addContentTab ()
 Add content tab. More...
 
 getTabs ()
 Get tabs. More...
 
 executeCommand ()
 
 addLocatorItems ()
 
 editMapSettingsObject ()
 Edit Map Settings. More...
 
 saveMapSettingsObject ()
 
 modifyItemGUI ($a_item_list_gui, $a_item_data, $a_show_path)
 Modify Item ListGUI for presentation in container. More...
 
 setContentSubTabs ()
 Set content sub tabs. More...
 
 askResetObject ()
 ask reset test results More...
 
 resetObject ()
 
 __checkStartObjects ()
 
 prepareOutput ($a_show_subobjects=true)
 Handle member view. More...
 
 createMailSignature ()
 Create a course mail signature. More...
 
 deliverCertificateObject ()
 
 saveSortingObject ()
 
 getLocalRoles ($a_exclude=array())
 
 setSideColumnReturn ()
 Set return point for side column actions. More...
 
- Public Member Functions inherited from ilContainerGUI
 __construct ($a_data, $a_id, $a_call_by_reference=true, $a_prepare_output=true)
 Constructor public. More...
 
 executeCommand ()
 execute command note: this method is overwritten in all container objects More...
 
 forwardToStyleSheet ()
 Forward to style object. More...
 
forwardToPageObject ()
 forward command to page object More...
 
 addPageTabs ()
 Add page tabs. More...
 
 getContainerPageHTML ()
 Get container page HTML. More...
 
 prepareOutput ($a_show_subobjects=true)
 prepare output More...
 
 showTreeFlatIcon ()
 
 setTitleAndDescription ()
 called by prepare output More...
 
 showPossibleSubObjects ()
 show possible sub objects selection list More...
 
 getContentGUI ()
 Get content gui object. More...
 
 renderObject ()
 render the object More...
 
 renderBlockAsynchObject ()
 render the object More...
 
 setContentSubTabs ()
 Set content sub tabs. More...
 
 showAdministrationPanel ()
 show administration panel More...
 
 __showTimingsButton (&$tpl)
 
 showPermanentLink ()
 show permanent link More...
 
 switchToStdEditorObject ()
 Switch to standard page editor. More...
 
 switchToOldEditorObject ()
 Switch to old page editor. More...
 
 useNewEditorObject ()
 Use new editor (-> delete xhtml content page) More...
 
 editPageFrameObject ()
 show page editor frameset More...
 
 editPageContentObject ()
 edit page content (for repository root node and categories) More...
 
 savePageContentObject ()
 
 cancelPageContentObject ()
 
 showLinkListObject ()
 
 clearAdminCommandsDetermination ()
 cleaer administration commands determination More...
 
newBlockTemplate ()
 determin admin commands More...
 
 addHeaderRow (&$a_tpl, $a_type, $a_show_image=true)
 adds a header row to a block template More...
 
 addMessageRow (&$a_tpl, $a_message, $a_type)
 add message row More...
 
 resetRowType ()
 
 setPageEditorTabs ()
 Add page editor tabs. More...
 
 addStandardContainerSubTabs ($a_include_view=true)
 Add standar container subtabs for view, manage, oderdering and text/media editor link. More...
 
 getTabs ()
 common tabs for all container objects (should be called at the end of child getTabs() method More...
 
 enableAdministrationPanelObject ()
 enable administration panel More...
 
 disableAdministrationPanelObject ()
 enable administration panel More...
 
 editOrderObject ()
 Edit order. More...
 
 isActiveOrdering ()
 Check if ordering is enabled. More...
 
 isActiveItemOrdering ()
 Check if item ordering is enabled. More...
 
 enableMultiDownloadObject ()
 
 isMultiDownloadEnabled ()
 
 cutObject ()
 cut object(s) out from a container and write the information to clipboard 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 ()
 get proper label to add in the background task popover More...
 
 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 ()
 Show paste tree. More...
 
 cancelMoveLinkObject ()
 Cancel move|link empty clipboard and return to parent. More...
 
 keepObjectsInClipboardObject ()
 Keep objects in the clipboard. More...
 
 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 ()
 show clipboard More...
 
 isActiveAdministrationPanel ()
 
 setColumnSettings (ilColumnGUI $column_gui)
 May be overwritten in subclasses. More...
 
 allowBlocksMoving ()
 Standard is to allow blocks moving. More...
 
 allowBlocksConfigure ()
 Standard is to allow blocks configuration. More...
 
 cloneWizardPageTreeObject ()
 public More...
 
 cloneWizardPageListObject ()
 public More...
 
 cloneWizardPageObject ($a_tree_view=true)
 Show clone wizard page for container objects. More...
 
 cloneAllObject ()
 Clone all object Overwritten method for copying container objects. More...
 
 saveSortingObject ()
 Save Sorting. More...
 
 cloneNodes ($srcRef, $dstRef, &$mapping, $newName=null)
 Recursively clones all nodes of the RBAC tree. More...
 
 modifyItemGUI ($a_item_list_gui, $a_item_data, $a_show_path)
 Modify list gui for presentation in container. More...
 
 editStylePropertiesObject ()
 Edit style properties. More...
 
 initStylePropertiesForm ()
 Init style properties form. More...
 
 createStyleObject ()
 Create Style. More...
 
 editStyleObject ()
 Edit Style. More...
 
 deleteStyleObject ()
 Delete Style. More...
 
 saveStyleSettingsObject ()
 Save style settings. More...
 
 getAsynchItemListObject ()
 Get item list command drop down asynchronously. More...
 
 redrawListItemObject ()
 Redraw a list item (ajax) More...
 
 trashObject ()
 Show trash content of object. More...
 
 trashApplyFilterObject ()
 trash table apply filter More...
 
 trashResetFilterObject ()
 trash table reset filter More...
 
 removeFromSystemObject ()
 remove objects from trash bin and all entries therefore every object needs a specific deleteObject() method More...
 
 undeleteObject ()
 Get objects back from trash. More...
 
 confirmRemoveFromSystemObject ()
 confirmation screen remove from system More...
 
 setSideColumnReturn ()
 Set return point for side column actions. More...
 
 getAdminTabs ()
 
- Public Member Functions inherited from ilObjectGUI
 executeCommand ()
 execute command More...
 
 withReferences ()
 determines wether objects are referenced or not (got ref ids or not) More...
 
 setCreationMode ($a_mode=true)
 if true, a creation screen is displayed the current $_GET[ref_id] don't belong to the current class! the mode is determined in ilrepositorygui More...
 
 getCreationMode ()
 get creation mode More...
 
 prepareOutput ($a_show_subobjects=true)
 prepare output More...
 
 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...
 
 cancelDeleteObject ()
 cancel deletion of object More...
 
 cancelObject ()
 cancel action and go back to previous page public More...
 
 createObject ()
 create new object form More...
 
 cancelCreation ()
 cancel create action and go back to repository parent More...
 
 saveObject ()
 save object More...
 
 getDidacticTemplateVar ($a_type)
 Get didactic template setting from creation screen. More...
 
 putObjectInTree (ilObject $a_obj, $a_parent_node_id=null)
 Add object to tree at given position. More...
 
 editObject ()
 edit object More...
 
 addExternalEditFormCustom (ilPropertyFormGUI $a_form)
 
 updateObject ()
 updates object entry in object_data More...
 
 getFormAction ($a_cmd, $a_formaction="")
 get form action for command (command is method name without "Object", e.g. More...
 
 isVisible ($a_ref_id, $a_type)
 
 viewObject ()
 viewObject container presentation for "administration -> repository, trash, permissions" More...
 
 deleteObject ($a_error=false)
 Display deletion confirmation screen. More...
 
 cloneAllObject ()
 Clone single (not container object) Method is overwritten in ilContainerGUI. More...
 
 redirectAfterCreation ()
 Redirect after creation, see https://docu.ilias.de/goto_docu_wiki_wpage_5035_1357.html. More...
 
 addToDeskObject ()
 
 removeFromDeskObject ()
 
- Public Member Functions inherited from ilDesktopItemHandling
 addToDeskObject ()
 Add desktop item public. More...
 
 removeFromDeskObject ()
 Remove from desktop public. More...
 

Static Public Member Functions

static _forwards ()
 
static _goto ($a_target, $a_add="")
 goto target course More...
 
static _modifyItemGUI ( $a_item_list_gui, $a_cmd_class, $a_item_data, $a_show_path, $a_abo_status, $a_course_ref_id, $a_course_obj_id, $a_parent_ref_id=0)
 We need a static version of this, e.g. More...
 
- Static Public Member Functions inherited from ilContainerGUI
static _buildPath ($a_ref_id, $a_course_ref_id)
 build path More...
 
- Static Public Member Functions inherited from ilObjectGUI
static _gotoRepositoryRoot ($a_raise_error=false)
 Goto repository root. More...
 
static _gotoRepositoryNode ($a_ref_id, $a_cmd="frameset")
 Goto repository root. More...
 

Data Fields

const BREADCRUMB_DEFAULT = 0
 
const BREADCRUMB_CRS_ONLY = 1
 
const BREADCRUMB_FULL_PATH = 2
 
- Data Fields inherited from ilContainerGUI
 $bl_cnt = 1
 
 $multi_download_enabled = false
 
- Data Fields inherited from ilObjectGUI
const COPY_WIZARD_NEEDS_PAGE = 1
 
 $objDefinition
 
 $tpl
 
 $tree
 
 $lng
 
 $data
 
 $object
 
 $ref_id
 
 $obj_id
 
 $maxcount
 
 $formaction
 
 $return_location
 
 $target_frame
 
 $tab_target_script
 
 $actions
 
 $sub_objects
 
 $omit_locator = false
 
const CFORM_NEW = 1
 
const CFORM_IMPORT = 2
 
const CFORM_CLONE = 3
 

Protected Member Functions

 afterImport (ilObject $a_new_object)
 add course admin after import file More...
 
 confirmLPSync ()
 
 setLPSyncObject ()
 
 initEditForm ()
 init form More...
 
 getEditFormValues ()
 
 afterSave (ilObject $a_new_object)
 save object public More...
 
 getAgreementTabs ()
 Get tabs for member agreement. More...
 
 membersObject ()
 Called from goto? More...
 
 loadDate ($a_field)
 load date More...
 
 initHeaderAction ($a_sub_type=null, $a_sub_id=null)
 
 afterSaveCallback ()
 
 redirectLocToTestConfirmedObject ()
 
 redirectLocToTestObject ($a_force_new_run=null)
 Test redirection will be moved lo adapter. More...
 
 redirectLocToTestConfirmation ($a_objective_id, $a_test_id)
 Show confirmation whether user wants to start a new run or resume a previous run. More...
 
 hasAdminPermission ()
 user has admin permission or "edit permission" permission on this course More...
 
 jump2UsersGalleryObject ()
 
- Protected Member Functions inherited from ilContainerGUI
 getEditFormValues ()
 Get values for edit form. More...
 
 afterUpdate ()
 
 showPasswordInstructionObject ($a_init=true)
 Show webdav password instruction. More...
 
 initFormPasswordInstruction ()
 Init password form. More...
 
 savePasswordObject ()
 Save password. More...
 
 initHeaderAction ($a_sub_type=null, $a_sub_id=null)
 Add file manager link. More...
 
 fileManagerLaunchObject ()
 Launch jnlp. More...
 
 initEditForm ()
 Init object edit form. More...
 
 initSortingForm (ilPropertyFormGUI $form, array $a_sorting_settings)
 Append sorting settings to property form. More...
 
 initListPresentationForm (ilPropertyFormGUI $form)
 Add list presentation settings to form. More...
 
 saveListPresentation (ilPropertyFormGUI $form)
 Save list presentation setting. More...
 
 initSortingDirectionForm (ilContainerSortingSettings $sorting_settings, $element, $a_prefix)
 Add sorting direction. More...
 
 initManualSortingOptionForm (ilContainerSortingSettings $settings, $element, $a_prefix, $a_sorting_settings)
 Add manual sorting options. More...
 
 saveSortingSettings (ilPropertyFormGUI $form)
 Save sorting settings. More...
 
 trashHandleFilter (bool $action_apply, bool $action_reset)
 
 restoreToNewLocationObject (\ilPropertyFormGUI $form=null)
 
 getTreeSelectorGUI ($cmd)
 
- Protected Member Functions inherited from ilObjectGUI
 getObjectService ()
 Get object service. More...
 
 assignObject ()
 
 setTitleAndDescription ()
 called by prepare output More...
 
 initHeaderAction ($a_sub_type=null, $a_sub_id=null)
 Add header action menu. More...
 
 insertHeaderAction ($a_list_gui)
 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 public More...
 
 setAdminTabs ()
 set admin tabs public More...
 
 setLocator ()
 set Locator More...
 
 addLocatorItems ()
 should be overwritten to add object specific items (repository items are preloaded) More...
 
 omitLocator ($a_omit=true)
 
 addAdminLocatorItems ($a_do_not_add_object=false)
 should be overwritten to add object specific items (repository items are preloaded) More...
 
 initCreationForms ($a_new_type)
 Init creation froms. More...
 
 getCreationFormsHTML (array $a_forms)
 Get HTML for creation forms (accordion) More...
 
 initCreateForm ($a_new_type)
 Init object creation form. More...
 
 initDidacticTemplate (ilPropertyFormGUI $form)
 Show didactic template types. More...
 
 addDidacticTemplateOptions (array &$a_options)
 Add custom templates. More...
 
 afterSave (ilObject $a_new_object)
 Post (successful) object creation hook. More...
 
 initEditForm ()
 Init object edit form. More...
 
 initEditCustomForm (ilPropertyFormGUI $a_form)
 Add custom fields to update form. More...
 
 getEditFormValues ()
 Get values for edit form. More...
 
 getEditFormCustomValues (array &$a_values)
 Add values to custom edit fields. More...
 
 validateCustom (ilPropertyFormGUI $a_form)
 Validate custom values (if not possible with checkInput()) More...
 
 updateCustom (ilPropertyFormGUI $a_form)
 Insert custom update form values into object. More...
 
 afterUpdate ()
 Post (successful) object update hook. More...
 
 initImportForm ($a_new_type)
 Init object import form. More...
 
 importFileObject ($parent_id=null, $a_catch_errors=true)
 Import. More...
 
 afterImport (ilObject $a_new_object)
 Post (successful) object import hook. More...
 
 setFormAction ($a_cmd, $a_formaction)
 set specific form action for command More...
 
 getReturnLocation ($a_cmd, $a_location="")
 get return location for command (command is method name without "Object", e.g. More...
 
 setReturnLocation ($a_cmd, $a_location)
 set specific return location for command More...
 
 getTargetFrame ($a_cmd, $a_target_frame="")
 get target frame for command (command is method name without "Object", e.g. More...
 
 setTargetFrame ($a_cmd, $a_target_frame)
 set specific target frame for command More...
 
 showPossibleSubObjects ()
 show possible subobjects (pulldown menu) More...
 
 getTemplateFile ($a_cmd, $a_type="")
 get a template blockfile format: tpl. More...
 
 getTabs ()
 get tabs abstract method. More...
 
 __showButton ($a_cmd, $a_text, $a_target='')
 
 hitsperpageObject ()
 
__initTableGUI ()
 
 __setTableGUIBasicData (&$tbl, &$result_set, $a_from="")
 standard implementation for tables use 'from' variable use different initial setting of table More...
 
 redirectToRefId ($a_ref_id, $a_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 $_GET["ref_id"] value More...
 
 fillCloneTemplate ($a_tpl_varname, $a_type)
 Fill object clone template This method can be called from any object GUI class that wants to offer object cloning. More...
 
 getCenterColumnHTML ()
 Get center column. More...
 
 getRightColumnHTML ()
 Display right column. More...
 
 setColumnSettings (ilColumnGUI $column_gui)
 May be overwritten in subclasses. More...
 
 checkPermission ($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
 Check permission and redirect on error. More...
 
 checkPermissionBool ($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
 Check permission. More...
 
 enableDragDropFileUpload ()
 Enables the file upload into this object by dropping files. More...
 
 handleAutoRating (ilObject $a_new_obj)
 Activate rating automatically if parent container setting. More...
 

Private Member Functions

 checkAgreement ()
 Check agreement and redirect if it is not accepted. More...
 

Additional Inherited Members

- Protected Attributes inherited from ilContainerGUI
 $rbacsystem
 
 $tabs
 
 $settings
 
 $user
 
 $db
 
 $access
 
 $error
 
 $obj_definition
 
 $rbacadmin
 
 $rbacreview
 
 $log
 
 $obj_data_cache
 
 $toolbar
 
 $plugin_admin
 
 $global_screen
 
 $app_event_handler
 
 $ui
 
 $container_filter_service
 
 $container_user_filter = null
 
 $ui_filter
 
- Protected Attributes inherited from ilObjectGUI
 $ilErr
 
 $locator
 
 $user
 
 $access
 
 $rbacsystem
 
 $settings
 
 $rbacreview
 
 $toolbar
 
 $tmp_import_dir
 
 $tabs_gui = null
 
 $ctrl
 
 $object_service
 
 $favourites
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilObjCourseGUI::__construct ( )

Constructor public.

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

References $_GET, $DIC, $ilCtrl, and ILIAS\GlobalScreen\Provider\__construct().

42  {
43  global $DIC;
44 
45  $ilCtrl = $DIC['ilCtrl'];
46  $ilHelp = $DIC['ilHelp'];
47 
48  // CONTROL OPTIONS
49  $this->ctrl = $ilCtrl;
50  $this->ctrl->saveParameter($this, array("ref_id","cmdClass"));
51 
52  $this->type = "crs";
53  parent::__construct('', (int) $_GET['ref_id'], true, false);
54 
55  $this->lng->loadLanguageModule('crs');
56  $this->lng->loadLanguageModule('cert');
57  $this->lng->loadLanguageModule('obj');
58 
59  $this->SEARCH_USER = 1;
60  $this->SEARCH_GROUP = 2;
61  $this->SEARCH_COURSE = 3;
62  }
$_GET["client_id"]
global $ilCtrl
Definition: ilias.php:18
__construct(Container $dic, ilPlugin $plugin)
$DIC
Definition: xapitoken.php:46
+ Here is the call graph for this function:

Member Function Documentation

◆ __checkStartObjects()

ilObjCourseGUI::__checkStartObjects ( )

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

References $DIC, and $ilUser.

Referenced by viewObject().

3153  {
3154  global $DIC;
3155 
3156  $ilAccess = $DIC['ilAccess'];
3157  $ilUser = $DIC['ilUser'];
3158 
3159  if ($ilAccess->checkAccess('write', '', $this->object->getRefId())) {
3160  return true;
3161  }
3162 
3163  include_once './Services/Container/classes/class.ilContainerStartObjects.php';
3164  $this->start_obj = new ilContainerStartObjects(
3165  $this->object->getRefId(),
3166  $this->object->getId()
3167  );
3168  if (count($this->start_obj->getStartObjects()) &&
3169  !$this->start_obj->allFullfilled($ilUser->getId())) {
3170  return false;
3171  }
3172 
3173  return true;
3174  }
$ilUser
Definition: imgupload.php:18
$DIC
Definition: xapitoken.php:46
+ Here is the caller graph for this function:

◆ _forwards()

static ilObjCourseGUI::_forwards ( )
static

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

2787  {
2788  return array("ilCourseRegisterGUI",'ilConditionHandlerGUI');
2789  }

◆ _goto()

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

goto target course

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

References $_GET, $DIC, ilObjectGUI\$ilErr, $ilUser, ilObjectGUI\$lng, ilObjectGUI\_gotoRepositoryNode(), ilObjectGUI\_gotoRepositoryRoot(), ilObject\_lookupObjId(), ilObject\_lookupTitle(), ilObject\_lookupType(), ilMembershipRegistrationCodeUtils\handleCode(), ilUtil\redirect(), and ilUtil\sendFailure().

2815  {
2816  global $DIC;
2817 
2818  $ilAccess = $DIC['ilAccess'];
2819  $ilErr = $DIC['ilErr'];
2820  $lng = $DIC['lng'];
2821  $ilUser = $DIC['ilUser'];
2822 
2823  include_once './Services/Membership/classes/class.ilMembershipRegistrationCodeUtils.php';
2824  if (substr($a_add, 0, 5) == 'rcode') {
2825  if ($ilUser->getId() == ANONYMOUS_USER_ID) {
2826  // Redirect to login for anonymous
2828  "login.php?target=" . $_GET["target"] . "&cmd=force_login&lang=" .
2829  $ilUser->getCurrentLanguage()
2830  );
2831  }
2832 
2833  // Redirects to target location after assigning user to course
2835  $a_target,
2837  substr($a_add, 5)
2838  );
2839  }
2840 
2841  if ($a_add == "mem" && $ilAccess->checkAccess("manage_members", "", $a_target)) {
2842  ilObjectGUI::_gotoRepositoryNode($a_target, "members");
2843  }
2844 
2845  if ($ilAccess->checkAccess("read", "", $a_target)) {
2847  } else {
2848  // to do: force flat view
2849  if ($ilAccess->checkAccess("visible", "", $a_target)) {
2850  ilObjectGUI::_gotoRepositoryNode($a_target, "infoScreenGoto");
2851  } else {
2852  if ($ilAccess->checkAccess("read", "", ROOT_FOLDER_ID)) {
2853  ilUtil::sendFailure(sprintf(
2854  $lng->txt("msg_no_perm_read_item"),
2856  ), true);
2858  }
2859  }
2860  }
2861  $ilErr->raiseError($lng->txt("msg_no_perm_read"), $ilErr->FATAL);
2862  }
$_GET["client_id"]
static _gotoRepositoryRoot($a_raise_error=false)
Goto repository root.
static _lookupTitle($a_id)
lookup object title
static handleCode($a_ref_id, $a_type, $a_code)
Handle target parameter.
static _gotoRepositoryNode($a_ref_id, $a_cmd="frameset")
Goto repository root.
static _lookupObjId($a_id)
$ilUser
Definition: imgupload.php:18
static _lookupType($a_id, $a_reference=false)
lookup object type
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$DIC
Definition: xapitoken.php:46
static redirect($a_script)
+ Here is the call graph for this function:

◆ _modifyItemGUI()

static ilObjCourseGUI::_modifyItemGUI (   $a_item_list_gui,
  $a_cmd_class,
  $a_item_data,
  $a_show_path,
  $a_abo_status,
  $a_course_ref_id,
  $a_course_obj_id,
  $a_parent_ref_id = 0 
)
static

We need a static version of this, e.g.

in folders of the course

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

References $DIC, ilObjectGUI\$lng, ilObjCourse\_lookupViewMode(), and ilContainer\VIEW_OBJECTIVE.

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

2978  {
2979  global $DIC;
2980 
2981  $lng = $DIC['lng'];
2982  $ilAccess = $DIC['ilAccess'];
2983 
2984  // this is set for folders within the course
2985  if ($a_parent_ref_id == 0) {
2986  $a_parent_ref_id = $a_course_ref_id;
2987  }
2988 
2989  // Special handling for tests in courses with learning objectives
2990  if ($a_item_data['type'] == 'tst' and
2992  $a_item_list_gui->addCommandLinkParameter(array('crs_show_result' => $a_course_ref_id));
2993  }
2994 
2995  $a_item_list_gui->enableSubscribe($a_abo_status);
2996 
2997  $is_tutor = ($ilAccess->checkAccess(
2998  'write',
2999  '',
3000  $a_course_ref_id,
3001  'crs',
3002  $a_course_obj_id
3003  ));
3004 
3005  if ($a_show_path and $is_tutor) {
3006  $a_item_list_gui->addCustomProperty(
3007  $lng->txt('path'),
3008  ilContainer::_buildPath($a_item_data['ref_id'], $a_course_ref_id),
3009  false,
3010  true
3011  );
3012  }
3013  }
static _lookupViewMode($a_id)
lookup view mode of container
$DIC
Definition: xapitoken.php:46
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ addContentTab()

ilObjCourseGUI::addContentTab ( )

Add content tab.

Parameters

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

Referenced by getTabs().

1994  {
1995  $this->tabs_gui->addTab(
1996  "view_content",
1997  $this->lng->txt("content"),
1998  $this->ctrl->getLinkTarget($this, "view")
1999  );
2000  }
+ Here is the caller graph for this function:

◆ addLocatorItems()

ilObjCourseGUI::addLocatorItems ( )

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

References $DIC.

2792  {
2793  global $DIC;
2794 
2795  $ilLocator = $DIC['ilLocator'];
2796  switch ($this->ctrl->getCmd()) {
2797  default:
2798  #$ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this, ""));
2799  break;
2800  }
2801  }
$DIC
Definition: xapitoken.php:46

◆ afterImport()

ilObjCourseGUI::afterImport ( ilObject  $a_new_object)
protected

add course admin after import file

Returns

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

References $DIC, $ilSetting, $ilUser, ilCourseParticipants\_getInstanceByObjId(), ilCourseConstants\CRS_ADMIN, and ilObject\getId().

96  {
97  global $DIC;
98 
99  $ilUser = $DIC['ilUser'];
100  $ilSetting = $DIC['ilSetting'];
101 
102  // #11895
103  include_once './Modules/Course/classes/class.ilCourseParticipants.php';
104  $part = ilCourseParticipants::_getInstanceByObjId($a_new_object->getId());
105  $part->add($ilUser->getId(), ilCourseConstants::CRS_ADMIN);
106  $part->updateNotification($ilUser->getId(), $ilSetting->get('mail_crs_admin_notification', true));
107 
108  parent::afterImport($a_new_object);
109  }
static _getInstanceByObjId($a_obj_id)
Get singleton instance.
getId()
get object id public
$ilUser
Definition: imgupload.php:18
global $ilSetting
Definition: privfeed.php:17
$DIC
Definition: xapitoken.php:46
+ Here is the call graph for this function:

◆ afterSave()

ilObjCourseGUI::afterSave ( ilObject  $a_new_object)
protected

save object public

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

References $DIC, $ilSetting, $ilUser, ilContainerGUI\$rbacadmin, ilChangeEvent\_recordWriteEvent(), ilObject\getId(), ilObject\getRefId(), ilObjectGUI\getReturnLocation(), IL_CRS_ADMIN, ilUtil\redirect(), and ilObject\update().

1693  {
1694  global $DIC;
1695 
1696  $rbacadmin = $DIC['rbacadmin'];
1697  $ilUser = $DIC['ilUser'];
1698  $ilSetting = $DIC['ilSetting'];
1699 
1700  $a_new_object->getMemberObject()->add($ilUser->getId(), IL_CRS_ADMIN);
1701  $a_new_object->getMemberObject()->updateNotification($ilUser->getId(), $ilSetting->get('mail_crs_admin_notification', true));
1702  // cognos-blu-patch: begin
1703  $a_new_object->getMemberObject()->updateContact($ilUser->getId(), 1);
1704  // cognos-blu-patch: end
1705  $a_new_object->update();
1706 
1707  // BEGIN ChangeEvent: Record write event.
1708  require_once('Services/Tracking/classes/class.ilChangeEvent.php');
1709  global $DIC;
1710 
1711  $ilUser = $DIC['ilUser'];
1712  ilChangeEvent::_recordWriteEvent($a_new_object->getId(), $ilUser->getId(), 'create');
1713  // END ChangeEvent: Record write event.
1714 
1715  // always send a message
1716  ilUtil::sendSuccess($this->lng->txt("crs_added"), true);
1717 
1718  $this->ctrl->setParameter($this, "ref_id", $a_new_object->getRefId());
1720  "save",
1721  $this->ctrl->getLinkTarget($this, "edit", "", false, false)
1722  ));
1723  }
static _recordWriteEvent($obj_id, $usr_id, $action, $parent_obj_id=null)
Records a write event.
getId()
get object id public
$ilUser
Definition: imgupload.php:18
const IL_CRS_ADMIN
Base class for course and group participants.
global $ilSetting
Definition: privfeed.php:17
$DIC
Definition: xapitoken.php:46
getRefId()
get reference id public
update()
update object in db
static redirect($a_script)
getReturnLocation($a_cmd, $a_location="")
get return location for command (command is method name without "Object", e.g.
+ Here is the call graph for this function:

◆ afterSaveCallback()

ilObjCourseGUI::afterSaveCallback ( )
protected

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

3317  {
3318  $this->ctrl->redirectByClass(array('ilrepositorygui','ilobjcoursegui','illoeditorgui'), 'materials');
3319  }

◆ askResetObject()

ilObjCourseGUI::askResetObject ( )

ask reset test results

public

Parameters

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

References $GLOBALS, and ilUtil\sendQuestion().

3110  {
3111  ilUtil::sendQuestion($this->lng->txt('crs_objectives_reset_sure'));
3112 
3113  include_once './Services/Utilities/classes/class.ilConfirmationGUI.php';
3114  $confirm = new ilConfirmationGUI();
3115  $confirm->setFormAction($this->ctrl->getFormAction($this));
3116  $confirm->setConfirm($this->lng->txt('reset'), 'reset');
3117  $confirm->setCancel($this->lng->txt('cancel'), 'cancel');
3118 
3119  $GLOBALS['DIC']['tpl']->setContent($confirm->getHTML());
3120  return true;
3121  }
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64
static sendQuestion($a_info="", $a_keep=false)
Send Question to Screen.
Confirmation screen class.
+ Here is the call graph for this function:

◆ autoFillObject()

ilObjCourseGUI::autoFillObject ( )

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

References $DIC, ilContainerGUI\$rbacsystem, ilObjectGUI\checkPermission(), membersObject(), and ilUtil\sendFailure().

1887  {
1888  global $DIC;
1889 
1890  $rbacsystem = $DIC['rbacsystem'];
1891 
1892  $this->checkPermission('write');
1893 
1894  if ($this->object->isSubscriptionMembershipLimited() and $this->object->getSubscriptionMaxMembers() and
1895  $this->object->getSubscriptionMaxMembers() <= $this->object->getMembersObject()->getCountMembers()) {
1896  ilUtil::sendFailure($this->lng->txt("crs_max_members_reached"));
1897  $this->membersObject();
1898 
1899  return false;
1900  }
1901  if ($number = $this->object->getMembersObject()->autoFillSubscribers()) {
1902  ilUtil::sendSuccess($this->lng->txt("crs_number_users_added") . " " . $number);
1903  } else {
1904  ilUtil::sendFailure($this->lng->txt("crs_no_users_added"));
1905  }
1906  $this->membersObject();
1907 
1908  return true;
1909  }
membersObject()
Called from goto?
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$DIC
Definition: xapitoken.php:46
checkPermission($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission and redirect on error.
+ Here is the call graph for this function:

◆ checkAgreement()

ilObjCourseGUI::checkAgreement ( )
private

Check agreement and redirect if it is not accepted.

private

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

References $DIC, $GLOBALS, $ilUser, ilCourseUserData\_checkRequired(), ilPrivacySettings\_getInstance(), ilMemberAgreement\_hasAccepted(), ilCourseDefinedFieldDefinition\_hasFields(), and ilMemberViewSettings\getInstance().

Referenced by viewObject().

2746  {
2747  global $DIC;
2748 
2749  $ilUser = $DIC['ilUser'];
2750  $ilAccess = $DIC['ilAccess'];
2751 
2752  if ($ilAccess->checkAccess('write', '', $this->object->getRefId())) {
2753  return true;
2754  }
2755 
2756  // Disable aggrement if is not member of course
2757  if (!$this->object->getMemberObject()->isAssigned()) {
2758  return true;
2759  }
2760 
2761  include_once './Services/Container/classes/class.ilMemberViewSettings.php';
2762  if (ilMemberViewSettings::getInstance()->isActive()) {
2763  return true;
2764  }
2765 
2766  include_once('Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
2767  include_once('Services/Membership/classes/class.ilMemberAgreement.php');
2768  $privacy = ilPrivacySettings::_getInstance();
2769 
2770  // Check agreement
2771  if (($privacy->courseConfirmationRequired() or ilCourseDefinedFieldDefinition::_hasFields($this->object->getId()))
2772  and !ilMemberAgreement::_hasAccepted($ilUser->getId(), $this->object->getId())) {
2773  $GLOBALS['DIC']['ilLog']->write(__METHOD__ . ': Missing course confirmation.');
2774  return false;
2775  }
2776  // Check required fields
2777  include_once('Modules/Course/classes/Export/class.ilCourseUserData.php');
2778  if (!ilCourseUserData::_checkRequired($ilUser->getId(), $this->object->getId())) {
2779  $GLOBALS['DIC']['ilLog']->write(__METHOD__ . ': Missing required fields');
2780  return false;
2781  }
2782  return true;
2783  }
static _hasAccepted($a_usr_id, $a_obj_id)
Check if user has accepted agreement.
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64
$ilUser
Definition: imgupload.php:18
static _checkRequired($a_usr_id, $a_obj_id)
Check required fields.
static _hasFields($a_container_id)
Check if there are any define fields.
$DIC
Definition: xapitoken.php:46
static _getInstance()
Get instance of ilPrivacySettings.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ confirmDeleteInfoFilesObject()

ilObjCourseGUI::confirmDeleteInfoFilesObject ( )

show info file donfimation table

public

Parameters

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

References $_POST, editInfoObject(), ilUtil\sendFailure(), and setSubTabs().

582  {
583  if (!count($_POST['file_id'])) {
584  ilUtil::sendFailure($this->lng->txt('select_one'));
585  $this->editInfoObject();
586  return false;
587  }
588 
589  $this->setSubTabs('properties');
590  $this->tabs_gui->setTabActive('settings');
591  $this->tabs_gui->setSubTabActive('crs_info_settings');
592 
593  include_once("Services/Utilities/classes/class.ilConfirmationGUI.php");
594  $c_gui = new ilConfirmationGUI();
595 
596  // set confirm/cancel commands
597  $c_gui->setFormAction($this->ctrl->getFormAction($this, "deleteInfoFiles"));
598  $c_gui->setHeaderText($this->lng->txt("info_delete_sure"));
599  $c_gui->setCancel($this->lng->txt("cancel"), "editInfo");
600  $c_gui->setConfirm($this->lng->txt("confirm"), "deleteInfoFiles");
601 
602  // add items to delete
603  include_once('Modules/Course/classes/class.ilCourseFile.php');
604  foreach ($_POST["file_id"] as $file_id) {
605  $file = new ilCourseFile($file_id);
606  $c_gui->addItem("file_id[]", $file_id, $file->getFileName());
607  }
608 
609  $this->tpl->setContent($c_gui->getHTML());
610  }
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
setSubTabs($a_tab)
set sub tabs
editInfoObject(ilPropertyFormGUI $a_form=null)
Edit info page informations.
$_POST["username"]
Confirmation screen class.
+ Here is the call graph for this function:

◆ confirmLPSync()

ilObjCourseGUI::confirmLPSync ( )
protected

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

References $DIC, and ilObjectGUI\$tpl.

Referenced by updateObject().

1031  {
1032  global $DIC;
1033 
1034  $tpl = $DIC['tpl'];
1035 
1036  include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
1037  $cgui = new ilConfirmationGUI();
1038  $cgui->setFormAction($this->ctrl->getFormAction($this, "setLPSync"));
1039  $cgui->setHeaderText($this->lng->txt("crs_status_determination_sync"));
1040  $cgui->setCancel($this->lng->txt("cancel"), "edit");
1041  $cgui->setConfirm($this->lng->txt("confirm"), "setLPSync");
1042 
1043  $tpl->setContent($cgui->getHTML());
1044  }
$DIC
Definition: xapitoken.php:46
Confirmation screen class.
+ Here is the caller graph for this function:

◆ createMailSignature()

ilObjCourseGUI::createMailSignature ( )

Create a course mail signature.

Returns
string

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

References ilLink\_getLink().

Referenced by infoScreen().

3201  {
3202  $link = chr(13) . chr(10) . chr(13) . chr(10);
3203  $link .= $this->lng->txt('crs_mail_permanent_link');
3204  $link .= chr(13) . chr(10) . chr(13) . chr(10);
3205  include_once './Services/Link/classes/class.ilLink.php';
3206  $link .= ilLink::_getLink($this->object->getRefId());
3207  return rawurlencode(base64_encode($link));
3208  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ deleteInfoFilesObject()

ilObjCourseGUI::deleteInfoFilesObject ( )

Delete info files.

public

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

References $_POST, editInfoObject(), and ilUtil\sendFailure().

619  {
620  if (!count($_POST['file_id'])) {
621  ilUtil::sendFailure($this->lng->txt('select_one'));
622  $this->editInfoObject();
623  return false;
624  }
625  include_once('Modules/Course/classes/class.ilCourseFile.php');
626 
627  foreach ($_POST['file_id'] as $file_id) {
628  $file = new ilCourseFile($file_id);
629  if ($this->object->getId() == $file->getCourseId()) {
630  $file->delete();
631  }
632  }
633  ilUtil::sendSuccess($this->lng->txt('settings_saved'));
634  $this->editInfoObject();
635  return true;
636  }
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
editInfoObject(ilPropertyFormGUI $a_form=null)
Edit info page informations.
$_POST["username"]
+ Here is the call graph for this function:

◆ deliverCertificateObject()

ilObjCourseGUI::deliverCertificateObject ( )

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

References $DIC, $ilUser, $objId, ilCertificatePdfAction\downloadPdf(), and ilUtil\sendFailure().

3277  {
3278  global $DIC;
3279 
3280  $ilUser = $DIC['ilUser'];
3281  $ilAccess = $DIC['ilAccess'];
3282 
3283  $user_id = null;
3284  if ($ilAccess->checkAccess('manage_members', '', $this->ref_id)) {
3285  $user_id = $_REQUEST["member_id"];
3286  }
3287  if (!$user_id) {
3288  $user_id = $ilUser->getId();
3289  }
3290 
3291  $objId = (int) $this->object->getId();
3292 
3293  $validator = new ilCertificateDownloadValidator();
3294 
3295  if (false === $validator->isCertificateDownloadable($user_id, $objId)) {
3296  ilUtil::sendFailure($this->lng->txt("permission_denied"), true);
3297  $this->ctrl->redirect($this);
3298  }
3299 
3300  $repository = new ilUserCertificateRepository();
3301 
3302  $certLogger = $DIC->logger()->cert();
3303  $pdfGenerator = new ilPdfGenerator($repository, $certLogger);
3304 
3305  $pdfAction = new ilCertificatePdfAction(
3306  $certLogger,
3307  $pdfGenerator,
3309  $this->lng->txt('error_creating_certificate_pdf')
3310  );
3311 
3312  $pdfAction->downloadPdf((int) $user_id, $objId);
3313  }
Class ilPdfGeneratorConstantsTest.
$objId
Definition: xapitoken.php:41
Validates if an active certificate is stored in the database and can be downloaded by the user...
$ilUser
Definition: imgupload.php:18
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
Just a wrapper class to create Unit Test for other classes.
$DIC
Definition: xapitoken.php:46
downloadPdf(int $userId, int $objectId)
+ Here is the call graph for this function:

◆ editInfoObject()

ilObjCourseGUI::editInfoObject ( ilPropertyFormGUI  $a_form = null)

Edit info page informations.

public

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

References $DIC, ilObjectGUI\$ilErr, $rows, ilCourseFile\_readFilesByCourse(), ilObjectGUI\checkPermission(), initInfoEditor(), and setSubTabs().

Referenced by confirmDeleteInfoFilesObject(), deleteInfoFilesObject(), and updateInfoObject().

524  {
525  include_once 'Modules/Course/classes/class.ilCourseFile.php';
526 
527  global $DIC;
528 
529  $ilErr = $DIC['ilErr'];
530  $ilAccess = $DIC['ilAccess'];
531 
532  $this->checkPermission('write');
533  /*
534  if(!$ilAccess->checkAccess('write','',$this->object->getRefId()))
535  {
536  $ilErr->raiseError($this->lng->txt('msg_no_perm_read'),$ilErr->MESSAGE);
537  }
538  */
539  $this->setSubTabs('properties');
540  $this->tabs_gui->setTabActive('settings');
541  $this->tabs_gui->setSubTabActive('crs_info_settings');
542 
543  if (!$a_form) {
544  $a_form = $this->initInfoEditor();
545  }
546  $this->tpl->addBlockFile('ADM_CONTENT', 'adm_content', 'tpl.edit_info.html', 'Modules/Course');
547  $this->tpl->setVariable('INFO_TABLE', $a_form->getHTML());
548 
549  if (!count($files = ilCourseFile::_readFilesByCourse($this->object->getId()))) {
550  return true;
551  }
552  $rows = array();
553  foreach ($files as $file) {
554  $table_data['id'] = $file->getFileId();
555  $table_data['filename'] = $file->getFileName();
556  $table_data['filetype'] = $file->getFileType();
557  $table_data['filesize'] = $file->getFileSize();
558 
559  $rows[] = $table_data;
560  }
561 
562  include_once("./Modules/Course/classes/class.ilCourseInfoFileTableGUI.php");
563  $table_gui = new ilCourseInfoFileTableGUI($this, 'editInfo');
564  $table_gui->setTitle($this->lng->txt("crs_info_download"));
565  $table_gui->setData($rows);
566  $table_gui->addCommandButton("cancel", $this->lng->txt("cancel"));
567  $table_gui->addMultiCommand("confirmDeleteInfoFiles", $this->lng->txt("delete"));
568  $table_gui->setSelectAllCheckbox("file_id");
569  $this->tpl->setVariable('INFO_FILE_TABLE', $table_gui->getHTML());
570 
571  return true;
572  }
static _readFilesByCourse($a_course_id)
$rows
Definition: xhr_table.php:10
setSubTabs($a_tab)
set sub tabs
$DIC
Definition: xapitoken.php:46
checkPermission($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission and redirect on error.
initInfoEditor()
init info editor
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ editMapSettingsObject()

ilObjCourseGUI::editMapSettingsObject ( )

Edit Map Settings.

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

References $DIC, $ilCtrl, $ilUser, ilMapUtil\getDefaultSettings(), ilMapUtil\isActivated(), ilLocationInputGUI\setLatitude(), setSubTabs(), and ilCheckboxInputGUI\setValue().

2869  {
2870  global $DIC;
2871 
2872  $ilUser = $DIC['ilUser'];
2873  $ilCtrl = $DIC['ilCtrl'];
2874  $ilUser = $DIC['ilUser'];
2875  $ilAccess = $DIC['ilAccess'];
2876 
2877  $this->setSubTabs("properties");
2878  $this->tabs_gui->activateTab('settings');
2879  $this->tabs_gui->activateSubTab('crs_map_settings');
2880 
2881  if (!ilMapUtil::isActivated() ||
2882  !$ilAccess->checkAccess("write", "", $this->object->getRefId())) {
2883  return;
2884  }
2885 
2886  $latitude = $this->object->getLatitude();
2887  $longitude = $this->object->getLongitude();
2888  $zoom = $this->object->getLocationZoom();
2889 
2890  // Get Default settings, when nothing is set
2891  if ($latitude == 0 && $longitude == 0 && $zoom == 0) {
2893  $latitude = $def["latitude"];
2894  $longitude = $def["longitude"];
2895  $zoom = $def["zoom"];
2896  }
2897 
2898  include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
2899  $form = new ilPropertyFormGUI();
2900  $form->setFormAction($ilCtrl->getFormAction($this));
2901 
2902  $form->setTitle($this->lng->txt("crs_map_settings"));
2903 
2904  // enable map
2905  $public = new ilCheckboxInputGUI(
2906  $this->lng->txt("crs_enable_map"),
2907  "enable_map"
2908  );
2909  $public->setValue("1");
2910  $public->setChecked($this->object->getEnableCourseMap());
2911  $form->addItem($public);
2912 
2913  // map location
2914  $loc_prop = new ilLocationInputGUI(
2915  $this->lng->txt("crs_map_location"),
2916  "location"
2917  );
2918  $loc_prop->setLatitude($latitude);
2919  $loc_prop->setLongitude($longitude);
2920  $loc_prop->setZoom($zoom);
2921  $form->addItem($loc_prop);
2922 
2923  $form->addCommandButton("saveMapSettings", $this->lng->txt("save"));
2924 
2925  $this->tpl->setVariable("ADM_CONTENT", $form->getHTML());
2926  //$this->tpl->show();
2927  }
setLatitude($a_latitude)
Set Latitude.
This class represents a property form user interface.
This class represents a checkbox property in a property form.
global $ilCtrl
Definition: ilias.php:18
setValue($a_value)
Set Value.
static getDefaultSettings()
Get default longitude, latitude and zoom.
This class represents a location property in a property form.
$ilUser
Definition: imgupload.php:18
static isActivated()
Checks whether Map feature is activated.
setSubTabs($a_tab)
set sub tabs
$DIC
Definition: xapitoken.php:46
+ Here is the call graph for this function:

◆ editObject()

ilObjCourseGUI::editObject ( ilPropertyFormGUI  $form = null)

edit object

public

Returns

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

References $GLOBALS, and setSubTabs().

1064  {
1065  $this->setSubTabs('properties');
1066  $this->tabs_gui->setSubTabActive('crs_settings');
1067 
1068  if ($form instanceof ilPropertyFormGUI) {
1069  $GLOBALS['DIC']['tpl']->setContent($form->getHTML());
1070  return true;
1071  } else {
1072  parent::editObject();
1073  }
1074  }
This class represents a property form user interface.
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64
setSubTabs($a_tab)
set sub tabs
+ Here is the call graph for this function:

◆ executeCommand()

ilObjCourseGUI::executeCommand ( )

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

References $_GET, $DIC, $GLOBALS, $ilCtrl, ilObjectGUI\$ilErr, $ilUser, ilContainerGUI\$rbacsystem, $ret, $service, ilObjectGUI\$tpl, ilCourseParticipants\_getInstanceByObjId(), ilLink\_getLink(), ilObjCourse\_isActivated(), ilParticipants\_isParticipant(), ilObjCourse\_registrationEnabled(), ilLearningProgress\_tracProgress(), ilObjectGUI\addHeaderAction(), ilObjectServiceSettingsGUI\CALENDAR_VISIBILITY, ilObjectGUI\checkPermission(), ilObjectGUI\checkPermissionBool(), ilContainerGUI\forwardToPageObject(), ilContainerGUI\forwardToStyleSheet(), ilObjectGUI\getCreationMode(), ilNewsTimelineGUI\getInstance(), ilCommonActionDispatcherGUI\getInstanceFromAjaxCall(), getLocalRoles(), infoScreen(), infoScreenObject(), initInfoEditor(), ilLearningProgressBaseGUI\LP_CONTEXT_REPOSITORY, ilCourseConstants\MAIL_ALLOWED_ALL, prepareOutput(), ilLTIProviderObjectSettingGUI\setCustomRolesForSelection(), ilMailMemberSearchGUI\setObjParticipants(), setSubTabs(), ilContainerGUI\showPermanentLink(), and viewObject().

2241  {
2242  global $DIC;
2243 
2244  $rbacsystem = $DIC['rbacsystem'];
2245  $ilUser = $DIC['ilUser'];
2246  $ilAccess = $DIC['ilAccess'];
2247  $ilErr = $DIC['ilErr'];
2248  $ilTabs = $DIC['ilTabs'];
2249  $ilNavigationHistory = $DIC['ilNavigationHistory'];
2250  $ilCtrl = $DIC['ilCtrl'];
2251  $ilToolbar = $DIC['ilToolbar'];
2252 
2253  $next_class = $this->ctrl->getNextClass($this);
2254  $cmd = $this->ctrl->getCmd();
2255 
2256  $this->prepareOutput();
2257 
2258  // add entry to navigation history
2259  if (!$this->getCreationMode() &&
2260  $ilAccess->checkAccess('read', '', $_GET['ref_id'])) {
2261  include_once("./Services/Link/classes/class.ilLink.php");
2262  $ilNavigationHistory->addItem(
2263  $_GET["ref_id"],
2264  ilLink::_getLink($_GET["ref_id"], "crs"),
2265  "crs"
2266  );
2267  }
2268 
2269  $header_action = true;
2270  switch ($next_class) {
2271  case 'ilreputilgui':
2272  $ru = new \ilRepUtilGUI($this);
2273  $this->ctrl->setReturn($this, 'trash');
2274  $this->ctrl->forwardCommand($ru);
2275  break;
2276 
2277  case 'illtiproviderobjectsettinggui':
2278 
2279  $this->setSubTabs('properties');
2280  $this->tabs_gui->activateTab('settings');
2281  $this->tabs_gui->activateSubTab('lti_provider');
2282  $lti_gui = new ilLTIProviderObjectSettingGUI($this->object->getRefId());
2283  $lti_gui->setCustomRolesForSelection($GLOBALS['DIC']->rbac()->review()->getLocalRoles($this->object->getRefId()));
2284  $lti_gui->offerLTIRolesForSelection(false);
2285  $this->ctrl->forwardCommand($lti_gui);
2286  break;
2287 
2288  case 'ilcoursemembershipgui':
2289 
2290  $this->tabs_gui->activateTab('members');
2291 
2292  include_once './Modules/Course/classes/class.ilCourseMembershipGUI.php';
2293  $mem_gui = new ilCourseMembershipGUI($this, $this->object);
2294  $this->ctrl->forwardCommand($mem_gui);
2295  break;
2296 
2297  case "ilinfoscreengui":
2298  $this->infoScreen(); // forwards command
2299  break;
2300 
2301  case 'ilobjectmetadatagui':
2302  if (!$ilAccess->checkAccess('write', '', $this->object->getRefId())) {
2303  $ilErr->raiseError($this->lng->txt('permission_denied'), $ilErr->WARNING);
2304  }
2305  $this->tabs_gui->setTabActive('meta_data');
2306  include_once 'Services/Object/classes/class.ilObjectMetaDataGUI.php';
2307  $md_gui = new ilObjectMetaDataGUI($this->object);
2308  $this->ctrl->forwardCommand($md_gui);
2309  break;
2310 
2311  case 'ilcourseregistrationgui':
2312  $this->ctrl->setReturn($this, '');
2313  $this->tabs_gui->setTabActive('join');
2314  include_once('./Modules/Course/classes/class.ilCourseRegistrationGUI.php');
2315  $registration = new ilCourseRegistrationGUI($this->object, $this);
2316  $this->ctrl->forwardCommand($registration);
2317  break;
2318 
2319  case 'ilobjectcustomuserfieldsgui':
2320  include_once './Services/Membership/classes/class.ilObjectCustomUserFieldsGUI.php';
2321  $cdf_gui = new ilObjectCustomUserFieldsGUI($this->object->getId());
2322  $this->setSubTabs('properties');
2323  $this->tabs_gui->activateTab('settings');
2324  $this->tabs_gui->activateSubTab('crs_custom_user_fields');
2325  $this->ctrl->forwardCommand($cdf_gui);
2326  break;
2327 
2328  case "ilcourseobjectivesgui":
2329  include_once './Modules/Course/classes/class.ilCourseObjectivesGUI.php';
2330 
2331  $this->ctrl->setReturn($this, "");
2332  $reg_gui = new ilCourseObjectivesGUI($this->object->getRefId());
2333  $ret = &$this->ctrl->forwardCommand($reg_gui);
2334  break;
2335 
2336  case 'ilobjcoursegroupinggui':
2337  include_once './Modules/Course/classes/class.ilObjCourseGroupingGUI.php';
2338 
2339  $this->ctrl->setReturn($this, 'edit');
2340  $this->setSubTabs('properties');
2341  $this->tabs_gui->activateTab('settings');
2342  $this->tabs_gui->activateSubTab('groupings');
2343  $crs_grp_gui = new ilObjCourseGroupingGUI($this->object, (int) $_GET['obj_id']);
2344  $this->ctrl->forwardCommand($crs_grp_gui);
2345  break;
2346 
2347 
2348  case "ilpropertyformgui":
2349  // only case is currently adv metadata internal link in info settings, see #24497
2350  $form = $this->initInfoEditor();
2351  $this->ctrl->forwardCommand($form);
2352  break;
2353 
2354  case "ilcolumngui":
2355  $this->tabs_gui->setTabActive('none');
2356  $this->checkPermission("read");
2357  //$this->prepareOutput();
2358  //include_once("./Services/Style/Content/classes/class.ilObjStyleSheet.php");
2359  //$this->tpl->setVariable("LOCATION_CONTENT_STYLESHEET",
2360  // ilObjStyleSheet::getContentStylePath(0));
2361  //$this->renderObject();
2362  $this->viewObject();
2363  break;
2364 
2365  case "ilconditionhandlergui":
2366  include_once './Services/Conditions/classes/class.ilConditionHandlerGUI.php';
2367  // preconditions for whole course
2368  $this->setSubTabs("properties");
2369  $this->tabs_gui->activateTab('settings');
2370  $this->tabs_gui->activateSubTab('preconditions');
2371  $new_gui = new ilConditionHandlerGUI($this);
2372  $this->ctrl->forwardCommand($new_gui);
2373  break;
2374 
2375  case "illearningprogressgui":
2376  include_once './Services/Tracking/classes/class.ilLearningProgressGUI.php';
2377 
2378  $new_gui = new ilLearningProgressGUI(
2380  $this->object->getRefId(),
2381  $_GET['user_id'] ? $_GET['user_id'] : $ilUser->getId()
2382  );
2383  $this->ctrl->forwardCommand($new_gui);
2384  $this->tabs_gui->setTabActive('learning_progress');
2385  break;
2386 
2387  case 'ilpermissiongui':
2388  include_once("Services/AccessControl/classes/class.ilPermissionGUI.php");
2389  $this->tabs_gui->setTabActive('perm_settings');
2390  $perm_gui = new ilPermissionGUI($this);
2391  $ret = &$this->ctrl->forwardCommand($perm_gui);
2392  break;
2393 
2394  case 'ilcalendarpresentationgui':
2395  include_once('./Services/Calendar/classes/class.ilCalendarPresentationGUI.php');
2396  $cal = new ilCalendarPresentationGUI($this->object->getRefId());
2397  $ret = $this->ctrl->forwardCommand($cal);
2398  $header_action = false;
2399  break;
2400 
2401  case 'ilcoursecontentinterface':
2402 
2403  $this->initCourseContentInterface();
2404  $this->cci_obj->cci_setContainer($this);
2405 
2406  $this->ctrl->forwardCommand($this->cci_obj);
2407  $this->setSubTabs('content');
2408  $this->tabs_gui->setTabActive('content');
2409  break;
2410 
2411  case 'ilcoursecontentgui':
2412  $this->ctrl->setReturn($this, 'members');
2413  include_once './Modules/Course/classes/class.ilCourseContentGUI.php';
2414  $course_content_obj = new ilCourseContentGUI($this);
2415  $this->ctrl->forwardCommand($course_content_obj);
2416  break;
2417 
2418  case 'ilpublicuserprofilegui':
2419  $this->tpl->enableDragDropFileUpload(null);
2420  require_once './Services/User/classes/class.ilPublicUserProfileGUI.php';
2421  $this->setSubTabs('members');
2422  $this->tabs_gui->setTabActive('members');
2423  $profile_gui = new ilPublicUserProfileGUI($_GET["user"]);
2424  $profile_gui->setBackUrl($this->ctrl->getLinkTargetByClass(["ilCourseMembershipGUI", "ilUsersGalleryGUI"], 'view'));
2425  $this->tabs_gui->setSubTabActive('crs_members_gallery');
2426  $html = $this->ctrl->forwardCommand($profile_gui);
2427  $this->tpl->setVariable("ADM_CONTENT", $html);
2428  break;
2429 
2430 
2431  case 'ilmemberagreementgui':
2432  include_once('Services/Membership/classes/class.ilMemberAgreementGUI.php');
2433  $this->tabs_gui->clearTargets();
2434 
2435  $this->ctrl->setReturn($this, '');
2436  $agreement = new ilMemberAgreementGUI($this->object->getRefId());
2437  $this->ctrl->forwardCommand($agreement);
2438  break;
2439 
2440 
2441  // container page editing
2442  case "ilcontainerpagegui":
2443  $ret = $this->forwardToPageObject();
2444  if ($ret != "") {
2445  $this->tpl->setContent($ret);
2446  }
2447  break;
2448 
2449  case "ilcontainerstartobjectspagegui":
2450  // file downloads, etc. (currently not active)
2451  include_once "Services/Container/classes/class.ilContainerStartObjectsPageGUI.php";
2452  $pgui = new ilContainerStartObjectsPageGUI($this->object->getId());
2453  $ret = $this->ctrl->forwardCommand($pgui);
2454  if ($ret) {
2455  $this->tpl->setContent($ret);
2456  }
2457  break;
2458 
2459  case 'ilobjectcopygui':
2460  include_once './Services/Object/classes/class.ilObjectCopyGUI.php';
2461  $cp = new ilObjectCopyGUI($this);
2462  $cp->setType('crs');
2463  $this->ctrl->forwardCommand($cp);
2464  break;
2465 
2466  case "ilobjstylesheetgui":
2467  $this->forwardToStyleSheet();
2468  break;
2469 
2470 
2471  case 'ilexportgui':
2472  $this->tabs_gui->setTabActive('export');
2473  include_once './Services/Export/classes/class.ilExportGUI.php';
2474  $exp = new ilExportGUI($this);
2475  $exp->addFormat('xml');
2476  $this->ctrl->forwardCommand($exp);
2477  break;
2478 
2479  case "ilcommonactiondispatchergui":
2480  include_once("Services/Object/classes/class.ilCommonActionDispatcherGUI.php");
2482  $this->ctrl->forwardCommand($gui);
2483  break;
2484 
2485  case 'ildidactictemplategui':
2486  $this->ctrl->setReturn($this, 'edit');
2487  include_once './Services/DidacticTemplate/classes/class.ilDidacticTemplateGUI.php';
2488  $did = new ilDidacticTemplateGUI($this);
2489  $this->ctrl->forwardCommand($did);
2490  break;
2491 
2492  case "ilcertificategui":
2493  $this->tabs_gui->activateTab("settings");
2494  $this->setSubTabs("properties");
2495  $this->tabs_gui->activateSubTab('certificate');
2496 
2497  $guiFactory = new ilCertificateGUIFactory();
2498  $output_gui = $guiFactory->create($this->object);
2499  $this->ctrl->forwardCommand($output_gui);
2500  break;
2501 
2502  case 'ilobjectservicesettingsgui':
2503  $this->ctrl->setReturn($this, 'edit');
2504  $this->setSubTabs("properties");
2505  $this->tabs_gui->activateTab('settings');
2506  $this->tabs_gui->acltivateSubTab('tool_settings');
2507 
2508  include_once './Services/Object/classes/class.ilObjectServiceSettingsGUI.php';
2510  $this,
2511  $this->object->getId(),
2512  array(
2514  )
2515  );
2516  $this->ctrl->forwardCommand($service);
2517  break;
2518 
2519  case 'illoeditorgui':
2520  #$this->tabs_gui->clearTargets();
2521  #$this->tabs_gui->setBackTarget($this->lng->txt('back'),$this->ctrl->getLinkTarget($this,''));
2522  $this->tabs_gui->activateTab('crs_objectives');
2523 
2524  include_once './Modules/Course/classes/Objectives/class.ilLOEditorGUI.php';
2525  $editor = new ilLOEditorGUI($this->object);
2526  $this->ctrl->forwardCommand($editor);
2527  break;
2528 
2529  case 'ilcontainerstartobjectsgui':
2530  $this->ctrl->setReturn($this, 'edit');
2531  $this->tabs_gui->clearTargets();
2532  $this->tabs_gui->setBackTarget(
2533  $this->lng->txt("back_to_crs_content"),
2534  $this->ctrl->getLinkTarget($this, "edit")
2535  );
2536  $this->tabs_gui->addTab(
2537  "start",
2538  $this->lng->txt("crs_start_objects"),
2539  $this->ctrl->getLinkTargetByClass("ilcontainerstartobjectsgui", "listStructure")
2540  );
2541  global $DIC;
2542 
2543  $ilHelp = $DIC['ilHelp'];
2544  $ilHelp->setScreenIdComponent("crs");
2545 
2546  include_once './Services/Container/classes/class.ilContainerStartObjectsGUI.php';
2547  $stgui = new ilContainerStartObjectsGUI($this->object);
2548  $this->ctrl->forwardCommand($stgui);
2549  break;
2550 
2551  case 'illomembertestresultgui':
2552  include_once './Modules/Course/classes/Objectives/class.ilLOMemberTestResultGUI.php';
2553  $GLOBALS['DIC']['ilCtrl']->setReturn($this, 'members');
2554  $GLOBALS['DIC']['ilTabs']->clearTargets();
2555  $GLOBALS['DIC']['ilTabs']->setBackTarget(
2556  $GLOBALS['DIC']['lng']->txt('back'),
2557  $GLOBALS['DIC']['ilCtrl']->getLinkTarget($this, 'members')
2558  );
2559 
2560  $result_view = new ilLOMemberTestResultGUI($this, $this->object, (int) $_REQUEST['uid']);
2561  $this->ctrl->forwardCommand($result_view);
2562  break;
2563 
2564  case 'ilmailmembersearchgui':
2565  include_once 'Services/Mail/classes/class.ilMail.php';
2566  $mail = new ilMail($ilUser->getId());
2567 
2568  if (
2569  !($this->object->getMailToMembersType() == ilCourseConstants::MAIL_ALLOWED_ALL ||
2570  $ilAccess->checkAccess('manage_members', "", $this->object->getRefId())) &&
2571  $rbacsystem->checkAccess('internal_mail', $mail->getMailObjectReferenceId())) {
2572  $ilErr->raiseError($this->lng->txt("msg_no_perm_read"), $ilErr->MESSAGE);
2573  }
2574 
2575  $this->tabs_gui->setTabActive('members');
2576 
2577  include_once './Services/Contact/classes/class.ilMailMemberSearchGUI.php';
2578  include_once './Services/Contact/classes/class.ilMailMemberCourseRoles.php';
2579 
2580  $mail_search = new ilMailMemberSearchGUI($this, $this->object->getRefId(), new ilMailMemberCourseRoles());
2581  $mail_search->setObjParticipants(
2582  ilCourseParticipants::_getInstanceByObjId($this->object->getId())
2583  );
2584  $this->ctrl->forwardCommand($mail_search);
2585  break;
2586 
2587  case 'ilbadgemanagementgui':
2588  $this->tabs_gui->setTabActive('obj_tool_setting_badges');
2589  include_once 'Services/Badge/classes/class.ilBadgeManagementGUI.php';
2590  $bgui = new ilBadgeManagementGUI($this->object->getRefId(), $this->object->getId(), 'crs');
2591  $this->ctrl->forwardCommand($bgui);
2592  break;
2593 
2594  case "ilcontainernewssettingsgui":
2595  $this->setSubTabs("properties");
2596  $this->tabs_gui->activateTab('settings');
2597  $this->tabs_gui->activateSubTab('obj_news_settings');
2598  $news_set_gui = new ilContainerNewsSettingsGUI($this);
2599  $news_set_gui->setTimeline(true);
2600  $news_set_gui->setCronNotifications(true);
2601  $news_set_gui->setHideByDate(true);
2602  $this->ctrl->forwardCommand($news_set_gui);
2603  break;
2604 
2605  case "ilnewstimelinegui":
2606  $this->tabs_gui->setTabActive('news_timeline');
2607  include_once("./Services/News/classes/class.ilNewsTimelineGUI.php");
2608  $t = ilNewsTimelineGUI::getInstance($this->object->getRefId(), $this->object->getNewsTimelineAutoENtries());
2609  $t->setUserEditAll($ilAccess->checkAccess('write', '', $this->object->getRefId(), 'grp'));
2610  $this->showPermanentLink($tpl);
2611  $this->ctrl->forwardCommand($t);
2612  include_once 'Services/Tracking/classes/class.ilLearningProgress.php';
2614  $ilUser->getId(),
2615  $this->object->getId(),
2616  $this->object->getRefId(),
2617  'crs'
2618  );
2619  break;
2620 
2621  case 'ilmemberexportsettingsgui':
2622  $this->setSubTabs('properties');
2623  $this->tabs_gui->activateTab('properties');
2624  $this->tabs_gui->activateSubTab('export_members');
2625  include_once './Services/Membership/classes/Export/class.ilMemberExportSettingsGUI.php';
2626  $settings_gui = new ilMemberExportSettingsGUI($this->object->getType(), $this->object->getId());
2627  $this->ctrl->forwardCommand($settings_gui);
2628  break;
2629 
2630 
2631  case "ilcontainerskillgui":
2632  $this->tabs_gui->activateTab('obj_tool_setting_skills');
2633  include_once("./Services/Container/Skills/classes/class.ilContainerSkillGUI.php");
2634  $gui = new ilContainerSkillGUI($this);
2635  $this->ctrl->forwardCommand($gui);
2636  break;
2637 
2638 
2639  case 'ilobjecttranslationgui':
2640  $this->checkPermissionBool("write");
2641  $this->setSubTabs("properties");
2642  $this->tabs_gui->activateTab("settings");
2643  $this->tabs_gui->activateSubTab("obj_multilinguality");
2644  include_once("./Services/Object/classes/class.ilObjectTranslationGUI.php");
2645  $transgui = new ilObjectTranslationGUI($this);
2646  $this->ctrl->forwardCommand($transgui);
2647  break;
2648 
2649  case "ilbookinggatewaygui":
2650  $this->tabs_gui->activateTab('obj_tool_setting_booking');
2651  $gui = new ilBookingGatewayGUI($this);
2652  $this->ctrl->forwardCommand($gui);
2653  break;
2654 
2655  default:
2656 /* if(!$this->creation_mode)
2657  {
2658  $this->checkPermission('visible');
2659  }*/
2660  /*
2661  if(!$this->creation_mode and !$ilAccess->checkAccess('visible','',$this->object->getRefId(),'crs'))
2662  {
2663  $ilErr->raiseError($this->lng->txt("msg_no_perm_read"),$ilErr->MESSAGE);
2664  }
2665  */
2666 
2667  // #9401 - see also ilStartupGUI::_checkGoto()
2668  if ($cmd == 'infoScreenGoto') {
2669  if (ilObjCourse::_isActivated($this->object->getId()) &&
2670  ilObjCourse::_registrationEnabled($this->object->getId())) {
2671  $cmd = 'join';
2672  } else {
2673  $cmd = 'infoScreen';
2674  }
2675  }
2676 
2677  if (!$this->creation_mode) {
2678  if ($cmd == "infoScreen") {
2679  $this->checkPermission("visible");
2680  } else {
2681  // $this->checkPermission("read");
2682  }
2683  }
2684 
2685 
2686  if (!$this->creation_mode
2687  && $cmd != 'infoScreen'
2688  && $cmd != 'sendfile'
2689  && $cmd != 'unsubscribe'
2690  && $cmd != 'deliverCertificate'
2691  && $cmd != 'performUnsubscribe'
2692  && !$ilAccess->checkAccess("read", '', $this->object->getRefId())
2693  || $cmd == 'join'
2694  || $cmd == 'subscribe') {
2695  include_once './Modules/Course/classes/class.ilCourseParticipants.php';
2696  if ($rbacsystem->checkAccess('join', $this->object->getRefId()) &&
2697  !ilCourseParticipants::_isParticipant($this->object->getRefId(), $ilUser->getId())) {
2698  include_once('./Modules/Course/classes/class.ilCourseRegistrationGUI.php');
2699  $this->ctrl->redirectByClass("ilCourseRegistrationGUI");
2700  } else {
2701  $this->infoScreenObject();
2702  break;
2703  }
2704  }
2705 
2706  if ($cmd == 'listObjectives') {
2707  include_once './Modules/Course/classes/class.ilCourseObjectivesGUI.php';
2708 
2709  $this->ctrl->setReturn($this, "");
2710  $obj_gui = new ilCourseObjectivesGUI($this->object->getRefId());
2711  $ret = &$this->ctrl->forwardCommand($obj_gui);
2712  break;
2713  }
2714 
2715  // cognos-blu-patch: begin
2716  // cognos-blu-patch: end
2717 
2718  // if news timeline is landing page, redirect if necessary
2719  if ($cmd == "" && $this->object->isNewsTimelineLandingPageEffective()) {
2720  $this->ctrl->redirectbyclass("ilnewstimelinegui");
2721  }
2722 
2723  if (!$cmd) {
2724  $cmd = 'view';
2725  }
2726  $cmd .= 'Object';
2727  $this->$cmd();
2728 
2729  break;
2730  }
2731 
2732  if ($header_action) {
2733  $this->addHeaderAction();
2734  }
2735 
2736  return true;
2737  }
static _isParticipant($a_ref_id, $a_usr_id)
Static function to check if a user is a participant of the container object.
Class ilObjectMetaDataGUI.
class ilConditionHandlerGUI
Container start objects page GUI class.
Class ilBadgeManagementGUI.
GUI class for the workflow of copying objects.
$_GET["client_id"]
static _registrationEnabled($a_obj_id)
Registration enabled? Method is in Access class, since it is needed by Access/ListGUI.
Class ilLOEditorGUI.
static _getInstanceByObjId($a_obj_id)
Get singleton instance.
getLocalRoles($a_exclude=array())
static _tracProgress($a_user_id, $a_obj_id, $a_ref_id, $a_obj_type='')
This class is used for inegration of the booking manager as a service into other repository objects...
Class ilMailMemberSearchGUI.
global $ilCtrl
Definition: ilias.php:18
Export User Interface Class.
setCustomRolesForSelection($a_roles)
Set custom roles for mapping to LTI roles.
GUI class for public user profile presentation.
prepareOutput($a_show_subobjects=true)
Handle member view.
Class ilMailMemberCourseRoles.
class ilobjcourseobjectivesgui
GUI class for didactic template settings inside repository objects.
GUI class for LTI provider object settings.
Skills for container (course/group) (top gui class)
$service
Definition: result.php:17
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64
forwardToStyleSheet()
Forward to style object.
& forwardToPageObject()
forward command to page object
$ilUser
Definition: imgupload.php:18
showPermanentLink()
show permanent link
Class ilObjCourseGroupingGUI.
GUI class for course registrations.
setSubTabs($a_tab)
set sub tabs
static _isActivated($a_obj_id)
Is activated.
Class ilCourseContentGUI.
$ret
Definition: parser.php:6
$DIC
Definition: xapitoken.php:46
getCreationMode()
get creation mode
checkPermission($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission and redirect on error.
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
GUI class for service settings (calendar, notes, comments)
infoScreenObject()
this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually...
addHeaderAction()
Add header action menu.
infoScreen()
Show info screen.
checkPermissionBool($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission.
Class ilObjUserTrackingGUI.
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
Class ilContainerStartObjectsGUI.
GUI class for object translation handling.
initInfoEditor()
init info editor
static getInstance($a_ref_id, $a_include_auto_entries)
Get instance.
+ Here is the call graph for this function:

◆ gatewayObject()

ilObjCourseGUI::gatewayObject ( )

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

References $_POST, and viewObject().

65  {
66  switch ($_POST["action"]) {
67 
68  case "deleteSubscribers":
69  $this->deleteSubscribers();
70  break;
71 
72  case "addSubscribers":
73  $this->addSubscribers();
74  break;
75 
76  case "addFromWaitingList":
77  $this->addFromWaitingList();
78  break;
79 
80  case "removeFromWaitingList":
81  $this->removeFromWaitingList();
82  break;
83 
84  default:
85  $this->viewObject();
86  break;
87  }
88  return true;
89  }
$_POST["username"]
+ Here is the call graph for this function:

◆ getAgreementTabs()

ilObjCourseGUI::getAgreementTabs ( )
protected

Get tabs for member agreement.

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

References $GLOBALS.

1966  {
1967  if ($GLOBALS['DIC']['ilAccess']->checkAccess('visible', '', $this->ref_id)) {
1968  $GLOBALS['DIC']['ilTabs']->addTarget(
1969  "info_short",
1970  $this->ctrl->getLinkTargetByClass(
1971  array("ilobjcoursegui", "ilinfoscreengui"),
1972  "showSummary"
1973  ),
1974  "infoScreen"
1975  );
1976  }
1977  if ($GLOBALS['DIC']['ilAccess']->checkAccess('leave', '', $this->object->getRefId()) and $this->object->getMemberObject()->isMember()) {
1978  $GLOBALS['DIC']['ilTabs']->addTarget(
1979  "crs_unsubscribe",
1980  $this->ctrl->getLinkTarget($this, "unsubscribe"),
1981  'leave',
1982  ""
1983  );
1984  }
1985  }
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64

◆ getEditFormValues()

ilObjCourseGUI::getEditFormValues ( )
protected

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

1544  {
1545  // values are done in initEditForm()
1546  }

◆ getLocalRoles()

ilObjCourseGUI::getLocalRoles (   $a_exclude = array())

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

References ilObjRole\_getTranslation(), and hasAdminPermission().

Referenced by executeCommand().

3453  {
3454  $crs_admin = $this->object->getDefaultAdminRole();
3455  $crs_member = $this->object->getDefaultMemberRole();
3456  $local_roles = $this->object->getLocalCourseRoles(false);
3457  $crs_roles = array();
3458 
3459  //put the course member role to the top of the crs_roles array
3460  if (in_array($crs_member, $local_roles)) {
3461  #$crs_roles[$crs_member] = ilObjRole::_getTranslation(array_search ($crs_member, $local_roles));
3462  #unset($local_roles[$crs_roles[$crs_member]]);
3463  }
3464 
3465  foreach ($local_roles as $title => $role_id) {
3466  if ($role_id == $crs_admin && !$this->hasAdminPermission()) {
3467  continue;
3468  }
3469 
3470  $crs_roles[$role_id] = ilObjRole::_getTranslation($title);
3471  }
3472 
3473  if (count($a_exclude) > 0) {
3474  foreach ($a_exclude as $excluded_role) {
3475  if (isset($crs_roles[$excluded_role])) {
3476  unset($crs_roles[$excluded_role]);
3477  }
3478  }
3479  }
3480  return $crs_roles;
3481  }
hasAdminPermission()
user has admin permission or "edit permission" permission on this course
static _getTranslation($a_role_title)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getTabs()

ilObjCourseGUI::getTabs ( )

Get tabs.

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

References $_GET, $DIC, $GLOBALS, $ilUser, ilObjectGUI\$lng, ilCourseObjective\_getCountObjectives(), ilWaitingList\_isOnList(), ilParticipants\_isParticipant(), ilContainer\_lookupContainerSetting(), addContentTab(), ilObjectServiceSettingsGUI\BOOKING, ilLearningProgressAccess\checkAccess(), ilBadgeHandler\getInstance(), IL_CRS_VIEW_OBJECTIVE, IL_CRS_VIEW_TIMING, and ilObjectServiceSettingsGUI\SKILLS.

2006  {
2007  global $DIC;
2008 
2009  $ilUser = $DIC['ilUser'];
2010  $lng = $DIC['lng'];
2011  $ilHelp = $DIC['ilHelp'];
2012 
2013  $ilAccess = $GLOBALS['DIC']->access();
2014 
2015  $ilHelp->setScreenIdComponent("crs");
2016 
2017  $this->ctrl->setParameter($this, "ref_id", $this->ref_id);
2018 
2019  if ($ilAccess->checkAccess('read', '', $this->ref_id)) {
2020  // default activation
2021  $this->tabs_gui->activateTab('view_content');
2022  if ($this->object->isNewsTimelineEffective()) {
2023  if (!$this->object->isNewsTimelineLandingPageEffective()) {
2024  $this->addContentTab();
2025  }
2026  $this->tabs_gui->addTab(
2027  "news_timeline",
2028  $lng->txt("cont_news_timeline_tab"),
2029  $this->ctrl->getLinkTargetByClass("ilnewstimelinegui", "show")
2030  );
2031  if ($this->object->isNewsTimelineLandingPageEffective()) {
2032  $this->addContentTab();
2033  }
2034  } else {
2035  $this->addContentTab();
2036  }
2037  }
2038 
2039  if ($this->object->getViewMode() == IL_CRS_VIEW_TIMING and
2040  $ilAccess->checkAccess('write', '', $this->ref_id)
2041  ) {
2042  $this->tabs->addTab(
2043  'timings_timings',
2044  $lng->txt('timings_timings'),
2045  $this->ctrl->getLinkTargetByClass('ilcoursecontentgui', 'manageTimings')
2046  );
2047  } elseif (
2048  $this->object->getViewMode() == IL_CRS_VIEW_TIMING and
2049  $this->object->getMemberObject()->isParticipant() and
2050  $ilAccess->checkAccess('read', '', $this->ref_id)) {
2051  $this->tabs->addTab(
2052  'timings_timings',
2053  $lng->txt('timings_timings'),
2054  $this->ctrl->getLinkTargetByClass('ilcoursecontentgui', 'managePersonalTimings')
2055  );
2056  }
2057 
2058 
2059 
2060  // learning objectives
2061  if ($ilAccess->checkAccess('write', '', $this->ref_id)) {
2062  include_once('./Modules/Course/classes/class.ilCourseObjective.php');
2063  if ($this->object->getViewMode() == IL_CRS_VIEW_OBJECTIVE or ilCourseObjective::_getCountObjectives($this->object->getId())) {
2064  $this->tabs_gui->addTarget(
2065  'crs_objectives',
2066  $this->ctrl->getLinkTargetByClass('illoeditorgui', ''),
2067  'illoeditorgui'
2068  );
2069  }
2070  }
2071 
2072  if (
2073  $ilAccess->checkAccess('visible', '', $this->ref_id) ||
2074  $ilAccess->checkAccess('join', '', $this->ref_id) ||
2075  $ilAccess->checkAccess('read', '', $this->ref_id)
2076  ) {
2077  //$next_class = $this->ctrl->getNextClass($this);
2078 
2079  // this is not nice. tabs should be displayed in ilcoursegui
2080  // not via ilrepositorygui, then next_class == ilinfoscreengui
2081  // could be checked
2082  $force_active = (strtolower($_GET["cmdClass"]) == "ilinfoscreengui"
2083  || strtolower($_GET["cmdClass"]) == "ilnotegui")
2084  ? true
2085  : false;
2086  $this->tabs_gui->addTarget(
2087  "info_short",
2088  $this->ctrl->getLinkTargetByClass(
2089  array("ilobjcoursegui", "ilinfoscreengui"),
2090  "showSummary"
2091  ),
2092  "infoScreen",
2093  "",
2094  "",
2095  $force_active
2096  );
2097  }
2098  if ($ilAccess->checkAccess('write', '', $this->ref_id)) {
2099  $force_active = (strtolower($_GET["cmdClass"]) == "ilconditionhandlergui"
2100  && $_GET["item_id"] == "")
2101  ? true
2102  : false;
2103  $this->tabs_gui->addTarget(
2104  "settings",
2105  $this->ctrl->getLinkTarget($this, "edit"),
2106  array("edit", "editMapSettings", "editCourseIcons", "listStructure"),
2107  "",
2108  "",
2109  $force_active
2110  );
2111  }
2112 
2113 
2114  $is_participant = ilCourseParticipants::_isParticipant($this->ref_id, $ilUser->getId());
2115  include_once './Services/Mail/classes/class.ilMail.php';
2116  $mail = new ilMail($GLOBALS['DIC']['ilUser']->getId());
2117 
2118  include_once './Modules/Course/classes/class.ilCourseMembershipGUI.php';
2119  $membership_gui = new ilCourseMembershipGUI($this, $this->object);
2120  $membership_gui->addMemberTab($this->tabs_gui, $is_participant);
2121 
2122  // badges
2123  if ($ilAccess->checkAccess('write', '', $this->ref_id)) {
2124  include_once 'Services/Badge/classes/class.ilBadgeHandler.php';
2125  if (ilBadgeHandler::getInstance()->isObjectActive($this->object->getId())) {
2126  $this->tabs_gui->addTarget(
2127  "obj_tool_setting_badges",
2128  $this->ctrl->getLinkTargetByClass("ilbadgemanagementgui", ""),
2129  "",
2130  "ilbadgemanagementgui"
2131  );
2132  }
2133  }
2134 
2135  // skills
2136  include_once("./Services/Object/classes/class.ilObjectServiceSettingsGUI.php");
2137  if ($ilAccess->checkAccess('read', '', $this->ref_id) && ilContainer::_lookupContainerSetting(
2138  $this->object->getId(),
2140  false
2141  )) {
2142  $skmg_set = new ilSetting("skmg");
2143  if ($skmg_set->get("enable_skmg")) {
2144  $this->tabs_gui->addTarget(
2145  "obj_tool_setting_skills",
2146  $this->ctrl->getLinkTargetByClass(array("ilcontainerskillgui", "ilcontskillpresentationgui"), ""),
2147  "",
2148  array("ilcontainerskillgui", "ilcontskillpresentationgui", "ilcontskilladmingui")
2149  );
2150  }
2151  }
2152 
2153  // booking
2154  if ($ilAccess->checkAccess('write', '', $this->ref_id) && ilContainer::_lookupContainerSetting(
2155  $this->object->getId(),
2157  false
2158  )) {
2159  $this->tabs_gui->addTarget(
2160  "obj_tool_setting_booking",
2161  $this->ctrl->getLinkTargetByClass(array("ilbookinggatewaygui"), "")
2162  );
2163  }
2164 
2165  // learning progress
2166  include_once './Services/Tracking/classes/class.ilLearningProgressAccess.php';
2167  if (ilLearningProgressAccess::checkAccess($this->object->getRefId(), $is_participant)) {
2168  $this->tabs_gui->addTarget(
2169  'learning_progress',
2170  $this->ctrl->getLinkTargetByClass(array('ilobjcoursegui','illearningprogressgui'), ''),
2171  '',
2172  array('illplistofobjectsgui','illplistofsettingsgui','illearningprogressgui','illplistofprogressgui')
2173  );
2174  }
2175 
2176  // meta data
2177  if ($ilAccess->checkAccess('write', '', $this->ref_id)) {
2178  include_once "Services/Object/classes/class.ilObjectMetaDataGUI.php";
2179  $mdgui = new ilObjectMetaDataGUI($this->object);
2180  $mdtab = $mdgui->getTab();
2181  if ($mdtab) {
2182  $this->tabs_gui->addTarget(
2183  "meta_data",
2184  $mdtab,
2185  "",
2186  "ilobjectmetadatagui"
2187  );
2188  }
2189  }
2190 
2191  if ($ilAccess->checkAccess('write', '', $this->object->getRefId())) {
2192  $this->tabs_gui->addTarget(
2193  'export',
2194  $this->ctrl->getLinkTargetByClass('ilexportgui', ''),
2195  'export',
2196  'ilexportgui'
2197  );
2198  }
2199 
2200  if ($ilAccess->checkAccess('edit_permission', '', $this->ref_id)) {
2201  $this->tabs_gui->addTarget(
2202  "perm_settings",
2203  $this->ctrl->getLinkTargetByClass(array(get_class($this),'ilpermissiongui'), "perm"),
2204  array("perm","info","owner"),
2205  'ilpermissiongui'
2206  );
2207  }
2208 
2209  // Join/Leave
2210  if ($ilAccess->checkAccess('join', '', $this->ref_id)
2211  and !$this->object->getMemberObject()->isAssigned()) {
2212  include_once './Modules/Course/classes/class.ilCourseWaitingList.php';
2213  if (ilCourseWaitingList::_isOnList($ilUser->getId(), $this->object->getId())) {
2214  $this->tabs_gui->addTab(
2215  'leave',
2216  $this->lng->txt('membership_leave'),
2217  $this->ctrl->getLinkTargetByClass('ilcourseregistrationgui', 'show', '')
2218  );
2219  } else {
2220  $this->tabs_gui->addTarget(
2221  "join",
2222  $this->ctrl->getLinkTargetByClass('ilcourseregistrationgui', "show"),
2223  'show',
2224  ""
2225  );
2226  }
2227  }
2228  if ($ilAccess->checkAccess('leave', '', $this->object->getRefId())
2229  and $this->object->getMemberObject()->isMember()) {
2230  $this->tabs_gui->addTarget(
2231  "crs_unsubscribe",
2232  $this->ctrl->getLinkTarget($this, "unsubscribe"),
2233  'leave',
2234  ""
2235  );
2236  }
2237  }
static _isParticipant($a_ref_id, $a_usr_id)
Static function to check if a user is a participant of the container object.
Class ilObjectMetaDataGUI.
const IL_CRS_VIEW_OBJECTIVE
$_GET["client_id"]
const IL_CRS_VIEW_TIMING
static checkAccess($a_ref_id, $a_allow_only_read=true)
check access to learning progress
addContentTab()
Add content tab.
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64
$ilUser
Definition: imgupload.php:18
static _isOnList($a_usr_id, $a_obj_id)
Check if a user on the waiting list.
static _getCountObjectives($a_obj_id, $a_activated_only=false)
get count objectives
$DIC
Definition: xapitoken.php:46
static _lookupContainerSetting($a_id, $a_keyword, $a_default_value=null)
Lookup a container setting.
static getInstance()
Constructor.
+ Here is the call graph for this function:

◆ hasAdminPermission()

ilObjCourseGUI::hasAdminPermission ( )
protected

user has admin permission or "edit permission" permission on this course

Returns
bool

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

References $DIC, $ilUser, ilCourseParticipant\_getInstanceByObjId(), and ilObjectGUI\checkPermissionBool().

Referenced by getLocalRoles().

3488  {
3489  global $DIC;
3490 
3491  $ilUser = $DIC['ilUser'];
3492  return ilCourseParticipant::_getInstanceByObjId($this->object->getId(), $ilUser->getId())->isAdmin()
3493  or $this->checkPermissionBool('edit_permission');
3494  }
$ilUser
Definition: imgupload.php:18
static _getInstanceByObjId($a_obj_id, $a_usr_id)
Get singleton instance.
$DIC
Definition: xapitoken.php:46
checkPermissionBool($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ infoScreen()

ilObjCourseGUI::infoScreen ( )

Show info screen.

Exceptions

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

References $_GET, Vendor\Package\$c, $DIC, $email, ilObjectGUI\$ilErr, $ilSetting, $ilUser, ilObjectGUI\$tpl, $txt, ilCourseDefinedFieldDefinition\_fieldsToInfoString(), ilMDUtils\_fillHTMLMetaTags(), ilCourseDefinedFieldDefinition\_getFields(), ilPrivacySettings\_getInstance(), ilExportFieldsInfo\_getInstanceByType(), ilCourseFile\_readFilesByCourse(), ilObjectGUI\checkPermission(), ilObjectGUI\checkPermissionBool(), ilMailFormCall\CONTEXT_KEY, createMailSignature(), ilDatePresentation\formatDate(), ilDatePresentation\formatPeriod(), ilParticipants\getInstanceByObjId(), ilMailFormCall\getLinkTarget(), ilCourseMailTemplateMemberContext\ID, IL_CAL_UNIX, IL_CRS_SUBSCRIPTION_CONFIRMATION, IL_CRS_SUBSCRIPTION_DEACTIVATED, IL_CRS_SUBSCRIPTION_DIRECT, IL_CRS_SUBSCRIPTION_PASSWORD, ilObjCourseAccess\lookupRegistrationInfo(), ilUtil\makeClickable(), ilAdvancedMDRecordGUI\MODE_INFO, and ilAdvancedMDRecordGUI\setInfoObject().

Referenced by executeCommand(), and infoScreenObject().

217  {
218  global $DIC;
219 
220  $ilErr = $DIC['ilErr'];
221  $ilAccess = $DIC['ilAccess'];
222  $ilUser = $DIC['ilUser'];
223  $ilSetting = $DIC['ilSetting'];
224 
225  if (!$this->checkPermissionBool('read')) {
226  $this->checkPermission('visible');
227  }
228 
229  // Fill meta header tags
230  include_once('Services/MetaData/classes/class.ilMDUtils.php');
231  ilMDUtils::_fillHTMLMetaTags($this->object->getId(), $this->object->getId(), 'crs');
232 
233  $this->tabs_gui->setTabActive('info_short');
234 
235  include_once("./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
236  include_once 'Modules/Course/classes/class.ilCourseFile.php';
237 
238  $files = &ilCourseFile::_readFilesByCourse($this->object->getId());
239 
240  $info = new ilInfoScreenGUI($this);
241  $info->enablePrivateNotes();
242  $info->enableFeedback();
243  $info->enableNews();
244  $info->enableBookingInfo(true);
245  if ($ilAccess->checkAccess("write", "", $_GET["ref_id"])) {
246  $info->enableNewsEditing();
247  }
248 
249  if (
250  strlen($this->object->getImportantInformation()) ||
251  strlen($this->object->getSyllabus()) ||
252  strlen($this->object->getTargetGroup()) ||
253  count($files)) {
254  $info->addSection($this->lng->txt('crs_general_informations'));
255  }
256 
257  if (strlen($this->object->getImportantInformation())) {
258  $info->addProperty(
259  $this->lng->txt('crs_important_info'),
260  "<strong>" . nl2br(
261  ilUtil::makeClickable($this->object->getImportantInformation(), true) . "</strong>"
262  )
263  );
264  }
265  if (strlen($this->object->getSyllabus())) {
266  $info->addProperty($this->lng->txt('crs_syllabus'), nl2br(
267  ilUtil::makeClickable($this->object->getSyllabus(), true)
268  ));
269  }
270  if (strlen($this->object->getTargetGroup())) {
271  $info->addProperty(
272  $this->lng->txt('crs_target_group'),
273  nl2br(
274  \ilUtil::makeClickable($this->object->getTargetGroup(), true)
275  )
276  );
277  }
278  // files
279  if (count($files)) {
280  $tpl = new ilTemplate('tpl.event_info_file.html', true, true, 'Modules/Course');
281 
282  foreach ($files as $file) {
283  $tpl->setCurrentBlock("files");
284  $this->ctrl->setParameter($this, 'file_id', $file->getFileId());
285  $tpl->setVariable("DOWN_LINK", $this->ctrl->getLinkTarget($this, 'sendfile'));
286  $tpl->setVariable("DOWN_NAME", $file->getFileName());
287  $tpl->setVariable("DOWN_INFO_TXT", $this->lng->txt('crs_file_size_info'));
288  $tpl->setVariable("DOWN_SIZE", $file->getFileSize());
289  $tpl->setVariable("TXT_BYTES", $this->lng->txt('bytes'));
290  $tpl->parseCurrentBlock();
291  }
292  $info->addProperty(
293  $this->lng->txt('crs_file_download'),
294  $tpl->get()
295  );
296  }
297 
298  include_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDRecordGUI.php');
299  $record_gui = new ilAdvancedMDRecordGUI(ilAdvancedMDRecordGUI::MODE_INFO, 'crs', $this->object->getId());
300  $record_gui->setInfoObject($info);
301  $record_gui->parse();
302 
303  // meta data
304  $info->addMetaDataSections($this->object->getId(), 0, $this->object->getType());
305 
306  // contact
307  if ($this->object->hasContactData()) {
308  $info->addSection($this->lng->txt("crs_contact"));
309  }
310  if (strlen($this->object->getContactName())) {
311  $info->addProperty(
312  $this->lng->txt("crs_contact_name"),
313  $this->object->getContactName()
314  );
315  }
316  if (strlen($this->object->getContactResponsibility())) {
317  $info->addProperty(
318  $this->lng->txt("crs_contact_responsibility"),
319  $this->object->getContactResponsibility()
320  );
321  }
322  if (strlen($this->object->getContactPhone())) {
323  $info->addProperty(
324  $this->lng->txt("crs_contact_phone"),
325  $this->object->getContactPhone()
326  );
327  }
328  if ($this->object->getContactEmail()) {
329  include_once './Modules/Course/classes/class.ilCourseMailTemplateMemberContext.php';
330  require_once 'Services/Mail/classes/class.ilMailFormCall.php';
331 
332  $emails = explode(",", $this->object->getContactEmail());
333  foreach ($emails as $email) {
334  $email = trim($email);
335  $etpl = new ilTemplate("tpl.crs_contact_email.html", true, true, 'Modules/Course');
336  $etpl->setVariable(
337  "EMAIL_LINK",
339  $info,
340  'showSummary',
341  array(),
342  array(
343  'type' => 'new',
344  'rcp_to' => $email,
345  'sig' => $this->createMailSignature()
346  ),
347  array(
349  'ref_id' => $this->object->getRefId(),
350  'ts' => time()
351  )
352  )
353  );
354  $etpl->setVariable("CONTACT_EMAIL", $email);
355  $mailString .= $etpl->get() . "<br />";
356  }
357  $info->addProperty($this->lng->txt("crs_contact_email"), $mailString);
358  }
359  if (strlen($this->object->getContactConsultation())) {
360  $info->addProperty(
361  $this->lng->txt("crs_contact_consultation"),
362  nl2br($this->object->getContactConsultation())
363  );
364  }
365 
366 
367  // support contacts
368  $parts = ilParticipants::getInstanceByObjId($this->object->getId());
369  $conts = $parts->getContacts();
370  if (count($conts) > 0) {
371  $info->addSection($this->lng->txt("crs_mem_contacts"));
372  foreach ($conts as $c) {
373  include_once("./Services/User/classes/class.ilPublicUserProfileGUI.php");
374  $pgui = new ilPublicUserProfileGUI($c);
375  $pgui->setBackUrl($this->ctrl->getLinkTargetByClass("ilinfoscreengui"));
376  $pgui->setEmbedded(true);
377  $info->addProperty("", $pgui->getHTML());
378  }
379  }
380 
381 
382 
383  //
384  // access
385  //
386 
387  // #10360
388  $info->enableAvailability(false);
389  $this->lng->loadLanguageModule("rep");
390  $info->addSection($this->lng->txt("rep_activation_availability"));
391  $info->showLDAPRoleGroupMappingInfo();
392 
393  // activation
394  $info->addAccessPeriodProperty();
395 
396  switch ($this->object->getSubscriptionLimitationType()) {
398  $txt = $this->lng->txt("crs_info_reg_deactivated");
399  break;
400 
401  default:
402  switch ($this->object->getSubscriptionType()) {
404  $txt = $this->lng->txt("crs_info_reg_confirmation");
405  break;
407  $txt = $this->lng->txt("crs_info_reg_direct");
408  break;
410  $txt = $this->lng->txt("crs_info_reg_password");
411  break;
412  }
413  }
414 
415  // subscription
416  $info->addProperty($this->lng->txt("crs_info_reg"), $txt);
417 
418 
419  if ($this->object->getSubscriptionLimitationType() != IL_CRS_SUBSCRIPTION_DEACTIVATED) {
420  if ($this->object->getSubscriptionUnlimitedStatus()) {
421  $info->addProperty(
422  $this->lng->txt("crs_reg_until"),
423  $this->lng->txt('crs_unlimited')
424  );
425  } elseif ($this->object->getSubscriptionStart() < time()) {
426  $info->addProperty(
427  $this->lng->txt("crs_reg_until"),
428  $this->lng->txt('crs_to') . ' ' .
429  ilDatePresentation::formatDate(new ilDateTime($this->object->getSubscriptionEnd(), IL_CAL_UNIX))
430  );
431  } elseif ($this->object->getSubscriptionStart() > time()) {
432  $info->addProperty(
433  $this->lng->txt("crs_reg_until"),
434  $this->lng->txt('crs_from') . ' ' .
435  ilDatePresentation::formatDate(new ilDateTime($this->object->getSubscriptionStart(), IL_CAL_UNIX))
436  );
437  }
438  if ($this->object->isSubscriptionMembershipLimited()) {
439  if ($this->object->getSubscriptionMinMembers()) {
440  $info->addProperty(
441  $this->lng->txt("mem_min_users"),
442  $this->object->getSubscriptionMinMembers()
443  );
444  }
445  if ($this->object->getSubscriptionMaxMembers()) {
446  include_once './Modules/Course/classes/class.ilObjCourseAccess.php';
447  $reg_info = ilObjCourseAccess::lookupRegistrationInfo($this->object->getId());
448 
449  $info->addProperty(
450  $this->lng->txt('mem_free_places'),
451  $reg_info['reg_info_free_places']
452  );
453  }
454  }
455  }
456 
457  if ($this->object->getCancellationEnd()) {
458  $info->addProperty(
459  $this->lng->txt('crs_cancellation_end'),
460  ilDatePresentation::formatDate($this->object->getCancellationEnd())
461  );
462  }
463 
464  if ($this->object->getCourseStart()) {
465  $info->addProperty(
466  $this->lng->txt('crs_period'),
468  $this->object->getCourseStart(),
469  $this->object->getCourseEnd()
470  )
471  );
472  }
473 
474  // Confirmation
475  include_once('Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
476  $privacy = ilPrivacySettings::_getInstance();
477 
478  include_once('Modules/Course/classes/Export/class.ilCourseDefinedFieldDefinition.php');
479  if ($privacy->courseConfirmationRequired() or ilCourseDefinedFieldDefinition::_getFields($this->object->getId()) or $privacy->enabledCourseExport()) {
480  include_once('Services/PrivacySecurity/classes/class.ilExportFieldsInfo.php');
481 
482  $field_info = ilExportFieldsInfo::_getInstanceByType($this->object->getType());
483 
484  $this->lng->loadLanguageModule('ps');
485  $info->addSection($this->lng->txt('crs_user_agreement_info'));
486  $info->addProperty($this->lng->txt('ps_export_data'), $field_info->exportableFieldsToInfoString());
487 
488  if ($fields = ilCourseDefinedFieldDefinition::_fieldsToInfoString($this->object->getId())) {
489  $info->addProperty($this->lng->txt('ps_crs_user_fields'), $fields);
490  }
491  }
492 
493  $info->enableLearningProgress(true);
494 
495  // forward the command
496  $this->ctrl->forwardCommand($info);
497  }
Class ilInfoScreenGUI.
static _fieldsToInfoString($a_obj_id)
Fields to info string.
$_GET["client_id"]
const IL_CRS_SUBSCRIPTION_CONFIRMATION
const IL_CAL_UNIX
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false, $include_seconds=false)
Format a date public.
static getLinkTarget($gui, $cmd, array $gui_params=array(), array $mail_params=array(), $context_params=array())
GUI class for public user profile presentation.
const IL_CRS_SUBSCRIPTION_PASSWORD
setInfoObject($info)
get info sections
createMailSignature()
Create a course mail signature.
static _getInstanceByType($a_type)
Get Singleton Instance.
static makeClickable($a_text, $detectGotoLinks=false)
makeClickable In Texten enthaltene URLs und Mail-Adressen klickbar machen
static lookupRegistrationInfo($a_obj_id)
Lookup registration info ilDB $ilDB ilObjUser $ilUser ilLanguage $lng.
$ilUser
Definition: imgupload.php:18
$txt
Definition: error.php:13
static _readFilesByCourse($a_course_id)
if($orgName !==null) if($spconfig->hasValue('contacts')) $email
Definition: metadata.php:285
const CONTEXT_KEY
Session parameter for the context.
static formatPeriod(ilDateTime $start, ilDateTime $end, $a_skip_starting_day=false)
Format a period of two date Shows: 14.
static _fillHTMLMetaTags($a_rbac_id, $a_obj_id, $a_type)
Fill html meta tags.
global $ilSetting
Definition: privfeed.php:17
$DIC
Definition: xapitoken.php:46
checkPermission($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission and redirect on error.
const IL_CRS_SUBSCRIPTION_DIRECT
static _getInstance()
Get instance of ilPrivacySettings.
checkPermissionBool($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission.
static getInstanceByObjId($a_obj_id)
Get instance by obj type.
const IL_CRS_SUBSCRIPTION_DEACTIVATED
static _getFields($a_container_id, $a_sort=IL_CDF_SORT_NAME)
Get all fields of a container.
+ 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

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

References infoScreen().

Referenced by executeCommand().

203  {
204  $this->ctrl->setCmd("showSummary");
205  $this->ctrl->setCmdClass("ilinfoscreengui");
206  $this->infoScreen();
207  }
infoScreen()
Show info screen.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initEditForm()

ilObjCourseGUI::initEditForm ( )
protected

init form

protected

Parameters

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

References $pass, $section, $sess, ilContainerGUI\$settings, $si, ilObjUserTracking\_enabledLearningProgress(), ilPrivacySettings\_getInstance(), ilLink\_getLink(), ilContainer\_lookupContainerSetting(), ilObjectServiceSettingsGUI\AUTO_RATING_NEW_OBJECTS, ilObjectServiceSettingsGUI\BADGES, ilObjectServiceSettingsGUI\BOOKING, ilObjectServiceSettingsGUI\CALENDAR_VISIBILITY, ilObjectServiceSettingsGUI\CUSTOM_METADATA, ilDateDurationInputGUI\enableToggleFullTime(), ilMembershipRegistrationCodeUtils\generateCode(), ilObjectLP\getInstance(), ilObjectGUI\getObjectService(), IL_CAL_UNIX, IL_CRS_SUBSCRIPTION_CONFIRMATION, IL_CRS_SUBSCRIPTION_DEACTIVATED, IL_CRS_SUBSCRIPTION_DIRECT, IL_CRS_SUBSCRIPTION_PASSWORD, IL_CRS_VIEW_BY_TYPE, IL_CRS_VIEW_OBJECTIVE, IL_CRS_VIEW_SESSIONS, IL_CRS_VIEW_SIMPLE, IL_CRS_VIEW_TIMING, IL_CRS_VIEW_TIMING_ABSOLUTE, IL_CRS_VIEW_TIMING_RELATIVE, ilObjectGUI\initDidacticTemplate(), ilContainerGUI\initListPresentationForm(), ilObjectServiceSettingsGUI\initServiceSettingsForm(), ilContainerGUI\initSortingForm(), ilCourseConstants\MAIL_ALLOWED_ALL, ilCourseConstants\MAIL_ALLOWED_TUTORS, ilObjectServiceSettingsGUI\ORGU_POSITION_ACCESS, ilCheckboxInputGUI\setChecked(), ilRadioOption\setInfo(), ilFormPropertyGUI\setInfo(), ilNumberInputGUI\setMinValue(), ilDateDurationInputGUI\setShowTime(), ilCheckboxInputGUI\setValue(), ilRadioGroupInputGUI\setValue(), ilRadioOption\setValue(), ilObjectServiceSettingsGUI\SKILLS, ilContainer\SORT_ACTIVATION, ilContainer\SORT_CREATION, ilContainer\SORT_MANUAL, ilContainer\SORT_TITLE, ilObjCourse\STATUS_DETERMINATION_LP, ilObjCourse\STATUS_DETERMINATION_MANUAL, ilObjectServiceSettingsGUI\TAG_CLOUD, and ilObjectServiceSettingsGUI\USE_NEWS.

Referenced by updateObject().

1084  {
1085  $obj_service = $this->getObjectService();
1086  $setting = $this->settings;
1087 
1088  include_once('./Services/Form/classes/class.ilPropertyFormGUI.php');
1089  include_once('./Services/Calendar/classes/class.ilDateTime.php');
1090 
1091  $form = new ilPropertyFormGUI();
1092  $form->setTitle($this->lng->txt('crs_edit'));
1093 
1094  $form->addCommandButton('update', $this->lng->txt('save'));
1095  $form->addCommandButton('cancel', $this->lng->txt('cancel'));
1096 
1097  $form->setFormAction($this->ctrl->getFormAction($this, 'update'));
1098 
1099  // title and description
1100  $this->initFormTitleDescription($form);
1101 
1102  // Show didactic template type
1103  $this->initDidacticTemplate($form);
1104 
1105  // period
1106  include_once "Services/Form/classes/class.ilDateDurationInputGUI.php";
1107  $cdur = new ilDateDurationInputGUI($this->lng->txt('crs_period'), 'period');
1108  $this->lng->loadLanguageModule('mem');
1109  $cdur->enableToggleFullTime(
1110  $this->lng->txt('mem_period_without_time'),
1111  !$this->object->getCourseStartTimeIndication()
1112  );
1113  $cdur->setShowTime(true);
1114  $cdur->setInfo($this->lng->txt('crs_period_info'));
1115  $cdur->setStart($this->object->getCourseStart());
1116  $cdur->setEnd($this->object->getCourseEnd());
1117  $form->addItem($cdur);
1118 
1119 
1120  // activation/availability
1121 
1122  $this->lng->loadLanguageModule('rep');
1123 
1125  $section->setTitle($this->lng->txt('rep_activation_availability'));
1126  $form->addItem($section);
1127 
1128  $online = new ilCheckboxInputGUI($this->lng->txt('rep_activation_online'), 'activation_online');
1129  $online->setChecked(!$this->object->getOfflineStatus());
1130  $online->setInfo($this->lng->txt('crs_activation_online_info'));
1131  $form->addItem($online);
1132 
1133  include_once "Services/Form/classes/class.ilDateDurationInputGUI.php";
1134  $dur = new ilDateDurationInputGUI($this->lng->txt('rep_time_period'), "access_period");
1135  $dur->setShowTime(true);
1136  $dur->setStart(new ilDateTime($this->object->getActivationStart(), IL_CAL_UNIX));
1137  $dur->setEnd(new ilDateTime($this->object->getActivationEnd(), IL_CAL_UNIX));
1138  $form->addItem($dur);
1139 
1140  $visible = new ilCheckboxInputGUI($this->lng->txt('rep_activation_limited_visibility'), 'activation_visibility');
1141  $visible->setInfo($this->lng->txt('crs_activation_limited_visibility_info'));
1142  $visible->setChecked($this->object->getActivationVisibility());
1143  $dur->addSubItem($visible);
1144 
1145 
1147  $section->setTitle($this->lng->txt('crs_reg'));
1148  $form->addItem($section);
1149 
1150  $reg_proc = new ilRadioGroupInputGUI($this->lng->txt('crs_registration_type'), 'subscription_type');
1151  $reg_proc->setValue(
1152  ($this->object->getSubscriptionLimitationType() != IL_CRS_SUBSCRIPTION_DEACTIVATED)
1153  ? $this->object->getSubscriptionType()
1155  );
1156  // $reg_proc->setInfo($this->lng->txt('crs_reg_type_info'));
1157 
1158  $opt = new ilRadioOption($this->lng->txt('crs_subscription_options_direct'), IL_CRS_SUBSCRIPTION_DIRECT);
1159  $reg_proc->addOption($opt);
1160 
1161  $opt = new ilRadioOption($this->lng->txt('crs_subscription_options_password'), IL_CRS_SUBSCRIPTION_PASSWORD);
1162 
1163  $pass = new ilTextInputGUI($this->lng->txt("password"), 'subscription_password');
1164  $pass->setRequired(true);
1165  $pass->setInfo($this->lng->txt('crs_reg_password_info'));
1166  $pass->setSubmitFormOnEnter(true);
1167  $pass->setSize(32);
1168  $pass->setMaxLength(32);
1169  $pass->setValue($this->object->getSubscriptionPassword());
1170 
1171  $opt->addSubItem($pass);
1172  $reg_proc->addOption($opt);
1173 
1174  $opt = new ilRadioOption($this->lng->txt('crs_subscription_options_confirmation'), IL_CRS_SUBSCRIPTION_CONFIRMATION);
1175  $opt->setInfo($this->lng->txt('crs_registration_confirmation_info'));
1176  $reg_proc->addOption($opt);
1177 
1178  $opt = new ilRadioOption($this->lng->txt('crs_reg_no_selfreg'), IL_CRS_SUBSCRIPTION_DEACTIVATED);
1179  $opt->setInfo($this->lng->txt('crs_registration_deactivated'));
1180  $reg_proc->addOption($opt);
1181 
1182  $form->addItem($reg_proc);
1183 
1184 
1185  // Registration codes
1186  $reg_code = new ilCheckboxInputGUI($this->lng->txt('crs_reg_code'), 'reg_code_enabled');
1187  $reg_code->setChecked($this->object->isRegistrationAccessCodeEnabled());
1188  $reg_code->setValue(1);
1189  $reg_code->setInfo($this->lng->txt('crs_reg_code_enabled_info'));
1190 
1191  /*
1192  $code = new ilNonEditableValueGUI($this->lng->txt('crs_reg_code_value'));
1193  $code->setValue($this->object->getRegistrationAccessCode());
1194  $reg_code->addSubItem($code);
1195  */
1196 
1197  #$link = new ilNonEditableValueGUI($this->lng->txt('crs_reg_code_link'));
1198  // Create default access code
1199  if (!$this->object->getRegistrationAccessCode()) {
1200  include_once './Services/Membership/classes/class.ilMembershipRegistrationCodeUtils.php';
1201  $this->object->setRegistrationAccessCode(ilMembershipRegistrationCodeUtils::generateCode());
1202  }
1203  $reg_link = new ilHiddenInputGUI('reg_code');
1204  $reg_link->setValue($this->object->getRegistrationAccessCode());
1205  $form->addItem($reg_link);
1206 
1207  $link = new ilCustomInputGUI($this->lng->txt('crs_reg_code_link'));
1208  include_once './Services/Link/classes/class.ilLink.php';
1209  $val = ilLink::_getLink($this->object->getRefId(), $this->object->getType(), array(), '_rcode' . $this->object->getRegistrationAccessCode());
1210  $link->setHTML('<span class="small">' . $val . '</span>');
1211  $reg_code->addSubItem($link);
1212 
1213  $form->addItem($reg_code);
1214 
1215  // time limit
1216  include_once "Services/Form/classes/class.ilDateDurationInputGUI.php";
1217  $sdur = new ilDateDurationInputGUI($this->lng->txt('crs_registration_limited'), "subscription_period");
1218  $sdur->setShowTime(true);
1219  if ($this->object->getSubscriptionStart()) {
1220  $sdur->setStart(new ilDateTime($this->object->getSubscriptionStart(), IL_CAL_UNIX));
1221  }
1222  if ($this->object->getSubscriptionEnd()) {
1223  $sdur->setEnd(new ilDateTime($this->object->getSubscriptionEnd(), IL_CAL_UNIX));
1224  }
1225  $form->addItem($sdur);
1226 
1227  // cancellation limit
1228  $cancel = new ilDateTimeInputGUI($this->lng->txt('crs_cancellation_end'), 'cancel_end');
1229  $cancel->setInfo($this->lng->txt('crs_cancellation_end_info'));
1230  $cancel_end = $this->object->getCancellationEnd();
1231  if ($cancel_end) {
1232  $cancel->setDate($cancel_end);
1233  }
1234  $form->addItem($cancel);
1235 
1236  // Max members
1237  $lim = new ilCheckboxInputGUI($this->lng->txt('crs_subscription_max_members_short'), 'subscription_membership_limitation');
1238  $lim->setInfo($this->lng->txt('crs_subscription_max_members_short_info'));
1239  $lim->setValue(1);
1240  $lim->setChecked($this->object->isSubscriptionMembershipLimited());
1241 
1242  $min = new ilTextInputGUI('', 'subscription_min');
1243  $min->setSubmitFormOnEnter(true);
1244  $min->setSize(4);
1245  $min->setMaxLength(4);
1246  $min->setValue($this->object->getSubscriptionMinMembers() ? $this->object->getSubscriptionMinMembers() : '');
1247  $min->setTitle($this->lng->txt('crs_subscription_min_members'));
1248  $min->setInfo($this->lng->txt('crs_subscription_min_members_info'));
1249  $lim->addSubItem($min);
1250 
1251  $max = new ilTextInputGUI('', 'subscription_max');
1252  $max->setSubmitFormOnEnter(true);
1253  $max->setSize(4);
1254  $max->setMaxLength(4);
1255  $max->setValue($this->object->getSubscriptionMaxMembers() ? $this->object->getSubscriptionMaxMembers() : '');
1256  $max->setTitle($this->lng->txt('crs_subscription_max_members'));
1257  $max->setInfo($this->lng->txt('crs_reg_max_info'));
1258 
1259  $lim->addSubItem($max);
1260 
1261  /*
1262  $wait = new ilCheckboxInputGUI($this->lng->txt('crs_waiting_list'),'waiting_list');
1263  $wait->setChecked($this->object->enabledWaitingList());
1264  $wait->setInfo($this->lng->txt('crs_wait_info'));
1265  $lim->addSubItem($wait);
1266 
1267  $wait = new ilCheckboxInputGUI($this->lng->txt('crs_waiting_list'),'waiting_list');
1268  $wait->setChecked($this->object->enabledWaitingList());
1269  $wait->setInfo($this->lng->txt('crs_wait_info'));
1270  $lim->addSubItem($wait);
1271 
1272  $auto = new ilCheckboxInputGUI($this->lng->txt('crs_waiting_list_autofill'), 'auto_wait');
1273  $auto->setChecked($this->object->hasWaitingListAutoFill());
1274  $auto->setInfo($this->lng->txt('crs_waiting_list_autofill_info'));
1275  $wait->addSubItem($auto);
1276  */
1277 
1278  $wait = new ilRadioGroupInputGUI($this->lng->txt('crs_waiting_list'), 'waiting_list');
1279 
1280  $option = new ilRadioOption($this->lng->txt('none'), 0);
1281  $wait->addOption($option);
1282 
1283  $option = new ilRadioOption($this->lng->txt('crs_waiting_list_no_autofill'), 1);
1284  $option->setInfo($this->lng->txt('crs_wait_info'));
1285  $wait->addOption($option);
1286 
1287  $option = new ilRadioOption($this->lng->txt('crs_waiting_list_autofill'), 2);
1288  $option->setInfo($this->lng->txt('crs_waiting_list_autofill_info'));
1289  $wait->addOption($option);
1290 
1291  if ($this->object->hasWaitingListAutoFill()) {
1292  $wait->setValue(2);
1293  } elseif ($this->object->enabledWaitingList()) {
1294  $wait->setValue(1);
1295  }
1296 
1297  $lim->addSubItem($wait);
1298 
1299  $form->addItem($lim);
1300 
1301 
1302  $pres = new ilFormSectionHeaderGUI();
1303  $pres->setTitle($this->lng->txt('crs_view_mode'));
1304 
1305  $form->addItem($pres);
1306 
1307  // title and icon visibility
1308  $form = $obj_service->commonSettings()->legacyForm($form, $this->object)->addTitleIconVisibility();
1309 
1310  // top actions visibility
1311  $form = $obj_service->commonSettings()->legacyForm($form, $this->object)->addTopActionsVisibility();
1312 
1313  // breadcrumbs
1314  if ($setting->get("rep_breadcr_crs_overwrite")) {
1315  $add = $setting->get("rep_breadcr_crs_default")
1316  ? " (" . $this->lng->txt("crs_breadcrumb_crs_only") . ")"
1317  : " (" . $this->lng->txt("crs_breadcrumb_full_path") . ")";
1318  $options = array(
1319  self::BREADCRUMB_DEFAULT => $this->lng->txt("crs_sys_default") . $add,
1320  self::BREADCRUMB_CRS_ONLY => $this->lng->txt("crs_breadcrumb_crs_only"),
1321  self::BREADCRUMB_FULL_PATH => $this->lng->txt("crs_breadcrumb_full_path")
1322  );
1323  $si = new ilSelectInputGUI($this->lng->txt("crs_shorten_breadcrumb"), "rep_breacrumb");
1324  $si->setValue((int) ilContainer::_lookupContainerSetting($this->object->getId(), "rep_breacrumb"));
1325  $si->setOptions($options);
1326  $form->addItem($si);
1327  }
1328 
1329 
1330  // custom icon
1331  $form = $obj_service->commonSettings()->legacyForm($form, $this->object)->addIcon();
1332 
1333  // tile image
1334  $form = $obj_service->commonSettings()->legacyForm($form, $this->object)->addTileImage();
1335 
1336  // list presentation
1337  $form = $this->initListPresentationForm($form);
1338 
1339  // presentation type
1340  $view_type = new ilRadioGroupInputGUI($this->lng->txt('crs_presentation_type'), 'view_mode');
1341  $view_type->setValue($this->object->getViewMode());
1342 
1343  $opts = new ilRadioOption($this->lng->txt('cntr_view_sessions'), IL_CRS_VIEW_SESSIONS);
1344  $opts->setInfo($this->lng->txt('cntr_view_info_sessions'));
1345  $view_type->addOption($opts);
1346 
1347  // Limited sessions
1348  $sess = new ilCheckboxInputGUI($this->lng->txt('sess_limit'), 'sl');
1349  $sess->setValue(1);
1350  $sess->setChecked($this->object->isSessionLimitEnabled());
1351  $sess->setInfo($this->lng->txt('sess_limit_info'));
1352 
1353  $prev = new ilNumberInputGUI($this->lng->txt('sess_num_prev'), 'sp');
1354  #$prev->setSubmitFormOnEnter(true);
1355  $prev->setMinValue(0);
1356  $prev->setValue(
1357  $this->object->getNumberOfPreviousSessions() == -1 ?
1358  '' :
1359  $this->object->getNumberOfPreviousSessions()
1360  );
1361  $prev->setSize(2);
1362  $prev->setMaxLength(3);
1363  $sess->addSubItem($prev);
1364 
1365  $next = new ilNumberInputGUI($this->lng->txt('sess_num_next'), 'sn');
1366  #$next->setSubmitFormOnEnter(true);
1367  $next->setMinValue(0);
1368  $next->setValue(
1369  $this->object->getNumberOfNextSessions() == -1 ?
1370  '' :
1371  $this->object->getNumberOfnextSessions()
1372  );
1373  $next->setSize(2);
1374  $next->setMaxLength(3);
1375  $sess->addSubItem($next);
1376 
1377  $opts->addSubItem($sess);
1378 
1379 
1380 
1381 
1382  $optsi = new ilRadioOption($this->lng->txt('cntr_view_simple'), IL_CRS_VIEW_SIMPLE);
1383  $optsi->setInfo($this->lng->txt('cntr_view_info_simple'));
1384  $view_type->addOption($optsi);
1385 
1386  $optbt = new ilRadioOption($this->lng->txt('cntr_view_by_type'), IL_CRS_VIEW_BY_TYPE);
1387  $optbt->setInfo($this->lng->txt('cntr_view_info_by_type'));
1388  $view_type->addOption($optbt);
1389 
1390  $opto = new ilRadioOption($this->lng->txt('crs_view_objective'), IL_CRS_VIEW_OBJECTIVE);
1391  $opto->setInfo($this->lng->txt('crs_view_info_objective'));
1392  $view_type->addOption($opto);
1393 
1394  $optt = new ilRadioOption($this->lng->txt('crs_view_timing'), IL_CRS_VIEW_TIMING);
1395  $optt->setInfo($this->lng->txt('crs_view_info_timing'));
1396 
1397  // cognos-blu-patch: begin
1398  $timing = new ilRadioGroupInputGUI($this->lng->txt('crs_view_timings'), "timing_mode");
1399  $timing->setValue($this->object->getTimingMode());
1400 
1401  $absolute = new ilRadioOption($this->lng->txt('crs_view_timing_absolute'), IL_CRS_VIEW_TIMING_ABSOLUTE);
1402  $absolute->setInfo($this->lng->txt('crs_view_info_timing_absolute'));
1403  $timing->addOption($absolute);
1404 
1405  $relative = new ilRadioOption($this->lng->txt('crs_view_timing_relative'), IL_CRS_VIEW_TIMING_RELATIVE);
1406  $relative->setInfo($this->lng->txt('crs_view_info_timing_relative'));
1407  $timing->addOption($relative);
1408 
1409  $optt->addSubItem($timing);
1410  // cognos-blu-patch: end
1411 
1412  $view_type->addOption($optt);
1413 
1414  $form->addItem($view_type);
1415 
1416  $this->initSortingForm(
1417  $form,
1418  array(
1423  )
1424  );
1425 
1426 
1427 
1428  // lp vs. course status
1429  include_once("Services/Tracking/classes/class.ilObjUserTracking.php");
1431  include_once './Services/Object/classes/class.ilObjectLP.php';
1432  $olp = ilObjectLP::getInstance($this->object->getId());
1433  if ($olp->getCurrentMode()) {
1434  $lp_status = new ilFormSectionHeaderGUI();
1435  $lp_status->setTitle($this->lng->txt('crs_course_status_of_users'));
1436  $form->addItem($lp_status);
1437 
1438  $lp_status_options = new ilRadioGroupInputGUI($this->lng->txt('crs_status_determination'), "status_dt");
1439  // $lp_status_options->setRequired(true);
1440  $lp_status_options->setValue($this->object->getStatusDetermination());
1441 
1442  $lp_option = new ilRadioOption(
1443  $this->lng->txt('crs_status_determination_lp'),
1445  $this->lng->txt('crs_status_determination_lp_info')
1446  );
1447  $lp_status_options->addOption($lp_option);
1448  $lp_status_options->addOption(new ilRadioOption(
1449  $this->lng->txt('crs_status_determination_manual'),
1451  ));
1452 
1453  $form->addItem($lp_status_options);
1454  }
1455  }
1456 
1457  // additional features
1458  $feat = new ilFormSectionHeaderGUI();
1459  $feat->setTitle($this->lng->txt('obj_features'));
1460  $form->addItem($feat);
1461 
1462  include_once './Services/Object/classes/class.ilObjectServiceSettingsGUI.php';
1464  $this->object->getId(),
1465  $form,
1466  array(
1476  )
1477  );
1478 
1479  $mem = new ilCheckboxInputGUI($this->lng->txt('crs_show_members'), 'show_members');
1480  $mem->setChecked($this->object->getShowMembers());
1481  $mem->setInfo($this->lng->txt('crs_show_members_info'));
1482  $form->addItem($mem);
1483 
1484  // check privacy
1485  if (\ilPrivacySettings::_getInstance()->participantsListInCoursesEnabled()) {
1486  $part_list = new ilCheckboxInputGUI($this->lng->txt('crs_show_member_export'), 'show_members_export');
1487  $part_list->setChecked($this->object->getShowMembersExport());
1488  $part_list->setInfo($this->lng->txt('crs_show_member_export_info'));
1489  $mem->addSubItem($part_list);
1490  }
1491 
1492  // Show members type
1493  $mail_type = new ilRadioGroupInputGUI($this->lng->txt('crs_mail_type'), 'mail_type');
1494  $mail_type->setValue($this->object->getMailToMembersType());
1495 
1496  $mail_tutors = new ilRadioOption(
1497  $this->lng->txt('crs_mail_tutors_only'),
1499  $this->lng->txt('crs_mail_tutors_only_info')
1500  );
1501  $mail_type->addOption($mail_tutors);
1502 
1503  $mail_all = new ilRadioOption(
1504  $this->lng->txt('crs_mail_all'),
1506  $this->lng->txt('crs_mail_all_info')
1507  );
1508  $mail_type->addOption($mail_all);
1509  $form->addItem($mail_type);
1510 
1511  // Notification Settings
1512  /*$notification = new ilFormSectionHeaderGUI();
1513  $notification->setTitle($this->lng->txt('crs_notification'));
1514  $form->addItem($notification);*/
1515 
1516  // Self notification
1517  $not = new ilCheckboxInputGUI($this->lng->txt('crs_auto_notification'), 'auto_notification');
1518  $not->setValue(1);
1519  $not->setInfo($this->lng->txt('crs_auto_notification_info'));
1520  $not->setChecked($this->object->getAutoNotification());
1521  $form->addItem($not);
1522 
1523 
1524  // Further information
1525  //$further = new ilFormSectionHeaderGUI();
1526  //$further->setTitle($this->lng->txt('crs_further_settings'));
1527  //$form->addItem($further);
1528 
1529  $desk = new ilCheckboxInputGUI($this->lng->txt('crs_add_remove_from_desktop'), 'abo');
1530  $desk->setChecked($this->object->getAboStatus());
1531  $desk->setInfo($this->lng->txt('crs_add_remove_from_desktop_info'));
1532  $form->addItem($desk);
1533 
1534 
1535  // Edit ecs export settings
1536  include_once 'Modules/Course/classes/class.ilECSCourseSettings.php';
1537  $ecs = new ilECSCourseSettings($this->object);
1538  $ecs->addSettingsToForm($form, 'crs');
1539 
1540  return $form;
1541  }
This class represents an option in a radio group.
const IL_CRS_VIEW_OBJECTIVE
This class represents a property form user interface.
This class represents a section header in a property form.
const IL_CRS_VIEW_TIMING_ABSOLUTE
This class represents a checkbox property in a property form.
const IL_CRS_VIEW_TIMING_RELATIVE
const IL_CRS_SUBSCRIPTION_CONFIRMATION
const IL_CAL_UNIX
const IL_CRS_VIEW_TIMING
const STATUS_DETERMINATION_LP
setInfo($a_info)
Set Info.
const IL_CRS_VIEW_SIMPLE
const IL_CRS_VIEW_BY_TYPE
This class represents a date/time property in a property form.
setInfo($a_info)
Set Information Text.
$section
Definition: Utf8Test.php:83
setChecked($a_checked)
Set Checked.
This class represents a hidden form property in a property form.
input GUI for a time span (start and end date)
static _enabledLearningProgress()
check wether learing progress is enabled or not
const IL_CRS_SUBSCRIPTION_PASSWORD
This class represents a property in a property form.
setValue($a_value)
Set Value.
setMinValue($a_minvalue, $a_display_always=false)
Set Minimum Value.
const IL_CRS_VIEW_SESSIONS
This class represents a number property in a property form.
initDidacticTemplate(ilPropertyFormGUI $form)
Show didactic template types.
setValue($a_value)
Set Value.
setShowTime($a_showtime)
Set Show Time Information.
const STATUS_DETERMINATION_MANUAL
This class represents a custom property in a property form.
static generateCode()
Generate new registration key.
initListPresentationForm(ilPropertyFormGUI $form)
Add list presentation settings to form.
initSortingForm(ilPropertyFormGUI $form, array $a_sorting_settings)
Append sorting settings to property form.
static initServiceSettingsForm($a_obj_id, ilPropertyFormGUI $form, $services)
Init service settings form.
const IL_CRS_SUBSCRIPTION_DIRECT
static _getInstance()
Get instance of ilPrivacySettings.
getObjectService()
Get object service.
static getInstance($a_obj_id)
enableToggleFullTime($a_title, $a_checked)
Enable toggling between date and time.
static _lookupContainerSetting($a_id, $a_keyword, $a_default_value=null)
Lookup a container setting.
Class ilECSCourseSettings.
const IL_CRS_SUBSCRIPTION_DEACTIVATED
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initHeaderAction()

ilObjCourseGUI::initHeaderAction (   $a_sub_type = null,
  $a_sub_id = null 
)
protected

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

References $DIC, $ilUser, ilParticipants\_isParticipant(), ilUtil\getImagePath(), and ilMembershipNotifications\isActiveForRefId().

3211  {
3212  global $DIC;
3213 
3214  $ilUser = $DIC->user();
3215 
3216  $lg = parent::initHeaderAction($a_sub_type, $a_sub_id);
3217 
3218  if ($lg && $this->ref_id && ilCourseParticipants::_isParticipant($this->ref_id, $ilUser->getId())) {
3219  // certificate
3220 
3221  $validator = new ilCertificateDownloadValidator();
3222  if (true === $validator->isCertificateDownloadable($ilUser->getId(), $this->object->getId())) {
3223  $cert_url = $this->ctrl->getLinkTarget($this, "deliverCertificate");
3224 
3225  $this->lng->loadLanguageModule("certificate");
3226  $lg->addCustomCommand($cert_url, "download_certificate");
3227 
3228  $lg->addHeaderIcon(
3229  "cert_icon",
3230  ilUtil::getImagePath("icon_cert.svg"),
3231  $this->lng->txt("download_certificate"),
3232  null,
3233  null,
3234  $cert_url
3235  );
3236  }
3237 
3238  // notification
3239  include_once "Services/Membership/classes/class.ilMembershipNotifications.php";
3240  if (ilMembershipNotifications::isActiveForRefId($this->ref_id)) {
3241  $noti = new ilMembershipNotifications($this->ref_id);
3242  if (!$noti->isCurrentUserActive()) {
3243  $lg->addHeaderIcon(
3244  "not_icon",
3245  ilUtil::getImagePath("notification_off.svg"),
3246  $this->lng->txt("crs_notification_deactivated")
3247  );
3248 
3249  $this->ctrl->setParameter($this, "crs_ntf", 1);
3250  $caption = "crs_activate_notification";
3251  } else {
3252  $lg->addHeaderIcon(
3253  "not_icon",
3254  ilUtil::getImagePath("notification_on.svg"),
3255  $this->lng->txt("crs_notification_activated")
3256  );
3257 
3258  $this->ctrl->setParameter($this, "crs_ntf", 0);
3259  $caption = "crs_deactivate_notification";
3260  }
3261 
3262  if ($noti->canCurrentUserEdit()) {
3263  $lg->addCustomCommand(
3264  $this->ctrl->getLinkTarget($this, "saveNotification"),
3265  $caption
3266  );
3267  }
3268 
3269  $this->ctrl->setParameter($this, "crs_ntf", "");
3270  }
3271  }
3272 
3273  return $lg;
3274  }
static _isParticipant($a_ref_id, $a_usr_id)
Static function to check if a user is a participant of the container object.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
Validates if an active certificate is stored in the database and can be downloaded by the user...
$ilUser
Definition: imgupload.php:18
$DIC
Definition: xapitoken.php:46
Membership notification settings.
+ Here is the call graph for this function:

◆ initInfoEditor()

ilObjCourseGUI::initInfoEditor ( )

init info editor

public

Parameters

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

References $section, ilFileInputGUI\enableFileNameSelection(), ilAdvancedMDRecordGUI\MODE_EDITOR, ilAdvancedMDRecordGUI\setPropertyForm(), and ilTextAreaInputGUI\setValue().

Referenced by editInfoObject(), executeCommand(), and updateInfoObject().

646  {
647  include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
648  $form = new ilPropertyFormGUI();
649  $form->setFormAction($this->ctrl->getFormAction($this, 'updateInfo'));
650  $form->setMultipart(true);
651  $form->setTitle($this->lng->txt('crs_general_info'));
652  $form->addCommandButton('updateInfo', $this->lng->txt('save'));
653  $form->addCommandButton('cancel', $this->lng->txt('cancel'));
654 
655  $area = new ilTextAreaInputGUI($this->lng->txt('crs_important_info'), 'important');
656  $area->setValue($this->object->getImportantInformation());
657  $area->setRows(6);
658  $area->setCols(80);
659  $form->addItem($area);
660 
661  $area = new ilTextAreaInputGUI($this->lng->txt('crs_syllabus'), 'syllabus');
662  $area->setValue($this->object->getSyllabus());
663  $area->setRows(6);
664  $area->setCols(80);
665  $form->addItem($area);
666 
667  $tg = new \ilTextAreaInputGUI($this->lng->txt('crs_target_group'), 'target_group');
668  $tg->setValue($this->object->getTargetGroup());
669  $tg->setRows(6);
670  $form->addItem($tg);
671 
673  $section->setTitle($this->lng->txt('crs_info_download'));
674  $form->addItem($section);
675 
676  $file = new ilFileInputGUI($this->lng->txt('crs_file'), 'file');
677  $file->enableFileNameSelection('file_name');
678  $form->addItem($file);
679 
681  $section->setTitle($this->lng->txt('crs_contact'));
682  $form->addItem($section);
683 
684  $text = new ilTextInputGUI($this->lng->txt('crs_contact_name'), 'contact_name');
685  $text->setValue($this->object->getContactName());
686  $text->setSize(40);
687  $text->setMaxLength(70);
688  $form->addItem($text);
689 
690  $text = new ilTextInputGUI($this->lng->txt('crs_contact_responsibility'), 'contact_responsibility');
691  $text->setValue($this->object->getContactResponsibility());
692  $text->setSize(40);
693  $text->setMaxLength(70);
694  $form->addItem($text);
695 
696  $text = new ilTextInputGUI($this->lng->txt('crs_contact_phone'), 'contact_phone');
697  $text->setValue($this->object->getContactPhone());
698  $text->setSize(40);
699  $text->setMaxLength(40);
700  $form->addItem($text);
701 
702  $text = new ilTextInputGUI($this->lng->txt('crs_contact_email'), 'contact_email');
703  $text->setValue($this->object->getContactEmail());
704  $text->setInfo($this->lng->txt('crs_contact_email_info'));
705  $text->setSize(40);
706  $text->setMaxLength(255);
707  $form->addItem($text);
708 
709  $area = new ilTextAreaInputGUI($this->lng->txt('crs_contact_consultation'), 'contact_consultation');
710  $area->setValue($this->object->getContactConsultation());
711  $area->setRows(6);
712  $area->setCols(80);
713  $form->addItem($area);
714 
715  include_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDRecordGUI.php');
716  $this->record_gui = new ilAdvancedMDRecordGUI(ilAdvancedMDRecordGUI::MODE_EDITOR, 'crs', $this->object->getId());
717  $this->record_gui->setPropertyForm($form);
718  $this->record_gui->parse();
719 
720  return $form;
721  }
This class represents a property form user interface.
setPropertyForm($form)
set property form object
This class represents a section header in a property form.
This class represents a file property in a property form.
setValue($a_value)
Set Value.
$section
Definition: Utf8Test.php:83
enableFileNameSelection($a_post_var)
If enabled, users get the possibility to enter a filename for the uploaded file.
This class represents a text area property in a property form.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ jump2UsersGalleryObject()

ilObjCourseGUI::jump2UsersGalleryObject ( )
protected

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

3501  {
3502  $this->ctrl->redirectByClass('ilUsersGalleryGUI');
3503  }

◆ leaveObject()

ilObjCourseGUI::leaveObject ( )

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

References $DIC, $ilUser, ilObjectGUI\checkPermission(), ilUtil\sendFailure(), and viewObject().

Referenced by unsubscribeObject().

1912  {
1913  global $DIC;
1914 
1915  $ilUser = $DIC['ilUser'];
1916 
1917  $this->checkPermission('leave');
1918 
1919  if ($this->object->getMembersObject()->isLastAdmin($ilUser->getId())) {
1920  ilUtil::sendFailure($this->lng->txt('crs_min_one_admin'));
1921  $this->viewObject();
1922  return false;
1923  }
1924 
1925  $this->tabs_gui->setTabActive('crs_unsubscribe');
1926  include_once "Services/Utilities/classes/class.ilConfirmationGUI.php";
1927  $cgui = new ilConfirmationGUI();
1928  $cgui->setHeaderText($this->lng->txt('crs_unsubscribe_sure'));
1929  $cgui->setFormAction($this->ctrl->getFormAction($this));
1930  $cgui->setCancel($this->lng->txt("cancel"), "cancel");
1931  $cgui->setConfirm($this->lng->txt("crs_unsubscribe"), "performUnsubscribe");
1932  $this->tpl->setContent($cgui->getHTML());
1933  }
$ilUser
Definition: imgupload.php:18
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$DIC
Definition: xapitoken.php:46
checkPermission($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission and redirect on error.
Confirmation screen class.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ loadDate()

ilObjCourseGUI::loadDate (   $a_field)
protected

load date

protected

Parameters

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

References $_POST, $DIC, $ilUser, and IL_CAL_FKT_GETDATE.

3073  {
3074  global $DIC;
3075 
3076  $ilUser = $DIC['ilUser'];
3077 
3078  include_once('./Services/Calendar/classes/class.ilDateTime.php');
3079 
3080  // #10206 / #10217
3081  if (is_array($_POST[$a_field]['date'])) {
3082  $dt['year'] = (int) $_POST[$a_field]['date']['y'];
3083  $dt['mon'] = (int) $_POST[$a_field]['date']['m'];
3084  $dt['mday'] = (int) $_POST[$a_field]['date']['d'];
3085  $dt['hours'] = (int) $_POST[$a_field]['time']['h'];
3086  $dt['minutes'] = (int) $_POST[$a_field]['time']['m'];
3087  $dt['seconds'] = (int) $_POST[$a_field]['time']['s'];
3088  } else {
3089  $date = date_parse($_POST[$a_field]['date'] . " " . $_POST[$a_field]['time']);
3090  $dt['year'] = (int) $date['year'];
3091  $dt['mon'] = (int) $date['month'];
3092  $dt['mday'] = (int) $date['day'];
3093  $dt['hours'] = (int) $date['hour'];
3094  $dt['minutes'] = (int) $date['minute'];
3095  $dt['seconds'] = (int) $date['second'];
3096  }
3097 
3098  $date = new ilDateTime($dt, IL_CAL_FKT_GETDATE, $ilUser->getTimeZone());
3099  return $date;
3100  }
$ilUser
Definition: imgupload.php:18
const IL_CAL_FKT_GETDATE
$DIC
Definition: xapitoken.php:46
$_POST["username"]

◆ membersObject()

ilObjCourseGUI::membersObject ( )
protected

Called from goto?

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

References $GLOBALS.

Referenced by autoFillObject().

2807  {
2808  $GLOBALS['DIC']['ilCtrl']->redirectByClass('ilcoursemembershipgui');
2809  }
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64
+ Here is the caller graph for this function:

◆ modifyItemGUI()

ilObjCourseGUI::modifyItemGUI (   $a_item_list_gui,
  $a_item_data,
  $a_show_path 
)

Modify Item ListGUI for presentation in container.

Parameters
type$a_item_list_gui
type$a_item_data
type$a_show_path
Returns
type

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

References _modifyItemGUI().

2954  {
2956  $a_item_list_gui,
2957  'ilcoursecontentgui',
2958  $a_item_data,
2959  $a_show_path,
2960  $this->object->getAboStatus(),
2961  $this->object->getRefId(),
2962  $this->object->getId()
2963  );
2964  }
static _modifyItemGUI( $a_item_list_gui, $a_cmd_class, $a_item_data, $a_show_path, $a_abo_status, $a_course_ref_id, $a_course_obj_id, $a_parent_ref_id=0)
We need a static version of this, e.g.
+ Here is the call graph for this function:

◆ performUnsubscribeObject()

ilObjCourseGUI::performUnsubscribeObject ( )

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

References $DIC, $ilCtrl, $ilUser, and ilObjectGUI\checkPermission().

1944  {
1945  global $DIC;
1946 
1947  $ilUser = $DIC['ilUser'];
1948  $ilCtrl = $DIC['ilCtrl'];
1949 
1950  // CHECK ACCESS
1951  $this->checkPermission('leave');
1952  $this->object->getMembersObject()->delete($this->ilias->account->getId());
1953  $this->object->getMembersObject()->sendUnsubscribeNotificationToAdmins($this->ilias->account->getId());
1954  $this->object->getMembersObject()->sendNotification($this->object->getMembersObject()->NOTIFY_UNSUBSCRIBE, $ilUser->getId());
1955 
1956  ilUtil::sendSuccess($this->lng->txt('crs_unsubscribed_from_crs'), true);
1957 
1958  $ilCtrl->setParameterByClass("ilrepositorygui", "ref_id", $this->tree->getParentId($this->ref_id));
1959  $ilCtrl->redirectByClass("ilrepositorygui", "");
1960  }
global $ilCtrl
Definition: ilias.php:18
$ilUser
Definition: imgupload.php:18
redirection script todo: (a better solution should control the processing via a xml file) ...
$DIC
Definition: xapitoken.php:46
checkPermission($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission and redirect on error.
+ Here is the call graph for this function:

◆ prepareOutput()

ilObjCourseGUI::prepareOutput (   $a_show_subobjects = true)

Handle member view.

Returns

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

References $DIC, ilContainerGUI\$rbacsystem, ilContainerGUI\$settings, ilObjectGUI\getCreationMode(), and ilMemberViewSettings\getInstance().

Referenced by executeCommand().

3181  {
3182  global $DIC;
3183 
3184  $rbacsystem = $DIC['rbacsystem'];
3185  if (!$this->getCreationMode()) {
3186  include_once './Services/Container/classes/class.ilMemberViewSettings.php';
3188  if ($settings->isActive() and $settings->getContainer() != $this->object->getRefId()) {
3189  $settings->setContainer($this->object->getRefId());
3190  $rbacsystem->initMemberView();
3191  }
3192  }
3193  parent::prepareOutput($a_show_subobjects);
3194  }
$DIC
Definition: xapitoken.php:46
getCreationMode()
get creation mode
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ readMemberData()

ilObjCourseGUI::readMemberData (   $ids,
  $selected_columns = null 
)

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

References $failed, $name, ilObjUserTracking\_enabledLearningProgress(), ilObjUserTracking\_enabledUserRelatedData(), ilPrivacySettings\_getInstance(), ilLPStatusWrapper\_lookupCompletedForObject(), ilLPStatusWrapper\_lookupFailedForObject(), ilLPStatusWrapper\_lookupInProgressForObject(), ilObjUser\_lookupLogin(), ilObjUser\_lookupName(), ilLearningProgress\_lookupProgressByObjId(), ilDatePresentation\formatDate(), ilObjPortfolio\getAvailablePortfolioLinksForUserIds(), ilObjectLP\getInstance(), IL_CAL_UNIX, ilLPStatus\LP_STATUS_COMPLETED, ilLPStatus\LP_STATUS_FAILED, ilLPStatus\LP_STATUS_IN_PROGRESS, ilLPStatus\LP_STATUS_NOT_ATTEMPTED, and ilObjCourse\STATUS_DETERMINATION_LP.

1761  {
1762  include_once './Services/Tracking/classes/class.ilObjUserTracking.php';
1763  $this->show_tracking =
1764  (
1766  ilObjUserTracking::_enabledUserRelatedData()
1767  );
1768  if ($this->show_tracking) {
1769  include_once('./Services/Object/classes/class.ilObjectLP.php');
1770  $olp = ilObjectLP::getInstance($this->object->getId());
1771  $this->show_tracking = $olp->isActive();
1772  }
1773 
1774  if ($this->show_tracking) {
1775  include_once 'Services/Tracking/classes/class.ilLPStatusWrapper.php';
1776  $completed = ilLPStatusWrapper::_lookupCompletedForObject($this->object->getId());
1777  $in_progress = ilLPStatusWrapper::_lookupInProgressForObject($this->object->getId());
1778  $failed = ilLPStatusWrapper::_lookupFailedForObject($this->object->getId());
1779  }
1780  include_once('./Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
1781  $privacy = ilPrivacySettings::_getInstance();
1782 
1783  if ($privacy->enabledCourseAccessTimes()) {
1784  include_once('./Services/Tracking/classes/class.ilLearningProgress.php');
1785  $progress = ilLearningProgress::_lookupProgressByObjId($this->object->getId());
1786  }
1787 
1788  $do_prtf = (is_array($selected_columns) &&
1789  in_array('prtf', $selected_columns) &&
1790  is_array($ids));
1791  if ($do_prtf) {
1792  include_once "Modules/Portfolio/classes/class.ilObjPortfolio.php";
1794  $ids,
1795  $this->ctrl->getLinkTarget($this, "members")
1796  );
1797  }
1798 
1799  foreach ((array) $ids as $usr_id) {
1800  $name = ilObjUser::_lookupName($usr_id);
1801  $tmp_data['firstname'] = $name['firstname'];
1802  $tmp_data['lastname'] = $name['lastname'];
1803  $tmp_data['login'] = ilObjUser::_lookupLogin($usr_id);
1804  $tmp_data['passed'] = $this->object->getMembersObject()->hasPassed($usr_id) ? 1 : 0;
1805  if ($this->object->getStatusDetermination() == ilObjCourse::STATUS_DETERMINATION_LP) {
1806  $tmp_data['passed_info'] = $this->object->getMembersObject()->getPassedInfo($usr_id);
1807  }
1808  $tmp_data['notification'] = $this->object->getMembersObject()->isNotificationEnabled($usr_id) ? 1 : 0;
1809  $tmp_data['blocked'] = $this->object->getMembersObject()->isBlocked($usr_id) ? 1 : 0;
1810  // cognos-blu-patch: begin
1811  $tmp_data['contact'] = $this->object->getMembersObject()->isContact($usr_id) ? 1 : 0;
1812  // cognos-blu-patch: end
1813 
1814  $tmp_data['usr_id'] = $usr_id;
1815 
1816  if ($this->show_tracking) {
1817  if (in_array($usr_id, $completed)) {
1818  $tmp_data['progress'] = ilLPStatus::LP_STATUS_COMPLETED;
1819  } elseif (in_array($usr_id, $in_progress)) {
1820  $tmp_data['progress'] = ilLPStatus::LP_STATUS_IN_PROGRESS;
1821  } elseif (in_array($usr_id, $failed)) {
1822  $tmp_data['progress'] = ilLPStatus::LP_STATUS_FAILED;
1823  } else {
1824  $tmp_data['progress'] = ilLPStatus::LP_STATUS_NOT_ATTEMPTED;
1825  }
1826  }
1827 
1828  if ($privacy->enabledCourseAccessTimes()) {
1829  if (isset($progress[$usr_id]['ts']) and $progress[$usr_id]['ts']) {
1830  $tmp_data['access_ut'] = $progress[$usr_id]['ts'];
1831  $tmp_data['access_time'] = ilDatePresentation::formatDate(new ilDateTime($progress[$usr_id]['ts'], IL_CAL_UNIX));
1832  } else {
1833  $tmp_data['access_ut'] = 0;
1834  $tmp_data['access_time'] = $this->lng->txt('no_date');
1835  }
1836  }
1837 
1838  if ($do_prtf) {
1839  $tmp_data['prtf'] = $all_prtf[$usr_id];
1840  }
1841 
1842  $members[$usr_id] = $tmp_data;
1843  }
1844  return $members ? $members : array();
1845  }
static _lookupLogin($a_user_id)
lookup login
static _lookupName($a_user_id)
lookup user name
const LP_STATUS_NOT_ATTEMPTED
static _lookupFailedForObject($a_obj_id, $a_user_ids=null)
Get failed users for object.
const IL_CAL_UNIX
const STATUS_DETERMINATION_LP
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false, $include_seconds=false)
Format a date public.
const LP_STATUS_IN_PROGRESS
if($format !==null) $name
Definition: metadata.php:230
static _enabledLearningProgress()
check wether learing progress is enabled or not
const LP_STATUS_FAILED
static _lookupProgressByObjId($a_obj_id)
lookup progress for a specific object
if(!file_exists(getcwd() . '/ilias.ini.php'))
registration confirmation script for ilias
Definition: confirmReg.php:12
static getAvailablePortfolioLinksForUserIds(array $a_owner_ids, $a_back_url=null)
$failed
Definition: Utf8Test.php:85
static _lookupInProgressForObject($a_obj_id, $a_user_ids=null)
Get in progress users for object.
static _getInstance()
Get instance of ilPrivacySettings.
static _lookupCompletedForObject($a_obj_id, $a_user_ids=null)
Get completed users for object.
const LP_STATUS_COMPLETED
static getInstance($a_obj_id)
+ Here is the call graph for this function:

◆ redirectLocToTestConfirmation()

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

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

Parameters
type$a_objective_id
type$a_test_id

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

References $GLOBALS, ilObjectGUI\getFormAction(), and ilUtil\sendQuestion().

Referenced by redirectLocToTestObject().

3423  {
3424  include_once './Services/Utilities/classes/class.ilConfirmationGUI.php';
3425  $confirm = new ilConfirmationGUI();
3426  $confirm->setFormAction($GLOBALS['DIC']['ilCtrl']->getFormAction($this));
3427 
3428  if ($a_objective_id) {
3429  $question = $this->lng->txt('crs_loc_objective_passed_confirmation');
3430  } else {
3431  $question = $this->lng->txt('crs_loc_objectives_passed_confirmation');
3432  }
3433 
3434  $confirm->addHiddenItem('objective_id', $a_objective_id);
3435  $confirm->addHiddenItem('tid', $a_test_id);
3436  $confirm->setConfirm($this->lng->txt('crs_loc_tst_start'), 'redirectLocToTestConfirmed');
3437  $confirm->setCancel($this->lng->txt('cancel'), 'view');
3438 
3439  ilUtil::sendQuestion($question);
3440 
3441  $GLOBALS['DIC']['tpl']->setContent($confirm->getHTML());
3442  return true;
3443  }
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64
static sendQuestion($a_info="", $a_keep=false)
Send Question to Screen.
getFormAction($a_cmd, $a_formaction="")
get form action for command (command is method name without "Object", e.g.
Confirmation screen class.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ redirectLocToTestConfirmedObject()

ilObjCourseGUI::redirectLocToTestConfirmedObject ( )
protected
Returns
booleanRedirect ot test after confirmation of resetting completed objectives

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

References ilLink\_getLink(), and ilUtil\redirect().

3363  {
3364  include_once './Services/Link/classes/class.ilLink.php';
3365  ilUtil::redirect(ilLink::_getLink((int) $_REQUEST['tid']));
3366  return true;
3367  }
static redirect($a_script)
+ Here is the call graph for this function:

◆ redirectLocToTestObject()

ilObjCourseGUI::redirectLocToTestObject (   $a_force_new_run = null)
protected

Test redirection will be moved lo adapter.

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

References $GLOBALS, $res, ilLink\_getLink(), ilCourseObjective\_getObjectiveIds(), ilUtil\redirect(), and redirectLocToTestConfirmation().

3373  {
3374  $objective_id = (int) $_REQUEST['objective_id'];
3375  $test_id = (int) $_REQUEST['tid'];
3376 
3377  include_once './Modules/Course/classes/Objectives/class.ilLOUserResults.php';
3378  include_once './Modules/Course/classes/Objectives/class.ilLOSettings.php';
3379  include_once './Modules/Course/classes/Objectives/class.ilLOTestAssignments.php';
3380 
3381 
3382  $res = new ilLOUserResults(
3383  $this->object->getId(),
3384  $GLOBALS['DIC']['ilUser']->getId()
3385  );
3386  $passed = $res->getCompletedObjectiveIds();
3387 
3388  $has_completed = false;
3389  if ($objective_id) {
3390  $objective_ids = array($objective_id);
3391  if (in_array($objective_id, $passed)) {
3392  $has_completed = true;
3393  $passed = array();
3394  }
3395  } else {
3396  include_once './Modules/Course/classes/class.ilCourseObjective.php';
3397  $objective_ids = ilCourseObjective::_getObjectiveIds($this->object->getId(), true);
3398 
3399  // do not disable objective question if all are passed
3400  if (count($objective_ids) == count($passed)) {
3401  $has_completed = true;
3402  $passed = array();
3403  }
3404  }
3405 
3406  if ($has_completed) {
3407  // show confirmation
3408  $this->redirectLocToTestConfirmation($objective_id, $test_id);
3409  return true;
3410  }
3411 
3412  include_once './Services/Link/classes/class.ilLink.php';
3414  return true;
3415  }
static _getObjectiveIds($course_id, $a_activated_only=false)
foreach($_POST as $key=> $value) $res
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64
redirectLocToTestConfirmation($a_objective_id, $a_test_id)
Show confirmation whether user wants to start a new run or resume a previous run. ...
static redirect($a_script)
+ Here is the call graph for this function:

◆ renderContainer()

ilObjCourseGUI::renderContainer ( )

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

193  {
194  return parent::renderObject();
195  }

◆ renderObject()

ilObjCourseGUI::renderObject ( )

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

References viewObject().

112  {
113  $this->ctrl->setCmd("view");
114  $this->viewObject();
115  }
+ Here is the call graph for this function:

◆ resetObject()

ilObjCourseGUI::resetObject ( )

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

References $DIC, $GLOBALS, $ilUser, ilLOUserResults\delete(), ilLOTestRun\deleteRuns(), ilCourseObjectiveResult\reset(), and viewObject().

3124  {
3125  global $DIC;
3126 
3127  $ilUser = $DIC['ilUser'];
3128 
3129  include_once './Modules/Course/classes/Objectives/class.ilLOUserResults.php';
3130  $usr_results = new ilLOUserResults($this->object->getId(), $GLOBALS['DIC']['ilUser']->getId());
3131  $usr_results->delete();
3132 
3133 
3134  include_once './Modules/Course/classes/Objectives/class.ilLOTestRun.php';
3135  include_once './Modules/Course/classes/Objectives/class.ilLOSettings.php';
3137  $this->object->getId(),
3138  $GLOBALS['DIC']['ilUser']->getId()
3139  );
3140 
3141  include_once './Modules/Course/classes/class.ilCourseObjectiveResult.php';
3142 
3143  $tmp_obj_res = new ilCourseObjectiveResult($ilUser->getId());
3144  $tmp_obj_res->reset($this->object->getId());
3145 
3146  $ilUser->deletePref('crs_objectives_force_details_' . $this->object->getId());
3147 
3148  ilUtil::sendSuccess($this->lng->txt('crs_objectives_reseted'));
3149  $this->viewObject();
3150  }
delete()
Delete for user and course type $ilDB.
static deleteRuns($a_container_id, $a_user_id)
Delete runs type $ilDB.
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64
$ilUser
Definition: imgupload.php:18
$DIC
Definition: xapitoken.php:46
+ Here is the call graph for this function:

◆ saveMapSettingsObject()

ilObjCourseGUI::saveMapSettingsObject ( )

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

References $_POST, $DIC, $ilCtrl, $ilUser, and ilUtil\stripSlashes().

2930  {
2931  global $DIC;
2932 
2933  $ilCtrl = $DIC['ilCtrl'];
2934  $ilUser = $DIC['ilUser'];
2935 
2936  $this->object->setLatitude(ilUtil::stripSlashes($_POST["location"]["latitude"]));
2937  $this->object->setLongitude(ilUtil::stripSlashes($_POST["location"]["longitude"]));
2938  $this->object->setLocationZoom(ilUtil::stripSlashes($_POST["location"]["zoom"]));
2939  $this->object->setEnableCourseMap(ilUtil::stripSlashes($_POST["enable_map"]));
2940  $this->object->update();
2941 
2942  $ilCtrl->redirect($this, "editMapSettings");
2943  }
global $ilCtrl
Definition: ilias.php:18
$ilUser
Definition: imgupload.php:18
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
$DIC
Definition: xapitoken.php:46
$_POST["username"]
+ Here is the call graph for this function:

◆ saveNotificationObject()

ilObjCourseGUI::saveNotificationObject ( )

:TEMP: Save notification setting (from infoscreen)

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

503  {
504  include_once "Services/Membership/classes/class.ilMembershipNotifications.php";
505  $noti = new ilMembershipNotifications($this->ref_id);
506  if ($noti->canCurrentUserEdit()) {
507  if ((bool) $_REQUEST["crs_ntf"]) {
508  $noti->activateUser();
509  } else {
510  $noti->deactivateUser();
511  }
512  }
513  ilUtil::sendSuccess($this->lng->txt("settings_saved"), true);
514  $this->ctrl->redirect($this, "");
515  }
Membership notification settings.

◆ saveSortingObject()

ilObjCourseGUI::saveSortingObject ( )

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

References $_POST.

3322  {
3323  if (isset($_POST['position']["lobj"])) {
3324  $lobj = $_POST['position']["lobj"];
3325  unset($_POST['position']["lobj"]);
3326 
3327  $objective_order = array();
3328  foreach ($lobj as $objective_id => $materials) {
3329  $objective_order[$objective_id] = $materials[0];
3330  unset($lobj[$objective_id][0]);
3331  }
3332 
3333  // objective order
3334  include_once "Modules/Course/classes/class.ilCourseObjective.php";
3335  asort($objective_order);
3336  $pos = 0;
3337  foreach (array_keys($objective_order) as $objective_id) {
3338  $obj = new ilCourseObjective($this->object, $objective_id);
3339  $obj->writePosition(++$pos);
3340  }
3341 
3342  // material order
3343  include_once "Modules/Course/classes/class.ilCourseObjectiveMaterials.php";
3344  foreach ($lobj as $objective_id => $materials) {
3345  $objmat = new ilCourseObjectiveMaterials($objective_id);
3346 
3347  asort($materials);
3348  $pos = 0;
3349  foreach (array_keys($materials) as $ass_id) {
3350  $objmat->writePosition($ass_id, ++$pos);
3351  }
3352  }
3353  }
3354 
3355  return parent::saveSortingObject();
3356  }
class ilCourseObjectiveMaterials
class ilcourseobjective
$_POST["username"]

◆ sendFileObject()

ilObjCourseGUI::sendFileObject ( )

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

References $_GET, and ilUtil\deliverFile().

1549  {
1550  include_once 'Modules/Course/classes/class.ilCourseFile.php';
1551  $file = new ilCourseFile((int) $_GET['file_id']);
1552  ilUtil::deliverFile($file->getAbsolutePath(), $file->getFileName(), $file->getFileType());
1553  return true;
1554  }
$_GET["client_id"]
static deliverFile( $a_file, $a_filename, $a_mime='', $isInline=false, $removeAfterDelivery=false, $a_exit_after=true)
deliver file for download via browser.
+ Here is the call graph for this function:

◆ setContentSubTabs()

ilObjCourseGUI::setContentSubTabs ( )

Set content sub tabs.

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

References $_SESSION, $DIC, $ilCtrl, ilObjectGUI\$lng, ilContainerGUI\addStandardContainerSubTabs(), and ilContainerGUI\isActiveAdministrationPanel().

3019  {
3020  global $DIC;
3021 
3022  $ilAccess = $DIC['ilAccess'];
3023  $lng = $DIC['lng'];
3024  $ilCtrl = $DIC['ilCtrl'];
3025 
3026  if ($this->object->getType() != 'crs') {
3027  return true;
3028  }
3029  if (!$ilAccess->checkAccess(
3030  'write',
3031  '',
3032  $this->object->getRefId(),
3033  'crs',
3034  $this->object->getId()
3035  )) {
3036  $is_tutor = false;
3037  // No further tabs if objective view or archives
3038  if ($this->object->enabledObjectiveView()) {
3039  return false;
3040  }
3041  } else {
3042  $is_tutor = true;
3043  }
3044 
3045  // These subtabs should also work, if the command is called directly in
3046  // ilObjCourseGUI, so please use ...ByClass methods.
3047  // (see ilObjCourseGUI->executeCommand: case "ilcolumngui")
3048 
3049  if (!$_SESSION['crs_timings_panel'][$this->object->getId()] or 1) {
3050  if (!$this->isActiveAdministrationPanel()) {
3051  $this->tabs_gui->addSubTab("view_content", $lng->txt("view"), $ilCtrl->getLinkTargetByClass("ilobjcoursegui", "view"));
3052  } else {
3053  $this->tabs_gui->addSubTab("view_content", $lng->txt("view"), $ilCtrl->getLinkTargetByClass("ilobjcoursegui", "disableAdministrationPanel"));
3054  }
3055  }
3056  // cognos-blu-patch: begin
3057  // cognos-blu-patch: begin
3058 
3059  $this->addStandardContainerSubTabs(false);
3060 
3061 
3062  return true;
3063  }
$_SESSION["AccountId"]
global $ilCtrl
Definition: ilias.php:18
$DIC
Definition: xapitoken.php:46
addStandardContainerSubTabs($a_include_view=true)
Add standar container subtabs for view, manage, oderdering and text/media editor link.
+ Here is the call graph for this function:

◆ setLPSyncObject()

ilObjCourseGUI::setLPSyncObject ( )
protected

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

References ilObjCourse\STATUS_DETERMINATION_LP.

1047  {
1048  $this->object->setStatusDetermination(ilObjCourse::STATUS_DETERMINATION_LP);
1049  $this->object->update();
1050 
1051  $this->object->syncMembersStatusWithLP();
1052 
1053  ilUtil::sendSuccess($this->lng->txt("settings_saved"), true);
1054  $this->ctrl->redirect($this, "edit");
1055  }
const STATUS_DETERMINATION_LP

◆ setShowHidePrefs()

ilObjCourseGUI::setShowHidePrefs ( )

set preferences (show/hide tabel content)

public

Returns

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

References $_GET, $DIC, $ilUser, and ilCourseParticipants\getMemberRoles().

1732  {
1733  global $DIC;
1734 
1735  $ilUser = $DIC['ilUser'];
1736 
1737  if (isset($_GET['admin_hide'])) {
1738  $ilUser->writePref('crs_admin_hide', (int) $_GET['admin_hide']);
1739  }
1740  if (isset($_GET['tutor_hide'])) {
1741  $ilUser->writePref('crs_tutor_hide', (int) $_GET['tutor_hide']);
1742  }
1743  if (isset($_GET['member_hide'])) {
1744  $ilUser->writePref('crs_member_hide', (int) $_GET['member_hide']);
1745  }
1746  if (isset($_GET['subscriber_hide'])) {
1747  $ilUser->writePref('crs_subscriber_hide', (int) $_GET['subscriber_hide']);
1748  }
1749  if (isset($_GET['wait_hide'])) {
1750  $ilUser->writePref('crs_wait_hide', (int) $_GET['wait_hide']);
1751  }
1752  include_once './Modules/Course/classes/class.ilCourseParticipants.php';
1753  foreach (ilCourseParticipants::getMemberRoles($this->object->getRefId()) as $role_id) {
1754  if (isset($_GET['role_hide_' . $role_id])) {
1755  $ilUser->writePref('crs_role_hide_' . $role_id, (int) $_GET['role_hide_' . $role_id]);
1756  }
1757  }
1758  }
$_GET["client_id"]
static getMemberRoles($a_ref_id)
Get member roles.
$ilUser
Definition: imgupload.php:18
$DIC
Definition: xapitoken.php:46
+ Here is the call graph for this function:

◆ setSideColumnReturn()

ilObjCourseGUI::setSideColumnReturn ( )

Set return point for side column actions.

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

3509  {
3510  $this->ctrl->setReturn($this, "view");
3511  }

◆ setSubTabs()

ilObjCourseGUI::setSubTabs (   $a_tab)

set sub tabs

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

References $DIC, $ilUser, ilContainerGUI\$rbacsystem, ilObjectGUI\$tree, ilPrivacySettings\_getInstance(), ilCourseDefinedFieldDefinition\_hasFields(), and ilMapUtil\isActivated().

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

1560  {
1561  global $DIC;
1562 
1563  $rbacsystem = $DIC['rbacsystem'];
1564  $ilUser = $DIC['ilUser'];
1565  $ilAccess = $DIC['ilAccess'];
1566  $tree = $DIC['tree'];
1567 
1568  switch ($a_tab) {
1569  case "properties":
1570  $this->tabs_gui->addSubTabTarget(
1571  "crs_settings",
1572  $this->ctrl->getLinkTarget($this, 'edit'),
1573  "edit",
1574  get_class($this)
1575  );
1576 
1577  $this->tabs_gui->addSubTabTarget(
1578  "crs_info_settings",
1579  $this->ctrl->getLinkTarget($this, 'editInfo'),
1580  "editInfo",
1581  get_class($this)
1582  );
1583 
1584  $this->tabs_gui->addSubTabTarget(
1585  "preconditions",
1586  $this->ctrl->getLinkTargetByClass('ilConditionHandlerGUI', 'listConditions'),
1587  "",
1588  "ilConditionHandlerGUI"
1589  );
1590 
1591  $this->tabs_gui->addSubTabTarget(
1592  "crs_start_objects",
1593  $this->ctrl->getLinkTargetByClass('ilContainerStartObjectsGUI', 'listStructure'),
1594  "listStructure",
1595  get_class($this)
1596  );
1597 
1598  $this->tabs_gui->addSubTabTarget(
1599  'groupings',
1600  $this->ctrl->getLinkTargetByClass('ilobjcoursegroupinggui', 'listGroupings'),
1601  'listGroupings',
1602  get_class($this)
1603  );
1604  $lti_settings = new ilLTIProviderObjectSettingGUI($this->object->getRefId());
1605  if ($lti_settings->hasSettingsAccess()) {
1606  $this->tabs_gui->addSubTabTarget(
1607  'lti_provider',
1608  $this->ctrl->getLinkTargetByClass(ilLTIProviderObjectSettingGUI::class)
1609  );
1610  }
1611 
1612  // map settings
1613  include_once("./Services/Maps/classes/class.ilMapUtil.php");
1614  if (ilMapUtil::isActivated()) {
1615  $this->tabs_gui->addSubTabTarget(
1616  "crs_map_settings",
1617  $this->ctrl->getLinkTarget($this, 'editMapSettings'),
1618  "editMapSettings",
1619  get_class($this)
1620  );
1621  }
1622 
1623 
1624  include_once('Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
1625  include_once('Modules/Course/classes/Export/class.ilCourseDefinedFieldDefinition.php');
1626  // only show if export permission is granted
1627  if (ilPrivacySettings::_getInstance()->checkExportAccess($this->object->getRefId()) or ilCourseDefinedFieldDefinition::_hasFields($this->object->getId())) {
1628  $this->tabs_gui->addSubTabTarget(
1629  'crs_custom_user_fields',
1630  $this->ctrl->getLinkTargetByClass('ilobjectcustomuserfieldsgui'),
1631  '',
1632  'ilobjectcustomuserfieldsgui'
1633  );
1634  }
1635 
1636  // certificates
1637  $validator = new ilCertificateActiveValidator();
1638  if (true === $validator->validate()) {
1639  $this->tabs_gui->addSubTabTarget(
1640  "certificate",
1641  $this->ctrl->getLinkTargetByClass("ilcertificategui", "certificateeditor"),
1642  "",
1643  "ilcertificategui"
1644  );
1645  }
1646  // news settings
1647  if ($this->object->getUseNews()) {
1648  $this->tabs_gui->addSubTab(
1649  'obj_news_settings',
1650  $this->lng->txt("cont_news_settings"),
1651  $this->ctrl->getLinkTargetByClass('ilcontainernewssettingsgui')
1652  );
1653  }
1654 
1655  if ($this->object->getShowMembersExport()) {
1656  $this->tabs_gui->addSubTab(
1657  'export_members',
1658  $this->lng->txt('crs_show_member_export_settings'),
1659  $this->ctrl->getLinkTargetByClass('ilmemberexportsettingsgui', '')
1660  );
1661  }
1662 
1663  $this->tabs_gui->addSubTabTarget(
1664  "obj_multilinguality",
1665  $this->ctrl->getLinkTargetByClass("ilobjecttranslationgui", ""),
1666  "",
1667  "ilobjecttranslationgui"
1668  );
1669 
1670  break;
1671 
1672  }
1673  }
GUI class for LTI provider object settings.
$ilUser
Definition: imgupload.php:18
static _hasFields($a_container_id)
Check if there are any define fields.
static isActivated()
Checks whether Map feature is activated.
$DIC
Definition: xapitoken.php:46
static _getInstance()
Get instance of ilPrivacySettings.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showPossibleSubObjects()

ilObjCourseGUI::showPossibleSubObjects ( )

show possible sub objects selection list

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

References ilContainerGUI\isActiveAdministrationPanel(), and ilContainer\VIEW_OBJECTIVE.

1679  {
1680  if ($this->object->getViewMode() == ilContainer::VIEW_OBJECTIVE
1681  && !$this->isActiveAdministrationPanel()) {
1682  return false;
1683  }
1684  parent::showPossibleSubObjects();
1685  }
+ Here is the call graph for this function:

◆ unsubscribeObject()

ilObjCourseGUI::unsubscribeObject ( )

DEPRECATED?

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

References leaveObject().

1939  {
1940  $this->leaveObject();
1941  }
+ Here is the call graph for this function:

◆ updateInfoObject()

ilObjCourseGUI::updateInfoObject ( )
Returns
bool
Exceptions

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

References $_POST, $DIC, ilContainerGUI\$error, ilObjectGUI\$ilErr, ilObjectGUI\checkPermission(), editInfoObject(), initInfoEditor(), ilUtil\sendFailure(), and ilUtil\stripSlashes().

729  {
730  global $DIC;
731 
732  $ilErr = $DIC['ilErr'];
733  $ilAccess = $DIC['ilAccess'];
734 
735  $this->checkPermission('write');
736 
737  include_once 'Modules/Course/classes/class.ilCourseFile.php';
738  $file_obj = new ilCourseFile();
739  $file_obj->setCourseId($this->object->getId());
740  $file_obj->setFileName(strlen($_POST['file_name']) ?
741  ilUtil::stripSlashes($_POST['file_name']) :
742  $_FILES['file']['name']);
743  $file_obj->setFileSize($_FILES['file']['size']);
744  $file_obj->setFileType($_FILES['file']['type']);
745  $file_obj->setTemporaryName($_FILES['file']['tmp_name']);
746  $file_obj->setErrorCode($_FILES['file']['error']);
747 
748  $this->object->setImportantInformation(ilUtil::stripSlashes($_POST['important']));
749  $this->object->setSyllabus(ilUtil::stripSlashes($_POST['syllabus']));
750  $this->object->setTargetGroup(\ilUtil::stripSlashes($_POST['target_group']));
751  $this->object->setContactName(ilUtil::stripSlashes($_POST['contact_name']));
752  $this->object->setContactResponsibility(ilUtil::stripSlashes($_POST['contact_responsibility']));
753  $this->object->setContactPhone(ilUtil::stripSlashes($_POST['contact_phone']));
754  $this->object->setContactEmail(ilUtil::stripSlashes($_POST['contact_email']));
755  $this->object->setContactConsultation(ilUtil::stripSlashes($_POST['contact_consultation']));
756 
757 
758  // validate
759 
760  $error = false;
761  $ilErr->setMessage('');
762 
763  $file_obj->validate();
764  $this->object->validateInfoSettings();
765  if (strlen($ilErr->getMessage())) {
766  $error = $ilErr->getMessage();
767  }
768 
769  // needed for proper advanced MD validation
770  $form = $this->initInfoEditor();
771  $form->checkInput();
772  if (!$this->record_gui->importEditFormPostValues()) {
773  $error = true;
774  }
775 
776  if ($error) {
777  if ($error !== true) {
778  ilUtil::sendFailure($ilErr->getMessage());
779  }
780  $this->editInfoObject($form);
781  return false;
782  }
783 
784  $this->object->update();
785  $file_obj->create();
786  $this->record_gui->writeEditForm();
787 
788 
789  // Update ecs content
790  include_once 'Modules/Course/classes/class.ilECSCourseSettings.php';
791  $ecs = new ilECSCourseSettings($this->object);
792  $ecs->handleContentUpdate();
793 
794  ilUtil::sendSuccess($this->lng->txt("crs_settings_saved"));
795  $this->editInfoObject();
796  return true;
797  }
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$DIC
Definition: xapitoken.php:46
checkPermission($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission and redirect on error.
editInfoObject(ilPropertyFormGUI $a_form=null)
Edit info page informations.
$_POST["username"]
Class ilECSCourseSettings.
initInfoEditor()
init info editor
+ Here is the call graph for this function:

◆ updateLPFromStatus()

ilObjCourseGUI::updateLPFromStatus (   $a_member_id,
  $a_has_passed 
)

sync course status and lp status

Parameters
int$a_member_id
bool$a_has_passed

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

References $DIC, $ilUser, ilObjUserTracking\_enabledLearningProgress(), ilLPStatusWrapper\_updateStatus(), ilObjectLP\getInstance(), ilLPObjSettings\LP_MODE_MANUAL_BY_TUTOR, ilCourseAppEventListener\setBlockedForLP(), ilLPMarks\setCompleted(), and ilObjCourse\STATUS_DETERMINATION_LP.

1854  {
1855  global $DIC;
1856 
1857  $ilUser = $DIC['ilUser'];
1858 
1859  include_once("Services/Tracking/classes/class.ilObjUserTracking.php");
1861  $this->object->getStatusDetermination() == ilObjCourse::STATUS_DETERMINATION_LP) {
1862  include_once './Services/Object/classes/class.ilObjectLP.php';
1863  $olp = ilObjectLP::getInstance($this->object->getId());
1864  if ($olp->getCurrentMode() == ilLPObjSettings::LP_MODE_MANUAL_BY_TUTOR) {
1865  include_once 'Services/Tracking/classes/class.ilLPMarks.php';
1866  $marks = new ilLPMarks($this->object->getId(), $a_member_id);
1867 
1868  // only if status has changed
1869  if ($marks->getCompleted() != $a_has_passed) {
1870  $marks->setCompleted($a_has_passed);
1871  $marks->update();
1872 
1873  // as course is origin of LP status change, block syncing
1874  include_once("./Modules/Course/classes/class.ilCourseAppEventListener.php");
1876 
1877  include_once("./Services/Tracking/classes/class.ilLPStatusWrapper.php");
1878  ilLPStatusWrapper::_updateStatus($this->object->getId(), $a_member_id);
1879  }
1880  }
1881  }
1882  }
static _updateStatus($a_obj_id, $a_usr_id, $a_obj=null, $a_percentage=false, $a_force_raise=false)
Update status.
const STATUS_DETERMINATION_LP
static _enabledLearningProgress()
check wether learing progress is enabled or not
$ilUser
Definition: imgupload.php:18
$DIC
Definition: xapitoken.php:46
setCompleted($a_status)
static getInstance($a_obj_id)
static setBlockedForLP($a_status)
Toggle LP blocking property status.
+ Here is the call graph for this function:

◆ updateObject()

ilObjCourseGUI::updateObject ( )

Update course settings type $ilUser.

Returns
boolean

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

References $_POST, $DIC, $GLOBALS, $ilUser, ilContainerGUI\$settings, ilChangeEvent\_catchupWriteEvents(), ilPrivacySettings\_getInstance(), ilChangeEvent\_recordWriteEvent(), ilContainer\_writeContainerSetting(), ilContainerGUI\afterUpdate(), ilObjectServiceSettingsGUI\AUTO_RATING_NEW_OBJECTS, ilObjectServiceSettingsGUI\BADGES, ilObjectServiceSettingsGUI\BOOKING, ilObjectServiceSettingsGUI\CALENDAR_VISIBILITY, confirmLPSync(), ilObjectServiceSettingsGUI\CUSTOM_METADATA, ilObjectGUI\editObject(), ilObjectGUI\getObjectService(), IL_CAL_UNIX, IL_CRS_SUBSCRIPTION_DEACTIVATED, IL_CRS_SUBSCRIPTION_DIRECT, IL_CRS_SUBSCRIPTION_LIMITED, IL_CRS_SUBSCRIPTION_UNLIMITED, IL_CRS_VIEW_OBJECTIVE, IL_CRS_VIEW_TIMING, initEditForm(), language(), ilObjectServiceSettingsGUI\ORGU_POSITION_ACCESS, ilContainerGUI\saveListPresentation(), ilContainerGUI\saveSortingSettings(), ilUtil\sendFailure(), ilObjectServiceSettingsGUI\SKILLS, ilContainer\SORT_ACTIVATION, ilObjCourse\STATUS_DETERMINATION_LP, ilObjectServiceSettingsGUI\TAG_CLOUD, ilObjectServiceSettingsGUI\updateServiceSettingsForm(), and ilObjectServiceSettingsGUI\USE_NEWS.

806  {
807  $obj_service = $this->getObjectService();
808  $setting = $this->settings;
809 
810  $form = $this->initEditForm();
811 
812  if (!$form->checkInput()) {
813  $form->setValuesByPost();
814  ilUtil::sendFailure($GLOBALS['DIC']->language()->txt('err_check_input'));
815  return $this->editObject($form);
816  }
817 
818  // Additional checks: subsription min/max
819  if (
820  $form->getInput('subscription_max') &&
821  $form->getInput('subscription_min') &&
822  ($form->getInput('subscription_max') < $form->getInput('subscription_min'))
823  ) {
824  $min = $form->getItemByPostVar('subscription_min');
825  $min->setAlert($this->lng->txt('crs_subscription_min_members_err'));
826  ilUtil::sendFailure($GLOBALS['DIC']->language()->txt('err_check_input'));
827  return $this->editObject($form);
828  }
829 
830  // Additional checks: both tile and objective view activated (not supported)
831  if (
832  $form->getInput('list_presentation') == "tile" &&
833  $form->getInput('view_mode') == IL_CRS_VIEW_OBJECTIVE) {
834  ilUtil::sendFailure($GLOBALS['DIC']->language()->txt('crs_tile_and_objective_view_not_supported'));
835  return $this->editObject($form);
836  }
837 
838  // Additional checks: both tile and session limitation activated (not supported)
839  if ($form->getInput('sl') == "1" &&
840  $form->getInput('list_presentation') == "tile") {
841  ilUtil::sendFailure($GLOBALS['DIC']->language()->txt('crs_tile_and_session_limit_not_supported'));
842  return $this->editObject($form);
843  }
844 
845  // check successful
846 
847  // title/desc
848  $this->object->setTitle($form->getInput('title'));
849  $this->object->setDescription($form->getInput('desc'));
850 
851  // period
852  $crs_period = $form->getItemByPostVar("period");
853 
854 
855  $this->object->setCoursePeriod(
856  $crs_period->getStart(),
857  $crs_period->getEnd()
858  );
859 
860  // activation/online
861  $this->object->setOfflineStatus((bool) !$form->getInput('activation_online'));
862 
863  // activation period
864  $period = $form->getItemByPostVar("access_period");
865  if ($period->getStart() && $period->getEnd()) {
866  $this->object->setActivationStart($period->getStart()->get(IL_CAL_UNIX));
867  $this->object->setActivationEnd($period->getEnd()->get(IL_CAL_UNIX));
868  $this->object->setActivationVisibility((int) $form->getInput('activation_visibility'));
869  } else {
870  $this->object->setActivationStart(null);
871  $this->object->setActivationEnd(null);
872  }
873 
874  // subscription settings
875  $this->object->setSubscriptionPassword($form->getInput('subscription_password'));
876  $this->object->setSubscriptionStart(null);
877  $this->object->setSubscriptionEnd(null);
878 
879  $sub_type = $form->getInput('subscription_type');
880  $sub_period = $form->getItemByPostVar('subscription_period');
881 
882  $this->object->setSubscriptionType($sub_type);
883  if ($sub_type != IL_CRS_SUBSCRIPTION_DEACTIVATED) {
884  if ($sub_period->getStart() && $sub_period->getEnd()) {
885  $this->object->setSubscriptionLimitationType(IL_CRS_SUBSCRIPTION_LIMITED);
886  $this->object->setSubscriptionStart($sub_period->getStart()->get(IL_CAL_UNIX));
887  $this->object->setSubscriptionEnd($sub_period->getEnd()->get(IL_CAL_UNIX));
888  } else {
889  $this->object->setSubscriptionLimitationType(IL_CRS_SUBSCRIPTION_UNLIMITED);
890  }
891  } else {
892  $this->object->setSubscriptionType(IL_CRS_SUBSCRIPTION_DIRECT);
893  $this->object->setSubscriptionLimitationType(IL_CRS_SUBSCRIPTION_DEACTIVATED);
894  }
895 
896  // registration code
897  $this->object->enableRegistrationAccessCode((int) $form->getInput('reg_code_enabled'));
898  $this->object->setRegistrationAccessCode($form->getInput('reg_code'));
899 
900  // cancellation end
901  $this->object->setCancellationEnd($form->getItemByPostVar("cancel_end")->getDate());
902 
903  // waiting list
904  $this->object->enableSubscriptionMembershipLimitation((int) $form->getInput('subscription_membership_limitation'));
905  $this->object->setSubscriptionMaxMembers((int) $form->getInput('subscription_max'));
906  $this->object->setSubscriptionMinMembers((int) $form->getInput('subscription_min'));
907  $old_autofill = $this->object->hasWaitingListAutoFill();
908  switch ((int) $form->getInput('waiting_list')) {
909  case 2:
910  $this->object->enableWaitingList(true);
911  $this->object->setWaitingListAutoFill(true);
912  break;
913 
914  case 1:
915  $this->object->enableWaitingList(true);
916  $this->object->setWaitingListAutoFill(false);
917  break;
918 
919  default:
920  $this->object->enableWaitingList(false);
921  $this->object->setWaitingListAutoFill(false);
922  break;
923  }
924 
925  // title icon visibility
926  $obj_service->commonSettings()->legacyForm($form, $this->object)->saveTitleIconVisibility();
927 
928  // top actions visibility
929  $obj_service->commonSettings()->legacyForm($form, $this->object)->saveTopActionsVisibility();
930 
931  ilContainer::_writeContainerSetting($this->object->getId(), "rep_breacrumb", $form->getInput('rep_breacrumb'));
932 
933  // custom icon
934  $obj_service->commonSettings()->legacyForm($form, $this->object)->saveIcon();
935 
936  // tile image
937  $obj_service->commonSettings()->legacyForm($form, $this->object)->saveTileImage();
938 
939  // list presentation
940  $this->saveListPresentation($form);
941 
942 
943  // view mode settings
944  $this->object->setViewMode((int) $form->getInput('view_mode'));
945  if ($this->object->getViewMode() == IL_CRS_VIEW_TIMING) {
946  $this->object->setOrderType(ilContainer::SORT_ACTIVATION);
947  $this->object->setTimingMode((int) $form->getInput('timing_mode'));
948  }
949  $this->object->setTimingMode($form->getInput('timing_mode'));
950  $this->object->setOrderType($form->getInput('sorting'));
951  $this->saveSortingSettings($form);
952 
953  $this->object->setAboStatus((int) $form->getInput('abo'));
954  $this->object->setShowMembers((int) $form->getInput('show_members'));
955 
956  if (\ilPrivacySettings::_getInstance()->participantsListInCoursesEnabled()) {
957  $this->object->setShowMembersExport((int) $form->getInput('show_members_export'));
958  }
959  $this->object->setMailToMembersType((int) $form->getInput('mail_type'));
960 
961  $this->object->enableSessionLimit((int) $form->getInput('sl'));
962 
963  $session_sp = $form->getInput('sp');
964  $this->object->setNumberOfPreviousSessions(is_numeric($session_sp) ? (int) $session_sp : -1);
965  $session_sn = $form->getInput('sn');
966  $this->object->setNumberOfnextSessions(is_numeric($session_sn) ? (int) $session_sn : -1);
967  $this->object->setAutoNotification($form->getInput('auto_notification') == 1 ? true : false);
968 
969  // lp sync
970  $show_lp_sync_confirmation = false;
971 
972  // could be hidden in form
973  if (isset($_POST['status_dt'])) {
974  if (
975  $this->object->getStatusDetermination() != ilObjCourse::STATUS_DETERMINATION_LP &&
976  (int) $_POST['status_dt'] == ilObjCourse::STATUS_DETERMINATION_LP
977  ) {
978  $show_lp_sync_confirmation = true;
979  } else {
980  $this->object->setStatusDetermination((int) $form->getInput('status_dt'));
981  }
982  }
983 
984  if (!$old_autofill && $this->object->hasWaitingListAutoFill()) {
985  $this->object->handleAutoFill();
986  }
987  $this->object->update();
988 
989 
991  $this->object->getId(),
992  $form,
993  array(
1003  )
1004  );
1005 
1006  require_once('Services/Tracking/classes/class.ilChangeEvent.php');
1007  global $DIC;
1008 
1009  $ilUser = $DIC['ilUser'];
1010  ilChangeEvent::_recordWriteEvent($this->object->getId(), $ilUser->getId(), 'update');
1011  ilChangeEvent::_catchupWriteEvents($this->object->getId(), $ilUser->getId());
1012 
1013  // lp sync confirmation required
1014  if ($show_lp_sync_confirmation) {
1015  return $this->confirmLPSync();
1016  }
1017 
1018  // Update ecs export settings
1019  include_once 'Modules/Course/classes/class.ilECSCourseSettings.php';
1020  $ecs = new ilECSCourseSettings($this->object);
1021  if (!$ecs->handleSettingsUpdate()) {
1022  $form->setValuesByPost();
1023  ilUtil::sendFailure($GLOBALS['DIC']->language()->txt('err_check_input'));
1024  return $this->editObject($form);
1025  }
1026 
1027  return $this->afterUpdate();
1028  }
const IL_CRS_SUBSCRIPTION_LIMITED
const IL_CRS_VIEW_OBJECTIVE
saveSortingSettings(ilPropertyFormGUI $form)
Save sorting settings.
static _recordWriteEvent($obj_id, $usr_id, $action, $parent_obj_id=null)
Records a write event.
const IL_CAL_UNIX
const IL_CRS_VIEW_TIMING
const STATUS_DETERMINATION_LP
static _catchupWriteEvents($obj_id, $usr_id, $timestamp=null)
Catches up with all write events which occured before the specified timestamp.
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64
const IL_CRS_SUBSCRIPTION_UNLIMITED
$ilUser
Definition: imgupload.php:18
editObject()
edit object
static updateServiceSettingsForm($a_obj_id, ilPropertyFormGUI $form, $services)
Update service settings.
saveListPresentation(ilPropertyFormGUI $form)
Save list presentation setting.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$DIC
Definition: xapitoken.php:46
static _writeContainerSetting($a_id, $a_keyword, $a_value)
const IL_CRS_SUBSCRIPTION_DIRECT
static _getInstance()
Get instance of ilPrivacySettings.
getObjectService()
Get object service.
language()
Definition: language.php:2
$_POST["username"]
Class ilECSCourseSettings.
const IL_CRS_SUBSCRIPTION_DEACTIVATED
+ Here is the call graph for this function:

◆ viewObject()

ilObjCourseGUI::viewObject ( )

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

References $_GET, $DIC, $ilCtrl, $ilUser, ilContainerGUI\$rbacsystem, $ret, __checkStartObjects(), ilMDUtils\_fillHTMLMetaTags(), ilLearningProgress\_tracProgress(), checkAgreement(), ilObjectGUI\checkPermission(), ilContainer\VIEW_BY_TYPE, ilContainer\VIEW_OBJECTIVE, ilContainer\VIEW_SESSIONS, ilContainer\VIEW_SIMPLE, and ilContainer\VIEW_TIMING.

Referenced by executeCommand(), gatewayObject(), leaveObject(), renderObject(), and resetObject().

118  {
119  global $DIC;
120 
121  $rbacsystem = $DIC['rbacsystem'];
122  $ilUser = $DIC['ilUser'];
123  $ilCtrl = $DIC['ilCtrl'];
124 
125  $this->tabs_gui->setTabActive('view_content');
126 
127  // CHECK ACCESS
128  $this->checkPermission('read', 'view');
129  /*
130  if(!$rbacsystem->checkAccess("read",$this->object->getRefId()))
131  {
132  $this->ilias->raiseError($this->lng->txt("msg_no_perm_read"),$this->ilias->error_obj->MESSAGE);
133  }
134  */
135  if (strtolower($_GET["baseClass"]) == "iladministrationgui") {
136  parent::viewObject();
137  return true;
138  }
139 
140  // Fill meta header tags
141  include_once('Services/MetaData/classes/class.ilMDUtils.php');
142  ilMDUtils::_fillHTMLMetaTags($this->object->getId(), $this->object->getId(), 'crs');
143 
144  // Trac access
145  if ($ilCtrl->getNextClass() != "ilcolumngui") {
146  include_once 'Services/Tracking/classes/class.ilLearningProgress.php';
148  $ilUser->getId(),
149  $this->object->getId(),
150  $this->object->getRefId(),
151  'crs'
152  );
153  }
154 
155  if (!$this->checkAgreement()) {
156  include_once('Services/Membership/classes/class.ilMemberAgreementGUI.php');
157  $this->tabs_gui->clearTargets();
158  $this->ctrl->setReturn($this, 'view_content');
159  $agreement = new ilMemberAgreementGUI($this->object->getRefId());
160  $this->ctrl->setCmdClass(get_class($agreement));
161  $this->ctrl->forwardCommand($agreement);
162  return true;
163  }
164 
165  if (!$this->__checkStartObjects()) {
166  include_once "Services/Container/classes/class.ilContainerStartObjectsContentGUI.php";
167  $stgui = new ilContainerStartObjectsContentGUI($this, $this->object);
168  $stgui->enableDesktop($this->object->getAboStatus(), $this);
169  return $stgui->getHTML();
170  }
171 
172  // views handled by general container logic
173  if ($this->object->getViewMode() == ilContainer::VIEW_SIMPLE ||
174  $this->object->getViewMode() == ilContainer::VIEW_BY_TYPE ||
175  $this->object->getViewMode() == ilContainer::VIEW_SESSIONS ||
176  $this->object->getViewMode() == ilContainer::VIEW_TIMING ||
177  $this->object->getViewMode() == ilContainer::VIEW_OBJECTIVE
178  ) {
179  $ret = parent::renderObject();
180  return $ret;
181  } else {
182  include_once './Modules/Course/classes/class.ilCourseContentGUI.php';
183  $course_content_obj = new ilCourseContentGUI($this);
184 
185  $this->ctrl->setCmdClass(get_class($course_content_obj));
186  $this->ctrl->forwardCommand($course_content_obj);
187  }
188 
189  return true;
190  }
$_GET["client_id"]
static _tracProgress($a_user_id, $a_obj_id, $a_ref_id, $a_obj_type='')
global $ilCtrl
Definition: ilias.php:18
$ilUser
Definition: imgupload.php:18
static _fillHTMLMetaTags($a_rbac_id, $a_obj_id, $a_type)
Fill html meta tags.
Class ilCourseContentGUI.
$ret
Definition: parser.php:6
$DIC
Definition: xapitoken.php:46
Class ilContainerStartObjectsContentGUI.
checkAgreement()
Check agreement and redirect if it is not accepted.
checkPermission($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission and redirect on error.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ BREADCRUMB_CRS_ONLY

const ilObjCourseGUI::BREADCRUMB_CRS_ONLY = 1

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

◆ BREADCRUMB_DEFAULT

const ilObjCourseGUI::BREADCRUMB_DEFAULT = 0

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

Referenced by ilLocatorGUI\addRepositoryItems().

◆ BREADCRUMB_FULL_PATH

const ilObjCourseGUI::BREADCRUMB_FULL_PATH = 2

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

Referenced by ilLocatorGUI\addRepositoryItems().


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