4 include_once(
"./Services/DataSet/classes/class.ilDataSet.php");
34 $this->master_lang_only = $a_val;
57 $this->transl_into =
true;
58 $this->transl_into_lm = $a_lm;
59 $this->transl_lang = $a_lang;
63 $this->transl_into =
false;
105 return array(
"5.1.0");
116 return "http://www.ilias.de/xml/Modules/LearningModule/".$a_entity;
128 if ($a_entity ==
"lm")
136 "Description" =>
"text",
137 "DefaultLayout" =>
"text",
138 "PageHeader" =>
"text",
139 "TocActive" =>
"text",
140 "LMMenuActive" =>
"text",
142 "PrintViewActive" =>
"text",
143 "Numbering" =>
"text",
144 "HistUserComments" =>
"text",
145 "PublicAccessMode" =>
"text",
146 "PubNotes" =>
"text",
147 "HeaderPage" =>
"integer",
148 "FooterPage" =>
"integer",
149 "LayoutPerPage" =>
"integer",
150 "Rating" =>
"integer",
151 "HideHeadFootPrint" =>
"integer",
152 "DisableDefFeedback" =>
"integer",
153 "RatingPages" =>
"integer",
154 "ProgrIcons" =>
"integer",
155 "StoreTries" =>
"integer",
156 "RestrictForwNav" =>
"integer",
157 "Comments" =>
"integer",
158 "ForTranslation" =>
"integer",
159 "StyleId" =>
"integer" 164 if ($a_entity ==
"lm_tree")
171 "Child" =>
"integer",
172 "Parent" =>
"integer",
173 "Depth" =>
"integer",
176 "PublicAccess" =>
"text",
184 if ($a_entity ==
"lm_menu")
191 "LinkType" =>
"text",
194 "LinkRefId" =>
"text",
200 if ($a_entity ==
"lm_data_transl")
221 function readData($a_entity, $a_version, $a_ids, $a_field =
"")
225 if (!is_array($a_ids))
227 $a_ids = array($a_ids);
230 if ($a_entity ==
"lm")
235 $q =
"SELECT id, title, description,".
236 " default_layout, page_header, toc_active, lm_menu_active, toc_mode, print_view_active, numbering,".
237 " hist_user_comments, public_access_mode, header_page, footer_page, layout_per_page, rating, ".
238 " hide_head_foot_print, disable_def_feedback, rating_pages, store_tries, restrict_forw_nav, progr_icons, stylesheet style_id".
239 " FROM content_object JOIN object_data ON (content_object.id = object_data.obj_id)".
240 " WHERE ".$ilDB->in(
"id", $a_ids,
false,
"integer");
242 $set = $ilDB->query($q);
243 $this->data = array();
244 while ($rec = $ilDB->fetchAssoc($set))
247 include_once(
"./Services/Notes/classes/class.ilNote.php");
252 $rec[
"for_translation"] = 1;
255 foreach ($rec as $k => $v)
262 $this->data[] = $rec;
271 if ($a_entity ==
"lm_tree")
278 $q =
"SELECT lm_tree.lm_id, child, parent, depth, type, title, public_access, active, layout, import_id".
279 " FROM lm_tree JOIN lm_data ON (lm_tree.child = lm_data.obj_id)".
280 " WHERE ".$ilDB->in(
"lm_tree.lm_id", $a_ids,
false,
"integer").
283 $set = $ilDB->query($q);
284 $this->data = array();
286 while ($rec = $ilDB->fetchAssoc($set))
288 $set2 = $ilDB->query(
"SELECT for_translation FROM content_object WHERE id = ".$ilDB->quote($rec[
"lm_id"],
"integer"));
289 $rec2 = $ilDB->fetchAssoc($set2);
290 if (!$rec2[
"for_translation"])
292 $rec[
"import_id"] =
"il_".IL_INST_ID.
"_".$rec[
"type"].
"_".$rec[
"child"];
295 foreach ($rec as $k => $v)
301 $obj_ids[] = $rec[
"Child"];
302 $this->data[] = $rec;
306 $set3 = $ilDB->query($q =
"SELECT lm_id, type, title, public_access, active, layout, import_id, obj_id child FROM lm_data ".
307 "WHERE ".$ilDB->in(
"lm_id", $a_ids,
false,
"integer").
308 " AND ".$ilDB->in(
"obj_id", $obj_ids,
true,
"integer").
309 " AND type = ".$ilDB->quote(
"pg",
"text"));
310 while ($rec3 = $ilDB->fetchAssoc($set3))
312 $set2 = $ilDB->query(
"SELECT for_translation FROM content_object WHERE id = ".$ilDB->quote($rec3[
"lm_id"],
"integer"));
313 $rec2 = $ilDB->fetchAssoc($set2);
314 if (!$rec2[
"for_translation"])
316 $rec3[
"import_id"] =
"il_".IL_INST_ID.
"_pg_".$rec3[
"child"];
318 $rec3[
"type"] =
"free_pg";
322 foreach ($rec3 as $k => $v)
327 $this->data[] = $tmp;
333 if ($a_entity ==
"lm_menu")
340 " WHERE ".$ilDB->in(
"lm_id", $a_ids,
false,
"integer"));
345 if ($a_entity ==
"lm_data_transl")
351 " FROM lm_data_transl ".
352 " WHERE ".$ilDB->in(
"id", $a_ids,
false,
"integer"));
369 "lm_tree" => array(
"ids" => $a_rec[
"Id"]),
370 "lm_menu" => array(
"ids" => $a_rec[
"Id"])
381 "lm_data_transl" => array(
"ids" => $a_rec[
"Child"])
396 function importRecord($a_entity, $a_types, $a_rec, $a_mapping, $a_schema_version)
409 include_once(
"./Modules/LearningModule/classes/class.ilObjLearningModule.php");
410 if($new_id = $a_mapping->getMapping(
'Services/Container',
'objs',$a_rec[
'Id']))
417 $newObj->setType(
"lm");
418 $newObj->create(
true);
419 $newObj->createLMTree();
422 $newObj->setTitle($a_rec[
"Title"]);
423 $newObj->setDescription($a_rec[
"Description"]);
424 $newObj->setLayout($a_rec[
"DefaultLayout"]);
425 $newObj->setPageHeader($a_rec[
"PageHeader"]);
427 $newObj->setActiveLMMenu(
ilUtil::yn2tf($a_rec[
"LmMenuActive"]));
428 $newObj->setTOCMode($a_rec[
"TOCMode"]);
429 $newObj->setActivePrintView(
ilUtil::yn2tf($a_rec[
"PrintViewActive"]));
430 $newObj->setActiveNumbering(
ilUtil::yn2tf($a_rec[
"Numbering"]));
431 $newObj->setHistoryUserComments(
ilUtil::yn2tf($a_rec[
"HistUserComments"]));
432 $newObj->setPublicAccessMode($a_rec[
"PublicAccessMode"]);
435 $newObj->setLayoutPerPage($a_rec[
"LayoutPerPage"]);
436 $newObj->setRating($a_rec[
"Rating"]);
437 $newObj->setHideHeaderFooterPrint($a_rec[
"HideHeadFootPrint"]);
438 $newObj->setDisableDefaultFeedback($a_rec[
"DisableDefFeedback"]);
439 $newObj->setRatingPages($a_rec[
"RatingPages"]);
440 $newObj->setForTranslation($a_rec[
"ForTranslation"]);
441 $newObj->setProgressIcons($a_rec[
"ProgrIcons"]);
442 $newObj->setStoreTries($a_rec[
"StoreTries"]);
443 $newObj->setRestrictForwardNavigation($a_rec[
"RestrictForwNav"]);
444 if ($a_rec[
"HeaderPage"] > 0)
446 $a_mapping->addMapping(
"Modules/LearningModule",
"lm_header_page", $a_rec[
"HeaderPage"],
"-");
448 if ($a_rec[
"FooterPage"] > 0)
450 $a_mapping->addMapping(
"Modules/LearningModule",
"lm_footer_page", $a_rec[
"FooterPage"],
"-");
453 $newObj->update(
true);
454 $this->current_obj = $newObj;
457 include_once(
"./Services/Notes/classes/class.ilNote.php");
460 $a_mapping->addMapping(
"Modules/LearningModule",
"lm", $a_rec[
"Id"], $newObj->getId());
461 $a_mapping->addMapping(
"Modules/LearningModule",
"lm_style", $newObj->getId(), $a_rec[
"StyleId"]);
462 $a_mapping->addMapping(
"Services/Object",
"obj", $a_rec[
"Id"], $newObj->getId());
463 $a_mapping->addMapping(
"Services/MetaData",
"md",
464 $a_rec[
"Id"].
":0:lm", $newObj->getId().
":0:lm");
470 include_once(
"./Modules/LearningModule/classes/class.ilLMObject.php");
471 include_once(
"./Modules/LearningModule/classes/class.ilStructureObject.php");
472 include_once(
"./Modules/LearningModule/classes/class.ilLMPageObject.php");
473 switch ($a_rec[
"Type"])
476 $parent = (int) $a_mapping->getMapping(
"Modules/LearningModule",
"lm_tree", $a_rec[
"Parent"]);
478 $st_obj->setType(
"st");
479 $st_obj->setLMId($this->current_obj->getId());
480 $st_obj->setTitle($a_rec[
"Title"]);
481 $st_obj->setImportId($a_rec[
"ImportId"]);
482 $st_obj->create(
true);
484 $a_mapping->addMapping(
"Modules/LearningModule",
"lm_tree", $a_rec[
"Child"],
486 $a_mapping->addMapping(
"Services/MetaData",
"md",
487 $a_rec[
"LmId"].
":".$a_rec[
"Child"].
":st", $this->current_obj->getId().
":".$st_obj->getId().
":st");
491 $parent = (int) $a_mapping->getMapping(
"Modules/LearningModule",
"lm_tree", $a_rec[
"Parent"]);
493 $pg_obj->setType(
"pg");
494 $pg_obj->setLMId($this->current_obj->getId());
495 $pg_obj->setTitle($a_rec[
"Title"]);
496 $pg_obj->setImportId($a_rec[
"ImportId"]);
497 $pg_obj->create(
true,
true);
499 $a_mapping->addMapping(
"Modules/LearningModule",
"lm_tree", $a_rec[
"Child"],
501 $a_mapping->addMapping(
"Modules/LearningModule",
"pg", $a_rec[
"Child"], $pg_obj->getId());
502 $a_mapping->addMapping(
"Services/COPage",
"pg",
"lm:".$a_rec[
"Child"],
503 "lm:".$pg_obj->getId());
504 $a_mapping->addMapping(
"Services/MetaData",
"md",
505 $a_rec[
"LmId"].
":".$a_rec[
"Child"].
":pg", $this->current_obj->getId().
":".$pg_obj->getId().
":pg");
511 $pg_obj->setType(
"pg");
512 $pg_obj->setLMId($this->current_obj->getId());
513 $pg_obj->setTitle($a_rec[
"Title"]);
514 $pg_obj->setImportId($a_rec[
"ImportId"]);
515 $pg_obj->create(
true,
true);
516 $a_mapping->addMapping(
"Modules/LearningModule",
"lm_tree", $a_rec[
"Child"],
518 $a_mapping->addMapping(
"Modules/LearningModule",
"pg", $a_rec[
"Child"], $pg_obj->getId());
519 $a_mapping->addMapping(
"Services/COPage",
"pg",
"lm:".$a_rec[
"Child"],
520 "lm:".$pg_obj->getId());
521 $a_mapping->addMapping(
"Services/MetaData",
"md",
522 $a_rec[
"LmId"].
":".$a_rec[
"Child"].
":pg", $this->current_obj->getId().
":".$pg_obj->getId().
":pg");
528 include_once(
"./Modules/LearningModule/classes/class.ilLMObjTranslation.php");
529 switch ($a_rec[
"Type"])
533 $imp_id = explode(
"_", $a_rec[
"ImportId"]);
534 if ($imp_id[0] ==
"il" &&
535 (
int) $imp_id[1] == (
int) IL_INST_ID &&
540 if (ilLMObject::_lookupContObjId($st_id) == $this->
getTranslationLM()->getId())
543 $trans->setTitle($a_rec[
"Title"]);
545 $a_mapping->addMapping(
"Modules/LearningModule",
"link",
554 $imp_id = explode(
"_", $a_rec[
"ImportId"]);
555 if ($imp_id[0] ==
"il" &&
556 (
int) $imp_id[1] == (
int) IL_INST_ID &&
561 if (ilLMObject::_lookupContObjId($pg_id) == $this->
getTranslationLM()->getId())
564 $trans->setTitle($a_rec[
"Title"]);
566 $a_mapping->addMapping(
"Modules/LearningModule",
"pg", $a_rec[
"Child"], $pg_id);
567 $a_mapping->addMapping(
"Modules/LearningModule",
"link",
569 $a_mapping->addMapping(
"Services/COPage",
"pg",
"lm:".$a_rec[
"Child"],
579 case "lm_data_transl":
580 include_once(
"./Modules/LearningModule/classes/class.ilLMObjTranslation.php");
584 $lm_obj_id = $a_mapping->getMapping(
"Modules/LearningModule",
"lm_tree", $a_rec[
"Id"]);
588 $t->setTitle($a_rec[
"Title"]);
getXmlNamespace($a_entity, $a_schema_version)
Get xml namespace.
Class ilObjLearningModule.
setTranslationImportMode($a_lm, $a_lang="")
Set translation import mode.
getTranslationLM()
Get translation lm (import.
convertToLeadingUpper($a_str)
Make xyz_abc a XyzAbc string.
getTypes($a_entity, $a_version)
Get field types for entity.
readData($a_entity, $a_version, $a_ids, $a_field="")
Read data.
getDirectDataFromQuery($a_query, $a_convert_to_leading_upper=true)
Get data from query.This is a standard procedure, all db field names are directly mapped to abstract ...
static putInTree($a_obj, $a_parent_id="", $a_target_node_id="")
put this object into content object tree
setMasterLanguageOnly($a_val)
Set master language only (export)
getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
getCurrentInstallationId()
Get current installation id.
getSupportedVersions()
Get supported versions.
getTranslationImportMode()
Get translation import mode.
static commentsActivated($a_rep_obj_id, $a_obj_id, $a_obj_type)
Are comments activated for object?
LearningModule Data set class.
importRecord($a_entity, $a_types, $a_rec, $a_mapping, $a_schema_version)
Import record.
static activateComments($a_rep_obj_id, $a_obj_id, $a_obj_type, $a_activate=true)
Activate notes feature.
getDependencies($a_entity, $a_version, $a_rec, $a_ids)
Determine the dependent sets of data.
static yn2tf($a_yn)
convert "y"/"n" to true/false
A dataset contains in data in a common structure that can be shared and transformed for different pur...
Translation information on lm object.
getMasterLanguageOnly()
Get master language only (export)
getTranslationLang()
Get translation language (import.