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

Class ilObjSCORMLearningModuleGUI. More...

+ Inheritance diagram for ilObjSCORMLearningModuleGUI:
+ Collaboration diagram for ilObjSCORMLearningModuleGUI:

Public Member Functions

 __construct ($data, int $id, bool $call_by_reference, bool $prepare_output=true)
 Constructor. More...
 
 properties ()
 scorm module properties More...
 
 initPropertiesForm ()
 Init properties form. More...
 
 getPropertiesFormValues ()
 Get values for properties form. More...
 
 adoptSettings ()
 
 applyAdoptSettings ()
 
 loadAdoptSettingsTreeNodes ()
 
 newModuleVersion ()
 upload new version of module More...
 
 getMaxFileSize ()
 
 newModuleVersionUpload ()
 
 saveProperties ()
 
 showTrackingItems ()
 Show tracking table. More...
 
 deleteTrackingForUser (?array $user_ids=null)
 display deletion confirmation screen More...
 
 cancelDeleteTracking ()
 cancel deletion of export files More...
 
 confirmedDeleteTracking ()
 
 cancel ()
 overwrite..jump back to trackingdata not parent More...
 
 exportSelectionUsers (?array $user_ids=null)
 Export selection for selected users. More...
 
 setSubTabs ()
 
- Public Member Functions inherited from ilObjSAHSLearningModuleGUI
 __construct ($data, int $id, bool $call_by_reference, bool $prepare_output=true)
 Constructor. More...
 
 listFiles ()
 List files tab: forward to the container view once migrated, otherwise show an info box. More...
 
 importFromUploadDir ()
 
 getUploadDirectory ()
 
 getUploadFiles ()
 
 executeCommand ()
 execute command More...
 
 properties ()
 module properties More...
 
 saveProperties ()
 
 uploadObject ()
 display status information or report errors messages in case of error More...
 
 upload ()
 
 getTemplate ()
 output main header (title and locator) More...
 
 certificate ()
 Shows the certificate editor. More...
 
 addLocatorItems ()
 
 setSettingsSubTabs ()
 
 export ()
 
 exportModule ()
 
 getType ()
 
- 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

 assignObject ()
 assign scorm object to scorm gui object More...
 
 buildAdoptSettingsForm ()
 
 renderAdoptSettingsForm (\ILIAS\UI\Component\Input\Container\Form\Standard $form)
 
 buildAdoptSettingsNodeRetrieval ()
 
 buildAdoptSettingsTreeUrlBuilder ()
 
 sendAdoptSettingsTreeResponse (string $html)
 
 extractSourceRefId (mixed $value)
 
 showTrackingItemsBySco ()
 
 buildTrackingFilter (string $filter_id, string $cmd, string $scope_key, string $scope_label, array $scope_options, array $reports)
 
 getTrackingReportOptions (array $reports)
 
 getTrackingUserOptions ()
 
 getTrackingScoOptions ()
 
 renderTrackingTableWithExportActions (string $table_html, string $export_mode)
 
 buildTrackingItemsActionsDropdown (string $export_mode)
 
 buildModifyTrackingDataActionsDropdown ()
 
 exportTrackingItemsCsvByUser ()
 
 exportTrackingItemsExcelByUser ()
 
 exportTrackingItemsCsvBySco ()
 
 exportTrackingItemsExcelBySco ()
 
 modifyTrackingItems ()
 
 applyUserTableFilter ()
 
 resetUserTableFilter ()
 Reset table filter. More...
 
 importTracking ()
 gui functions for GUI export More...
 
 trackingImportForm ()
 Show import form. More...
 
 initTrackingImportForm ()
 Init import form. More...
 
 exportAll ()
 Show export section for all users. More...
 
- Protected Member Functions inherited from ilObjSAHSLearningModuleGUI
 infoScreen ()
 
 infoScreenForward ()
 
 initCreateForm (string $new_type)
 
 importFile (string $file_to_import, string $path_to_uploaded_file_in_temp_dir)
 
 setTabs ()
 
 getTabs ()
 adds tabs to tab gui object More...
 
- 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

Container $dic
 
const EXPORT_BY_SCO = 'by_sco'
 
const EXPORT_BY_USER = 'by_user'
 
const TRACKING_FILTER_BY_SCO = 'sahs_tracking_by_sco_'
 
const TRACKING_FILTER_BY_USER = 'sahs_tracking_by_user_'
 
int $refId
 
ilCtrl $ctrl
 
const ADOPT_SOURCE_REF_ID = 'source_ref_id'
 
const ADOPT_TREE_PARENT_REF_ID = 'sahs_adopt_tree_parent_ref_id'
 
const ADOPT_TREE_MAX_SYNC_DEPTH = 2
 
- Protected Attributes inherited from ilObjectGUI
ILIAS Notes Service $notes_service
 
GlobalHttpState $http
 
ServerRequestInterface $request
 
ilLocatorGUI $locator
 
ilObjUser $user
 
ilAccessHandler $access
 
ilSetting $settings
 
ilToolbarGUI $toolbar
 
ilRbacAdmin $rbac_admin
 
ilRbacSystem $rbac_system
 
ilRbacReview $rbac_review
 
ilObjectService $object_service
 
ilObjectDefinition $obj_definition
 
ilGlobalTemplateInterface $tpl
 
ilTree $tree
 
ilCtrl $ctrl
 
ilErrorHandling $error
 
ilLanguage $lng
 
ilTabsGUI $tabs_gui
 
ILIAS $ilias
 
ArrayBasedRequestWrapper $post_wrapper
 
RequestWrapper $request_wrapper
 
Refinery $refinery
 
ilFavouritesManager $favourites
 
CustomIconFactory $custom_icon_factory
 
UIFactory $ui_factory
 
UIRenderer $ui_renderer
 
Filesystem $temp_file_system
 
ilObject $object = null
 
bool $creation_mode = false
 
 $data
 
int $id
 
bool $call_by_reference = false
 
bool $prepare_output
 
int $ref_id
 
int $obj_id
 
int $maxcount
 
array $form_action = []
 
array $return_location = []
 
array $target_frame = []
 
string $tmp_import_dir
 
string $sub_objects = ""
 
bool $omit_locator = false
 
string $type = ""
 
string $admin_mode = self::ADMIN_MODE_NONE
 
int $requested_ref_id = 0
 
int $requested_crtptrefid = 0
 
int $requested_crtcb = 0
 
string $requested_new_type = ""
 
string $link_params
 
string $html = ""
 

Private Member Functions

 exportTrackingItems (bool $by_sco, bool $as_excel)
 
 readTrackingReport ()
 
 readTrackingUserSelection ()
 
 readTrackingScoSelection ()
 
 getTrackedUserIdsByCurrentModifyFilter ()
 

Private Attributes

ilPropertyFormGUI $form
 

Additional Inherited Members

- Static Public Member Functions inherited from ilObjSAHSLearningModuleGUI
static _goto (string $a_target)
 goto target course More...
 
- Static Public Member Functions inherited from ilObjectGUI
static _gotoRepositoryRoot (bool $raise_error=false)
 Goto repository root. More...
 
static _gotoRepositoryNode (int $ref_id, string $cmd="")
 
static _gotoSharedWorkspaceNode (int $wsp_id)
 
- Data Fields inherited from ilObjSAHSLearningModuleGUI
const CMD_IMPORT_FROM_UPLOAD_DIR = 'importFromUploadDir'
 
- 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()

ilObjSCORMLearningModuleGUI::__construct (   $data,
int  $id,
bool  $call_by_reference,
bool  $prepare_output = true 
)

Constructor.

Reimplemented from ilObjSAHSLearningModuleGUI.

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

63 {
64 global $DIC;
65 $this->dic = $DIC;
66 $this->lng = $DIC->language();
67 $this->ctrl = $DIC->ctrl();
68 $this->tpl = $DIC["tpl"];
69
70 $this->lng->loadLanguageModule("content");
71 $this->lng->loadLanguageModule("search");
72
73 $this->refId = $DIC->http()->wrapper()->query()->retrieve('ref_id', $DIC->refinery()->kindlyTo()->int());
74
75 $this->type = "sahs";
77 }
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
global $DIC
Definition: shib_login.php:26

References ilObjectGUI\$call_by_reference, ilObjectGUI\$data, $DIC, ilObjectGUI\$id, ILIAS\GlobalScreen\Provider\__construct(), ILIAS\Repository\ctrl(), and ILIAS\Repository\lng().

+ Here is the call graph for this function:

Member Function Documentation

◆ adoptSettings()

ilObjSCORMLearningModuleGUI::adoptSettings ( )

Definition at line 384 of file class.ilObjSCORMLearningModuleGUI.php.

384 : void
385 {
386
387 if (!$this->dic->access()->checkAccess("write", "", $this->object->getRefId())) {
388 $this->tpl->setOnScreenMessage('failure', $this->lng->txt("msg_no_perm_write"), true);
390 return;
391 }
392
393 $this->setSettingsSubTabs();
394 $this->dic->tabs()->setSubTabActive('sahs_adopt_settings');
396 }
renderAdoptSettingsForm(\ILIAS\UI\Component\Input\Container\Form\Standard $form)
static _gotoRepositoryRoot(bool $raise_error=false)
Goto repository root.

References ilObjectGUI\_gotoRepositoryRoot(), buildAdoptSettingsForm(), ILIAS\Repository\lng(), renderAdoptSettingsForm(), and ilObjSAHSLearningModuleGUI\setSettingsSubTabs().

+ Here is the call graph for this function:

◆ applyAdoptSettings()

ilObjSCORMLearningModuleGUI::applyAdoptSettings ( )

Definition at line 398 of file class.ilObjSCORMLearningModuleGUI.php.

398 : void
399 {
400
401 if (!$this->dic->access()->checkAccess("write", "", $this->object->getRefId())) {
402 $this->tpl->setOnScreenMessage('failure', $this->lng->txt("msg_no_perm_write"), true);
404 return;
405 }
406
407 $this->setSettingsSubTabs();
408 $this->dic->tabs()->setSubTabActive('sahs_adopt_settings');
409
410 $form = $this->buildAdoptSettingsForm()->withRequest($this->dic->http()->request());
411 $data = $form->getData();
412
413 if (!is_array($data)) {
415 return;
416 }
417
418 $source_ref_id = $this->extractSourceRefId($data[self::ADOPT_SOURCE_REF_ID] ?? null);
419 if ($source_ref_id <= 0) {
420 $this->tpl->setOnScreenMessage('failure', $this->lng->txt('sahs_adopt_settings_invalid_source'), true);
421 $this->ctrl->redirect($this, 'adoptSettings');
422 }
423
424 $source_obj_id = ilObject::_lookupObjectId($source_ref_id);
425 if ($source_obj_id === $this->object->getId()) {
426 $this->tpl->setOnScreenMessage('failure', $this->lng->txt('sahs_adopt_settings_invalid_source'), true);
427 $this->ctrl->redirect($this, 'adoptSettings');
428 }
429
430 if (!$this->dic->access()->checkAccess("write", "", $source_ref_id)) {
431 $this->tpl->setOnScreenMessage('failure', $this->lng->txt('sahs_adopt_settings_source_no_write'), true);
432 $this->ctrl->redirect($this, 'adoptSettings');
433 }
434
435 if ($source_obj_id <= 0 || ilObject::_lookupType($source_obj_id) !== "sahs") {
436 $this->tpl->setOnScreenMessage('failure', $this->lng->txt('sahs_adopt_settings_invalid_source'), true);
437 $this->ctrl->redirect($this, 'adoptSettings');
438 }
439
440 $target_subtype = $this->object->getSubType();
441 $source_subtype = ilObjSAHSLearningModule::_lookupSubType($source_obj_id);
442 if ($target_subtype !== $source_subtype) {
443 $this->tpl->setOnScreenMessage('failure', $this->lng->txt('sahs_adopt_settings_subtype_mismatch'), true);
444 $this->ctrl->redirect($this, 'adoptSettings');
445 }
446
447 $source = new ilObjSAHSLearningModule($source_ref_id, true);
448
449 if (!$this->object->adoptSettingsFrom($source)) {
450 $this->tpl->setOnScreenMessage('failure', $this->lng->txt('sahs_adopt_settings_subtype_mismatch'), true);
451 $this->ctrl->redirect($this, 'adoptSettings');
452 }
453 $this->object->update();
454
455 $this->tpl->setOnScreenMessage('success', $this->lng->txt('sahs_adopt_settings_success'), true);
456 $this->ctrl->redirect($this, 'properties');
457 }
Class ilObjSCORMLearningModule.
static _lookupSubType(int $a_obj_id)
lookup subtype id (scorm, )
static _lookupObjectId(int $ref_id)
static _lookupType(int $id, bool $reference=false)

