ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
ilLMPageObject Class Reference

Class ilLMPageObject. More...

+ Inheritance diagram for ilLMPageObject:
+ Collaboration diagram for ilLMPageObject:

Public Member Functions

 __construct (&$a_content_obj, $a_id=0, $a_halt=true)
 Constructor public. More...
 
 __desctruct ()
 
 read ()
 
 create ($a_upload=false, $a_omit_page_object_creation=false)
 
 delete ($a_delete_meta_data=true)
 
 copy ($a_target_lm)
 copy page More...
 
copyToOtherContObject (&$a_cont_obj, &$a_copied_nodes)
 copy a page to another content object (learning module / dlib book) More...
 
 assignPageObject (&$a_page_obj)
 assign page object More...
 
getPageObject ()
 get assigned page object More...
 
 setId ($a_id)
 set id More...
 
 getId ()
 
 setAlias ($a_is_alias)
 set wether page object is an alias More...
 
 isAlias ()
 
 setOriginID ($a_id)
 
 getOriginID ()
 
 exportXML (&$a_xml_writer, $a_mode="normal", $a_inst=0)
 export page object to xml (see ilias_co.dtd) More...
 
 exportXMLMetaData (&$a_xml_writer)
 export page objects meta data to xml (see ilias_co.dtd) More...
 
 modifyExportIdentifier ($a_tag, $a_param, $a_value)
 
 exportXMLPageContent (&$a_xml_writer, $a_inst=0)
 export page objects meta data to xml (see ilias_co.dtd) More...
 
 getQuestionIds ()
 Get question ids. More...
 
 getMediaObjectIds ()
 get ids of all media objects within the page More...
 
 getFileItemIds ()
 get ids of all file items within the page More...
 
 exportFO (&$a_xml_writer)
 export page object to fo More...
 
- Public Member Functions inherited from ilLMObject
 __construct ($a_content_obj, $a_id=0)
 
 MDUpdateListener ($a_element)
 Meta data update listener. More...
 
 createMetaData ()
 create meta data entry More...
 
 updateMetaData ()
 update meta data entry More...
 
 deleteMetaData ()
 delete meta data entry More...
 
 setDataRecord ($a_record)
 this method should only be called by class ilLMObjectFactory More...
 
 read ()
 
 setTitle ($a_title)
 set title of lm object More...
 
 getTitle ()
 get title of lm object More...
 
 setDescription ($a_description)
 
 getDescription ()
 
 setType ($a_type)
 
 getType ()
 
 setLMId ($a_lm_id)
 
 getLMId ()
 
 setContentObject (&$a_content_obj)
 
getContentObject ()
 
 setId ($a_id)
 
 getId ()
 
 getImportId ()
 
 setImportId ($a_id)
 
 setLayout ($a_val)
 Set layout. More...
 
 getLayout ()
 Get layout. More...
 
 create ($a_upload=false)
 
 update ()
 update complete object More...
 
 delete ($a_delete_meta_data=true)
 delete lm object data More...
 
 existsExportID ($a_lm_id, $a_exp_id, $a_type="pg")
 Does export ID exist in lm? More...
 
 getExportIDInfo ($a_lm_id, $a_exp_id, $a_type="pg")
 Does export ID exist in lm? More...
 

Static Public Member Functions

static _splitPage ($a_page_id, $a_pg_parent_type, $a_hier_id)
 split page at hierarchical id More...
 
static _splitPageNext ($a_page_id, $a_pg_parent_type, $a_hier_id)
 split page to next page at hierarchical id More...
 
static getPageList ($lm_id)
 static More...
 
static getPagesWithLinksList ($a_lm_id, $a_par_type)
 Get all pages of lm that contain any internal links. More...
 
static _getPresentationTitle ($a_pg_id, $a_mode=IL_CHAPTER_TITLE, $a_include_numbers=false, $a_time_scheduled_activation=false, $a_force_content=false, $a_lm_id=0, $a_lang="-")
 presentation title doesn't have to be page title, it may be chapter title + page title or chapter title only, depending on settings More...
 
static _exportXMLAlias (&$a_xml_writer, $a_id, $a_inst=0)
 export page alias to xml More...
 
static queryQuestionsOfLearningModule ($a_lm_id, $a_order_field, $a_order_dir, $a_offset, $a_limit)
 Get questions of learning module. More...
 
- Static Public Member Functions inherited from ilLMObject
static _lookupNID ($a_lm_id, $a_lm_obj_id, $a_type)
 lookup named identifier (ILIAS_NID) More...
 
static preloadDataByLM ($a_lm_id)
 Preload data records by lm. More...
 
static _lookupTitle ($a_obj_id)
 Lookup title. More...
 
static _lookupType ($a_obj_id, $a_lm_id=0)
 Lookup type. More...
 
static _writeTitle ($a_obj_id, $a_title)
 
static _writeImportId ($a_id, $a_import_id)
 write import id to db (static) More...
 
static _writePublicAccessStatus ($a_pages, $a_cont_obj_id)
 update public access flags in lm_data for all pages of a content object More...
 
static _isPagePublic ($a_node_id, $a_check_public_mode=false)
 
static _getIdForImportId ($a_import_id)
 get current object id for import id (static) More...
 
