ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5
ilLMPageObject Class Reference

Class ilLMPageObject. More...

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

Public Member Functions

 ilLMPageObject (&$a_content_obj, $a_id=0, $a_halt=true)
 Constructor public. More...
 
 _ilLMPageObject ()
 
 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...
 
 _splitPage ($a_page_id, $a_pg_parent_type, $a_hier_id)
 split page at hierarchical id More...
 
 _splitPageNext ($a_page_id, $a_pg_parent_type, $a_hier_id)
 split page to next page at hierarchical id 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 ()
 
 getPageList ($lm_id)
 static More...
 
 getPagesWithLinksList ($a_lm_id, $a_par_type)
 Get all pages of lm that contain any internal links. More...
 
 exportXML (&$a_xml_writer, $a_mode="normal", $a_inst=0)
 export page object to xml (see ilias_co.dtd) More...
 
 _exportXMLAlias (&$a_xml_writer, $a_id, $a_inst=0)
 export page alias to xml 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
 ilLMObject ($a_content_obj, $a_id=0)
 
 MDUpdateListener ($a_element)
 Meta data update listener. More...
 
 _lookupNID ($a_lm_id, $a_lm_obj_id, $a_type)
 lookup named identifier (ILIAS_NID) 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...
 
 _writeTitle ($a_obj_id, $a_title)
 
 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...
 
 _writeImportId ($a_id, $a_import_id)
 write import id to db (static) More...
 
 create ($a_upload=false)
 
 update ()
 update complete object More...
 
 delete ($a_delete_meta_data=true)
 delete lm object data More...
 
 _getIdForImportId ($a_import_id)
 get current object id for import id (static) More...
 
 _getAllObjectsForImportId ($a_import_id, $a_in_lm=0)
 Get all items for an import ID. More...
 
 _exists ($a_id)
 checks wether a lm content object with specified id exists or not More...
 
 getObjectList ($lm_id, $type="")
 static More...
 
 _deleteAllObjectData (&$a_cobj)
 delete all objects of content object (digi book / learning module) More...
 
 _lookupContObjID ($a_id)
 get learning module / digibook id for lm object More...
 
 clipboardCut ($a_cont_obj_id, $a_ids)
 Copy a set of chapters/pages into the clipboard. 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 _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 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 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...
 
 _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 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 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.

Member Function Documentation

◆ _exportXMLAlias()

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

export page alias to xml

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

Referenced by ilStructureObject\exportXMLPageObjects().

562  {
563  $attrs = array();
564  $a_xml_writer->xmlStartTag("PageObject", $attrs);
565 
566  $attrs = array();
567  $attrs["OriginId"] = "il_".$a_inst.
568  "_pg_".$a_id;
569  $a_xml_writer->xmlElement("PageAlias", $attrs);
570 
571  $a_xml_writer->xmlEndTag("PageObject");
572  }
+ 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 420 of file class.ilLMPageObject.php.

References ilLMObject\$active, ilLMObject\$title, ilStructureObject\_getPresentationTitle(), ilPageObject\_lookupActivationData(), ilPageObject\_lookupActive(), ilLMObject\_lookupContObjID(), ilLMObject\_lookupTitle(), ilObject\_lookupType(), ilLMTree\getInstance(), ilObjectTranslation\getInstance(), 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().

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

◆ _ilLMPageObject()

ilLMPageObject::_ilLMPageObject ( )

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  }