References ilObjectGUI\$data, $form, ilObjectGUI\_gotoRepositoryRoot(), ilObject\_lookupObjectId(), ilObjSAHSLearningModule\_lookupSubType(), ilObject\_lookupType(), buildAdoptSettingsForm(), ILIAS\Repository\ctrl(), extractSourceRefId(), ILIAS\Repository\lng(), ILIAS\Repository\object(), renderAdoptSettingsForm(), and ilObjSAHSLearningModuleGUI\setSettingsSubTabs().

+ Here is the call graph for this function:

◆ applyUserTableFilter()

ilObjSCORMLearningModuleGUI::applyUserTableFilter ( )
protected
Exceptions
ilCtrlException

Definition at line 1422 of file class.ilObjSCORMLearningModuleGUI.php.

1422 : void
1423 {
1424 $this->ctrl->redirect($this, 'modifyTrackingItems');
1425 }

References ILIAS\Repository\ctrl().

+ Here is the call graph for this function:

◆ assignObject()

ilObjSCORMLearningModuleGUI::assignObject ( )
protected

assign scorm object to scorm gui object

Reimplemented from ilObjectGUI.

Reimplemented in ilObjSCORM2004LearningModuleGUI.

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

82 : void
83 {
84 if ($this->id != 0) {
85 if ($this->call_by_reference) {
86 $this->object = new ilObjSCORMLearningModule((int) $this->id, true);
87 } else {
88 $this->object = new ilObjSCORMLearningModule((int) $this->id, false);
89 }
90 }
91 }
Class ilObjSCORMLearningModule.

◆ buildAdoptSettingsForm()

ilObjSCORMLearningModuleGUI::buildAdoptSettingsForm ( )
protected

Definition at line 506 of file class.ilObjSCORMLearningModuleGUI.php.

507 {
508 $factory = $this->dic->ui()->factory();
509
510
511 $source_input = $factory->input()->field()->treeSelect(
513 $this->lng->txt('sahs_adopt_settings_source'),
514 $this->lng->txt('sahs_adopt_settings_source_info')
516 $this->dic->refinery()->custom()->constraint(
517 static function ($value): bool {
518 if (is_array($value) && isset($value[0])) {
519 return (int) $value[0] > 0;
520 }
521 if (is_scalar($value)) {
522 return (int) $value > 0;
523 }
524 return false;
525 },
526 $this->lng->txt('sahs_adopt_settings_source_required')
527 )
528 )->withAdditionalOnLoadCode(
529 static function (string $id): string {
530 return <<<JS
531const field_input = document.getElementById('$id');
532if (field_input) {
533 const tree_select = field_input.closest('.c-input-tree_select');
534 if (tree_select) {
535 const hide_non_leaf_selection = () => {
536 tree_select.querySelectorAll('.c-input-node:not(.c-input-node__leaf) > .c-input-node__select')
537 .forEach((button) => {
538 button.disabled = true;
539 button.setAttribute('aria-disabled', 'true');
540 const glyph = button.querySelector('.glyph');
541 if (glyph) {
542 glyph.classList.add('disabled');
543 }
544 const node = button.closest('.c-input-node');
545 const drilldown_trigger = node
546 ? node.querySelector('.c-drilldown__menulevel--trigger')
547 : null;
548 if (drilldown_trigger instanceof HTMLElement) {
549 drilldown_trigger.style.setProperty('width', '100%', 'important');
550 }
551 button.hidden = true;
552 button.style.display = 'none';
553 button.setAttribute('aria-hidden', 'true');
554 button.tabIndex = -1;
555 button.style.pointerEvents = 'none';
556 });
557 };
558 if (typeof MutationObserver === 'function') {
559 new MutationObserver(hide_non_leaf_selection).observe(tree_select, {childList: true, subtree: true});
560 }
561
562 hide_non_leaf_selection();
563 }
564}
565JS;
566 }
567 );
568
569 return $factory->input()->container()->form()->standard(
570 $this->ctrl->getFormAction($this, 'applyAdoptSettings'),
571 [self::ADOPT_SOURCE_REF_ID => $source_input],
572 )->withSubmitLabel($this->lng->txt('sahs_adopt_settings_apply'));
573 }
withAdditionalTransformation(Transformation $trafo)
Apply a transformation to the data of the form.
This describes a standard form.
Definition: Standard.php:30
button(string $caption, string $cmd)

References ilObjectGUI\$id, buildAdoptSettingsNodeRetrieval(), ILIAS\Repository\button(), ILIAS\Repository\ctrl(), ILIAS\Repository\lng(), and ILIAS\DI\Container\ui().

Referenced by adoptSettings(), and applyAdoptSettings().

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

◆ buildAdoptSettingsNodeRetrieval()

ilObjSCORMLearningModuleGUI::buildAdoptSettingsNodeRetrieval ( )
protected

Definition at line 590 of file class.ilObjSCORMLearningModuleGUI.php.

591 {
592 $data_factory = new DataFactory();
593 [$url_builder, $parent_id_parameter] = $this->buildAdoptSettingsTreeUrlBuilder();
594
595 $async_uri_provider = static function (int $parent_ref_id) use (
596 $data_factory,
597 $url_builder,
598 $parent_id_parameter
599 ): \ILIAS\Data\URI {
600 return $data_factory->uri(
601 (string) $url_builder
602 ->withParameter($parent_id_parameter, (string) $parent_ref_id)
603 ->buildURI()
604 );
605 };
606
608 $this->object->getRefId(),
609 $this->object->getSubType(),
610 $async_uri_provider,
611 $this->dic->language(),
612 $this->dic->access(),
613 $this->dic->repositoryTree(),
614 $this->dic['objDefinition']->getExplorerContainerTypes(),
615 self::ADOPT_TREE_MAX_SYNC_DEPTH,
616 );
617 }
The scope of this class is split ilias-conform URI's into components.
Definition: URI.php:35

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

Referenced by buildAdoptSettingsForm(), and loadAdoptSettingsTreeNodes().

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

◆ buildAdoptSettingsTreeUrlBuilder()

ilObjSCORMLearningModuleGUI::buildAdoptSettingsTreeUrlBuilder ( )
protected
Returns
array{0: URLBuilder, 1: URLBuilderToken}

Definition at line 622 of file class.ilObjSCORMLearningModuleGUI.php.

622 : array
623 {
624 $data_factory = new DataFactory();
625 $url_builder = new URLBuilder(
626 $data_factory->uri(
627 ILIAS_HTTP_PATH . '/' . $this->ctrl->getLinkTarget(
628 $this,
629 'loadAdoptSettingsTreeNodes',
630 null,
631 true
632 )
633 )
634 );
635
636 return $url_builder->acquireParameter(
637 ['sahs', 'adopt', 'settings'],
638 self::ADOPT_TREE_PARENT_REF_ID,
639 );
640 }

Referenced by buildAdoptSettingsNodeRetrieval(), and loadAdoptSettingsTreeNodes().

+ Here is the caller graph for this function:

◆ buildModifyTrackingDataActionsDropdown()

ilObjSCORMLearningModuleGUI::buildModifyTrackingDataActionsDropdown ( )
protected

Definition at line 1209 of file class.ilObjSCORMLearningModuleGUI.php.

1209 : DropdownStandard
1210 {
1211 $factory = $this->dic->ui()->factory();
1212
1213 $actions = [
1214 $factory->link()->standard(
1215 $this->lng->txt('import'),
1216 $this->ctrl->getLinkTarget($this, 'trackingImportForm')
1217 ),
1218 $factory->link()->standard(
1219 $this->lng->txt('cont_export_all'),
1220 $this->ctrl->getLinkTarget($this, 'exportAll')
1221 ),
1222 ];
1223
1224 return $factory->dropdown()->standard($actions)->withLabel(
1225 $this->lng->txt('import') . ' / ' . $this->lng->txt('export')
1226 );
1227 }

References ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ buildTrackingFilter()

ilObjSCORMLearningModuleGUI::buildTrackingFilter ( string  $filter_id,
string  $cmd,
string  $scope_key,
string  $scope_label,
array  $scope_options,
array  $reports 
)
protected
Parameters
array<int,string>$reports
array<string,string>$scope_options
Returns
array{0: FilterAdapterGUI, 1: array<string, string>}

Definition at line 1068 of file class.ilObjSCORMLearningModuleGUI.php.

1075 : array {
1076 $this->lng->loadLanguageModule("scormtrac");
1077
1078 $report_options = $this->getTrackingReportOptions($reports);
1079 $default_scope = array_key_exists('all', $scope_options)
1080 ? 'all'
1081 : (string) (array_key_first($scope_options) ?? 'all');
1082
1083 $filter = new FilterAdapterGUI($filter_id, [get_class($this)], $cmd, true, true);
1084 $filter
1085 ->select($scope_key, $scope_label, $scope_options, true, $default_scope, true)
1086 ->select('report', $this->lng->txt('report'), $report_options, true, 'choose', true);
1087
1088 $raw = $filter->getData() ?? [];
1089
1090 $scope_value = (string) ($raw[$scope_key] ?? $default_scope);
1091 if (!array_key_exists($scope_value, $scope_options)) {
1092 $scope_value = $default_scope;
1093 }
1094
1095 $report_value = (string) ($raw['report'] ?? 'choose');
1096 if (!array_key_exists($report_value, $report_options)) {
1097 $report_value = 'choose';
1098 }
1099
1100 return [$filter, [$scope_key => $scope_value, 'report' => $report_value]];
1101 }

Referenced by ilObjSCORM2004LearningModuleGUI\showTrackingItems(), showTrackingItems(), ilObjSCORM2004LearningModuleGUI\showTrackingItemsBySco(), and showTrackingItemsBySco().

+ Here is the caller graph for this function:

◆ buildTrackingItemsActionsDropdown()

ilObjSCORMLearningModuleGUI::buildTrackingItemsActionsDropdown ( string  $export_mode)
protected

Definition at line 1174 of file class.ilObjSCORMLearningModuleGUI.php.

1174 : DropdownStandard
1175 {
1176 $factory = $this->dic->ui()->factory();
1177
1178 switch ($export_mode) {
1180 $csv_cmd = 'exportTrackingItemsCsvBySco';
1181 $excel_cmd = 'exportTrackingItemsExcelBySco';
1182 break;
1183
1185 $csv_cmd = 'exportTrackingItemsCsvByUser';
1186 $excel_cmd = 'exportTrackingItemsExcelByUser';
1187 break;
1188
1189 default:
1190 throw new \InvalidArgumentException(
1191 sprintf('Unsupported export mode "%s".', $export_mode)
1192 );
1193 }
1194
1195 $actions = [
1196 $factory->link()->standard(
1197 $this->lng->txt('export') . ' CSV',
1198 $this->ctrl->getLinkTarget($this, $csv_cmd)
1199 ),
1200 $factory->link()->standard(
1201 $this->lng->txt('export') . ' Excel',
1202 $this->ctrl->getLinkTarget($this, $excel_cmd)
1203 ),
1204 ];
1205
1206 return $factory->dropdown()->standard($actions)->withLabel($this->lng->txt('export'));
1207 }

References ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ cancel()

ilObjSCORMLearningModuleGUI::cancel ( )

overwrite..jump back to trackingdata not parent

Exceptions
ilCtrlException

Definition at line 1507 of file class.ilObjSCORMLearningModuleGUI.php.

1507 : void
1508 {
1509 $this->tpl->setOnScreenMessage('info', $this->lng->txt("msg_cancel"), true);
1510 $this->ctrl->redirect($this, "properties");
1511 }

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

+ Here is the call graph for this function:

◆ cancelDeleteTracking()

ilObjSCORMLearningModuleGUI::cancelDeleteTracking ( )

cancel deletion of export files

Exceptions
ilCtrlException

Definition at line 1488 of file class.ilObjSCORMLearningModuleGUI.php.

1488 : void
1489 {
1490 $this->tpl->setOnScreenMessage('info', $this->lng->txt("msg_cancel"), true);
1491 $this->ctrl->redirect($this, "modifyTrackingItems");
1492 }

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

+ Here is the call graph for this function:

◆ confirmedDeleteTracking()

ilObjSCORMLearningModuleGUI::confirmedDeleteTracking ( )
Exceptions
ilCtrlException

Definition at line 1497 of file class.ilObjSCORMLearningModuleGUI.php.

1497 : void
1498 {
1499 $this->object->deleteTrackingDataOfUsers($this->post_wrapper->retrieve('user', $this->refinery->kindlyTo()->listOf($this->refinery->kindlyTo()->int())));
1500 $this->ctrl->redirect($this, "modifyTrackingItems");
1501 }

References ILIAS\Repository\ctrl().

+ Here is the call graph for this function:

◆ deleteTrackingForUser()

ilObjSCORMLearningModuleGUI::deleteTrackingForUser ( ?array  $user_ids = null)

display deletion confirmation screen

Exceptions
ilCtrlException

Definition at line 1440 of file class.ilObjSCORMLearningModuleGUI.php.