static _getAllObjectsForImportId ($a_import_id, $a_in_lm=0)
 Get all items for an import ID. More...
 
static _exists ($a_id)
 checks wether a lm content object with specified id exists or not More...
 
static getObjectList ($lm_id, $type="")
 static More...
 
static _deleteAllObjectData (&$a_cobj)
 delete all objects of content object (digi book / learning module) More...
 
static _lookupContObjID ($a_id)
 get learning module / digibook id for lm object More...
 
static putInTree ($a_obj, $a_parent_id="", $a_target_node_id="")
 put this object into content object tree More...
 
static getTree ($a_cont_obj_id)
 Get learningmodule tree. More...
 
static clipboardCut ($a_cont_obj_id, $a_ids)
 Copy a set of chapters/pages into the clipboard. More...
 
static clipboardCopy ($a_cont_obj_id, $a_ids)
 Copy a set of chapters/pages into the clipboard. More...
 
static pasteTree ($a_target_lm, $a_item_id, $a_parent_id, $a_target, $a_insert_time, &$a_copied_nodes, $a_as_copy=false, $a_source_lm=null)
 Paste item (tree) from clipboard to current lm. More...
 
static saveTitles ($a_lm, $a_titles, $a_lang="-")
 Save titles for lm objects. More...
 
static updateInternalLinks ($a_copied_nodes, $a_parent_type="lm")
 Update internal links, after multiple pages have been copied. More...
 
static uniqueTypesCheck ($a_items)
 Check for unique types (all pages or all chapters) More...
 
static writeLayout ($a_obj_id, $a_layout, $a_lm=null)
 Write layout setting. More...
 
static lookupLayout ($a_obj_id)
 Lookup type. More...
 
static getPagesOfChapter ($a_lm_id, $a_chap_id)
 Get pages of chapter. More...
 
static _getAllLMObjectsOfLM ($a_lm_id, $a_type="")
 Get all objects of learning module. More...
 
static saveExportId ($a_lm_id, $a_lmobj_id, $a_exp_id, $a_type="pg")
 Save export id. More...
 
static getExportId ($a_lm_id, $a_lmobj_id, $a_type="pg")
 Get export ID. More...
 
static getDuplicateExportIDs ($a_lm_id, $a_type="pg")
 Get duplicate export IDs (count export ID usages) More...
 
static _getPresentationTitle ($a_node, $a_mode=IL_PAGE_TITLE, $a_include_numbers=false, $a_time_scheduled_activation=false, $a_force_content=false, $a_lm_id=0, $a_lang="-")
 Get affective title. More...
 

Data Fields

 $is_alias
 
 $origin_id
 
 $id
 
 $ilias
 
 $dom
 
 $page_object
 
- Data Fields inherited from ilLMObject
 $ilias
 
 $lm_id
 
 $type
 
 $id
 
 $meta_data
 
 $data_record
 
 $content_object
 
 $title
 
 $description
 
 $active = true
 

Additional Inherited Members

- Static Protected Attributes inherited from ilLMObject
static $data_records = array()
 

Detailed Description

Class ilLMPageObject.

Handles Page Objects of ILIAS Learning Modules

Note: This class has a member variable that contains an instance of class ilPageObject and provides the method getPageObject() to access this instance. ilPageObject handles page objects and their content. Page objects can be assigned to different container like learning modules or glossaries definitions. This class, ilLMPageObject, provides additional methods for the handling of page objects in learning modules.

Author
Alex Killing alex..nosp@m.kill.nosp@m.ing@g.nosp@m.mx.d.nosp@m.e
Version
$Id$

Definition at line 29 of file class.ilLMPageObject.php.

Constructor & Destructor Documentation

◆ __construct()

ilLMPageObject::__construct ( $a_content_obj,
  $a_id = 0,
  $a_halt = true 
)

Constructor public.

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

References $ilBench, $ilias, array, read(), and ilLMObject\setType().

43  {
44  global $ilias, $ilBench;
45 
46  $ilBench->start("ContentPresentation", "ilLMPageObject_Constructor");
47 
48  parent::__construct($a_content_obj, $a_id);
49  $this->setType("pg");
50  $this->id = $a_id;
51 
52  $this->is_alias = false;
53  $this->contains_int_link = false;
54  $this->mobs_contained = array();
55  $this->files_contained = array();
56  $this->halt_on_error = $a_halt;
57 
58  if($a_id != 0)
59  {
60  $this->read();
61  }
62 
63  $ilBench->stop("ContentPresentation", "ilLMPageObject_Constructor");
64  }
setType($a_type)
Create styles array
The data for the language used.
global $ilBench
Definition: ilias.php:18
+ Here is the call graph for this function:

Member Function Documentation

◆ __desctruct()

ilLMPageObject::__desctruct ( )

Definition at line 66 of file class.ilLMPageObject.php.

67  {
68  if(is_object($this->page_object))
69  {
70  unset($this->page_object);
71  }
72  }

◆ _exportXMLAlias()

static ilLMPageObject::_exportXMLAlias ( $a_xml_writer,
  $a_id,
  $a_inst = 0 
)
static

export page alias to xml

Definition at line 540 of file class.ilLMPageObject.php.

References array.

Referenced by ilStructureObject\exportXMLPageObjects().

