5require_once
"./Services/Object/classes/class.ilObject.php";
6require_once
"./Modules/ScormAicc/classes/class.ilObjSCORMValidator.php";
34 parent::ilObject($a_id,$a_call_by_reference);
51 INSERT INTO sahs_lm (id, c_online, api_adapter, c_type, editable, seq_exp_mode,localization)
52 VALUES (%s,%s,%s,%s,%s,%s,%s)',
53 array(
'integer',
'text',
'text',
'text',
'integer',
'integer',
'text'),
68 $lm_set =
$ilDB->queryF(
'SELECT * FROM sahs_lm WHERE id = %s',
69 array(
'integer'),array($this->
getId()));
85 $this->
setTries($lm_rec[
"question_tries"]);
110 include_once(
"./Services/Style/classes/class.ilObjStyleSheet.php");
125 $lm_set =
$ilDB->queryF(
'SELECT c_online FROM sahs_lm WHERE id = %s',
126 array(
'integer'), array($a_id));
141 $lm_set =
$ilDB->queryF(
'SELECT localization FROM sahs_lm WHERE id = %s',
142 array(
'integer'), array($a_id));
144 $inst_lang =
$lng->getInstalledLanguages();
145 if ($lm_rec[
"localization"] !=
"" && in_array($lm_rec[
"localization"], $inst_lang))
147 return $lm_rec[
"localization"];
149 return $lng->getLangKey();
161 $obj_set =
$ilDB->queryF(
'SELECT c_type FROM sahs_lm WHERE id = %s',
162 array(
'integer'), array($a_obj_id));
163 $obj_rec =
$ilDB->fetchAssoc($obj_set);
165 return $obj_rec[
"c_type"];
175 $this->editable = $a_editable;
185 return $this->editable;
196 $this->tries = $a_tries;
216 $this->localization = $a_val;
226 return $this->localization;
233 $lm_set =
$ilDB->queryF(
'SELECT question_tries FROM sahs_lm WHERE id = %s',
234 array(
'integer'), array($a_id));
237 return $lm_rec[
'question_tries'];
247 require_once(
"./Modules/ScormAicc/classes/class.ilObjSAHSLearningModuleAccess.php");
269 $lm_dir = $lm_data_dir.
"/lm_".$this->
getId();
279 return $this->api_adapter;
287 $this->api_adapter = $a_api;
295 return $this->api_func_prefix;
303 $this->api_func_prefix = $a_prefix;
311 return $this->credit_mode;
319 $this->credit_mode = $a_credit_mode;
327 $this->lesson_mode = $a_lesson_mode;
335 return $this->lesson_mode;
342 return $this->style_id;
350 $this->style_id = $a_style_id;
374 $this->auto_review = $a_auto_review;
381 return $this->auto_review;
389 return $this->max_attempt;
398 $this->max_attempt = $a_max_attempt;
406 return $this->module_version;
414 return $this->assigned_glossary;
422 $this->assigned_glossary = $a_assigned_glossary;
429 $this->module_version = $a_module_version;
437 return $this->session;
445 $this->session = $a_session;
453 return $this->no_menu;
461 $this->no_menu = $a_no_menu;
469 return $this->hide_navig;
477 $this->hide_navig = $a_hide_navig;
487 if (
$lm_set->get(
"scormdebug_disable_cache") ==
"1")
return true;
498 if (
$lm_set->get(
"scorm_without_session") ==
"1")
return true;
509 if (
$lm_set->get(
"scormdebug_global_activate") ==
"1")
return true;
518 return $this->ie_compatibility;
523 $this->ie_compatibility = $a_ie_compatibility;
531 return $this->ie_force_render;
536 $this->ie_force_render = $a_ie_force_render;
544 return $this->fourth_edition;
549 $this->fourth_edition = $a_fourth_edition;
557 return $this->sequencing;
562 $this->sequencing = $a_sequencing;
570 return $this->interactions;
575 $this->interactions = $a_interactions;
583 return $this->objectives;
588 $this->objectives = $a_objectives;
596 return $this->comments;
601 $this->comments = $a_comments;
609 return $this->time_from_lms;
614 $this->time_from_lms = $a_time_from_lms;
622 return $this->check_values;
627 $this->check_values = $a_check_values;
635 return $this->offline_mode;
640 $this->offline_mode = $a_offline_mode;
657 $this->debug = $a_debug;
665 return $this->debug_pw;
673 $this->debug_pw = $a_debug_pw;
681 $this->auto_continue = $a_auto_continue;
688 return $this->auto_continue;
696 return $this->auto_last_visited;
701 $this->auto_last_visited = $a_auto_last_visited;
712 $this->seq_exp_mode = $a_val;
722 return $this->seq_exp_mode;
730 $this->auto_suspend = $a_auto_suspend;
737 return $this->auto_suspend;
753 return $this->open_mode;
757 $this->open_mode = $a_open_mode;
769 $this->width = $a_width;
777 return $this->height;
781 $this->height = $a_height;
823 $statement =
$ilDB->manipulateF(
'
827 api_func_prefix = %s,
829 default_lesson_mode = %s,
838 unlimited_session = %s,
855 auto_last_visited = %s,
859 ie_compatibility = %s,
952 $set =
$ilDB->query(
"SELECT DISTINCT id FROM sahs_lm WHERE ".
953 " glossary = ".
$ilDB->quote($a_glo_id,
"integer"));
955 while ($rec =
$ilDB->fetchAssoc($set))
975 $set =
$ilDB->query(
"SELECT DISTINCT glossary FROM sahs_lm WHERE ".
976 " id = ".
$ilDB->quote($a_slm_id,
"integer"));
977 $rec =
$ilDB->fetchAssoc($set);
978 $glo_id = $rec[
"glossary"];
991 $this->online = $a_online;
999 return $this->online;
1007 $this->sub_type = $a_sub_type;
1015 return $this->sub_type;
1034 if (!parent::delete())
1051 $ilDB->manipulateF(
'DELETE FROM sahs_lm WHERE id = %s',
1052 array(
'integer'), array($this->
getId()));
1054 $ilLog->write(
"SAHS Delete(SAHSLM), Subtype: ".$this->
getSubType());
1059 include_once(
"./Modules/ScormAicc/classes/SCORM/class.ilSCORMTree.php");
1060 include_once(
"./Modules/ScormAicc/classes/SCORM/class.ilSCORMObject.php");
1062 $r_id = $sc_tree->readRootId();
1065 $items = $sc_tree->getSubTree($sc_tree->getNodeData($r_id));
1066 foreach($items as $item)
1069 if (is_object($sc_object))
1071 $sc_object->delete();
1074 $sc_tree->removeTree($sc_tree->getTreeId());
1081 $res = $ilDB->queryF(
'
1082 SELECT aicc_object.obj_id FROM aicc_object, aicc_units
1083 WHERE aicc_object.obj_id = aicc_units.obj_id
1084 AND aicc_object.slm_id = %s',
1085 array(
'integer'), array($this->
getId()));
1087 while(
$row = $ilDB->fetchAssoc(
$res))
1089 $obj_id =
$row[
'obj_id'];
1090 $ilDB->manipulateF(
'
1091 DELETE FROM aicc_units WHERE obj_id = %s',
1092 array(
'integer'), array($obj_id));
1096 SELECT aicc_object.obj_id FROM aicc_object, aicc_course
1097 WHERE aicc_object.obj_id = aicc_course.obj_id
1098 AND aicc_object.slm_id = %s',
1099 array(
'integer'), array($this->
getId()));
1101 while(
$row = $ilDB->fetchAssoc(
$res))
1103 $obj_id =
$row[
'obj_id'];
1104 $ilDB->manipulateF(
'
1105 DELETE FROM aicc_course WHERE obj_id = %s',
1106 array(
'integer'), array($obj_id));
1109 $ilDB->manipulateF(
'
1110 DELETE FROM aicc_object WHERE slm_id = %s',
1111 array(
'integer'), array($this->
getId()));
1114 $q_log =
"DELETE FROM scorm_tracking WHERE obj_id = ".$ilDB->quote($this->
getId());
1115 $ilLog->write(
"SAHS Delete(SAHSLM): ".$q_log);
1117 $ilDB->manipulateF(
'DELETE FROM scorm_tracking WHERE obj_id = %s',
1118 array(
'integer'), array($this->
getId()));
1120 $q_log =
"DELETE FROM sahs_user WHERE obj_id = ".$ilDB->quote($this->
getId());
1121 $ilLog->write(
"SAHS Delete(SAHSLM): ".$q_log);
1123 $ilDB->manipulateF(
'DELETE FROM sahs_user WHERE obj_id = %s',
1124 array(
'integer'), array($this->
getId()));
1140 function notify($a_event,$a_ref_id,$a_parent_non_rbac_id,$a_node_id,$a_params = 0)
1180 if ($a_node_id==
$_GET[
"ref_id"])
1182 $parent_obj =& $this->
ilias->obj_factory->getInstanceByRefId($a_node_id);
1183 $parent_type = $parent_obj->getType();
1184 if($parent_type == $this->
getType())
1186 $a_node_id = (int) $tree->getParentId($a_node_id);
1190 parent::notify($a_event,$a_ref_id,$a_parent_non_rbac_id,$a_node_id,$a_params);
1201 if (strcmp($this->
getSubType(),
"scorm2004") == 0)
1206 return $res * 100.0;
1233 if(strcmp($this->
getSubType(),
'scorm2004') == 0)
1275 $new_obj = parent::cloneObject($a_target_id,$a_copy_id);
1281 if(!$cp_options->isRootNode($this->getRefId()))
1283 $new_obj->setOnline($this->
getOnline());
1287 $new_obj->setTitle($this->
getTitle());
1297 $new_obj->setModuleVersion(1);
1300 $new_obj->setTries($this->
getTries());
1302 $new_obj->setNoMenu($this->
getNoMenu());
1304 $new_obj->setFourth_edition($this->getFourth_edition());
1310 $new_obj->setDebug($this->
getDebug());
1315 $new_obj->setWidth($this->
getWidth());
1316 $new_obj->setHeight($this->
getHeight());
1346 include_once(
"./Modules/ScormAicc/classes/class.ilObjSCORMLearningModule.php");
1352 include_once(
"./Modules/Scorm2004/classes/class.ilObjSCORM2004LearningModule.php");
1358 include_once(
"./Modules/ScormAicc/classes/class.ilObjAICCLearningModule.php");
1364 include_once(
"./Modules/ScormAicc/classes/class.ilObjHACPLearningModule.php");
1372 $new_obj->populateByDirectoy($source_obj->getDataDirectory());
1375 if ($new_obj->getEditable())
1377 $source_obj->copyAuthoredContent($new_obj);
1382 $new_obj->readObject();
static _getInstance($a_copy_id)
Get instance of copy wizard options.
Class ilObjAICCLearningModule.
Class ilObjAICCLearningModule.
_lookupDiskUsage($a_id)
Returns the number of bytes used on the harddisk by the learning module with the specified object id.
Class ilObjSCORMLearningModule.
getAuto_last_visited()
auto_last_visited
getAPIFunctionsPrefix()
get api functions prefix
populateByDirectoy($a_dir, $a_filename="")
Populate by directory.
getDefaultLessonMode()
get default lesson mode
setAutoSuspend($a_auto_suspend)
get auto continue
getMaxPoints()
Returns score.max for the learning module, refered to the last sco where score.max is set.
setSubType($a_sub_type)
get sub type
setTime_from_lms($a_time_from_lms)
getAPIAdapterName()
get api adapter name
getSequencingExpertMode()
Get sequencing expert mode.
getObjectives()
objectives
getMaxAttempt()
get max attempt
setDebugPw($a_debug_pw)
debug pw
setAutoContinue($a_auto_continue)
get auto continue
setSession($a_session)
set session setting
createDataDirectory()
creates data directory for package files ("./data/lm_data/lm_<id>")
getAffectiveLocalization($a_id)
Get affective localization.
getHideNavig()
hide navigation tree
getDiskUsage()
Gets the disk usage of the object in bytes.
getLocalization()
Get localization.
setInteractions($a_interactions)
setAuto_last_visited($a_auto_last_visited)
setAutoReview($a_auto_review)
set auto review as true/false for SCORM 1.2, HACP, SAHS, AICC
setAssignedGlossary($a_assigned_glossary)
set assigned glossary
getFourth_Edition()
SCORM 2004 4th edition features.
setIe_compatibility($a_ie_compatibility)
getIe_force_render()
force Internet Explorer to render again after some Milliseconds - useful for learning Modules with a ...
setDefaultLessonMode($a_lesson_mode)
set default lesson mode
getCheck_values()
check_values
setIe_force_render($a_ie_force_render)
setNoMenu($a_no_menu)
disable menu
getModuleVersion()
get max attempt
setModuleVersion($a_module_version)
set max attempt
static lookupAssignedGlossary($a_slm_id)
Get SCORM modules that assign a certain glossary.
getSession()
get session setting
setOnline($a_online)
get online
getInteractions()
interactions
setMaxAttempt($a_max_attempt)
set max attempt
getAutoReviewChar()
get auto review as Char for SCORM 2004
getCreditMode()
get credit mode
getPointsInPercent()
Returns the points in percent for the learning module This is called by the certificate generator if ...
setEditable($a_editable)
Set Editable.
getOpenMode()
open_mode 0: in Tab/new Window like in previous versions 1: in iFrame with width=100% and heigth=100%...
setOpenMode($a_open_mode)
create($upload=false)
create file based lm
getEditable()
Get Editable.
getAssignedGlossary()
get assigned glossary
getAutoContinue()
set auto continue
setStyleSheetId($a_style_id)
set ID of assigned style sheet object
setLocalization($a_val)
Set localization.
getCacheDeactivated()
BrowserCacheDisabled for SCORM 2004 / ENABLE_JS_DEBUG.
setFourth_edition($a_fourth_edition)
setAPIAdapterName($a_api)
set api adapter name
getSequencing()
sequencing
getAutoReview()
get auto review as true/false for SCORM 1.2, HACP, SAHS, AICC
notify($a_event, $a_ref_id, $a_parent_non_rbac_id, $a_node_id, $a_params=0)
notifys an object about an event occured Based on the event happend, each object may decide how it re...
setCreditMode($a_credit_mode)
set credit mode
static getScormModulesForGlossary($a_glo_id)
Get SCORM modules that assign a certain glossary.
_lookupSubType($a_obj_id)
lookup subtype id (scorm, aicc, hacp)
setHideNavig($a_hide_navig)
disable menu
cloneObject($a_target_id, $a_copy_id=0)
Clone scorm object.
_lookupOnline($a_id)
check wether scorm module is online
getStyleSheetId()
get ID of assigned style sheet object
getSessionDeactivated()
sessionDisabled for SCORM 2004
setObjectives($a_objectives)
getIe_compatibility()
set compatibility mode for Internet Exlorer manually
setAPIFunctionsPrefix($a_prefix)
set api functions prefix
getTime_from_lms()
time_from_lms
setSequencingExpertMode($a_val)
Set sequencing expert mode.
ilObjSAHSLearningModule($a_id=0, $a_call_by_reference=true)
Constructor @access public.
getDebugActivated()
debugActivated
setTries($a_tries)
Set default tries for questions.
setOfflineMode($a_offline_mode)
getAutoSuspend()
set auto continue
getDataDirectory($mode="filesystem")
get data directory of lm
setCheck_values($a_check_values)
setSequencing($a_sequencing)
setAutoReviewChar($a_auto_review)
set auto review as Char for SCORM 2004
getOfflineMode()
offlineMode
update()
update meta data only
Class ilObjSCORM2004LearningModule.
static _getMaxScoreForUser($a_id, $a_user)
Returns score.max for the learning module, refered to the last sco where score.max is set.
static _getUniqueScaledScoreForUser($a_id, $a_user)
Get the Unique Scaled Score of a course Conditions: Only one SCO may set cmi.score....
Class ilObjSCORMLearningModule.
Class ilObject Basic functions for all objects.
getType()
get object type @access public
deleteMetaData()
delete meta data entry
updateMetaData()
update meta data entry
_hasUntrashedReference($a_obj_id)
checks wether an object has at least one reference that is not in trash
createMetaData()
create meta data entry
getRefId()
get reference id @access public
getDescription()
get object description
cloneMetaData($target_obj)
Copy meta data.
getId()
get object id @access public
static _lookupType($a_id, $a_reference=false)
lookup object type
getTitle()
get object title @access public
& _getInstance($a_id, $a_slm_id)
get instance of specialized GUI class
static getDataDir()
get data directory (outside webspace)
static delDir($a_dir, $a_clean_only=false)
removes a dir and all its content (subdirs and files) recursively
static tf2yn($a_tf)
convert true/false to "y"/"n"
static getWebspaceDir($mode="filesystem")
get webspace directory
static rCopy($a_sdir, $a_tdir, $preserveTimeAttributes=false)
Copies content of a directory $a_sdir recursively to a directory $a_tdir.
static zip($a_dir, $a_file, $compress_content=false)
static yn2tf($a_yn)
convert "y"/"n" to true/false
static makeDir($a_dir)
creates a new directory and inherits all filesystem permissions of the parent directory You may pass ...
static renameExecutables($a_dir)
Rename uploaded executables for security reasons.
redirection script todo: (a better solution should control the processing via a xml file)