1440 : void
1441 {
1442 global $DIC;
1443 $ilErr = $DIC["ilErr"];
1444 $DIC->tabs()->clearSubTabs();
1445
1446 if ($user_ids === null) {
1447 if (!$DIC->http()->wrapper()->post()->has('user')) {
1448 $ilErr->raiseError($this->lng->txt("no_checkbox"), $ilErr->MESSAGE);
1449 }
1450 $user_ids = $DIC->http()->wrapper()->post()->retrieve(
1451 'user',
1452 $DIC->refinery()->kindlyTo()->listOf($DIC->refinery()->kindlyTo()->int())
1453 );
1454 }
1455
1456 if (($user_ids[0] ?? null) === 'ALL_OBJECTS') {
1457 $user_ids = $this->getTrackedUserIdsByCurrentModifyFilter();
1458 }
1459
1460 if (count($user_ids) === 0) {
1461 $ilErr->raiseError($this->lng->txt("no_checkbox"), $ilErr->MESSAGE);
1462 }
1463
1464 // display confirmation message
1465 $cgui = new ilConfirmationGUI();
1466 $cgui->setFormAction($this->ctrl->getFormAction($this));
1467 $cgui->setHeaderText($this->lng->txt("info_delete_sure"));
1468 $cgui->setCancel($this->lng->txt("cancel"), "cancelDeleteTracking");
1469 $cgui->setConfirm($this->lng->txt("confirm"), "confirmedDeleteTracking");
1470 foreach ($user_ids as $id) {
1471 if (ilObject::_exists((int) $id) && ilObject::_lookUpType((int) $id) === "usr") {
1472 $user = new ilObjUser((int) $id);
1473
1474 //was ilUtil::getImageTagByType("sahs", (string) $this->tpl->getValue("TPLPATH")) .
1475 $caption = $this->lng->txt("cont_tracking_data") . ": " . $user->getLastname() . ", " . $user->getFirstname();
1476
1477 $cgui->addItem("user[]", (string) $id, $caption);
1478 }
1479 }
1480
1481 $this->tpl->setContent($cgui->getHTML());
1482 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
User class.
static _exists(int $id, bool $reference=false, ?string $type=null)
checks if an object exists in object_data

References $DIC, $id, ilObject\_exists(), ILIAS\Repository\ctrl(), and ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ exportAll()

ilObjSCORMLearningModuleGUI::exportAll ( )
protected

Show export section for all users.

Definition at line 1578 of file class.ilObjSCORMLearningModuleGUI.php.

1578 : void
1579 {
1580 $this->object->exportSelected(true);
1581 }

◆ exportSelectionUsers()

ilObjSCORMLearningModuleGUI::exportSelectionUsers ( ?array  $user_ids = null)

Export selection for selected users.

Exceptions
ilCtrlException

Definition at line 1587 of file class.ilObjSCORMLearningModuleGUI.php.

1587 : void
1588 {
1589 if ($user_ids === null) {
1590 if (!$this->post_wrapper->has('user')) {
1591 $this->tpl->setOnScreenMessage('info', $this->lng->txt("no_checkbox"), true);
1592 $this->ctrl->redirect($this, 'modifyTrackingItems');
1593 }
1594 $user_ids = $this->post_wrapper->retrieve(
1595 'user',
1596 $this->refinery->kindlyTo()->listOf($this->refinery->kindlyTo()->int())
1597 );
1598 }
1599
1600 if (($user_ids[0] ?? null) === 'ALL_OBJECTS') {
1601 $user_ids = $this->getTrackedUserIdsByCurrentModifyFilter();
1602 }
1603
1604 if (count($user_ids) === 0) {
1605 $this->tpl->setOnScreenMessage('info', $this->lng->txt("no_checkbox"), true);
1606 $this->ctrl->redirect($this, 'modifyTrackingItems');
1607 }
1608
1609 $this->object->exportSelected(false, array_map('intval', $user_ids));
1610 }

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

+ Here is the call graph for this function:

◆ exportTrackingItems()

ilObjSCORMLearningModuleGUI::exportTrackingItems ( bool  $by_sco,
bool  $as_excel 
)
private

Reimplemented in ilObjSCORM2004LearningModuleGUI.

Definition at line 1249 of file class.ilObjSCORMLearningModuleGUI.php.

1249 : void
1250 {
1251 global $DIC;
1252 $ilAccess = $DIC->access();
1253 $ilErr = $DIC["ilErr"];
1254
1255 if (!$ilAccess->checkAccess("read_learning_progress", "", $this->refId)) {
1256 $ilErr->raiseError($this->lng->txt('permission_denied'), $ilErr->MESSAGE);
1257 }
1258
1259 $report = $this->readTrackingReport();
1260 $valid_reports = $by_sco
1261 ? [
1262 'exportSelectedCore',
1263 'exportSelectedInteractions',
1264 'exportSelectedObjectives',
1265 'exportSelectedRaw'
1266 ]
1267 : [
1268 'exportSelectedSuccess',
1269 'exportSelectedCore',
1270 'exportSelectedInteractions',
1271 'exportSelectedObjectives',
1272 'exportSelectedRaw'
1273 ];
1274 if (!in_array($report, $valid_reports, true)) {
1275 $report = "choose";
1276 }
1277 if ($report === "choose") {
1278 $this->tpl->setOnScreenMessage('info', $this->lng->txt("please_choose"), true);
1279 $this->ctrl->redirect($this, $by_sco ? 'showTrackingItemsBySco' : 'showTrackingItems');
1280 return;
1281 }
1282
1283 if ($by_sco) {
1284 $sco_selected = $this->readTrackingScoSelection();
1285 $scos_selected = [];
1286 if ($sco_selected !== "all") {
1287 $scos_selected[] = $sco_selected;
1288 } else {
1289 $scos = $this->object->getTrackedItems();
1290 foreach ($scos as $row) {
1291 $scos_selected[] = (int) $row->getId();
1292 }
1293 }
1294 $users_selected = ilTrQuery::getParticipantsForObject($this->ref_id);
1295
1296 $table = new ilSCORMTrackingItemsTableGUI(
1297 $this->object->getId(),
1298 $this,
1299 'showTrackingItemsBySco',
1300 $users_selected,
1301 $scos_selected,
1302 $report
1303 );
1304 } else {
1305 $user_selected = $this->readTrackingUserSelection();
1306 $users_selected = [];
1307 if ($user_selected !== "all") {
1308 $users_selected[] = $user_selected;
1309 } else {
1310 $users = ilTrQuery::getParticipantsForObject($this->ref_id);
1311 foreach ($users as $user) {
1312 if (ilObject::_exists((int) $user) && ilObject::_lookUpType((int) $user) === 'usr') {
1313 $users_selected[] = (int) $user;
1314 }
1315 }
1316 }
1317
1318 $scos_selected = [];
1319 $scos = $this->object->getTrackedItems();
1320 foreach ($scos as $row) {
1321 $scos_selected[] = (int) $row->getId();
1322 }
1323
1324 $table = new ilSCORMTrackingItemsTableGUI(
1325 $this->object->getId(),
1326 $this,
1327 'showTrackingItems',
1328 $users_selected,
1329 $scos_selected,
1330 $report
1331 );
1332 }
1333
1334 if ($as_excel) {
1335 $table->sendExportExcel();
1336 return;
1337 }
1338 $table->sendExportCSV();
1339 }
Class ilSCORMTrackingItemsTableGUI.
static getParticipantsForObject(int $a_ref_id)
Get participant ids for given object.

References $DIC, $report, ilObject\_exists(), ILIAS\Repository\ctrl(), ilTrQuery\getParticipantsForObject(), ILIAS\Repository\int(), ILIAS\Repository\lng(), and ILIAS\Repository\object().

+ Here is the call graph for this function:

◆ exportTrackingItemsCsvBySco()

ilObjSCORMLearningModuleGUI::exportTrackingItemsCsvBySco ( )
protected

Reimplemented in ilObjSCORM2004LearningModuleGUI.

Definition at line 1239 of file class.ilObjSCORMLearningModuleGUI.php.

1239 : void
1240 {
1241 $this->exportTrackingItems(true, false);
1242 }
exportTrackingItems(bool $by_sco, bool $as_excel)

◆ exportTrackingItemsCsvByUser()

ilObjSCORMLearningModuleGUI::exportTrackingItemsCsvByUser ( )
protected

Reimplemented in ilObjSCORM2004LearningModuleGUI.

Definition at line 1229 of file class.ilObjSCORMLearningModuleGUI.php.

1229 : void
1230 {
1231 $this->exportTrackingItems(false, false);
1232 }

◆ exportTrackingItemsExcelBySco()

ilObjSCORMLearningModuleGUI::exportTrackingItemsExcelBySco ( )
protected

Reimplemented in ilObjSCORM2004LearningModuleGUI.

Definition at line 1244 of file class.ilObjSCORMLearningModuleGUI.php.

1244 : void
1245 {
1246 $this->exportTrackingItems(true, true);
1247 }

◆ exportTrackingItemsExcelByUser()

ilObjSCORMLearningModuleGUI::exportTrackingItemsExcelByUser ( )
protected

Reimplemented in ilObjSCORM2004LearningModuleGUI.

Definition at line 1234 of file class.ilObjSCORMLearningModuleGUI.php.

1234 : void
1235 {
1236 $this->exportTrackingItems(false, true);
1237 }

◆ extractSourceRefId()

ilObjSCORMLearningModuleGUI::extractSourceRefId ( mixed  $value)
protected

Definition at line 654 of file class.ilObjSCORMLearningModuleGUI.php.

654 : int
655 {
656 if (is_array($value) && isset($value[0])) {
657 return (int) $value[0];
658 }
659 if (is_scalar($value)) {
660 return (int) $value;
661 }
662 return 0;
663 }

Referenced by applyAdoptSettings().

+ Here is the caller graph for this function:

◆ getMaxFileSize()

ilObjSCORMLearningModuleGUI::getMaxFileSize ( )

Definition at line 737 of file class.ilObjSCORMLearningModuleGUI.php.

737 : string
738 {
739 // get the value for the maximal uploadable filesize from the php.ini (if available)
740 $umf = get_cfg_var("upload_max_filesize");
741 // get the value for the maximal post data from the php.ini (if available)
742 $pms = get_cfg_var("post_max_size");
743
744 //convert from short-string representation to "real" bytes
745 $multiplier_a = array("K" => 1024, "M" => 1024 * 1024, "G" => 1024 * 1024 * 1024);
746
747 $umf_parts = preg_split("/(\d+)([K|G|M])/", $umf, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
748 $pms_parts = preg_split("/(\d+)([K|G|M])/", $pms, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
749
750 if (count($umf_parts) == 2) {
751 $umf = $umf_parts[0] * $multiplier_a[$umf_parts[1]];
752 }
753 if (count($pms_parts) == 2) {
754 $pms = $pms_parts[0] * $multiplier_a[$pms_parts[1]];
755 }
756
757 // use the smaller one as limit
758 $max_filesize = min($umf, $pms);
759
760 if (!$max_filesize) {
761 $max_filesize = max($umf, $pms);
762 }
763
764 //format for display in mega-bytes
765 return $max_filesize = sprintf("%.1f MB", $max_filesize / 1024 / 1024);
766 }

◆ getPropertiesFormValues()

ilObjSCORMLearningModuleGUI::getPropertiesFormValues ( )

Get values for properties form.

Reimplemented in ilObjSCORM2004LearningModuleGUI.

Definition at line 353 of file class.ilObjSCORMLearningModuleGUI.php.

353 : void
354 {
355 $values = array();
356 $values["Fobject_title"] = $this->object->getTitle();
357 $values["Fobject_description"] = $this->object->getLongDescription();
358 if (!$this->object->getOfflineStatus()) {
359 $values["cobj_online"] = true;
360 }
361 // $values["cobj_offline_mode"] = $this->object->getOfflineMode();
362 $values["open_mode"] = $this->object->getOpenMode();
363 $values["width_0"] = $this->object->getWidth();
364 $values["width_1"] = $this->object->getWidth();
365 $values["height_0"] = $this->object->getHeight();
366 $values["height_1"] = $this->object->getHeight();
367 $values["cobj_auto_last_visited"] = $this->object->getAuto_last_visited();
368 $values["auto_continue"] = $this->object->getAutoContinue();
369 $values["lesson_mode"] = $this->object->getDefaultLessonMode();
370 $values["auto_review"] = $this->object->getAutoReviewChar();
371 $values["mastery_score"] = $this->object->getMasteryScore();
372 $values["cobj_session"] = $this->object->getSession();
373 $values["cobj_interactions"] = $this->object->getInteractions();
374 $values["cobj_objectives"] = $this->object->getObjectives();
375 $values["cobj_time_from_lms"] = $this->object->getTime_from_lms();
376 $values["cobj_check_values"] = $this->object->getCheck_values();
377 $values["cobj_auto_suspend"] = $this->object->getAutoSuspend();
378 $values["id_setting"] = $this->object->getIdSetting();
379 $values["name_setting"] = $this->object->getNameSetting();
380 $values["cobj_debug"] = $this->object->getDebug();
381 $this->form->setValuesByArray($values);
382 }
form(?array $class_path, string $cmd, string $submit_caption="")

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

Referenced by properties().

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

◆ getTrackedUserIdsByCurrentModifyFilter()

ilObjSCORMLearningModuleGUI::getTrackedUserIdsByCurrentModifyFilter ( )
private
Returns
array<int, int>

Definition at line 1615 of file class.ilObjSCORMLearningModuleGUI.php.

1615 : array
1616 {
1617 $filter = new FilterAdapterGUI(
1618 'sco_tr_usrs_' . $this->object->getId(),
1619 [get_class($this)],
1620 'modifyTrackingItems'
1621 );
1622 $filter->text('login_filter', $this->lng->txt('login'));
1623 $filter->text('firstname_filter', $this->lng->txt('firstname'));
1624 $filter->text('lastname_filter', $this->lng->txt('lastname'));
1625 $filter->text('email_filter', $this->lng->txt('email'));
1626
1627 $filter_data = $filter->getData() ?? [];
1628 $users = $this->object->getTrackedUsers([
1629 'lastname_filter' => trim((string) ($filter_data['lastname_filter'] ?? '')),
1630 'firstname_filter' => trim((string) ($filter_data['firstname_filter'] ?? '')),
1631 'login_filter' => trim((string) ($filter_data['login_filter'] ?? '')),
1632 'email_filter' => trim((string) ($filter_data['email_filter'] ?? '')),
1633 ]);
1634
1635 $user_ids = array_map(
1636 static fn(array $user): int => (int) ($user['user_id'] ?? 0),
1637 $users
1638 );
1639
1640 return array_values(array_filter($user_ids, static fn(int $id): bool => $id > 0));
1641 }

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

+ Here is the call graph for this function:

◆ getTrackingReportOptions()

ilObjSCORMLearningModuleGUI::getTrackingReportOptions ( array  $reports)
protected
Parameters
array<int,string>$reports
Returns
array<string, string>

Definition at line 1107 of file class.ilObjSCORMLearningModuleGUI.php.

1107 : array
1108 {
1109 $options = ["choose" => $this->lng->txt("please_choose")];
1110 foreach ($reports as $value) {
1111 $options[$value] = $this->lng->txt(strtolower($value));
1112 }
1113
1114 return $options;
1115 }

References ILIAS\UI\Implementation\Component\Input\Field\$options, and ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ getTrackingScoOptions()

ilObjSCORMLearningModuleGUI::getTrackingScoOptions ( )
protected
Returns
array<string, string>

Reimplemented in ilObjSCORM2004LearningModuleGUI.

Definition at line 1149 of file class.ilObjSCORMLearningModuleGUI.php.

1149 : array
1150 {
1151 $options = ["all" => $this->lng->txt("all")];
1152 $scos = $this->object->getTrackedItems();
1153
1154 foreach ($scos as $row) {
1155 $options[(string) $row->getId()] = $row->getTitle();
1156 }
1157
1158 return $options;
1159 }

References ILIAS\UI\Implementation\Component\Input\Field\$options, and ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ getTrackingUserOptions()

ilObjSCORMLearningModuleGUI::getTrackingUserOptions ( )
protected
Returns
array<string, string>

Definition at line 1120 of file class.ilObjSCORMLearningModuleGUI.php.

1120 : array
1121 {
1122 $options = ["all" => $this->lng->txt("all")];
1124 $privacy = ilPrivacySettings::getInstance();
1125 $allowExportPrivacy = $privacy->enabledExportSCORM();
1126
1127 if ($users && count($users) > 0) {
1128 foreach ($users as $usr) {
1129 $user = (int) $usr;
1130 if (ilObject::_exists($user) && ilObject::_lookUpType($user) === 'usr') {
1131 if ($allowExportPrivacy) {
1132 $e_user = new ilObjUser($user);
1133 $options[(string) $user] = $e_user->getLastname() . ", " . $e_user->getFirstname();
1134 } else {
1135 $options[(string) $user] = 'User Id: ' . $user;
1136 }
1137 }
1138 }
1139 } else {
1140 $options = ["-1" => $this->lng->txt("no_items")];
1141 }
1142
1143 return $options;
1144 }

References ILIAS\UI\Implementation\Component\Input\Field\$options, ilObject\_exists(), ilPrivacySettings\getInstance(), ilTrQuery\getParticipantsForObject(), ILIAS\Repository\int(), and ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ importTracking()

ilObjSCORMLearningModuleGUI::importTracking ( )
protected

gui functions for GUI export

Exceptions
ilCtrlException

Definition at line 1517 of file class.ilObjSCORMLearningModuleGUI.php.

1517 : void
1518 {
1519 $form = $this->initTrackingImportForm("");
1520 if ($form->checkInput()) {
1521 $source = $form->getInput('csv');
1522 $success = $this->object->importTrackingData($source['tmp_name']);
1523 switch ($success) {
1524 case true:
1525 $this->tpl->setOnScreenMessage('info', 'Tracking data imported', true);
1526 $this->ctrl->redirect($this, "showTrackingItems");
1527 break;
1528 case false:
1529 $this->tpl->setOnScreenMessage('info', $this->lng->txt('err_check_input'));
1530 $this->trackingImportForm();
1531 break;
1532 }
1533 }
1534 $this->tpl->setOnScreenMessage('info', $this->lng->txt('err_check_input'));
1536 $this->trackingImportForm();
1537 }
getInput(string $a_post_var, bool $ensureValidation=true)
Returns the input of an item, if item provides getInput method and as fallback the value of the HTTP-...

References ilPropertyFormGUI\checkInput(), ILIAS\Repository\ctrl(), ilPropertyFormGUI\getInput(), ILIAS\Repository\lng(), and ilPropertyFormGUI\setValuesByPost().

+ Here is the call graph for this function:

◆ initPropertiesForm()

ilObjSCORMLearningModuleGUI::initPropertiesForm ( )

Init properties form.

Reimplemented in ilObjSCORM2004LearningModuleGUI.

Definition at line 119 of file class.ilObjSCORMLearningModuleGUI.php.

119 : void
120 {
121 $obj_service = $this->object_service;
122 $this->form = new ilPropertyFormGUI();
123 $this->form->setTitle($this->lng->txt("cont_lm_properties"));
124
125 //check/select only once
126 $this->object->checkMasteryScoreValues();
127
128 //title
129 $ti = new ilTextInputGUI($this->lng->txt("title"), "Fobject_title");
130 $ti->setMaxLength(200);
131 $this->form->addItem($ti);
132
133 //description
134 $ti = new ilTextAreaInputGUI($this->lng->txt("description"), "Fobject_description");
135 $ti->setCols(40);
136 $ti->setRows(2);
137 $this->form->addItem($ti);
138
139 // SCORM-type
140 $ne = new ilNonEditableValueGUI($this->lng->txt("type"), "");
141 $ne->setValue($this->lng->txt("lm_type_" . ilObjSAHSLearningModule::_lookupSubType($this->object->getID())));
142 $this->form->addItem($ne);
143
144 // version
145 $ne = new ilNonEditableValueGUI($this->lng->txt("cont_sc_version"), "");
146 $ne->setValue($this->object->getModuleVersion());
147 $ne->setInfo($this->lng->txt("cont_sc_version_info"));
148 $this->form->addItem($ne);
149
150 //
151 // activation
152 //
153 $sh = new ilFormSectionHeaderGUI();
154 $sh->setTitle($this->lng->txt("activation"));
155 $this->form->addItem($sh);
156
157 // online
158 $cb = new ilCheckboxInputGUI($this->lng->txt("cont_online"), "cobj_online");
159 $cb->setInfo($this->lng->txt("cont_online_info"));
160 $this->form->addItem($cb);
161
162
163 //
164 // presentation
165 //
166 $sh = new ilFormSectionHeaderGUI();
167 $sh->setTitle($this->lng->txt("cont_presentation"));
168 $this->form->addItem($sh);
169
170 $radg = new ilRadioGroupInputGUI($this->lng->txt("cont_open"), "open_mode");
171 $op0 = new ilRadioOption($this->lng->txt("cont_open_normal"), "0");
172 $op0->setInfo($this->lng->txt("cont_open_normal_info"));
173 $radg->addOption($op0);
174 $op1 = new ilRadioOption($this->lng->txt("cont_open_iframe"), "1");
175 $op1->setInfo($this->lng->txt("cont_open_iframe_info"));
176 $radg->addOption($op1);
177 $op2 = new ilRadioOption($this->lng->txt("cont_open_window"), "5");
178 $op2->setInfo($this->lng->txt("cont_open_window_info"));
179 $radg->addOption($op2);
180
181 // width
182 $ni = new ilNumberInputGUI($this->lng->txt("cont_width"), "width_0");
183 $ni->setMaxLength(4);
184 $ni->setSize(4);
185 $op1->addSubItem($ni);
186 $ni = new ilNumberInputGUI($this->lng->txt("cont_width"), "width_1");
187 $ni->setMaxLength(4);
188 $ni->setSize(4);
189 $op2->addSubItem($ni);
190 // height
191 $ni = new ilNumberInputGUI($this->lng->txt("cont_height"), "height_0");
192 $ni->setMaxLength(4);
193 $ni->setSize(4);
194 $ni->setInfo($this->lng->txt("cont_width_height_info"));
195 $op1->addSubItem($ni);
196 $ni = new ilNumberInputGUI($this->lng->txt("cont_height"), "height_1");
197 $ni->setMaxLength(4);
198 $ni->setSize(4);
199 $ni->setInfo($this->lng->txt("cont_width_height_info"));
200 $op2->addSubItem($ni);
201
202 $this->form->addItem($radg);
203
204 // auto navigation to last visited item
205 $cb = new ilCheckboxInputGUI($this->lng->txt("cont_auto_last_visited"), "cobj_auto_last_visited");
206 $cb->setValue("y");
207 $cb->setInfo($this->lng->txt("cont_auto_last_visited_info"));
208 $this->form->addItem($cb);
209
210 // auto continue
211 $cb = new ilCheckboxInputGUI($this->lng->txt("cont_sc_auto_continue"), "auto_continue");
212 $cb->setValue("y");
213 $cb->setInfo($this->lng->txt("cont_sc_auto_continue_info"));
214 $this->form->addItem($cb);
215
216 // tile image
217 $obj_service->commonSettings()->legacyForm($this->form, $this->object)->addTileImage();
218
219 //
220 // scorm options
221 //
222 $sh = new ilFormSectionHeaderGUI();
223 $sh->setTitle($this->lng->txt("cont_scorm_options"));
224 $this->form->addItem($sh);
225
226 // lesson mode
227 $radg = new ilRadioGroupInputGUI($this->lng->txt("cont_def_lesson_mode"), "lesson_mode");
228 $op0 = new ilRadioOption($this->lng->txt("cont_sc_less_mode_normal"), "normal");
229 $op0->setInfo($this->lng->txt("cont_sc_less_mode_normal_info"));
230 $radg->addOption($op0);
231 $op1 = new ilRadioOption($this->lng->txt("cont_sc_less_mode_browse"), "browse");
232 $op1->setInfo($this->lng->txt("cont_sc_less_mode_browse_info"));
233 $radg->addOption($op1);
234
235
236 // set lesson mode review when completed
237 $options = array(
238 "n" => $this->lng->txt("cont_sc_auto_review_no"),
239 "y" => $this->lng->txt("cont_sc_auto_review_completed_or_passed"),
240 );
241 $si = new ilSelectInputGUI($this->lng->txt("cont_sc_auto_review_2004"), "auto_review");
242 $si->setOptions($options);
243 // $si->setInfo($this->lng->txt("cont_sc_auto_review_info_12"));
244 $op0->addSubItem($si);
245 // end lesson mode
246 $this->form->addItem($radg);
247
248 // mastery_score
249 if ($this->object->getMasteryScoreValues() != "") {
250 $ni = new ilNumberInputGUI($this->lng->txt("cont_mastery_score_12"), "mastery_score");
251 $ni->setMaxLength(3);
252 $ni->setSize(3);
253 $ni->setInfo($this->lng->txt("cont_mastery_score_12_info") . ' ' . $this->object->getMasteryScoreValues());
254 $this->form->addItem($ni);
255 }
256
257 //
258 // rte settings
259 //
260 $sh = new ilFormSectionHeaderGUI();
261 $sh->setTitle($this->lng->txt("cont_rte_settings"));
262 $this->form->addItem($sh);
263
264 // unlimited session timeout
265 $cb = new ilCheckboxInputGUI($this->lng->txt("cont_sc_usession"), "cobj_session");
266 $cb->setValue("y");
267 $cb->setInfo($this->lng->txt("cont_sc_usession_info"));
268 $this->form->addItem($cb);
269
270 // storage of interactions
271 $cb = new ilCheckboxInputGUI($this->lng->txt("cont_interactions"), "cobj_interactions");
272 $cb->setValue("y");
273 $cb->setInfo($this->lng->txt("cont_interactions_info_12"));
274 $this->form->addItem($cb);
275
276 // objectives
277 $cb = new ilCheckboxInputGUI($this->lng->txt("cont_objectives"), "cobj_objectives");
278 $cb->setValue("y");
279 $cb->setInfo($this->lng->txt("cont_objectives_info"));
280 $this->form->addItem($cb);
281
282 // time from lms
283 $cb = new ilCheckboxInputGUI($this->lng->txt("cont_time_from_lms"), "cobj_time_from_lms");
284 $cb->setValue("y");
285 $cb->setInfo($this->lng->txt("cont_time_from_lms_info"));
286 $this->form->addItem($cb);
287
288 // check values
289 $cb = new ilCheckboxInputGUI($this->lng->txt("cont_check_values"), "cobj_check_values");
290 $cb->setValue("y");
291 $cb->setInfo($this->lng->txt("cont_check_values_info"));
292 $this->form->addItem($cb);
293
294 // auto cmi.core.exit to suspend
295 $cb = new ilCheckboxInputGUI($this->lng->txt("cont_auto_suspend"), "cobj_auto_suspend");
296 $cb->setValue("y");
297 $cb->setInfo($this->lng->txt("cont_auto_suspend_info"));
298 $this->form->addItem($cb);
299
300 // settings for student_id
301 $options = array(
302 0 => $this->lng->txt("cont_sc_id_setting_user_id"),
303 1 => $this->lng->txt("cont_sc_id_setting_user_login"),
304 2 => $this->lng->txt("cont_sc_id_setting_user_id_plus_ref_id"),
305 3 => $this->lng->txt("cont_sc_id_setting_user_login_plus_ref_id"),
306 4 => $this->lng->txt("cont_sc_id_setting_user_id_plus_obj_id"),
307 5 => $this->lng->txt("cont_sc_id_setting_user_login_plus_obj_id")
308 );
309 $si = new ilSelectInputGUI($this->lng->txt("cont_sc_id_setting"), "id_setting");
310 $si->setOptions($options);
311 $si->setInfo($this->lng->txt("cont_sc_id_setting_info"));
312 $this->form->addItem($si);
313
314 // settings for student_name
315 $options = array(
316 0 => $this->lng->txt("cont_sc_name_setting_last_firstname"),
317 1 => $this->lng->txt("cont_sc_name_setting_first_lastname"),
318 2 => $this->lng->txt("cont_sc_name_setting_fullname"),
319 3 => $this->lng->txt("cont_sc_name_setting_salutation_lastname"),
320 4 => $this->lng->txt("cont_sc_name_setting_first_name"),
321 9 => $this->lng->txt("cont_sc_name_setting_no_name")
322 );
323 $si = new ilSelectInputGUI($this->lng->txt("cont_sc_name_setting"), "name_setting");
324 $si->setOptions($options);
325 $si->setInfo($this->lng->txt("cont_sc_name_setting_info"));
326 $this->form->addItem($si);
327
328 //
329 // debugging
330 //
331 $sh = new ilFormSectionHeaderGUI();
332 $sh->setTitle($this->lng->txt("cont_debugging"));
333 $this->form->addItem($sh);
334
335 // test tool
336 $cb = new ilCheckboxInputGUI($this->lng->txt("cont_debug"), "cobj_debug");
337 $cb->setValue("y");
338 if ($this->object->getDebugActivated() == false) {
339 $cb->setDisabled(true);
340 $cb->setInfo($this->lng->txt("cont_debug_deactivated"));
341 } else {
342 $cb->setInfo($this->lng->txt("cont_debug_deactivate12"));
343 }
344 $this->form->addItem($cb);
345 $this->form->addCommandButton("saveProperties", $this->lng->txt("save"));
346 $this->form->setFormAction($this->ctrl->getFormAction($this));
347 }
This class represents a checkbox property in a property form.
This class represents a section header in a property form.
This class represents a non editable value in a property form.
This class represents a number property in a property form.
ilObjectService $object_service
This class represents a property form user interface.
This class represents a property in a property form.
This class represents an option in a radio group.
This class represents a selection list property in a property form.
This class represents a text area property in a property form.
This class represents a text property in a property form.

References ilObjectGUI\$object_service, ILIAS\UI\Implementation\Component\Input\Field\$options, ilObjSAHSLearningModule\_lookupSubType(), ILIAS\Repository\ctrl(), ILIAS\Repository\form(), ILIAS\Repository\lng(), and ILIAS\Repository\object().

Referenced by properties(), and saveProperties().

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

◆ initTrackingImportForm()

ilObjSCORMLearningModuleGUI::initTrackingImportForm ( )
protected

Init import form.

Exceptions
ilCtrlException

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

1560 {
1561 $form = new ilPropertyFormGUI();
1562 $form->setFormAction($this->ctrl->getFormAction($this));
1563 $form->setTitle($this->lng->txt('cont_import_tracking'));
1564 $form->addCommandButton('importTracking', $this->lng->txt('import'));
1565 $form->addCommandButton('showTrackingItems', $this->lng->txt('cancel'));
1566
1567 $csv = new ilFileInputGUI($this->lng->txt('select_file'), 'csv');
1568 $csv->setRequired(true);
1569 $csv->setSuffixes(array('csv'));
1570 $form->addItem($csv);
1571
1572 return $form;
1573 }
This class represents a file property in a property form.
setFormAction(string $a_formaction)
addCommandButton(string $a_cmd, string $a_text, string $a_id="")

References ilPropertyFormGUI\addCommandButton(), ilPropertyFormGUI\addItem(), ILIAS\Repository\ctrl(), ILIAS\Repository\lng(), ilFormGUI\setFormAction(), and ilPropertyFormGUI\setTitle().

+ Here is the call graph for this function:

◆ loadAdoptSettingsTreeNodes()

ilObjSCORMLearningModuleGUI::loadAdoptSettingsTreeNodes ( )

Definition at line 459 of file class.ilObjSCORMLearningModuleGUI.php.

459 : void
460 {
461 if (!$this->ctrl->isAsynch()) {
462 throw new \RuntimeException(self::class . '::' . __FUNCTION__ . ' must be called asynchronously.');
463 }
464
465 if (!$this->dic->access()->checkAccess("write", "", $this->object->getRefId())) {
467 return;
468 }
469
470 [, $parent_id_parameter] = $this->buildAdoptSettingsTreeUrlBuilder();
471 $parent_id_parameter_name = $parent_id_parameter->getName();
472
473 $query = $this->dic->http()->wrapper()->query();
474 if (!$query->has($parent_id_parameter_name)) {
476 return;
477 }
478
479 $parent_ref_id = (int) $query->retrieve(
480 $parent_id_parameter_name,
481 $this->dic->refinery()->kindlyTo()->int()
482 );
483 if ($parent_ref_id <= 0) {
485 return;
486 }
487
488 $factory = $this->dic->ui()->factory();
489 $renderer = $this->dic->ui()->renderer();
490 $node_retrieval = $this->buildAdoptSettingsNodeRetrieval();
491 $node_generator = $node_retrieval->getNodes(
492 $factory->input()->field()->node(),
493 $factory->symbol()->icon(),
494 [],
495 (string) $parent_ref_id,
496 );
497
498 $html = '';
499 foreach ($node_generator as $node) {
500 $html .= $renderer->renderAsync($node);
501 }
502
504 }
$renderer

References ilObjectGUI\$html, $renderer, buildAdoptSettingsNodeRetrieval(), buildAdoptSettingsTreeUrlBuilder(), ILIAS\Repository\ctrl(), ILIAS\Repository\int(), and sendAdoptSettingsTreeResponse().

+ Here is the call graph for this function:

◆ modifyTrackingItems()

ilObjSCORMLearningModuleGUI::modifyTrackingItems ( )
protected
Exceptions
ilCtrlException

Definition at line 1380 of file class.ilObjSCORMLearningModuleGUI.php.

1380 : void
1381 {
1382 global $DIC;
1383 $ilAccess = $DIC->access();
1384 $ilErr = $DIC["ilErr"];
1385 if ($ilAccess->checkAccess("edit_learning_progress", "", $this->refId)) {
1386 $privacy = ilPrivacySettings::getInstance();
1387 if (!$privacy->enabledSahsProtocolData()) {
1388 $ilErr->raiseError($this->lng->txt('permission_denied'), $ilErr->MESSAGE);
1389 }
1390
1391 global $DIC;
1392 $ilTabs = $DIC->tabs();
1393
1394 $this->setSubTabs();
1395 $ilTabs->setTabActive('cont_tracking_data');
1396 $ilTabs->setSubTabActive('cont_tracking_modify');
1397 $tbl = new ilSCORMTrackingUsersTableGUI($this->object->getId(), $this, 'modifyTrackingItems');
1398 $tbl->parse();
1399 if ($tbl->handleCommand()) {
1400 return;
1401 }
1402
1403 $factory = $this->dic->ui()->factory();
1404 $renderer = $this->dic->ui()->renderer();
1405 $panel = $factory->panel()->standard(
1406 $this->lng->txt('cont_tracking_items'),
1407 $factory->legacy()->content($tbl->getTableHTML())
1408 )->withActions(
1410 );
1411
1412 $this->tpl->setContent(
1413 $tbl->getFilterHTML()
1414 . $renderer->render($panel)
1415 );
1416 }
1417 }

References $DIC, $renderer, ilPrivacySettings\getInstance(), ILIAS\Repository\lng(), and ILIAS\Repository\object().

Referenced by ilObjSCORM2004LearningModuleGUI\showTrackingItems(), showTrackingItems(), ilObjSCORM2004LearningModuleGUI\showTrackingItemsBySco(), and showTrackingItemsBySco().

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

◆ newModuleVersion()

ilObjSCORMLearningModuleGUI::newModuleVersion ( )

upload new version of module

Definition at line 668 of file class.ilObjSCORMLearningModuleGUI.php.

668 : void
669 {
670 global $DIC;
671 $ilTabs = $DIC->tabs();
672 $this->setSettingsSubTabs();
673 $ilTabs->setSubTabActive('cont_sc_new_version');
674
675 // a new module version replaces the content of the IRSS container, so
676 // the module must have been migrated to the Resource Storage first
677 if (!$this->object->hasContainerResource()) {
678 $this->tpl->setContent(
679 $DIC->ui()->renderer()->render([
680 $DIC->ui()->factory()->messageBox()->info($this->lng->txt('infobox_files_not_migrated'))
681 ])
682 );
683 return;
684 }
685
686 $obj_id = ilObject::_lookupObjectId($this->refId);
688 $this->form = new ilPropertyFormGUI();
689 //title
690 $this->form->setTitle($this->lng->txt("import_sahs_new"));
691
692 $this->form->setDescription($this->lng->txt("import_sahs_info"));
693
694 // SCORM-type
695 $ne = new ilNonEditableValueGUI($this->lng->txt("type"), "");
696 $ne->setValue($this->lng->txt("lm_type_" . ilObjSAHSLearningModule::_lookupSubType($this->object->getID())));
697 $this->form->addItem($ne);
698
699 $options = array();
701 $options[""] = $this->lng->txt("cont_select_from_upload_dir");
703 foreach ($files as $file) {
704 $file = htmlspecialchars($file, ENT_QUOTES, "utf-8");
705 $options[$file] = $file;
706 }
707 }
708 if (count($options) > 1) {
709 // choose upload directory
710 $radg = new ilRadioGroupInputGUI($this->lng->txt("cont_choose_file_source"), "file_source");
711 $op0 = new ilRadioOption($this->lng->txt("cont_choose_local"), "local");
712 $radg->addOption($op0);
713 $op1 = new ilRadioOption($this->lng->txt("cont_choose_upload_dir"), "upload_dir");
714 $radg->addOption($op1);
715 $radg->setValue("local");
716
717 $fi = new ilFileInputGUI($this->lng->txt("select_file"), "scormfile");
718 $fi->setRequired(true);
719 $op0->addSubItem($fi);
720
721 $si = new ilSelectInputGUI($this->lng->txt("cont_uploaded_file"), "uploaded_file");
722 $si->setOptions($options);
723 $op1->addSubItem($si);
724
725 $this->form->addItem($radg);
726 } else {
727 $fi = new ilFileInputGUI($this->lng->txt("select_file"), "scormfile");
728 $fi->setRequired(true);
729 $this->form->addItem($fi);
730 }
731 $this->form->addCommandButton("newModuleVersionUpload", $this->lng->txt("upload"));
732 $this->form->addCommandButton("cancel", $this->lng->txt("cancel"));
733 $this->form->setFormAction($DIC->ctrl()->getFormAction($this, "newModuleVersionUpload"));
734 $DIC['tpl']->setContent($this->form->getHTML());
735 }
static _getUploadDirectory()

References $DIC, $files, ilObjectGUI\$obj_id, ILIAS\UI\Implementation\Component\Input\Field\$options, ilObjectGUI\$type, ilUploadFiles\_getUploadDirectory(), ilUploadFiles\_getUploadFiles(), ilObject\_lookupObjectId(), ilObjSAHSLearningModule\_lookupSubType(), ILIAS\Repository\form(), ILIAS\Repository\lng(), ILIAS\Repository\object(), and ilObjSAHSLearningModuleGUI\setSettingsSubTabs().

Referenced by newModuleVersionUpload().

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

◆ newModuleVersionUpload()

ilObjSCORMLearningModuleGUI::newModuleVersionUpload ( )
Exceptions
ilException
ilFileUtilsException

Definition at line 772 of file class.ilObjSCORMLearningModuleGUI.php.

772 : void
773 {
774 global $DIC;
775 $rbacsystem = $DIC->access();
776 $ilErr = $DIC["ilErr"];
777
778 // a new module version replaces the IRSS container content, only
779 // possible once the module has been migrated to the Resource Storage
780 if (!$this->object->hasContainerResource()) {
781 $this->newModuleVersion();
782 return;
783 }
784
785 $unzip = PATH_TO_UNZIP;
786 $tocheck = "imsmanifest.xml";
787
788 // check create permission before because the uploaded file will be copied
789 if (!$rbacsystem->checkAccess("write", "", $this->refId)) {
790 $ilErr->raiseError($this->lng->txt("no_create_permission"), $ilErr->WARNING);
791 } elseif ($_FILES["scormfile"]["name"]) {
792 // check if file was uploaded
793 $source = $_FILES["scormfile"]["tmp_name"];
794 if (($source === 'none') || (!$source)) {
795 $this->tpl->setOnScreenMessage('info', $this->lng->txt("upload_error_file_not_found"), true);
796 $this->newModuleVersion();
797 return;
798 }
799 } elseif ($DIC->http()->wrapper()->post()->has('uploaded_file')) {
800 $uploadedFile = $DIC->http()->wrapper()->post()->retrieve('uploaded_file', $DIC->refinery()->kindlyTo()->string());
801 // check if the file is in the ftp directory and readable
802 if (!ilUploadFiles::_checkUploadFile($uploadedFile)) {
803 $ilErr->raiseError($this->lng->txt("upload_error_file_not_found"), $ilErr->MESSAGE);
804 }
805 // copy the uploaded file to the client web dir to analyze the imsmanifest
806 // the copy will be moved to the lm directory or deleted
807 $source = CLIENT_WEB_DIR . "/" . $uploadedFile;
808 ilUploadFiles::_copyUploadFile($uploadedFile, $source);
809 $source_is_copy = true;
810 } else {
811 $this->tpl->setOnScreenMessage('info', $this->lng->txt("upload_error_file_not_found"), true);
812 $this->newModuleVersion();
813 return;
814 }
815 // fim.
816
817 //unzip the imsmanifest-file from new uploaded file
818 $pathinfo = pathinfo($source);
819 $dir = $pathinfo["dirname"];
820 $file = $pathinfo["basename"];
821 $cdir = getcwd();
822 chdir($dir);
823
824 //we need more flexible unzip here than ILIAS standard classes allow
825 $unzipcmd = $unzip . " -o " . ilShellUtil::escapeShellArg($source) . " " . $tocheck;
826 exec($unzipcmd);
827 chdir($cdir);
828 $tmp_file = $dir . "/" . $this->refId . "." . $tocheck;
829
830 ilFileUtils::rename($dir . "/" . $tocheck, $tmp_file);
831 $new_manifest = file_get_contents($tmp_file);
832
833 //remove temp file
834 unlink($tmp_file);
835
836 //get old manifest file from the container resource
837 $old_manifest = (string) $this->object->getManifestFromContainer($tocheck);
838
839 //reload fixed version of file
840 $check = '/xmlns="http:\/\/www.imsglobal.org\/xsd\/imscp_v1p1"/';
841 $replace = "xmlns=\"http://www.imsproject.org/xsd/imscp_rootv1p1p2\"";
842 $reload_manifest = preg_replace($check, $replace, $new_manifest);
843
844 //do testing for converted versions as well as earlier ILIAS version messed up utf8 conversion
845 if (strcmp($new_manifest, $old_manifest) == 0 || strcmp(mb_convert_encoding($new_manifest, "UTF-8", mb_detect_encoding($new_manifest)), $old_manifest) == 0 ||
846 strcmp($reload_manifest, $old_manifest) == 0 || strcmp(mb_convert_encoding($reload_manifest, "UTF-8", mb_detect_encoding($reload_manifest)), $old_manifest) == 0) {
847
848 //get exisiting module version
849 $module_version = $this->object->getModuleVersion() + 1;
850
851 // store the uploaded package as a new revision of the container
852 $revision_title = ($_FILES["scormfile"]["name"] ?? '') !== ''
853 ? (string) $_FILES["scormfile"]["name"]
854 : basename($source);
855 $this->object->replaceContainerFromZipPath($source, $revision_title);
856
857 if (isset($source_is_copy)) {
858 @unlink($source);
859 }
860
861 //increase module version
862 $this->object->setModuleVersion($module_version);
863 $this->object->update();
864
865 //redirect to properties and display success
866 $this->tpl->setOnScreenMessage('info', $this->lng->txt("cont_new_module_added"), true);
867 ilUtil::redirect("ilias.php?baseClass=ilSAHSEditGUI&ref_id=" . $this->refId);
868 exit;
869 }
870
871 if (isset($source_is_copy)) {
872 unlink($source);
873 }
874
875 $this->tpl->setOnScreenMessage('info', $this->lng->txt("cont_invalid_new_module"), true);
876 $this->newModuleVersion();
877 }
$check
Definition: buildRTE.php:81
static rename(string $a_source, string $a_target)
newModuleVersion()
upload new version of module
static escapeShellArg(string $a_arg)
static _copyUploadFile(string $a_file, string $a_target, bool $a_raise_errors=true)
static _checkUploadFile(string $a_file)
static redirect(string $a_script)
const CLIENT_WEB_DIR
Definition: constants.php:47
exit
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...

References $check, $DIC, ilUploadFiles\_checkUploadFile(), ilUploadFiles\_copyUploadFile(), CLIENT_WEB_DIR, ilShellUtil\escapeShellArg(), exit, ILIAS\Repository\lng(), newModuleVersion(), ILIAS\Repository\object(), ilUtil\redirect(), and ilFileUtils\rename().

+ Here is the call graph for this function:

◆ properties()

ilObjSCORMLearningModuleGUI::properties ( )

scorm module properties

Reimplemented from ilObjSAHSLearningModuleGUI.

Reimplemented in ilObjSCORM2004LearningModuleGUI.

Definition at line 96 of file class.ilObjSCORMLearningModuleGUI.php.

96 : void
97 {
98 global $DIC;
99 $ilToolbar = $DIC->toolbar();
100 $ilTabs = $DIC->tabs();
101
102 // $lng->loadLanguageModule("style");
103
104 $this->setSettingsSubTabs();
105 $ilTabs->setSubTabActive('general');//cont_settings
106
107 // view
108 $ilToolbar->addComponent($this->object->getViewButton());
109
110 // lm properties
111 $this->initPropertiesForm();
113 $this->tpl->setContent($this->form->getHTML());
114 }
getPropertiesFormValues()
Get values for properties form.

References $DIC, ILIAS\Repository\form(), getPropertiesFormValues(), initPropertiesForm(), ILIAS\Repository\object(), and ilObjSAHSLearningModuleGUI\setSettingsSubTabs().

+ Here is the call graph for this function:

◆ readTrackingReport()

ilObjSCORMLearningModuleGUI::readTrackingReport ( )
private

Reimplemented in ilObjSCORM2004LearningModuleGUI.

Definition at line 1341 of file class.ilObjSCORMLearningModuleGUI.php.

1341 : string
1342 {
1343 $report = "choose";
1344 if ($this->dic->http()->wrapper()->query()->has('report')) {
1345 $report = $this->dic->http()->wrapper()->query()->retrieve('report', $this->dic->refinery()->kindlyTo()->string());
1346 }
1347 if ($this->dic->http()->wrapper()->post()->has('report')) {
1348 $report = $this->dic->http()->wrapper()->post()->retrieve('report', $this->dic->refinery()->kindlyTo()->string());
1349 }
1350 return $report;
1351 }

References $report.

◆ readTrackingScoSelection()

ilObjSCORMLearningModuleGUI::readTrackingScoSelection ( )
private

Reimplemented in ilObjSCORM2004LearningModuleGUI.

Definition at line 1365 of file class.ilObjSCORMLearningModuleGUI.php.

1365 : string
1366 {
1367 $sco_selected = "all";
1368 if ($this->dic->http()->wrapper()->query()->has('scoSelected')) {
1369 $sco_selected = $this->dic->http()->wrapper()->query()->retrieve('scoSelected', $this->dic->refinery()->kindlyTo()->string());
1370 }
1371 if ($this->dic->http()->wrapper()->post()->has('scoSelected')) {
1372 $sco_selected = $this->dic->http()->wrapper()->post()->retrieve('scoSelected', $this->dic->refinery()->kindlyTo()->string());
1373 }
1374 return $sco_selected;
1375 }

◆ readTrackingUserSelection()

ilObjSCORMLearningModuleGUI::readTrackingUserSelection ( )
private

Reimplemented in ilObjSCORM2004LearningModuleGUI.

Definition at line 1353 of file class.ilObjSCORMLearningModuleGUI.php.

1353 : string
1354 {
1355 $user_selected = "all";
1356 if ($this->dic->http()->wrapper()->query()->has('userSelected')) {
1357 $user_selected = $this->dic->http()->wrapper()->query()->retrieve('userSelected', $this->dic->refinery()->kindlyTo()->string());
1358 }
1359 if ($this->dic->http()->wrapper()->post()->has('userSelected')) {
1360 $user_selected = $this->dic->http()->wrapper()->post()->retrieve('userSelected', $this->dic->refinery()->kindlyTo()->string());
1361 }
1362 return $user_selected;
1363 }

◆ renderAdoptSettingsForm()

ilObjSCORMLearningModuleGUI::renderAdoptSettingsForm ( \ILIAS\UI\Component\Input\Container\Form\Standard  $form)
protected

Definition at line 575 of file class.ilObjSCORMLearningModuleGUI.php.

575 : void
576 {
577 $factory = $this->dic->ui()->factory();
578 $renderer = $this->dic->ui()->renderer();
579
580 $description = $factory->legacy()->content(
581 '<p>' . htmlspecialchars($this->lng->txt('sahs_adopt_settings_description'), ENT_QUOTES, 'UTF-8') . '</p>'
582 );
583 $panel = $factory->panel()->standard(
584 $this->lng->txt('sahs_adopt_settings_title'),
585 [$description, $form],
586 );
587 $this->tpl->setContent($renderer->render($panel));
588 }

References $form, $renderer, and ILIAS\Repository\lng().

Referenced by adoptSettings(), and applyAdoptSettings().

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

◆ renderTrackingTableWithExportActions()

ilObjSCORMLearningModuleGUI::renderTrackingTableWithExportActions ( string  $table_html,
string  $export_mode 
)
protected

Definition at line 1161 of file class.ilObjSCORMLearningModuleGUI.php.

1161 : string
1162 {
1163 $factory = $this->dic->ui()->factory();
1164 $renderer = $this->dic->ui()->renderer();
1165
1166 $panel = $factory->panel()->standard(
1167 $this->lng->txt('cont_tracking_items'),
1168 $factory->legacy()->content($table_html)
1169 )->withActions($this->buildTrackingItemsActionsDropdown($export_mode));
1170
1171 return $renderer->render($panel);
1172 }

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

Referenced by ilObjSCORM2004LearningModuleGUI\showTrackingItems(), showTrackingItems(), ilObjSCORM2004LearningModuleGUI\showTrackingItemsBySco(), and showTrackingItemsBySco().

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

◆ resetUserTableFilter()

ilObjSCORMLearningModuleGUI::resetUserTableFilter ( )
protected

Reset table filter.

Exceptions
ilCtrlException

Definition at line 1431 of file class.ilObjSCORMLearningModuleGUI.php.

1431 : void
1432 {
1433 $this->ctrl->redirect($this, 'modifyTrackingItems');
1434 }

References ILIAS\Repository\ctrl().

+ Here is the call graph for this function:

◆ saveProperties()

ilObjSCORMLearningModuleGUI::saveProperties ( )
Exceptions
ilCtrlException

Reimplemented from ilObjSAHSLearningModuleGUI.

Reimplemented in ilObjSCORM2004LearningModuleGUI.

Definition at line 882 of file class.ilObjSCORMLearningModuleGUI.php.

882 : void
883 {
884 $obj_service = $this->object_service;
885 $this->initPropertiesForm();
886 if ($this->form->checkInput()) {
887 $this->object->setTitle($this->dic->http()->wrapper()->post()->retrieve('Fobject_title', $this->dic->refinery()->kindlyTo()->string()));
888 $this->object->setDescription($this->dic->http()->wrapper()->post()->retrieve('Fobject_description', $this->dic->refinery()->kindlyTo()->string()));
889
890 if ($this->dic->http()->wrapper()->post()->has('mastery_score')) {
891 $sMasteryScore = $this->dic->http()->wrapper()->post()->retrieve('mastery_score', $this->dic->refinery()->kindlyTo()->string());
892 if ($sMasteryScore !== "") {
893 $this->object->setMasteryScore((int) $sMasteryScore);
894 } else {
895 $this->object->setMasteryScore(null);
896 }
897 }
898
899 $t_height = $this->object->getHeight();
900 if ($this->dic->http()->wrapper()->post()->retrieve('height_0', $this->dic->refinery()->kindlyTo()->int()) != $this->object->getHeight()) {
901 $t_height = $this->dic->http()->wrapper()->post()->retrieve('height_0', $this->dic->refinery()->kindlyTo()->int());
902 }
903 if ($this->dic->http()->wrapper()->post()->retrieve('height_1', $this->dic->refinery()->kindlyTo()->int()) != $this->object->getHeight()) {
904 $t_height = $this->dic->http()->wrapper()->post()->retrieve('height_1', $this->dic->refinery()->kindlyTo()->int());
905 }
906
907 $t_width = $this->object->getWidth();
908 if ($this->dic->http()->wrapper()->post()->retrieve('width_0', $this->dic->refinery()->kindlyTo()->int()) != $this->object->getWidth()) {
909 $t_width = $this->dic->http()->wrapper()->post()->retrieve('width_0', $this->dic->refinery()->kindlyTo()->int());
910 }
911 if ($this->dic->http()->wrapper()->post()->retrieve('width_1', $this->dic->refinery()->kindlyTo()->int()) != $this->object->getWidth()) {
912 $t_width = $this->dic->http()->wrapper()->post()->retrieve('width_1', $this->dic->refinery()->kindlyTo()->int());
913 }
914
915 $this->object->setOfflineStatus(!($this->dic->http()->wrapper()->post()->has('cobj_online')));
916 // $this->object->setOfflineMode($tmpOfflineMode);
917 $this->object->setOpenMode($this->dic->http()->wrapper()->post()->retrieve('open_mode', $this->dic->refinery()->kindlyTo()->int()));
918 $this->object->setWidth($t_width);
919 $this->object->setHeight($t_height);
920 $this->object->setAuto_last_visited($this->dic->http()->wrapper()->post()->has('cobj_auto_last_visited'));
921 $this->object->setAutoContinue($this->dic->http()->wrapper()->post()->has('auto_continue'));
922 // $this->object->setMaxAttempt((int) $_POST["max_attempt"]);
923 $this->object->setDefaultLessonMode($this->dic->http()->wrapper()->post()->retrieve('lesson_mode', $this->dic->refinery()->kindlyTo()->string()));
924 $this->object->setAutoReview(ilUtil::yn2tf($this->dic->http()->wrapper()->post()->retrieve('auto_review', $this->dic->refinery()->kindlyTo()->string())));
925 $this->object->setSession($this->dic->http()->wrapper()->post()->has('cobj_session'));
926 $this->object->setInteractions($this->dic->http()->wrapper()->post()->has('cobj_interactions'));
927 $this->object->setObjectives($this->dic->http()->wrapper()->post()->has('cobj_objectives'));
928 $this->object->setTime_from_lms($this->dic->http()->wrapper()->post()->has('cobj_time_from_lms'));
929 $this->object->setCheck_values($this->dic->http()->wrapper()->post()->has('cobj_check_values'));
930 $this->object->setAutoSuspend($this->dic->http()->wrapper()->post()->has('cobj_auto_suspend'));
931 $this->object->setDebug($this->dic->http()->wrapper()->post()->has('cobj_debug'));
932 $this->object->setIdSetting($this->dic->http()->wrapper()->post()->retrieve('id_setting', $this->dic->refinery()->kindlyTo()->int()));
933 $this->object->setNameSetting($this->dic->http()->wrapper()->post()->retrieve('name_setting', $this->dic->refinery()->kindlyTo()->int()));
934 $this->object->update();
935
936 // tile image
937 $obj_service->commonSettings()->legacyForm($this->form, $this->object)->saveTileImage();
938 }
939 $this->tpl->setOnScreenMessage('info', $this->lng->txt("msg_obj_modified"), true);
940 $this->ctrl->redirect($this, "properties");
941 }
static yn2tf(string $a_yn)

References ilObjectGUI\$object_service, ILIAS\Repository\ctrl(), ILIAS\Repository\form(), initPropertiesForm(), ILIAS\Repository\lng(), and ilUtil\yn2tf().

+ Here is the call graph for this function:

◆ sendAdoptSettingsTreeResponse()

ilObjSCORMLearningModuleGUI::sendAdoptSettingsTreeResponse ( string  $html)
protected

Definition at line 642 of file class.ilObjSCORMLearningModuleGUI.php.

642 : void
643 {
644 $http = $this->dic->http();
645 $http->saveResponse(
646 $http->response()
647 ->withHeader('Content-Type', 'text/html; charset=utf-8')
648 ->withBody(Streams::ofString($html))
649 );
650 $http->sendResponse();
651 $http->close();
652 }
GlobalHttpState $http

References ilObjectGUI\$html, and ilObjectGUI\$http.

Referenced by loadAdoptSettingsTreeNodes().

+ Here is the caller graph for this function:

◆ setSubTabs()

ilObjSCORMLearningModuleGUI::setSubTabs ( )
Exceptions
ilCtrlException

Definition at line 1647 of file class.ilObjSCORMLearningModuleGUI.php.

1647 : void
1648 {
1649 global $DIC;
1650 $lng = $DIC->language();
1651 $ilTabs = $DIC->tabs();
1652 $ilCtrl = $DIC->ctrl();
1653 $ilAccess = $DIC->access();
1654
1655 if ($ilAccess->checkAccess("read_learning_progress", "", $this->refId)) {
1656 $ilTabs->addSubTabTarget(
1657 "cont_tracking_byuser",
1658 $this->ctrl->getLinkTarget($this, "showTrackingItems"),
1659 array("edit", ""),
1660 get_class($this)
1661 );
1662
1663 $ilTabs->addSubTabTarget(
1664 "cont_tracking_bysco",
1665 $this->ctrl->getLinkTarget($this, "showTrackingItemsBySco"),
1666 array("edit", ""),
1667 get_class($this)
1668 );
1669 }
1670 if ($ilAccess->checkAccess("edit_learning_progress", "", $this->refId)) {
1671 $ilTabs->addSubTabTarget(
1672 "cont_tracking_modify",
1673 $this->ctrl->getLinkTarget($this, "modifyTrackingItems"),
1674 array("edit", ""),
1675 get_class($this)
1676 );
1677 }
1678 }
ilLanguage $lng

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

Referenced by ilObjSCORM2004LearningModuleGUI\showTrackingItems(), showTrackingItems(), ilObjSCORM2004LearningModuleGUI\showTrackingItemsBySco(), and showTrackingItemsBySco().

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

◆ showTrackingItems()

ilObjSCORMLearningModuleGUI::showTrackingItems ( )

Show tracking table.

Exceptions
ilCtrlException

Reimplemented in ilObjSCORM2004LearningModuleGUI.

Definition at line 1005 of file class.ilObjSCORMLearningModuleGUI.php.

1005 : bool
1006 {
1007 global $DIC;
1008 $ilTabs = $DIC->tabs();
1009 $ilAccess = $DIC->access();
1010
1011 $ilTabs->setTabActive('cont_tracking_data');
1012
1013 if ($ilAccess->checkAccess("read_learning_progress", "", $this->refId)) {
1014 $this->setSubTabs();
1015 $ilTabs->setSubTabActive('cont_tracking_byuser');
1016
1017 $reports = ['exportSelectedSuccess', 'exportSelectedCore', 'exportSelectedInteractions', 'exportSelectedObjectives', 'exportSelectedRaw'];
1018 [$filter, $filter_data] = $this->buildTrackingFilter(
1019 self::TRACKING_FILTER_BY_USER . $this->object->getId(),
1020 'showTrackingItems',
1021 'userSelected',
1022 $this->lng->txt('user'),
1023 $this->getTrackingUserOptions(),
1024 $reports
1025 );
1026
1027 $userSelected = $filter_data['userSelected'];
1028 $report = $filter_data['report'];
1029 $this->ctrl->setParameter($this, 'userSelected', $userSelected);
1030 $this->ctrl->setParameter($this, 'report', $report);
1031
1032 $content = $filter->render();
1033 if ($report !== "choose") {
1034 $usersSelected = array();
1035 if ($userSelected !== "all") {
1036 $usersSelected[] = $userSelected;
1037 } else {
1038 $users = ilTrQuery::getParticipantsForObject($this->ref_id);
1039 foreach ($users as $user) {
1040 if (ilObject::_exists((int) $user) && ilObject::_lookUpType((int) $user) === 'usr') {
1041 $usersSelected[] = (int) $user;
1042 }
1043 }
1044 }
1045 $scosSelected = array();
1046 $scos = $this->object->getTrackedItems();
1047 foreach ($scos as $row) {
1048 $scosSelected[] = (int) $row->getId();
1049 }
1050 $tbl = new ilSCORMTrackingItemsTableGUI($this->object->getId(), $this, 'showTrackingItems', $usersSelected, $scosSelected, $report);
1051 $content .= $this->renderTrackingTableWithExportActions(
1052 $tbl->getHTML(),
1053 self::EXPORT_BY_USER
1054 );
1055 }
1056 $this->tpl->setContent($content);
1057 } elseif ($ilAccess->checkAccess("edit_learning_progress", "", $this->refId)) {
1058 $this->modifyTrackingItems();
1059 }
1060 return true;
1061 }
renderTrackingTableWithExportActions(string $table_html, string $export_mode)
buildTrackingFilter(string $filter_id, string $cmd, string $scope_key, string $scope_label, array $scope_options, array $reports)

References $DIC, $report, ilObjectGUI\$user, ilObject\_exists(), buildTrackingFilter(), ILIAS\Repository\ctrl(), ilTrQuery\getParticipantsForObject(), ILIAS\Repository\int(), modifyTrackingItems(), ILIAS\Repository\object(), renderTrackingTableWithExportActions(), and setSubTabs().

+ Here is the call graph for this function:

◆ showTrackingItemsBySco()

ilObjSCORMLearningModuleGUI::showTrackingItemsBySco ( )
protected
Exceptions
ilCtrlException

Reimplemented in ilObjSCORM2004LearningModuleGUI.

Definition at line 946 of file class.ilObjSCORMLearningModuleGUI.php.

946 : bool
947 {
948 global $DIC;
949 $ilTabs = $DIC->tabs();
950 $ilAccess = $DIC->access();
951
952 $ilTabs->setTabActive("cont_tracking_data");
953
954 if (!$ilAccess->checkAccess("read_learning_progress", "", $this->refId)) {
955 if ($ilAccess->checkAccess("edit_learning_progress", "", $this->refId)) {
956 $this->modifyTrackingItems();
957 }
958 return true;
959 }
960
961 $this->setSubTabs();
962 $ilTabs->setSubTabActive("cont_tracking_bysco");
963
964 $reports = ['exportSelectedCore', 'exportSelectedInteractions', 'exportSelectedObjectives', 'exportSelectedRaw'];
965 [$filter, $filter_data] = $this->buildTrackingFilter(
966 self::TRACKING_FILTER_BY_SCO . $this->object->getId(),
967 'showTrackingItemsBySco',
968 'scoSelected',
969 $this->lng->txt('chapter'),
970 $this->getTrackingScoOptions(),
971 $reports
972 );
973
974 $scoSelected = $filter_data['scoSelected'];
975 $report = $filter_data['report'];
976 $this->ctrl->setParameter($this, 'scoSelected', $scoSelected);
977 $this->ctrl->setParameter($this, 'report', $report);
978
979 $content = $filter->render();
980 if ($report !== "choose") {
981 $scosSelected = array();
982 if ($scoSelected !== "all") {
983 $scosSelected[] = $scoSelected;
984 } else {
985 $scos = $this->object->getTrackedItems();
986 foreach ($scos as $row) {
987 $scosSelected[] = (int) $row->getId();
988 }
989 }
990 $a_users = ilTrQuery::getParticipantsForObject($this->ref_id);
991 $tbl = new ilSCORMTrackingItemsTableGUI($this->object->getId(), $this, 'showTrackingItemsBySco', $a_users, $scosSelected, $report);
992 $content .= $this->renderTrackingTableWithExportActions(
993 $tbl->getHTML(),
994 self::EXPORT_BY_SCO
995 );
996 }
997 $this->tpl->setContent($content);
998 return true;
999 }

References $DIC, $report, buildTrackingFilter(), ILIAS\Repository\ctrl(), ilTrQuery\getParticipantsForObject(), ILIAS\Repository\int(), modifyTrackingItems(), ILIAS\Repository\object(), renderTrackingTableWithExportActions(), and setSubTabs().

+ Here is the call graph for this function:

◆ trackingImportForm()

ilObjSCORMLearningModuleGUI::trackingImportForm ( )
protected

Show import form.

Exceptions
ilCtrlException

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

1543 : void
1544 {
1545 global $DIC;
1546 $ilTabs = $DIC->tabs();
1547
1548 $ilTabs->clearTargets();
1549 $ilTabs->setBackTarget($this->lng->txt('back'), $this->ctrl->getLinkTarget($this, 'showTrackingItems'));
1550
1551 $form = $this->initTrackingImportForm();
1552 $this->tpl->setContent($form->getHTML());
1553 }

References $DIC, ilPropertyFormGUI\getHTML(), and ILIAS\Repository\lng().

+ Here is the call graph for this function:

Field Documentation

◆ $ctrl

◆ $dic

Container ilObjSCORMLearningModuleGUI::$dic
protected

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

◆ $form

ilPropertyFormGUI ilObjSCORMLearningModuleGUI::$form
private

◆ $refId

int ilObjSCORMLearningModuleGUI::$refId
protected

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

◆ ADOPT_SOURCE_REF_ID

const ilObjSCORMLearningModuleGUI::ADOPT_SOURCE_REF_ID = 'source_ref_id'
protected

Definition at line 55 of file class.ilObjSCORMLearningModuleGUI.php.

◆ ADOPT_TREE_MAX_SYNC_DEPTH

const ilObjSCORMLearningModuleGUI::ADOPT_TREE_MAX_SYNC_DEPTH = 2
protected

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

◆ ADOPT_TREE_PARENT_REF_ID

const ilObjSCORMLearningModuleGUI::ADOPT_TREE_PARENT_REF_ID = 'sahs_adopt_tree_parent_ref_id'
protected

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

◆ EXPORT_BY_SCO

const ilObjSCORMLearningModuleGUI::EXPORT_BY_SCO = 'by_sco'
protected

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

◆ EXPORT_BY_USER

const ilObjSCORMLearningModuleGUI::EXPORT_BY_USER = 'by_user'
protected

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

◆ TRACKING_FILTER_BY_SCO

const ilObjSCORMLearningModuleGUI::TRACKING_FILTER_BY_SCO = 'sahs_tracking_by_sco_'
protected

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

◆ TRACKING_FILTER_BY_USER

const ilObjSCORMLearningModuleGUI::TRACKING_FILTER_BY_USER = 'sahs_tracking_by_user_'
protected

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


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