541  {
542  $attrs = array();
543  $a_xml_writer->xmlStartTag("PageObject", $attrs);
544 
545  $attrs = array();
546  $attrs["OriginId"] = "il_".$a_inst.
547  "_pg_".$a_id;
548  $a_xml_writer->xmlElement("PageAlias", $attrs);
549 
550  $a_xml_writer->xmlEndTag("PageObject");
551  }
Create styles array
The data for the language used.
+ Here is the caller graph for this function:

◆ _getPresentationTitle()

static ilLMPageObject::_getPresentationTitle (   $a_pg_id,
  $a_mode = IL_CHAPTER_TITLE,
  $a_include_numbers = false,
  $a_time_scheduled_activation = false,
  $a_force_content = false,
  $a_lm_id = 0,
  $a_lang = "-" 
)
static

presentation title doesn't have to be page title, it may be chapter title + page title or chapter title only, depending on settings

Parameters
string$a_modeIL_CHAPTER_TITLE | IL_PAGE_TITLE | IL_NO_HEADER

Definition at line 399 of file class.ilLMPageObject.php.

References ilLMObject\$active, $languages, ilLMObject\$title, ilStructureObject\_getPresentationTitle(), ilPageObject\_lookupActivationData(), ilPageObject\_lookupActive(), ilLMObject\_lookupContObjID(), ilLMObject\_lookupTitle(), ilObject\_lookupType(), ilLMTree\getInstance(), ilObjectTranslation\getInstance(), IL_CHAPTER_TITLE, IL_NO_HEADER, IL_PAGE_TITLE, and ilUtil\now().

Referenced by ilLMObject\_getPresentationTitle(), ilObjContentObjectGUI\addLocations(), ilContObjLocatorGUI\display(), ilLMPageObjectGUI\executeCommand(), exportFO(), ilObjContentObjectGUI\formatInvalidLinkArray(), ilLMTOCExplorerGUI\getNodeContent(), ilLMPresentationGUI\ilLMNavigation(), ilLMPresentationGUI\ilLMSubMenu(), ilLMPresentationGUI\ilPage(), ilGlossaryPresentationGUI\listDefinitions(), ilLMPresentationGUI\showPrintView(), and ilLMPresentationGUI\showPrintViewSelection().

402  {
403  if($a_mode == IL_NO_HEADER && !$a_force_content)
404  {
405  return "";
406  }
407 
408  if ($a_lm_id == 0)
409  {
410  $a_lm_id = ilLMObject::_lookupContObjID($a_pg_id);
411  }
412 
413  if ($a_lm_id == 0)
414  {
415  return "";
416  }
417 
418  // this is optimized when ilLMObject::preloadDataByLM is invoked (e.g. done in ilLMExplorerGUI)
419  $title = ilLMObject::_lookupTitle($a_pg_id);
420 
421  // this is also optimized since ilObjectTranslation re-uses instances for one lm
422  include_once("./Services/Object/classes/class.ilObjectTranslation.php");
423  $ot = ilObjectTranslation::getInstance($a_lm_id);
424  $languages = $ot->getLanguages();
425 
426  if ($a_lang != "-" && $ot->getContentActivated() && isset($languages[$a_lang]))
427  {
428  include_once("./Modules/LearningModule/classes/class.ilLMObjTranslation.php");
429  $lmobjtrans = new ilLMObjTranslation($a_pg_id, $a_lang);
430  if ($lmobjtrans->getTitle() != "")
431  {
432  $title = $lmobjtrans->getTitle();
433  }
434  }
435 
436  if($a_mode == IL_PAGE_TITLE)
437  {
438  return $title;
439  }
440 
441  include_once("./Modules/LearningModule/classes/class.ilLMTree.php");
442  $tree = ilLMTree::getInstance($a_lm_id);
443 
444  if ($tree->isInTree($a_pg_id))
445  {
446  $pred_node = $tree->fetchPredecessorNode($a_pg_id, "st");
447  $childs = $tree->getChildsByType($pred_node["obj_id"], "pg");
448  $cnt_str = "";
449  if(count($childs) > 1)
450  {
451  $cnt = 0;
452  foreach($childs as $child)
453  {
454  include_once("./Modules/LearningModule/classes/class.ilLMPage.php");
455  $active = ilLMPage::_lookupActive($child["obj_id"],
456  ilObject::_lookupType($a_lm_id), $a_time_scheduled_activation);
457 
458  if (!$active)
459  {
460  $act_data = ilLMPage::_lookupActivationData((int) $child["obj_id"], ilObject::_lookupType($a_lm_id));
461  if ($act_data["show_activation_info"] &&
462  (ilUtil::now() < $act_data["activation_start"]))
463  {
464  $active = true;
465  }
466  }
467 
468  if ($child["type"] != "pg" || $active)
469  {
470  $cnt++;
471  }
472  if($child["obj_id"] == $a_pg_id)
473  {
474  $cur_cnt = $cnt;
475  }
476  }
477  if ($cnt > 1)
478  {
479  $cnt_str = " (".$cur_cnt."/".$cnt.")";
480  }
481  }
482  require_once("./Modules/LearningModule/classes/class.ilStructureObject.php");
483  //$struct_obj = new ilStructureObject($pred_node["obj_id"]);
484  //return $struct_obj->getTitle();
485  return ilStructureObject::_getPresentationTitle($pred_node["obj_id"], IL_CHAPTER_TITLE,
486  $a_include_numbers, false, false, 0, $a_lang).$cnt_str;
487 
488  //return $pred_node["title"].$cnt_str;
489  }
490  else
491  {
492  return $title;
493  }
494  }
static _getPresentationTitle($a_st_id, $a_mode=IL_CHAPTER_TITLE, $a_include_numbers=false, $a_time_scheduled_activation=false, $a_force_content=false, $a_lm_id=0, $a_lang="-")
get presentation title
const IL_PAGE_TITLE
const IL_NO_HEADER
static _lookupContObjID($a_id)
get learning module / digibook id for lm object
static _lookupTitle($a_obj_id)
Lookup title.
static now()
Return current timestamp in Y-m-d H:i:s format.
static _lookupActive($a_id, $a_parent_type, $a_check_scheduled_activation=false, $a_lang="-")
lookup activation status
static getInstance($a_tree_id)
Get Instance.
static _lookupType($a_id, $a_reference=false)
lookup object type
static _lookupActivationData($a_id, $a_parent_type, $a_lang="-")
Lookup activation data.
static getInstance($a_obj_id)
Get instance.
const IL_CHAPTER_TITLE
$languages
Definition: cssgen2.php:34
Translation information on lm object.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _splitPage()

static ilLMPageObject::_splitPage (   $a_page_id,
  $a_pg_parent_type,
  $a_hier_id 
)
static

split page at hierarchical id

the main reason for this method being static is that a lm page object is not available within ilPageContentGUI where this method is called

Definition at line 203 of file class.ilLMPageObject.php.

References ilLMObject\$lm_id, ilLMObject\$type, ilLMObject\_lookupContObjID(), ilObject\_lookupType(), ilMD\cloneMD(), and ilTree\setTableNames().

Referenced by ilPageContentGUI\splitPage().

204  {
205  // get content object (learning module / digilib book)
206  $lm_id = ilLMObject::_lookupContObjID($a_page_id);
208  include_once ("./Modules/LearningModule/classes/class.ilObjLearningModule.php");
209  $cont_obj = new ilObjLearningModule($lm_id, false);
210  $source_lm_page = new ilLMPageObject($cont_obj, $a_page_id);
211 
212  // create new page
213  $lm_page = new ilLMPageObject($cont_obj);
214  $lm_page->setTitle($source_lm_page->getTitle());
215  $lm_page->setLMId($source_lm_page->getLMId());
216  $lm_page->setType($source_lm_page->getType());
217  $lm_page->setDescription($source_lm_page->getDescription());
218  $lm_page->create(true);
219 
220 
221  // copy complete content of source page to new page
222  $source_page = $source_lm_page->getPageObject();
223  $page = $lm_page->getPageObject();
224  $page->setXMLContent($source_page->copyXMLContent());
225 //echo htmlentities($source_page->copyXMLContent());
226  $page->buildDom(true);
227  $page->update();
228 // echo "-".$page->getId()."-".$page->getParentType()."-";
229 
230  // copy meta data
231  include_once("Services/MetaData/classes/class.ilMD.php");
232  $md = new ilMD($source_lm_page->getLMId(), $a_page_id, $source_lm_page->getType());
233  $md->cloneMD($source_lm_page->getLMId(), $lm_page->getId(), $source_lm_page->getType());
234 
235  // insert new page in tree (after original page)
236  $tree = new ilTree($cont_obj->getId());
237  $tree->setTableNames('lm_tree','lm_data');
238  $tree->setTreeTablePK("lm_id");
239  if ($tree->isInTree($source_lm_page->getId()))
240  {
241  $parent_node = $tree->getParentNodeData($source_lm_page->getId());
242  $tree->insertNode($lm_page->getId(), $parent_node["child"], $source_lm_page->getId());
243  }
244 
245  // remove all nodes < hierarchical id from new page (incl. update)
246  $page->addHierIds();
247  $page->deleteContentBeforeHierId($a_hier_id);
248 // $page->update();
249 
250  // remove all nodes >= hierarchical id from source page
251  $source_page->buildDom();
252  $source_page->addHierIds();
253  $source_page->deleteContentFromHierId($a_hier_id);
254 
255  return $lm_page;
256 
257  }
& cloneMD($a_rbac_id, $a_obj_id, $a_obj_type)
Definition: class.ilMD.php:346
Class ilObjLearningModule.
static _lookupContObjID($a_id)
get learning module / digibook id for lm object
Class ilLMPageObject.
setTableNames($a_table_tree, $a_table_obj_data, $a_table_obj_reference="")
set table names The primary key of the table containing your object_data must be &#39;obj_id&#39; You may use...
Tree class data representation in hierachical trees using the Nested Set Model with Gaps by Joe Celco...
static _lookupType($a_id, $a_reference=false)
lookup object type
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _splitPageNext()

static ilLMPageObject::_splitPageNext (   $a_page_id,
  $a_pg_parent_type,
  $a_hier_id 
)
static

split page to next page at hierarchical id

the main reason for this method being static is that a lm page object is not available within ilPageContentGUI where this method is called

Definition at line 266 of file class.ilLMPageObject.php.