◆ _splitPage()

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

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(), ilLMPageObject(), 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  switch ($type)
209  {
210  case "lm":
211  include_once ("./Modules/LearningModule/classes/class.ilObjLearningModule.php");
212  $cont_obj = new ilObjLearningModule($lm_id, false);
213  break;
214 
215  case "dbk":
216  include_once ("./Modules/LearningModule/classes/class.ilObjDlBook.php");
217  $cont_obj = new ilObjDlBook($lm_id, false);
218  break;
219  }
220 
221  $source_lm_page = new ilLMPageObject($cont_obj, $a_page_id);
222 
223  // create new page
224  $lm_page = new ilLMPageObject($cont_obj);
225  $lm_page->setTitle($source_lm_page->getTitle());
226  $lm_page->setLMId($source_lm_page->getLMId());
227  $lm_page->setType($source_lm_page->getType());
228  $lm_page->setDescription($source_lm_page->getDescription());
229  $lm_page->create(true);
230 
231 
232  // copy complete content of source page to new page
233  $source_page = $source_lm_page->getPageObject();
234  $page = $lm_page->getPageObject();
235  $page->setXMLContent($source_page->copyXMLContent());
236 //echo htmlentities($source_page->copyXMLContent());
237  $page->buildDom(true);
238  $page->update();
239 // echo "-".$page->getId()."-".$page->getParentType()."-";
240 
241  // copy meta data
242  include_once("Services/MetaData/classes/class.ilMD.php");
243  $md = new ilMD($source_lm_page->getLMId(), $a_page_id, $source_lm_page->getType());
244  $md->cloneMD($source_lm_page->getLMId(), $lm_page->getId(), $source_lm_page->getType());
245 
246  // insert new page in tree (after original page)
247  $tree = new ilTree($cont_obj->getId());
248  $tree->setTableNames('lm_tree','lm_data');
249  $tree->setTreeTablePK("lm_id");
250  if ($tree->isInTree($source_lm_page->getId()))
251  {
252  $parent_node = $tree->getParentNodeData($source_lm_page->getId());
253  $tree->insertNode($lm_page->getId(), $parent_node["child"], $source_lm_page->getId());
254  }
255 
256  // remove all nodes < hierarchical id from new page (incl. update)
257  $page->addHierIds();
258  $page->deleteContentBeforeHierId($a_hier_id);
259 // $page->update();
260 
261  // remove all nodes >= hierarchical id from source page
262  $source_page->buildDom();
263  $source_page->addHierIds();
264  $source_page->deleteContentFromHierId($a_hier_id);
265 
266  return $lm_page;
267 
268  }
& cloneMD($a_rbac_id, $a_obj_id, $a_obj_type)
Definition: class.ilMD.php:361
Class ilObjLearningModule.
Class ilObjDlBook.
_lookupContObjID($a_id)
get learning module / digibook id for lm object
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...
ilLMPageObject(&$a_content_obj, $a_id=0, $a_halt=true)
Constructor public.
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()

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

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 277 of file class.ilLMPageObject.php.

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

Referenced by ilPageContentGUI\splitPageNext().

278  {
279  // get content object (learning module / digilib book)
280  $lm_id = ilLMObject::_lookupContObjID($a_page_id);
282  switch ($type)
283  {
284  case "lm":
285  include_once ("./Modules/LearningModule/classes/class.ilObjLearningModule.php");
286  $cont_obj = new ilObjLearningModule($lm_id, false);
287  break;
288 
289  case "dbk":
290  include_once ("./Modules/LearningModule/classes/class.ilObjDlBook.php");
291  $cont_obj = new ilObjDlBook($lm_id, false);
292  break;
293  }
294  $tree = new ilTree($cont_obj->getId());
295  $tree->setTableNames('lm_tree','lm_data');
296  $tree->setTreeTablePK("lm_id");
297 
298  $source_lm_page =& new ilLMPageObject($cont_obj, $a_page_id);
299  $source_page =& $source_lm_page->getPageObject();
300 
301  // get next page
302  $succ = $tree->fetchSuccessorNode($a_page_id, "pg");
303  if ($succ["child"] > 0)
304  {
305  $target_lm_page =& new ilLMPageObject($cont_obj, $succ["child"]);
306  $target_page =& $target_lm_page->getPageObject();
307  $target_page->buildDom();
308  $target_page->addHierIds();
309 
310  // move nodes to target page
311  $source_page->buildDom();
312  $source_page->addHierIds();
313  ilLMPage::_moveContentAfterHierId($source_page, $target_page, $a_hier_id);
314  //$source_page->deleteContentFromHierId($a_hier_id);
315 
316  return $succ["child"];
317  }
318 
319  }
Class ilObjLearningModule.
Class ilObjDlBook.
_moveContentAfterHierId(&$a_source_page, &$a_target_page, $a_hid)
move content of hierarchical id >= $a_hid to other page
_lookupContObjID($a_id)
get learning module / digibook id for lm object
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...
ilLMPageObject(&$a_content_obj, $a_id=0, $a_halt=true)
Constructor public.
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 327 of file class.ilLMPageObject.php.

