ILIAS  trunk Revision v12.0_alpha-1329-g1094ddb0c33
ilCourseContentGUI Class Reference

Class ilCourseContentGUI. More...

+ Inheritance diagram for ilCourseContentGUI:
+ Collaboration diagram for ilCourseContentGUI:

Public Member Functions

 __construct (ilContainerGUI $container_gui_obj)
 
 executeCommand ()
 
 getContainerObject ()
 
 initStartObjects ()
 
 showStartObjects (ilCourseStart $start_obj)
 
 returnToMembers ()
 
 showUserTimings ()
 
 __renderUserItem (array $item, int $level)
 
 __setSubTabs ()
 
 initCourseObject ()
 
- Public Member Functions inherited from ilObjectGUI
 getRefId ()
 
 setAdminMode (string $mode)
 
 getAdminMode ()
 
 getObject ()
 
 executeCommand ()
 
 withReferences ()
 determines whether objects are referenced or not (got ref ids or not) More...
 
 setCreationMode (bool $mode=true)
 If true, a creation screen is displayed the current [ref_id] does belong to the parent class The mode is determined in ilRepositoryGUI. More...
 
 getCreationMode ()
 
 prepareOutput (bool $show_sub_objects=true)
 
 getAdminTabs ()
 administration tabs show only permissions and trash folder More...
 
 getHTML ()
 
 confirmedDeleteObject ()
 confirmed deletion of object -> objects are moved to trash or deleted immediately, if trash is disabled More...
 
 cancelObject ()
 cancel action and go back to previous page More...
 
 createObject ()
 create new object form More...
 
 editAvailabilityPeriodObject ()
 
 saveAvailabilityPeriodObject ()
 
 cancelCreation ()
 cancel create action and go back to repository parent More...
 
 saveObject ()
 
 getDidacticTemplateVar (string $type)
 Get didactic template setting from creation screen. More...
 
 putObjectInTree (ilObject $obj, ?int $parent_node_id=null)
 Add object to tree at given position. More...
 
 editObject ()
 
 addExternalEditFormCustom (ilPropertyFormGUI $form)
 
 updateObject ()
 updates object entry in object_data More...
 
 getFormAction (string $cmd, string $default_form_action="")
 Get form action for command (command is method name without "Object", e.g. More...
 
 isVisible (int $ref_id, string $type)
 
 viewObject ()
 viewObject container presentation for "administration -> repository, trash, permissions" More...
 
 deleteObject (bool $error=false)
 Display deletion confirmation screen. More...
 
 setColumnSettings (ilColumnGUI $column_gui)
 
 addToDeskObject ()
 
 removeFromDeskObject ()
 
- Public Member Functions inherited from ILIAS\Object\ImplementsCreationCallback
 callCreationCallback (\ilObject $object, \ilObjectDefinition $obj_definition, int $requested_crtcb)
 

Protected Member Functions

 initMemberIdFromQuery ()
 
 manageTimings (array $failed_items=[])
 Manage timings. More...
 
 managePersonalTimings (array $failed=[])
 Manage personal timings. More...
 
 updatePersonalTimings ()
 Update personal timings. More...
 
 updateManagedTimings ()
 
- Protected Member Functions inherited from ilObjectGUI
 getObjectService ()
 
 assignObject ()
 
 setTitleAndDescription ()
 
 createActionDispatcherGUI ()
 
 initHeaderAction (?string $sub_type=null, ?int $sub_id=null)
 Add header action menu. More...
 
 insertHeaderAction (?ilObjectListGUI $list_gui=null)
 Insert header action into main template. More...
 
 addHeaderAction ()
 Add header action menu. More...
 
 redrawHeaderActionObject ()
 Ajax call: redraw action header only. More...
 
 setTabs ()
 set admin tabs More...
 
 setAdminTabs ()
 set admin tabs More...
 
 setLocator ()
 
 addLocatorItems ()
 should be overwritten to add object specific items (repository items are preloaded) More...
 
 omitLocator (bool $omit=true)
 
 addAdminLocatorItems (bool $do_not_add_object=false)
 should be overwritten to add object specific items (repository items are preloaded) More...
 
 getCreationFormsHTML (StandardForm|ilPropertyFormGUI|array $form)
 
 getTitleForCreationFormPage ()
 
 getCreationFormTitle ()
 
 initCreateForm (string $new_type)
 
 didacticTemplatesToForm ()
 
 initDidacticTemplate (ilPropertyFormGUI $form)
 
 retrieveAdditionalDidacticTemplateOptions ()
 
 addAdoptContentLinkToToolbar ()
 
 addImportButtonToToolbar ()
 
 addAvailabilityPeriodButtonToToolbar (ilToolbarGUI $toolbar)
 
 parseDidacticTemplateVar (string $var, string $type)
 
 afterSave (ilObject $new_object)
 Post (successful) object creation hook. More...
 
 initEditForm ()
 
 initEditCustomForm (ilPropertyFormGUI $a_form)
 Add custom fields to update form. More...
 
 getEditFormValues ()
 
 getEditFormCustomValues (array &$a_values)
 Add values to custom edit fields. More...
 
 validateCustom (ilPropertyFormGUI $form)
 Validate custom values (if not possible with checkInput()) More...
 
 updateCustom (ilPropertyFormGUI $form)
 Insert custom update form values into object. More...
 
 afterUpdate ()
 Post (successful) object update hook. More...
 
 routeImportCmdObject ()
 
 importFile (string $file_to_import, string $path_to_uploaded_file_in_temp_dir)
 
 deleteUploadedImportFile (string $path_to_uploaded_file_in_temp_dir)
 
 afterImport (ilObject $new_object)
 Post (successful) object import hook. More...
 
 setFormAction (string $cmd, string $form_action)
 
 getReturnLocation (string $cmd, string $default_location="")
 Get return location for command (command is method name without "Object", e.g. More...
 
 setReturnLocation (string $cmd, string $location)
 set specific return location for command More...
 
 getTargetFrame (string $cmd, string $default_target_frame="")
 get target frame for command (command is method name without "Object", e.g. More...
 
 setTargetFrame (string $cmd, string $target_frame)
 Set specific target frame for command. More...
 
 showPossibleSubObjects ()
 show possible sub objects (pull down menu) More...
 
 getTabs ()
 @abstract overwrite in derived GUI class of your object type More...
 
 redirectToRefId (int $ref_id, string $cmd="")
 redirects to (repository) view per ref id usually to a container and usually used at the end of a save/import method where the object gui type (of the new object) doesn't match with the type of the current ["ref_id"] value of the request More...
 
 getCenterColumnHTML ()
 Get center column. More...
 
 getRightColumnHTML ()
 Display right column. More...
 
 checkPermission (string $perm, string $cmd="", string $type="", ?int $ref_id=null)
 
 checkPermissionBool (string $perm, string $cmd="", string $type="", ?int $ref_id=null)
 
 enableDragDropFileUpload ()
 Enables the file upload into this object by dropping files. More...
 
 getCreatableObjectTypes ()
 
 buildAddNewItemElements (array $subtypes, string $create_target_class=ilRepositoryGUI::class, ?int $redirect_target_ref_id=null,)
 
 buildGroup (string $create_target_class, array $obj_types_in_group, string $title, array $subtypes)
 

Protected Attributes

ilGlobalTemplateInterface $main_tpl
 
ilContainerGUI $container_gui
 
ilContainer $container_obj
 
ilObjCourse $course_obj
 
ilGlobalTemplateInterface $tpl
 
ilCtrlInterface $ctrl
 
ilLanguage $lng
 
ilTabsGUI $tabs
 
ilFavouritesManager $fav_manager
 
ilAccessHandler $access
 
ilErrorHandling $error
 
ilObjUser $user
 
ilObjectDataCache $objectDataCache
 
ilTree $tree
 
GlobalHttpState $http
 
Factory $refinery
 
UIFactory $ui_factory
 
UIRenderer $ui_renderer
 
LOMServices $lom_services
 
- Protected Attributes inherited from ilObjectGUI
ILIAS Notes Service $notes_service
 
GlobalHttpState $http
 
ServerRequestInterface $request
 
ilLocatorGUI $locator
 
ilObjUser $user
 
ilAccessHandler $access
 
ilSetting $settings
 
ilToolbarGUI $toolbar
 
ilRbacAdmin $rbac_admin
 
ilRbacSystem $rbac_system
 
ilRbacReview $rbac_review
 
ilObjectService $object_service
 
ilObjectDefinition $obj_definition
 
ilGlobalTemplateInterface $tpl
 
ilTree $tree
 
ilCtrl $ctrl
 
ilErrorHandling $error
 
ilLanguage $lng
 
ilTabsGUI $tabs_gui
 
ILIAS $ilias
 
ArrayBasedRequestWrapper $post_wrapper
 
RequestWrapper $request_wrapper
 
Refinery $refinery
 
ilFavouritesManager $favourites
 
CustomIconFactory $custom_icon_factory
 
UIFactory $ui_factory
 
UIRenderer $ui_renderer
 
Filesystem $temp_file_system
 
ilObject $object = null
 
bool $creation_mode = false
 
 $data
 
int $id
 
bool $call_by_reference = false
 
bool $prepare_output
 
int $ref_id
 
int $obj_id
 
int $maxcount
 
array $form_action = []
 
array $return_location = []
 
array $target_frame = []
 
string $tmp_import_dir
 
string $sub_objects = ""
 
bool $omit_locator = false
 
string $type = ""
 
string $admin_mode = self::ADMIN_MODE_NONE
 
int $requested_ref_id = 0
 
int $requested_crtptrefid = 0
 
int $requested_crtcb = 0
 
string $requested_new_type = ""
 
string $link_params
 
string $html = ""
 

Additional Inherited Members

- Static Public Member Functions inherited from ilObjectGUI
static _gotoRepositoryRoot (bool $raise_error=false)
 Goto repository root. More...
 
static _gotoRepositoryNode (int $ref_id, string $cmd="")
 
static _gotoSharedWorkspaceNode (int $wsp_id)
 
- Data Fields inherited from ilObjectGUI
const ADMIN_MODE_NONE = ""
 
const ADMIN_MODE_SETTINGS = "settings"
 
const ADMIN_MODE_REPOSITORY = "repository"
 
const UPLOAD_TYPE_LOCAL = 1
 
const UPLOAD_TYPE_UPLOAD_DIRECTORY = 2
 
const CFORM_NEW = 1
 
const CFORM_IMPORT = 2
 
const CFORM_CLONE = 3
 
const SUPPORTED_IMPORT_MIME_TYPES = [MimeType::APPLICATION__ZIP, MimeType::APPLICATION__X_ZIP_COMPRESSED]
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilCourseContentGUI::__construct ( ilContainerGUI  $container_gui_obj)

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

57 {
58 global $DIC;
59
60 $this->main_tpl = $DIC->ui()->mainTemplate();
61 $this->tpl = $DIC->ui()->mainTemplate();
62 $this->ctrl = $DIC->ctrl();
63 $this->lng = $DIC->language();
64 $this->tabs = $DIC->tabs();
65 $this->fav_manager = new ilFavouritesManager();
66 $this->access = $DIC->access();
67 $this->error = $DIC['ilErr'];
68 $this->user = $DIC->user();
69 $this->objectDataCache = $DIC['ilObjDataCache'];
70 $this->tree = $DIC->repositoryTree();
71 $this->http = $DIC->http();
72 $this->refinery = $DIC->refinery();
73 $this->ui_factory = $DIC->ui()->factory();
74 $this->ui_renderer = $DIC->ui()->renderer();
75 $this->lom_services = $DIC->learningObjectMetadata();
76
77 $this->container_gui = $container_gui_obj;
78 $this->container_obj = $this->container_gui->getObject();
79 $this->initCourseObject();
80 }
error(string $a_errmsg)
Manages favourites, currently the interface for other components, needs discussion.
static http()
Fetches the global http state from ILIAS.
global $DIC
Definition: shib_login.php:26

References $DIC, ILIAS\Repository\access(), ILIAS\Repository\ctrl(), error(), ilObjectGUI\getObject(), ILIAS\FileDelivery\http(), initCourseObject(), ILIAS\Repository\lng(), ILIAS\Repository\objectDataCache(), ILIAS\Repository\refinery(), ILIAS\Repository\tabs(), and ILIAS\Repository\user().

+ Here is the call graph for this function:

Member Function Documentation

◆ __renderUserItem()

ilCourseContentGUI::__renderUserItem ( array  $item,
int  $level 
)
Deprecated:
Todo:

Definition at line 403 of file class.ilCourseContentGUI.php.

403 : void
404 {
405 $this->lng->loadLanguageModule('meta');
406
407 $usr_planed = new ilTimingUser($item['ref_id'], $this->initMemberIdFromQuery());
408
409 for ($i = 0; $i < $level; $i++) {
410 $this->tpl->touchBlock('start_indent');
411 $this->tpl->touchBlock('end_indent');
412 }
413 if (strlen($item['description'])) {
414 $this->tpl->setCurrentBlock("item_description");
415 $this->tpl->setVariable("DESC", $item['description']);
416 $this->tpl->parseCurrentBlock();
417 }
418
419 $tlt_data = $this->lom_services->read(
420 ilObject::_lookupObjId($item['ref_id']),
421 0,
422 $item['type'],
423 $this->lom_services->paths()->firstTypicalLearningTime()
424 )->firstData($this->lom_services->paths()->firstTypicalLearningTime());
425
426 if ($tlt = $this->lom_services->dataHelper()->durationToSeconds($tlt_data->value())) {
427 $this->tpl->setCurrentBlock("tlt");
428 $this->tpl->setVariable("TXT_TLT", $this->lng->txt('meta_typical_learning_time'));
429 $this->tpl->setVariable("TLT_VAL", ilDatePresentation::secondsToString($tlt));
430 $this->tpl->parseCurrentBlock();
431 }
432
433 if (!$item['title'] &&
434 $item['type'] == 'sess') {
437 $app_info['start'],
438 $app_info['end'],
439 (bool) $app_info['fullday']
440 );
441 }
442
443 $this->tpl->setCurrentBlock("title_plain");
444 $this->tpl->setVariable("TITLE", $item['title']);
445 $this->tpl->parseCurrentBlock();
446
447 $this->tpl->setCurrentBlock("container_standard_row");
448
449 $this->tpl->setVariable('TYPE_IMG', ilObject::_getIcon($item['obj_id'], 'tiny', $item['type']));
450 $this->tpl->setVariable("TYPE_ALT_IMG", $this->lng->txt('obj_' . $item['type']));
451
452 if ($item['timing_type'] == ilObjectActivation::TIMINGS_PRESETTING) {
453 if ($usr_planed->getStart()->get(IL_CAL_UNIX)) {
454 $this->tpl->setVariable('SUG_START', $usr_planed->getStart()->get(IL_CAL_DATE));
455 }
456 if ($usr_planed->getEnd()->get(IL_CAL_UNIX)) {
457 $this->tpl->setVariable('SUG_END', $usr_planed->getEnd()->get(IL_CAL_DATE));
458 }
459 }
460 $this->tpl->parseCurrentBlock();
461 foreach (ilObjectActivation::getTimingsAdministrationItems($item['ref_id']) as $item_data) {
462 if (($item_data['timing_type'] == ilObjectActivation::TIMINGS_PRESETTING) or
463 ilObjectActivation::hasChangeableTimings($item_data['ref_id'])) {
464 $this->__renderUserItem($item_data, $level + 1);
465 }
466 }
467 }
const IL_CAL_DATE
const IL_CAL_UNIX
__renderUserItem(array $item, int $level)
static secondsToString(int $seconds, bool $force_with_seconds=false, ?ilLanguage $a_lng=null)
converts seconds to string: Long: 7 days 4 hour(s) ...
static hasChangeableTimings(int $ref_id)
Check if there is any active changeable timing (in subtree)
static getTimingsAdministrationItems(int $parent_id)
Get (sub) item data for timings administration view (active/inactive)
static _getIcon(int $obj_id=0, string $size="big", string $type="", bool $offline=false)
Get icon for repository item.
static _lookupObjId(int $ref_id)
static _lookupAppointment(int $a_obj_id)
static _appointmentToString(int $start, int $end, bool $fulltime)
TableGUI class for timings administration.

References __renderUserItem(), ilSessionAppointment\_appointmentToString(), ilObject\_getIcon(), ilSessionAppointment\_lookupAppointment(), ilObject\_lookupObjId(), ilObjectActivation\getTimingsAdministrationItems(), ilObjectActivation\hasChangeableTimings(), IL_CAL_DATE, IL_CAL_UNIX, initMemberIdFromQuery(), ILIAS\Repository\lng(), ilDatePresentation\secondsToString(), and ilObjectActivation\TIMINGS_PRESETTING.

Referenced by __renderUserItem(), and showUserTimings().

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

◆ __setSubTabs()

ilCourseContentGUI::__setSubTabs ( )

Definition at line 536 of file class.ilCourseContentGUI.php.

536 : void
537 {
538 if ($this->container_obj->getType() == 'crs') {
539 $this->container_gui->setContentSubTabs();
540 }
541 }

Referenced by executeCommand().

+ Here is the caller graph for this function:

◆ executeCommand()

ilCourseContentGUI::executeCommand ( )

Reimplemented from ilObjectGUI.

Definition at line 82 of file class.ilCourseContentGUI.php.

82 : void
83 {
84 if (!$this->access->checkAccess('read', '', $this->container_obj->getRefId())) {
85 $this->error->raiseError($this->lng->txt('msg_no_perm_read'), $this->error->WARNING);
86 }
87
88 $this->__setSubTabs();
89 $this->tabs->setTabActive('view_content');
90 $cmd = $this->ctrl->getCmd();
91
92 switch ($this->ctrl->getNextClass($this)) {
93 default:
94 $start = $this->initStartObjects();
95 if ($start instanceof ilCourseStart) {
96 $this->showStartObjects($start);
97 break;
98 }
99 if (!$cmd) {
100 throw new RuntimeException('Missing ctrl command.');
101 }
102 $this->$cmd();
103 break;
104 }
105 }
showStartObjects(ilCourseStart $start_obj)

References __setSubTabs(), ILIAS\Repository\access(), ILIAS\Repository\ctrl(), error(), initStartObjects(), ILIAS\Repository\lng(), showStartObjects(), and ILIAS\Repository\tabs().

+ Here is the call graph for this function:

◆ getContainerObject()

ilCourseContentGUI::getContainerObject ( )

Definition at line 118 of file class.ilCourseContentGUI.php.

119 {
121 }
Class ilContainer.

References $container_obj.

Referenced by managePersonalTimings(), and manageTimings().

+ Here is the caller graph for this function:

◆ initCourseObject()

ilCourseContentGUI::initCourseObject ( )

Definition at line 543 of file class.ilCourseContentGUI.php.

543 : bool
544 {
545 if ($this->container_obj instanceof ilObjCourse) {
546 $this->course_obj = $this->container_obj;
547 } else {
548 $course_ref_id = $this->tree->checkForParentType($this->container_obj->getRefId(), 'crs');
549 $course = ilObjectFactory::getInstanceByRefId($course_ref_id, false);
550 if ($course instanceof ilObjCourse) {
551 $this->course_obj = $course;
552 }
553 }
554 return true;
555 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static getInstanceByRefId(int $ref_id, bool $stop_on_error=true)
get an instance of an Ilias object by reference id

References $container_obj, and ilObjectFactory\getInstanceByRefId().

Referenced by __construct().

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

◆ initMemberIdFromQuery()

ilCourseContentGUI::initMemberIdFromQuery ( )
protected

Definition at line 107 of file class.ilCourseContentGUI.php.

107 : int
108 {
109 if ($this->http->wrapper()->query()->has('member_id')) {
110 return $this->http->wrapper()->query()->retrieve(
111 'member_id',
112 $this->refinery->kindlyTo()->int()
113 );
114 }
115 return 0;
116 }

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

Referenced by __renderUserItem(), and showUserTimings().

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

◆ initStartObjects()

ilCourseContentGUI::initStartObjects ( )

Definition at line 123 of file class.ilCourseContentGUI.php.

124 {
125 if ($this->access->checkAccess('write', '', $this->course_obj->getRefId())) {
126 return null;
127 }
128 $start_obj = new ilCourseStart($this->course_obj->getRefId(), $this->course_obj->getId());
129 if (count($start_obj->getStartObjects()) && !$start_obj->allFullfilled($this->user->getId())) {
130 return $start_obj;
131 }
132 return null;
133 }

References ILIAS\Repository\access().

Referenced by executeCommand().

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

◆ managePersonalTimings()

ilCourseContentGUI::managePersonalTimings ( array  $failed = [])
protected

Manage personal timings.

Definition at line 276 of file class.ilCourseContentGUI.php.

276 : void
277 {
278 global $ilErr, $ilAccess;
279
280 if (!$this->access->checkAccess('read', '', $this->container_obj->getRefId())) {
281 $this->error->raiseError($this->lng->txt('msg_no_perm_read'), $ilErr->WARNING);
282 }
283 $this->tabs->setTabActive('timings_timings');
284 $this->tabs->clearSubTabs();
285
286 $table = new ilTimingsPersonalTableGUI(
287 $this,
288 'managePersonalTimings',
289 $this->getContainerObject(),
290 $this->course_obj
291 );
292 $table->setFailureStatus((bool) count($failed));
293 $table->setUserId($this->user->getId());
294 $table->init();
295 $table->parse(
297 $this->getContainerObject()->getRefId(),
298 false
299 ),
300 $failed
301 );
302 $this->tpl->setContent($table->getHTML());
303 }
static getItems(int $parent_id, bool $with_list_data=true)
Get sub item data.
TableGUI class for editing personal timings.
$ilErr
Definition: raiseError.php:33

References $ilErr, ILIAS\Repository\access(), error(), getContainerObject(), ilObjectActivation\getItems(), ilObjectGUI\getRefId(), ILIAS\Repository\lng(), ILIAS\Repository\tabs(), and ILIAS\Repository\user().

Referenced by updatePersonalTimings().

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

◆ manageTimings()

ilCourseContentGUI::manageTimings ( array  $failed_items = [])
protected

Manage timings.

Definition at line 248 of file class.ilCourseContentGUI.php.

248 : void
249 {
250 if (!$this->access->checkAccess('write', '', $this->container_obj->getRefId())) {
251 $this->error->raiseError($this->lng->txt('msg_no_perm_write'), $this->error->WARNING);
252 }
253 $this->tabs->setTabActive('timings_timings');
254 $this->tabs->clearSubTabs();
255
256 $table = new ilTimingsManageTableGUI(
257 $this,
258 'manageTimings',
259 $this->getContainerObject(),
260 $this->course_obj
261 );
262 if ($failed_items !== []) {
263 $table->setFailureStatus(true);
264 }
265 $table->init();
266 $table->parse(
268 $failed_items
269 );
270 $this->tpl->setContent($table->getHTML());
271 }
TableGUI class for timings administration.

References ILIAS\Repository\access(), error(), getContainerObject(), ilObjectGUI\getRefId(), ilObjectActivation\getTimingsAdministrationItems(), ILIAS\Repository\lng(), and ILIAS\Repository\tabs().

Referenced by updateManagedTimings().

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

◆ returnToMembers()

ilCourseContentGUI::returnToMembers ( )

Definition at line 346 of file class.ilCourseContentGUI.php.

346 : void
347 {
348 $this->ctrl->returnToParent($this);
349 }

References ILIAS\Repository\ctrl().

+ Here is the call graph for this function:

◆ showStartObjects()

ilCourseContentGUI::showStartObjects ( ilCourseStart  $start_obj)

Definition at line 135 of file class.ilCourseContentGUI.php.

135 : void
136 {
137 $this->tabs->setSubTabActive('crs_content');
138
139 $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.crs_start_view.html", 'components/ILIAS/Course');
140 $this->tpl->setVariable("INFO_STRING", $this->lng->txt('crs_info_start'));
141 $this->tpl->setVariable("TBL_TITLE_START", $this->lng->txt('crs_table_start_objects'));
142 $this->tpl->setVariable("HEADER_NR", $this->lng->txt('crs_nr'));
143 $this->tpl->setVariable("HEADER_DESC", $this->lng->txt('description'));
144 $this->tpl->setVariable("HEADER_EDITED", $this->lng->txt('crs_objective_accomplished'));
145
146 $lm_continue = new ilCourseLMHistory($this->course_obj->getRefId(), $this->user->getId());
147 $continue_data = $lm_continue->getLMHistory();
148
149 $counter = 0;
150 foreach ($start_obj->getStartObjects() as $start) {
151 $obj_id = $this->objectDataCache->lookupObjId((int) $start['item_ref_id']);
152 $ref_id = $start['item_ref_id'];
153 $type = $this->objectDataCache->lookupType($obj_id);
154
156
157 $obj_link = ilLink::_getLink($ref_id, $type);
158 $obj_frame = '';
159
160 // Tmp fix for tests
161 $obj_frame = $type == 'tst' ? '' : $obj_frame;
162
163 if ($this->access->checkAccess('read', '', $ref_id)) {
164 $this->tpl->setCurrentBlock("start_read");
165 $this->tpl->setVariable("READ_TITLE_START", $this->objectDataCache->lookupTitle($obj_id));
166 $this->tpl->setVariable("READ_TARGET_START", $obj_frame);
167 $this->tpl->setVariable(
168 "READ_LINK_START",
169 $obj_link . '&crs_show_result=' . $this->course_obj->getRefId()
170 );
171 $this->tpl->parseCurrentBlock();
172 } else {
173 $this->tpl->setCurrentBlock("start_visible");
174 $this->tpl->setVariable("VISIBLE_LINK_START", $this->objectDataCache->lookupTitle($obj_id));
175 $this->tpl->parseCurrentBlock();
176 }
177
178 // CONTINUE LINK
179 if (isset($continue_data[$ref_id])) {
180 $this->tpl->setCurrentBlock("link");
181 $this->tpl->setVariable("LINK_HREF", ilLink::_getLink($ref_id, '', array('obj_id',
182 $continue_data[$ref_id]['lm_page_id']
183 )));
184 #$this->tpl->setVariable("CONTINUE_LINK_TARGET",$target);
185 $this->tpl->setVariable("LINK_NAME", $this->lng->txt('continue_work'));
186 $this->tpl->parseCurrentBlock();
187 }
188
189 // add to desktop link
190 $this->lng->loadLanguageModule('dash');
191 if ($this->course_obj->getAboStatus()) {
192 if (!$this->fav_manager->ifIsFavourite($this->user->getId(), $ref_id)) {
193 if ($this->access->checkAccess('read', '', $ref_id)) {
194 $this->tpl->setCurrentBlock("link");
195 $this->ctrl->setParameterByClass(get_class($this->container_gui), 'item_ref_id', $ref_id);
196 $this->ctrl->setParameterByClass(get_class($this->container_gui), 'item_id', $ref_id);
197 $this->ctrl->setParameterByClass(get_class($this->container_gui), 'type', $type);
198
199 $this->tpl->setVariable(
200 "LINK_HREF",
201 $this->ctrl->getLinkTarget($this->container_gui, 'addToDesk')
202 );
203 $this->tpl->setVariable("LINK_NAME", $this->lng->txt("add_to_favourites"));
204 $this->tpl->parseCurrentBlock();
205 }
206 } else {
207 $this->tpl->setCurrentBlock("link");
208 $this->ctrl->setParameterByClass(get_class($this->container_gui), 'item_ref_id', $ref_id);
209 $this->ctrl->setParameterByClass(get_class($this->container_gui), 'item_id', $ref_id);
210 $this->ctrl->setParameterByClass(get_class($this->container_gui), 'type', $type);
211
212 $this->tpl->setVariable(
213 "LINK_HREF",
214 $this->ctrl->getLinkTarget($this->container_gui, 'removeFromDesk')
215 );
216 $this->tpl->setVariable("LINK_NAME", $this->lng->txt("remove_from_favourites"));
217 $this->tpl->parseCurrentBlock();
218 }
219 }
220
221 // Description
222 if (strlen($this->objectDataCache->lookupDescription($obj_id))) {
223 $this->tpl->setCurrentBlock("start_description");
224 $this->tpl->setVariable("DESCRIPTION_START", $this->objectDataCache->lookupDescription($obj_id));
225 $this->tpl->parseCurrentBlock();
226 }
227
228 if ($start_obj->isFullfilled($this->user->getId(), $ref_id)) {
229 $accomplished = 'accomplished';
230 $icon = ilUtil::getImagePath("standard/icon_ok.svg");
231 } else {
232 $accomplished = 'not_accomplished';
233 $icon = ilUtil::getImagePath("standard/icon_not_ok.svg");
234 }
235 $this->tpl->setCurrentBlock("start_row");
236 $this->tpl->setVariable("EDITED_IMG", $icon);
237 $this->tpl->setVariable("EDITED_ALT", $this->lng->txt('crs_objective_' . $accomplished));
238 $this->tpl->setVariable("ROW_CLASS", 'option_value');
239 $this->tpl->setVariable("ROW_CLASS_CENTER", 'option_value_center');
240 $this->tpl->setVariable("OBJ_NR_START", ++$counter . '.');
241 $this->tpl->parseCurrentBlock();
242 }
243 }
static _checkAllConditionsOfTarget(int $a_target_ref_id, int $a_target_id, string $a_target_type="", int $a_usr_id=0)
checks wether all conditions of a target object are fulfilled
class ilCourseLMHistory
isFullfilled(int $user_id, int $item_id)
static getImagePath(string $image_name, string $module_path="", string $mode="output", bool $offline=false)
get image path (for images located in a template directory)
$counter

References $counter, ilObjectGUI\$obj_id, ilObjectGUI\$ref_id, ilObjectGUI\$type, ilConditionHandler\_checkAllConditionsOfTarget(), ILIAS\Repository\access(), ILIAS\Repository\ctrl(), ilUtil\getImagePath(), ilCourseStart\getStartObjects(), ilCourseStart\isFullfilled(), ILIAS\Repository\lng(), ILIAS\Repository\objectDataCache(), and ILIAS\Repository\tabs().

Referenced by executeCommand().

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

◆ showUserTimings()

ilCourseContentGUI::showUserTimings ( )
Deprecated:
Todo:

Definition at line 355 of file class.ilCourseContentGUI.php.

355 : void
356 {
357 $this->tpl->addBlockfile('ADM_CONTENT', 'adm_content', 'tpl.crs_user_timings.html', 'components/ILIAS/Course');
358 $this->tabs->clearSubTabs();
359 $this->tabs->setTabActive('members');
360
361 if (!$this->initMemberIdFromQuery()) {
362 $this->main_tpl->setOnScreenMessage('failure', $this->lng->txt('no_checkbox'), true);
363 $this->ctrl->returnToParent($this);
364 }
365
366 // Back button
367 $this->tpl->addBlockfile("BUTTONS", "buttons", "tpl.buttons.html");
368 $this->tpl->setCurrentBlock("btn_cell");
369 $this->tpl->setVariable("BTN_LINK", $this->ctrl->getLinkTarget($this, 'returnToMembers'));
370 $this->tpl->setVariable("BTN_TXT", $this->lng->txt("back"));
371 $this->tpl->parseCurrentBlock();
372
373 $usr_icon = $this->ui_factory->symbol()->icon()->standard(
374 'usr',
375 $this->lng->txt('obj_usr'),
376 'large'
377 );
378 $this->tpl->setVariable("HEADER_IMG", $this->ui_renderer->render($usr_icon));
379 $this->tpl->setVariable("TABLE_HEADER", $this->lng->txt('timings_of'));
381 $this->tpl->setVariable("USER_NAME", $name['lastname'] . ', ' . $name['firstname']);
382
383 $this->tpl->setVariable("TXT_TITLE", $this->lng->txt('title'));
384 $this->tpl->setVariable("TXT_START_END", $this->lng->txt('crs_timings_short_start_end'));
385 $this->tpl->setVariable("TXT_INFO_START_END", $this->lng->txt('crs_timings_start_end_info'));
386 $this->tpl->setVariable("TXT_CHANGED", $this->lng->txt('crs_timings_changed'));
387 $this->tpl->setVariable("TXT_OWN_PRESETTING", $this->lng->txt('crs_timings_planed_start'));
388 $this->tpl->setVariable("TXT_INFO_OWN_PRESETTING", $this->lng->txt('crs_timings_from_until'));
389
390 $items = ilObjectActivation::getTimingsAdministrationItems($this->course_obj->getRefId());
391 foreach ($items as $item) {
392 if (($item['timing_type'] == ilObjectActivation::TIMINGS_PRESETTING) or
394 $this->__renderUserItem($item, 0);
395 }
396 }
397 }
static _lookupName(int $a_user_id)

References __renderUserItem(), ilObjUser\_lookupName(), ILIAS\Repository\ctrl(), ilObjectActivation\getTimingsAdministrationItems(), ilObjectActivation\hasChangeableTimings(), initMemberIdFromQuery(), ILIAS\Repository\lng(), ILIAS\Repository\tabs(), and ilObjectActivation\TIMINGS_PRESETTING.

+ Here is the call graph for this function:

◆ updateManagedTimings()

ilCourseContentGUI::updateManagedTimings ( )
protected

Definition at line 469 of file class.ilCourseContentGUI.php.

469 : bool
470 {
471 if (!$this->access->checkAccess('write', '', $this->container_obj->getRefId())) {
472 $this->error->raiseError($this->lng->txt('msg_no_perm_write'), $this->error->WARNING);
473 }
474
475 $this->tabs->clearSubTabs();
476
477 $failed = array();
478 $post_item = (array) ($this->http->request()->getParsedBody()['item']) ?? [];
479 foreach ($post_item as $ref_id => $data) {
480 $item_obj = new ilObjectActivation();
481 $item_obj->read($ref_id);
482
483 $data['active'] = $data['active'] ?? 0;
485 $item_obj->toggleChangeable((bool) ($data['change'] ?? false));
486
487 if ($this->course_obj->getTimingMode() == ilCourseConstants::IL_CRS_VIEW_TIMING_ABSOLUTE) {
488 $sug_start_dt = ilCalendarUtil::parseIncomingDate($data['sug_start'] ?? '');
489 $sug_end_dt = ilCalendarUtil::parseIncomingDate($data['sug_end'] ?? '');
490
491 if ($sug_start_dt instanceof ilDate && $sug_end_dt instanceof ilDate) {
492 if (ilDateTime::_after($sug_start_dt, $sug_end_dt)) {
493 $failed[$ref_id] = 'crs_timing_err_start_end';
494 continue;
495 }
496 $item_obj->setSuggestionStart($sug_start_dt->get(IL_CAL_UNIX));
497 $item_obj->setSuggestionEnd($sug_end_dt->get(IL_CAL_UNIX));
498 } else {
499 $failed['ref_id'] = 'crs_timing_err_valid_dates';
500 continue;
501 }
502 } else {
503 if (
504 (int) $data['sug_start_rel'] < 0 || (int) $data['duration_a'] < 0
505 ) {
506 $failed[$ref_id] = 'crs_timing_err_start_dur_rel';
507 continue;
508 }
509 $item_obj->setSuggestionStartRelative($data['sug_start_rel']);
510 $item_obj->setSuggestionEndRelative($data['sug_start_rel'] + $data['duration_a']);
511
512 // add default values for start/end (relative to now)
513 $start = new ilDate(time(), IL_CAL_UNIX);
514 $start->increment(IL_CAL_DAY, $data['sug_start_rel']);
515 $item_obj->setSuggestionStart($start->get(IL_CAL_UNIX));
516
517 $start->increment(IL_CAL_DAY, $data['duration_a']);
518 $item_obj->setSuggestionEnd($start->get(IL_CAL_UNIX));
519 }
520
521 $item_obj->update($ref_id);
522 }
523 if ($failed === []) {
524 // update course => create calendar entries
525 $this->course_obj->update();
526 $this->tpl->setOnScreenMessage('success', $this->lng->txt('settings_saved'));
527 $this->manageTimings();
528 return true;
529 } else {
530 $this->main_tpl->setOnScreenMessage('failure', $this->lng->txt('err_check_input'));
531 $this->manageTimings($failed);
532 return true;
533 }
534 }
const IL_CAL_DAY
static parseIncomingDate($value, bool $add_time=false)
Try to parse incoming value to date object.
manageTimings(array $failed_items=[])
Manage timings.
static _after(ilDateTime $start, ilDateTime $end, string $a_compare_field='', string $a_tz='')
compare two dates and check start is after end This method does not consider tz offsets.
Class for single dates.
Class ilObjectActivation.

References ilObjectGUI\$data, ilObjectGUI\$ref_id, ilDateTime\_after(), ILIAS\Repository\access(), error(), ILIAS\FileDelivery\http(), IL_CAL_DAY, IL_CAL_UNIX, ilCourseConstants\IL_CRS_VIEW_TIMING_ABSOLUTE, ILIAS\Repository\lng(), manageTimings(), ilCalendarUtil\parseIncomingDate(), ILIAS\Repository\tabs(), ilObjectActivation\TIMINGS_DEACTIVATED, and ilObjectActivation\TIMINGS_PRESETTING.

+ Here is the call graph for this function:

◆ updatePersonalTimings()

ilCourseContentGUI::updatePersonalTimings ( )
protected

Update personal timings.

Definition at line 308 of file class.ilCourseContentGUI.php.

308 : bool
309 {
310 if (!$this->access->checkAccess('read', '', $this->container_obj->getRefId())) {
311 $this->error->raiseError($this->lng->txt('msg_no_perm_write'), $this->error->WARNING);
312 }
313 $this->tabs->clearSubTabs();
314 $failed = array();
315
316 $post_item = (array) ($this->http->request()->getParsedBody()['item'] ?? []);
317 foreach ($post_item as $ref_id => $data) {
318 $sug_start_dt = ilCalendarUtil::parseIncomingDate($data['sug_start']);
319 $sug_end_dt = ilCalendarUtil::parseIncomingDate($data['sug_end']);
320
321 if ($sug_start_dt instanceof ilDate && $sug_end_dt instanceof ilDate) {
322 if (ilDateTime::_after($sug_start_dt, $sug_end_dt)) {
323 $failed[$ref_id] = 'crs_timing_err_start_end';
324 continue;
325 }
326 // update user date
327 $tu = new ilTimingUser($ref_id, $GLOBALS['ilUser']->getId());
328 $tu->getStart()->setDate($sug_start_dt->get(IL_CAL_UNIX), IL_CAL_UNIX);
329 $tu->getEnd()->setDate($sug_end_dt->get(IL_CAL_UNIX), IL_CAL_UNIX);
330 $tu->update();
331 } else {
332 $failed['ref_id'] = 'crs_timing_err_valid_dates';
333 }
334 }
335 if ($failed === []) {
336 $this->main_tpl->setOnScreenMessage('success', $GLOBALS['lng']->txt('settings_saved'));
337 $this->managePersonalTimings();
338 return true;
339 } else {
340 $this->main_tpl->setOnScreenMessage('failure', $this->lng->txt('err_check_input'));
341 $this->managePersonalTimings($failed);
342 return true;
343 }
344 }
managePersonalTimings(array $failed=[])
Manage personal timings.
$GLOBALS["DIC"]
Definition: wac.php:54

References ilObjectGUI\$data, $GLOBALS, ilObjectGUI\$ref_id, ilDateTime\_after(), ILIAS\Repository\access(), error(), ILIAS\Survey\Mode\getId(), ILIAS\FileDelivery\http(), IL_CAL_UNIX, ILIAS\Repository\lng(), managePersonalTimings(), ilCalendarUtil\parseIncomingDate(), and ILIAS\Repository\tabs().

+ Here is the call graph for this function:

Field Documentation

◆ $access

ilAccessHandler ilCourseContentGUI::$access
protected

Definition at line 45 of file class.ilCourseContentGUI.php.

◆ $container_gui

ilContainerGUI ilCourseContentGUI::$container_gui
protected

Definition at line 36 of file class.ilCourseContentGUI.php.

◆ $container_obj

ilContainer ilCourseContentGUI::$container_obj
protected

Definition at line 37 of file class.ilCourseContentGUI.php.

Referenced by getContainerObject(), and initCourseObject().

◆ $course_obj

ilObjCourse ilCourseContentGUI::$course_obj
protected

Definition at line 38 of file class.ilCourseContentGUI.php.

◆ $ctrl

ilCtrlInterface ilCourseContentGUI::$ctrl
protected

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

◆ $error

ilErrorHandling ilCourseContentGUI::$error
protected

Definition at line 46 of file class.ilCourseContentGUI.php.

◆ $fav_manager

ilFavouritesManager ilCourseContentGUI::$fav_manager
protected

Definition at line 44 of file class.ilCourseContentGUI.php.

◆ $http

GlobalHttpState ilCourseContentGUI::$http
protected

Definition at line 50 of file class.ilCourseContentGUI.php.

◆ $lng

ilLanguage ilCourseContentGUI::$lng
protected

Definition at line 42 of file class.ilCourseContentGUI.php.

◆ $lom_services

LOMServices ilCourseContentGUI::$lom_services
protected

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

◆ $main_tpl

ilGlobalTemplateInterface ilCourseContentGUI::$main_tpl
protected

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

◆ $objectDataCache

ilObjectDataCache ilCourseContentGUI::$objectDataCache
protected

Definition at line 48 of file class.ilCourseContentGUI.php.

◆ $refinery

Factory ilCourseContentGUI::$refinery
protected

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

◆ $tabs

ilTabsGUI ilCourseContentGUI::$tabs
protected

Definition at line 43 of file class.ilCourseContentGUI.php.

◆ $tpl

ilGlobalTemplateInterface ilCourseContentGUI::$tpl
protected

Definition at line 40 of file class.ilCourseContentGUI.php.

◆ $tree

ilTree ilCourseContentGUI::$tree
protected

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

◆ $ui_factory

UIFactory ilCourseContentGUI::$ui_factory
protected

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

◆ $ui_renderer

UIRenderer ilCourseContentGUI::$ui_renderer
protected

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

◆ $user

ilObjUser ilCourseContentGUI::$user
protected

Definition at line 47 of file class.ilCourseContentGUI.php.


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