References ilLMObject\$lm_id, ilLMObject\$type, ilLMObject\_lookupContObjID(), ilObject\_lookupType(), ilPageObject\_moveContentAfterHierId(), and ilTree\setTableNames().

Referenced by ilPageContentGUI\splitPageNext().

267  {
268  // get content object (learning module / digilib book)
269  $lm_id = ilLMObject::_lookupContObjID($a_page_id);
271  include_once ("./Modules/LearningModule/classes/class.ilObjLearningModule.php");
272  $cont_obj = new ilObjLearningModule($lm_id, false);
273  $tree = new ilTree($cont_obj->getId());
274  $tree->setTableNames('lm_tree','lm_data');
275  $tree->setTreeTablePK("lm_id");
276 
277  $source_lm_page = new ilLMPageObject($cont_obj, $a_page_id);
278  $source_page = $source_lm_page->getPageObject();
279 
280  // get next page
281  $succ = $tree->fetchSuccessorNode($a_page_id, "pg");
282  if ($succ["child"] > 0)
283  {
284  $target_lm_page = new ilLMPageObject($cont_obj, $succ["child"]);
285  $target_page = $target_lm_page->getPageObject();
286  $target_page->buildDom();
287  $target_page->addHierIds();
288 
289  // move nodes to target page
290  $source_page->buildDom();
291  $source_page->addHierIds();
292  ilLMPage::_moveContentAfterHierId($source_page, $target_page, $a_hier_id);
293  //$source_page->deleteContentFromHierId($a_hier_id);
294 
295  return $succ["child"];
296  }
297 
298  }
Class ilObjLearningModule.
static _lookupContObjID($a_id)
get learning module / digibook id for lm object
static _moveContentAfterHierId(&$a_source_page, &$a_target_page, $a_hid)
move content of hierarchical id >= $a_hid to other page
Class ilLMPageObject.
setTableNames($a_table_tree, $a_table_obj_data, $a_table_obj_reference="")
set table names The primary key of the table containing your object_data must be &#39;obj_id&#39; You may use...
Tree class data representation in hierachical trees using the Nested Set Model with Gaps by Joe Celco...
static _lookupType($a_id, $a_reference=false)
lookup object type
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ assignPageObject()

ilLMPageObject::assignPageObject ( $a_page_obj)

assign page object

Parameters
object$a_page_objpage object

Definition at line 306 of file class.ilLMPageObject.php.

307  {
308  $this->page_object = $a_page_obj;
309  }

◆ copy()

ilLMPageObject::copy (   $a_target_lm)

copy page

Definition at line 110 of file class.ilLMPageObject.php.

References ilLMObjTranslation\copy(), ilLMObject\existsExportID(), ilLMObject\getDescription(), ilLMObject\getExportId(), getId(), ilLMObject\getLayout(), ilLMObject\getLMId(), ilLMObject\getTitle(), ilLMObject\getType(), and ilLMObject\saveExportId().

111  {
112  // copy page
113  $lm_page = new ilLMPageObject($a_target_lm);
114  $lm_page->setTitle($this->getTitle());
115  $lm_page->setLayout($this->getLayout());
116  $lm_page->setLMId($a_target_lm->getId());
117  $lm_page->setType($this->getType());
118  $lm_page->setDescription($this->getDescription());
119  $lm_page->setImportId("il__pg_".$this->getId());
120  $lm_page->create(true); // setting "upload" flag to true prevents creating of meta data
121 
122  // check whether export id already exists in the target lm
123  $del_exp_id = false;
124  $exp_id = ilLMPageObject::getExportId($this->getLMId(), $this->getId());
125  if (trim($exp_id) != "")
126  {
127  if (ilLMPageObject::existsExportID($a_target_lm->getId(), $exp_id))
128  {
129  $del_exp_id = true;
130  }
131  }
132 
133  // copy meta data
134  include_once("Services/MetaData/classes/class.ilMD.php");
135  $md = new ilMD($this->getLMId(), $this->getId(), $this->getType());
136  $new_md = $md->cloneMD($a_target_lm->getId(), $lm_page->getId(), $this->getType());
137 
138  // check whether export id already exists in the target lm
139  if ($del_exp_id)
140  {
141  ilLMPageObject::saveExportId($a_target_lm->getId(), $lm_page->getId(), "");
142  }
143  else
144  {
145  ilLMPageObject::saveExportId($a_target_lm->getId(), $lm_page->getId(),
146  trim($exp_id));
147  }
148 
149  // copy page content and activation
150  $page = $lm_page->getPageObject();
151  $this->page_object->copy($page->getId(), $page->getParentType(), $page->getParentId());
152  /*$page->setXMLContent($this->page_object->copyXMLContent());
153  $page->setActive($this->page_object->getActive());
154  $page->setActivationStart($this->page_object->getActivationStart());
155  $page->setActivationEnd($this->page_object->getActivationEnd());
156  $page->buildDom();
157  $page->update();*/
158  $lm_page->read(); // this gets the updated page object into lm page
159 
160  // copy translations
161  include_once("./Modules/LearningModule/classes/class.ilLMObjTranslation.php");
162  ilLMObjTranslation::copy($this->getId(), $lm_page->getId());
163 
164  return $lm_page;
165  }
static saveExportId($a_lm_id, $a_lmobj_id, $a_exp_id, $a_type="pg")
Save export id.
existsExportID($a_lm_id, $a_exp_id, $a_type="pg")
Does export ID exist in lm?
getLayout()
Get layout.
Class ilLMPageObject.
static getExportId($a_lm_id, $a_lmobj_id, $a_type="pg")
Get export ID.
getTitle()
get title of lm object
static copy($a_source_id, $a_target_id)
Copy all translations of an object.
+ Here is the call graph for this function:

◆ copyToOtherContObject()

& ilLMPageObject::copyToOtherContObject ( $a_cont_obj,
$a_copied_nodes 
)

copy a page to another content object (learning module / dlib book)

Definition at line 170 of file class.ilLMPageObject.php.

References ilLMObject\getDescription(), getId(), ilLMObject\getLMId(), ilLMObject\getTitle(), and ilLMObject\getType().

171  {
172  // copy page
173  $lm_page = new ilLMPageObject($a_cont_obj);
174  $lm_page->setTitle($this->getTitle());
175  $lm_page->setLMId($a_cont_obj->getId());
176  $lm_page->setImportId("il__pg_".$this->getId());
177  $lm_page->setType($this->getType());
178  $lm_page->setDescription($this->getDescription());
179  $lm_page->create(true); // setting "upload" flag to true prevents creating of meta data
180  $a_copied_nodes[$this->getId()] = $lm_page->getId();
181 
182  // copy meta data
183  include_once("Services/MetaData/classes/class.ilMD.php");
184  $md = new ilMD($this->getLMId(), $this->getId(), $this->getType());
185  $new_md = $md->cloneMD($a_cont_obj->getId(), $lm_page->getId(), $this->getType());
186 
187  // copy page content
188  $page = $lm_page->getPageObject();
189  $page->setXMLContent($this->page_object->getXMLContent());
190  $page->buildDom();
191  $page->update();
192 
193  return $lm_page;
194  }
Class ilLMPageObject.
getTitle()
get title of lm object
+ Here is the call graph for this function:

◆ create()

ilLMPageObject::create (   $a_upload = false,
  $a_omit_page_object_creation = false 
)

Definition at line 84 of file class.ilLMPageObject.php.

References getId(), and ilLMObject\getLMId().

85  {
86  parent::create($a_upload);
87  if ($a_omit_page_object_creation)
88  {
89  return;
90  }
91  if(!is_object($this->page_object))
92  {
93  $this->page_object = new ilLMPage();
94  }
95  $this->page_object->setId($this->getId());
96  $this->page_object->setParentId($this->getLMId());
97  $this->page_object->create($a_upload);
98  }
Extension of ilPageObject for learning modules.
+ Here is the call graph for this function:

◆ delete()

ilLMPageObject::delete (   $a_delete_meta_data = true)

Definition at line 100 of file class.ilLMPageObject.php.

101  {
102  parent::delete($a_delete_meta_data);
103  $this->page_object->delete();
104  }

◆ exportFO()

ilLMPageObject::exportFO ( $a_xml_writer)

export page object to fo

Parameters
object$a_xml_writerilXmlWriter object that receives the xml data

Definition at line 644 of file class.ilLMPageObject.php.

References $ilBench, ilLMObject\$title, _getPresentationTitle(), array, and getId().

645  {
646  global $ilBench;
647 
648  //$attrs = array();
649  //$a_xml_writer->xmlStartTag("PageObject", $attrs);
651  if ($title != "")
652  {
653  $attrs = array();
654  $attrs["font-family"] = "Times";
655  $attrs["font-size"] = "14pt";
656  $a_xml_writer->xmlElement("fo:block", $attrs, $title);
657  }
658 
659  // PageContent
660  $this->page_object->buildDom();
661  $fo = $this->page_object->getFO();
662  $a_xml_writer->appendXML($fo);
663 
664  //$a_xml_writer->xmlEndTag("PageObject");
665  }
Create styles array
The data for the language used.
global $ilBench
Definition: ilias.php:18
static _getPresentationTitle($a_pg_id, $a_mode=IL_CHAPTER_TITLE, $a_include_numbers=false, $a_time_scheduled_activation=false, $a_force_content=false, $a_lm_id=0, $a_lang="-")
presentation title doesn&#39;t have to be page title, it may be chapter title + page title or chapter tit...
+ Here is the call graph for this function:

◆ exportXML()

ilLMPageObject::exportXML ( $a_xml_writer,
  $a_mode = "normal",
  $a_inst = 0 
)

export page object to xml (see ilias_co.dtd)

Parameters
object$a_xml_writerilXmlWriter object that receives the xml data

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

References $ilBench, array, exportXMLMetaData(), and exportXMLPageContent().

503  {
504  global $ilBench;
505 
506  $attrs = array();
507  $a_xml_writer->xmlStartTag("PageObject", $attrs);
508 
509  switch ($a_mode)
510  {
511  case "normal":
512  // MetaData
513  $ilBench->start("ContentObjectExport", "exportPageObject_XML_Meta");
514  $this->exportXMLMetaData($a_xml_writer);
515  $ilBench->stop("ContentObjectExport", "exportPageObject_XML_Meta");
516 
517  // PageContent
518  $ilBench->start("ContentObjectExport", "exportPageObject_XML_PageContent");
519  $this->exportXMLPageContent($a_xml_writer, $a_inst);
520  $ilBench->stop("ContentObjectExport", "exportPageObject_XML_PageContent");
521  break;
522 
523  case "alias":
524  $attrs = array();
525  $attrs["OriginId"] = "il_".$a_inst.
526  "_pg_".$this->getId();
527  $a_xml_writer->xmlElement("PageAlias", $attrs);
528  break;
529  }
530 
531  // Layout
532  // not implemented
533 
534  $a_xml_writer->xmlEndTag("PageObject");
535  }
exportXMLMetaData(&$a_xml_writer)
export page objects meta data to xml (see ilias_co.dtd)
Create styles array
The data for the language used.
global $ilBench
Definition: ilias.php:18
exportXMLPageContent(&$a_xml_writer, $a_inst=0)
export page objects meta data to xml (see ilias_co.dtd)
+ Here is the call graph for this function:

◆ exportXMLMetaData()

ilLMPageObject::exportXMLMetaData ( $a_xml_writer)

export page objects meta data to xml (see ilias_co.dtd)

Parameters
object$a_xml_writerilXmlWriter object that receives the xml data

Definition at line 560 of file class.ilLMPageObject.php.

References getId(), ilLMObject\getLMId(), and ilLMObject\getType().

Referenced by exportXML().

561  {
562  include_once("Services/MetaData/classes/class.ilMD2XML.php");
563  $md2xml = new ilMD2XML($this->getLMId(), $this->getId(), $this->getType());
564  $md2xml->setExportMode(true);
565  $md2xml->startExport();
566  $a_xml_writer->appendXML($md2xml->getXML());
567  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ exportXMLPageContent()

ilLMPageObject::exportXMLPageContent ( $a_xml_writer,
  $a_inst = 0 
)

export page objects meta data to xml (see ilias_co.dtd)

Parameters
object$a_xml_writerilXmlWriter object that receives the xml data

Definition at line 587 of file class.ilLMPageObject.php.

References ilPCFileList\collectFileItems(), and ilLMObject\getContentObject().

Referenced by exportXML().

588  {
589 //echo "exportxmlpagecontent:$a_inst:<br>";
590  $cont_obj = $this->getContentObject();
591 
592  $this->page_object->buildDom();
593  $this->page_object->insertInstIntoIDs($a_inst);
594  $this->mobs_contained = $this->page_object->collectMediaObjects(false);
595  //$this->files_contained = $this->page_object->collectFileItems();
596  include_once("./Services/COPage/classes/class.ilPCFileList.php");
597  $this->files_contained = ilPCFileList::collectFileItems($this->page_object, $this->page_object->getDomDoc());
598 // $this->questions_contained = $this->page_object->getQuestionIds();
599  $xml = $this->page_object->getXMLFromDom(false, false, false, "", true);
600  $xml = str_replace("&","&amp;", $xml);
601  $a_xml_writer->appendXML($xml);
602 
603  $this->page_object->freeDom();
604  }
static collectFileItems($a_page, $a_domdoc)
Get all file items that are used within the page.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getFileItemIds()

ilLMPageObject::getFileItemIds ( )

get ids of all file items within the page

note: this method must be called afer exportXMLPageContent

Definition at line 633 of file class.ilLMPageObject.php.

634  {
635  return $this->files_contained;
636  }

◆ getId()

ilLMPageObject::getId ( )

Definition at line 331 of file class.ilLMPageObject.php.

References $id.

Referenced by copy(), copyToOtherContObject(), create(), exportFO(), exportXMLMetaData(), getQuestionIds(), and modifyExportIdentifier().

332  {
333  return $this->id;
334  }
+ Here is the caller graph for this function:

◆ getMediaObjectIds()

ilLMPageObject::getMediaObjectIds ( )

get ids of all media objects within the page

note: this method must be called afer exportXMLPageContent

Definition at line 623 of file class.ilLMPageObject.php.

624  {
625  return $this->mobs_contained;
626  }

◆ getOriginID()

ilLMPageObject::getOriginID ( )

Definition at line 356 of file class.ilLMPageObject.php.

References $origin_id.

357  {
358  return $this->origin_id;
359  }

◆ getPageList()

◆ getPageObject()

& ilLMPageObject::getPageObject ( )

get assigned page object

Returns
object page object

Definition at line 317 of file class.ilLMPageObject.php.

References $page_object.

318  {
319  return $this->page_object;
320  }

◆ getPagesWithLinksList()

static ilLMPageObject::getPagesWithLinksList (   $a_lm_id,
  $a_par_type 
)
static

Get all pages of lm that contain any internal links.

Definition at line 372 of file class.ilLMPageObject.php.

References $result, array, getPageList(), and ilPageObject\getPagesWithLinks().

Referenced by ilLinksTableGUI\getLinks().

373  {
374  $pages = ilLMPageObject::getPageList($a_lm_id);
375  $ids = array();
376  foreach($pages as $page)
377  {
378  $ids[] = $page["obj_id"];
379  }
380 
381  $linked_pages = ilLMPage::getPagesWithLinks($a_par_type, $a_lm_id);
382  $result = array();
383  foreach($pages as $page)
384  {
385  if (is_array($linked_pages[$page["obj_id"]]))
386  {
387  $result[] = $page;
388  }
389  }
390  return $result;
391  }
$result
static getPagesWithLinks($a_parent_type, $a_parent_id, $a_lang="-")
Get all pages for parent object that contain internal links.
Create styles array
The data for the language used.
static getPageList($lm_id)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getQuestionIds()

ilLMPageObject::getQuestionIds ( )

Get question ids.

note: this method must be called afer exportXMLPageContent

Definition at line 611 of file class.ilLMPageObject.php.

References ilPCQuestion\_getQuestionIdsForPage(), and getId().

612  {
613  include_once("./Services/COPage/classes/class.ilPCQuestion.php");
614  return ilPCQuestion::_getQuestionIdsForPage($this->content_object->getType(),
615  $this->getId());
616  }
static _getQuestionIdsForPage($a_parent_type, $a_page_id, $a_lang="-")
Get all questions of a page.
+ Here is the call graph for this function:

◆ isAlias()

ilLMPageObject::isAlias ( )

Definition at line 344 of file class.ilLMPageObject.php.

References $is_alias.

345  {
346  return $this->is_alias;
347  }

◆ modifyExportIdentifier()

ilLMPageObject::modifyExportIdentifier (   $a_tag,
  $a_param,
  $a_value 
)

Definition at line 569 of file class.ilLMPageObject.php.

References getId().

570  {
571  if ($a_tag == "Identifier" && $a_param == "Entry")
572  {
573  $a_value = "il_".IL_INST_ID."_pg_".$this->getId();
574  //$a_value = ilUtil::insertInstIntoID($a_value);
575  }
576 
577  return $a_value;
578  }
+ Here is the call graph for this function:

◆ queryQuestionsOfLearningModule()

static ilLMPageObject::queryQuestionsOfLearningModule (   $a_lm_id,
  $a_order_field,
  $a_order_dir,
  $a_offset,
  $a_limit 
)
static

Get questions of learning module.

Parameters

Definition at line 673 of file class.ilLMPageObject.php.

References $ilDB, $query, $result, and array.

Referenced by ilLMTracker\getBlockedUsersInformation(), ilLMQuestionListTableGUI\getItems(), and ilLMTracker\loadLMTrackingData().

675  {
676  global $ilDB, $rbacreview;
677 
678 
679  // count query
680  $count_query = "SELECT count(pq.question_id) cnt ";
681 
682  // basic query
683  $query = "SELECT pq.page_id, pq.question_id ";
684 
685  $from = " FROM page_question pq JOIN lm_tree t ON (t.lm_id = ".$ilDB->quote($a_lm_id, "integer").
686  " AND pq.page_id = t.child and pq.page_parent_type = ".$ilDB->quote("lm", "text").") ".
687  " WHERE t.lm_id = ".$ilDB->quote($a_lm_id, "integer");
688  $count_query.= $from;
689  $query.= $from;
690 
691 
692  // count query
693  $set = $ilDB->query($count_query);
694  $cnt = 0;
695  if ($rec = $ilDB->fetchAssoc($set))
696  {
697  $cnt = $rec["cnt"];
698  }
699 
700  $offset = (int) $a_offset;
701  $limit = (int) $a_limit;
702  if ($a_limit > 0)
703  {
704  $ilDB->setLimit($limit, $offset);
705  }
706 
707  // set query
708  $set = $ilDB->query($query);
709  $result = array();
710  while($rec = $ilDB->fetchAssoc($set))
711  {
712  $result[] = $rec;
713  }
714  return array("cnt" => $cnt, "set" => $result);
715  }
$result
Create styles array
The data for the language used.
global $ilDB
+ Here is the caller graph for this function:

◆ read()

ilLMPageObject::read ( )

Definition at line 77 of file class.ilLMPageObject.php.

Referenced by __construct().

78  {
79  parent::read();
80 
81  $this->page_object = new ilLMPage($this->id, 0);
82  }
Extension of ilPageObject for learning modules.
+ Here is the caller graph for this function:

◆ setAlias()

ilLMPageObject::setAlias (   $a_is_alias)

set wether page object is an alias

Definition at line 339 of file class.ilLMPageObject.php.

340  {
341  $this->is_alias = $a_is_alias;
342  }

◆ setId()

ilLMPageObject::setId (   $a_id)

set id

Definition at line 326 of file class.ilLMPageObject.php.

327  {
328  $this->id = $a_id;
329  }

◆ setOriginID()

ilLMPageObject::setOriginID (   $a_id)

Definition at line 350 of file class.ilLMPageObject.php.

351  {
352  return $this->origin_id = $a_id;
353  }

Field Documentation

◆ $dom

ilLMPageObject::$dom

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

◆ $id

ilLMPageObject::$id

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

Referenced by getId().

◆ $ilias

ilLMPageObject::$ilias

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

Referenced by __construct().

◆ $is_alias

ilLMPageObject::$is_alias

Definition at line 31 of file class.ilLMPageObject.php.

Referenced by isAlias().

◆ $origin_id

ilLMPageObject::$origin_id

Definition at line 32 of file class.ilLMPageObject.php.

Referenced by getOriginID().

◆ $page_object

ilLMPageObject::$page_object

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

Referenced by getPageObject().


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