328  {
329  $this->page_object =& $a_page_obj;
330  }

◆ 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(), ilLMPageObject(), 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.
ilLMPageObject(&$a_content_obj, $a_id=0, $a_halt=true)
Constructor public.
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(), ilLMObject\getType(), and ilLMPageObject().

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  }
ilLMPageObject(&$a_content_obj, $a_id=0, $a_halt=true)
Constructor public.
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 665 of file class.ilLMPageObject.php.

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

666  {
667  global $ilBench;
668 
669  //$attrs = array();
670  //$a_xml_writer->xmlStartTag("PageObject", $attrs);
672  if ($title != "")
673  {
674  $attrs = array();
675  $attrs["font-family"] = "Times";
676  $attrs["font-size"] = "14pt";
677  $a_xml_writer->xmlElement("fo:block", $attrs, $title);
678  }
679 
680  // PageContent
681  $this->page_object->buildDom();
682  $fo = $this->page_object->getFO();
683  $a_xml_writer->appendXML($fo);
684 
685  //$a_xml_writer->xmlEndTag("PageObject");
686  }
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 523 of file class.ilLMPageObject.php.

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

524  {
525  global $ilBench;
526 
527  $attrs = array();
528  $a_xml_writer->xmlStartTag("PageObject", $attrs);
529 
530  switch ($a_mode)
531  {
532  case "normal":
533  // MetaData
534  $ilBench->start("ContentObjectExport", "exportPageObject_XML_Meta");
535  $this->exportXMLMetaData($a_xml_writer);
536  $ilBench->stop("ContentObjectExport", "exportPageObject_XML_Meta");
537 
538  // PageContent
539  $ilBench->start("ContentObjectExport", "exportPageObject_XML_PageContent");
540  $this->exportXMLPageContent($a_xml_writer, $a_inst);
541  $ilBench->stop("ContentObjectExport", "exportPageObject_XML_PageContent");
542  break;
543 
544  case "alias":
545  $attrs = array();
546  $attrs["OriginId"] = "il_".$a_inst.
547  "_pg_".$this->getId();
548  $a_xml_writer->xmlElement("PageAlias", $attrs);
549  break;
550  }
551 
552  // Layout
553  // not implemented
554 
555  $a_xml_writer->xmlEndTag("PageObject");
556  }
exportXMLMetaData(&$a_xml_writer)
export page objects meta data to xml (see ilias_co.dtd)
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 581 of file class.ilLMPageObject.php.

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

Referenced by exportXML().

582  {
583  include_once("Services/MetaData/classes/class.ilMD2XML.php");
584  $md2xml = new ilMD2XML($this->getLMId(), $this->getId(), $this->getType());
585  $md2xml->setExportMode(true);
586  $md2xml->startExport();
587  $a_xml_writer->appendXML($md2xml->getXML());
588  }
+ 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 608 of file class.ilLMPageObject.php.

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

Referenced by exportXML().

609  {
610 //echo "exportxmlpagecontent:$a_inst:<br>";
611  $cont_obj = $this->getContentObject();
612 
613  $this->page_object->buildDom();
614  $this->page_object->insertInstIntoIDs($a_inst);
615  $this->mobs_contained = $this->page_object->collectMediaObjects(false);
616  //$this->files_contained = $this->page_object->collectFileItems();
617  include_once("./Services/COPage/classes/class.ilPCFileList.php");
618  $this->files_contained = ilPCFileList::collectFileItems($this->page_object, $this->page_object->getDomDoc());
619 // $this->questions_contained = $this->page_object->getQuestionIds();
620  $xml = $this->page_object->getXMLFromDom(false, false, false, "", true);
621  $xml = str_replace("&","&amp;", $xml);
622  $a_xml_writer->appendXML($xml);
623 
624  $this->page_object->freeDom();
625  }
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 654 of file class.ilLMPageObject.php.

655  {
656  return $this->files_contained;
657  }

◆ getId()

ilLMPageObject::getId ( )

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

References $id.

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

353  {
354  return $this->id;
355  }
+ 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 644 of file class.ilLMPageObject.php.

645  {
646  return $this->mobs_contained;
647  }

◆ getOriginID()

ilLMPageObject::getOriginID ( )

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

References $origin_id.

378  {
379  return $this->origin_id;
380  }

◆ getPageList()

◆ getPageObject()

& ilLMPageObject::getPageObject ( )

get assigned page object

Returns
object page object

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

References $page_object.

339  {
340  return $this->page_object;
341  }

◆ getPagesWithLinksList()

ilLMPageObject::getPagesWithLinksList (   $a_lm_id,
  $a_par_type 
)

Get all pages of lm that contain any internal links.

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

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

Referenced by ilLinksTableGUI\getLinks().

394  {
395  $pages = ilLMPageObject::getPageList($a_lm_id);
396  $ids = array();
397  foreach($pages as $page)
398  {
399  $ids[] = $page["obj_id"];
400  }
401 
402  $linked_pages = ilLMPage::getPagesWithLinks($a_par_type, $a_lm_id);
403  $result = array();
404  foreach($pages as $page)
405  {
406  if (is_array($linked_pages[$page["obj_id"]]))
407  {
408  $result[] = $page;
409  }
410  }
411  return $result;
412  }
$result
static getPagesWithLinks($a_parent_type, $a_parent_id, $a_lang="-")
Get all pages for parent object that contain internal links.
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 632 of file class.ilLMPageObject.php.

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

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

◆ ilLMPageObject()

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

Constructor public.

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

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

Referenced by _splitPage(), _splitPageNext(), copy(), and copyToOtherContObject().

43  {
44  global $ilias, $ilBench;
45 
46  $ilBench->start("ContentPresentation", "ilLMPageObject_Constructor");
47 
48  parent::ilLMObject($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)
global $ilBench
Definition: ilias.php:18
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isAlias()

ilLMPageObject::isAlias ( )

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

References $is_alias.

366  {
367  return $this->is_alias;
368  }

◆ modifyExportIdentifier()

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

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

References getId().

591  {
592  if ($a_tag == "Identifier" && $a_param == "Entry")
593  {
594  $a_value = "il_".IL_INST_ID."_pg_".$this->getId();
595  //$a_value = ilUtil::insertInstIntoID($a_value);
596  }
597 
598  return $a_value;
599  }
+ 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 694 of file class.ilLMPageObject.php.

References $ilDB, $query, and $result.

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

696  {
697  global $ilDB, $rbacreview;
698 
699 
700  // count query
701  $count_query = "SELECT count(pq.question_id) cnt ";
702 
703  // basic query
704  $query = "SELECT pq.page_id, pq.question_id ";
705 
706  $from = " FROM page_question pq JOIN lm_tree t ON (t.lm_id = ".$ilDB->quote($a_lm_id, "integer").
707  " AND pq.page_id = t.child and pq.page_parent_type = ".$ilDB->quote("lm", "text").") ".
708  " WHERE t.lm_id = ".$ilDB->quote($a_lm_id, "integer");
709  $count_query.= $from;
710  $query.= $from;
711 
712 
713  // count query
714  $set = $ilDB->query($count_query);
715  $cnt = 0;
716  if ($rec = $ilDB->fetchAssoc($set))
717  {
718  $cnt = $rec["cnt"];
719  }
720 
721  $offset = (int) $a_offset;
722  $limit = (int) $a_limit;
723  if ($a_limit > 0)
724  {
725  $ilDB->setLimit($limit, $offset);
726  }
727 
728  // set query
729  $set = $ilDB->query($query);
730  $result = array();
731  while($rec = $ilDB->fetchAssoc($set))
732  {
733  $result[] = $rec;
734  }
735  return array("cnt" => $cnt, "set" => $result);
736  }
$result
global $ilDB
+ Here is the caller graph for this function:

◆ read()

ilLMPageObject::read ( )

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

Referenced by ilLMPageObject().

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 360 of file class.ilLMPageObject.php.

361  {
362  $this->is_alias = $a_is_alias;
363  }

◆ setId()

ilLMPageObject::setId (   $a_id)

set id

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

348  {
349  $this->id = $a_id;
350  }

◆ setOriginID()

ilLMPageObject::setOriginID (   $a_id)

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

372  {
373  return $this->origin_id = $a_id;
374  }

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 ilLMPageObject().

◆ $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: