ILIAS  release_8 Revision v8.19
All Data Structures Namespaces Files Functions Variables Modules Pages
ilLMPageObject Class Reference

This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Learning e.V. More...

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

Public Member Functions

 __construct (ilObjLearningModule $a_content_obj, int $a_id=0, bool $a_halt=true)
 
 read ()
 
 create (bool $a_upload=false, bool $a_omit_page_object_creation=false, int $a_layout_id=0)
 
 delete (bool $a_delete_meta_data=true)
 
 copy (ilObjLearningModule $a_target_lm)
 
 copyToOtherContObject (ilObjLearningModule $a_cont_obj, array &$a_copied_nodes)
 copy a page to another content object (learning module / dlib book) More...
 
 assignPageObject (ilLMPage $a_page_obj)
 assign page object More...
 
 getPageObject ()
 get assigned page object More...
 
 setId (int $a_id)
 
 getId ()
 
 exportXML (ilXmlWriter $a_xml_writer, string $a_mode="normal", int $a_inst=0)
 export page object to xml (see ilias_co.dtd) More...
 
 exportXMLMetaData (ilXmlWriter $a_xml_writer)
 
 modifyExportIdentifier (string $a_tag, string $a_param, string $a_value)
 
 exportXMLPageContent (ilXmlWriter $a_xml_writer, int $a_inst=0)
 
 getQuestionIds ()
 Get question ids note: this method must be called afer exportXMLPageContent. More...
 
 getMediaObjectIds ()
 get ids of all media objects within the page note: this method must be called afer exportXMLPageContent More...
 
 getFileItemIds ()
 get ids of all file items within the page note: this method must be called afer exportXMLPageContent More...
 
 exportFO (ilXmlWriter $a_xml_writer)
 export page object to fo More...
 
- Public Member Functions inherited from ilLMObject
 __construct (ilObjLearningModule $a_content_obj, int $a_id=0)
 
 MDUpdateListener (string $a_element)
 Meta data update listener Important note: Do never call create() or update() method of ilObject here. More...
 
 createMetaData ()
 create meta data entry More...
 
 updateMetaData ()
 update meta data entry More...
 
 deleteMetaData ()
 delete meta data entry More...
 
 setDataRecord (array $a_record)
 this method should only be called by class ilLMObjectFactory More...
 
 read ()
 
 setTitle (string $a_title)
 
 getTitle ()
 
 setShortTitle (string $a_title)
 
 getShortTitle ()
 
 setDescription (string $a_description)
 
 getDescription ()
 
 setType (string $a_type)
 
 getType ()
 
 setLMId (int $a_lm_id)
 
 getLMId ()
 
 setContentObject (ilObjLearningModule $a_content_obj)
 
 getContentObject ()
 
 setId (int $a_id)
 
 getId ()
 
 getImportId ()
 
 setImportId (string $a_id)
 
 setLayout (string $a_val)
 
 getLayout ()
 
 create (bool $a_upload=false)
 
 update ()
 
 delete (bool $a_delete_meta_data=true)
 
 existsExportID (int $a_lm_id, int $a_exp_id, string $a_type="pg")
 Does export ID exist in lm? More...
 
 getExportIDInfo (int $a_lm_id, int $a_exp_id, string $a_type="pg")
 

Static Public Member Functions

static _splitPage (int $a_page_id, string $a_pg_parent_type, string $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 More...
 
static _splitPageNext (int $a_page_id, string $a_pg_parent_type, string $a_hier_id)
 split page to next page at hierarchical id More...
 
static getPageList (int $lm_id)
 
static getPagesWithLinksList (int $a_lm_id, string $a_par_type)
 Get all pages of lm that contain any internal links. More...
 
static _getPresentationTitle (int $a_pg_id, string $a_mode=self::CHAPTER_TITLE, bool $a_include_numbers=false, bool $a_time_scheduled_activation=false, bool $a_force_content=false, int $a_lm_id=0, string $a_lang="-", bool $a_include_short=false)
 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 (ilXmlWriter $a_xml_writer, int $a_id, int $a_inst=0)
 export page alias to xml More...
 
static queryQuestionsOfLearningModule (int $a_lm_id, string $a_order_field, string $a_order_dir, int $a_offset, int $a_limit)
 Get questions of learning module. More...
 
static insertPagesFromTemplate (int $lm_id, int $num, int $node_id, bool $first_child, int $layout_id, string $title="")
 Insert (multiple) pages templates at node. More...
 
- Static Public Member Functions inherited from ilLMObject
static _lookupNID (int $a_lm_id, int $a_lm_obj_id, string $a_type)
 lookup named identifier (ILIAS_NID) More...
 
static preloadDataByLM (int $a_lm_id)
 Preload data records by lm. More...
 
static _lookupTitle (int $a_obj_id)
 
static _lookupShortTitle (int $a_obj_id)
 
static _lookupType (int $a_obj_id, int $a_lm_id=0)
 
static _writeTitle (int $a_obj_id, string $a_title)
 
static _writeImportId (int $a_id, string $a_import_id)
 
static _writePublicAccessStatus (array $a_pages, int $a_cont_obj_id)
 update public access flags in lm_data for all pages of a content object More...
 
static _isPagePublic (int $a_node_id, bool $a_check_public_mode=false)
 
static _getIdForImportId (string $a_import_id)
 get current object id for import id (static) More...
 
static _getAllObjectsForImportId (string $a_import_id, int $a_in_lm=0)
 Get all items for an import ID. More...
 
static _exists (int $a_id)
 checks wether a lm content object with specified id exists or not More...
 
static getObjectList (int $lm_id, string $type="")
 
static _deleteAllObjectData (ilObjLearningModule $a_cobj)
 delete all objects of content object (digi book / learning module) More...
 
static _lookupContObjID (int $a_id)
 get learning module id for lm object More...
 
static putInTree (ilLMObject $a_obj, int $a_parent_id=0, int $a_target_node_id=0)
 put this object into content object tree More...
 
static getTree (int $a_cont_obj_id)
 Get learning module tree. More...
 
static clipboardCut (int $a_cont_obj_id, array $a_ids)
 Copy a set of chapters/pages into the clipboard. More...
 
static clipboardCopy (int $a_cont_obj_id, array $a_ids)
 Copy a set of chapters/pages into the clipboard. More...
 
static saveTitles (ilObjLearningModule $a_lm, array $a_titles, string $a_lang="-")
 Save titles for lm objects. More...
 
static updateInternalLinks (array $a_copied_nodes, string $a_parent_type="lm")
 Update internal links, after multiple pages have been copied. More...
 
static uniqueTypesCheck (array $a_items)
 Check for unique types (all pages or all chapters) More...
 
static writeLayout (int $a_obj_id, string $a_layout, ?ilObjLearningModule $a_lm=null)
 Write layout setting. More...
 
static lookupLayout (int $a_obj_id)
 Lookup type. More...
 
static getPagesOfChapter (int $a_lm_id, int $a_chap_id)
 Get pages of chapter. More...
 
static _getAllLMObjectsOfLM (int $a_lm_id, string $a_type="")
 Get all objects of learning module. More...
 
static saveExportId (int $a_lm_id, int $a_lmobj_id, string $a_exp_id, string $a_type="pg")
 
static getExportId (int $a_lm_id, int $a_lmobj_id, string $a_type="pg")
 
static getDuplicateExportIDs (int $a_lm_id, string $a_type="pg")
 Get duplicate export IDs (count export ID usages) More...
 
static _getNodePresentationTitle (array $a_node, string $a_mode=self::PAGE_TITLE, bool $a_include_numbers=false, bool $a_time_scheduled_activation=false, bool $a_force_content=false, int $a_lm_id=0, string $a_lang="-")
 
static getShortTitles (int $a_lm_id, string $a_lang="-")
 
static writeShortTitle (int $a_id, string $a_short_title, string $a_lang="-")
 

Data Fields

ilLMPage $page_object = null
 
- Data Fields inherited from ilLMObject
const CHAPTER_TITLE = "st_title"
 
const PAGE_TITLE = "pg_title"
 
const NO_HEADER = "none"
 
int $lm_id = 0
 
string $type = ""
 
int $id = 0
 
array $data_record
 
ilObjLearningModule $content_object
 
string $title = ""
 
string $short_title = ""
 
string $description = ""
 
bool $active = true
 

Protected Attributes

bool $halt_on_error
 
array $files_contained
 
array $mobs_contained
 
bool $contains_int_link
 
- Protected Attributes inherited from ilLMObject
string $layout = ""
 
string $import_id = ""
 
ilObjUser $user
 
ilDBInterface $db
 

Additional Inherited Members

- Static Protected Member Functions inherited from ilLMObject
static _lookup (int $a_obj_id, string $a_field)
 
- Static Protected Attributes inherited from ilLMObject
static $data_records = array()
 

Detailed Description

This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Learning e.V.

ILIAS is licensed with the GPL-3.0, see https://www.gnu.org/licenses/gpl-3.0.en.html You should have received a copy of said license along with the source code, too.

If this is not the case or you just want to try ILIAS, you'll find us at: https://www.ilias.de https://github.com/ILIAS-eLearning 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
Alexander Killing killi.nosp@m.ng@l.nosp@m.eifos.nosp@m..de

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

Constructor & Destructor Documentation

◆ __construct()

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

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

References ILIAS\GlobalScreen\Provider\__construct(), read(), and ilLMObject\setType().

43  {
44  parent::__construct($a_content_obj, $a_id);
45  $this->setType("pg");
46  $this->id = $a_id;
47 
48  $this->contains_int_link = false;
49  $this->mobs_contained = array();
50  $this->files_contained = array();
51  $this->halt_on_error = $a_halt;
52 
53  if ($a_id != 0) {
54  $this->read();
55  }
56  }
setType(string $a_type)
__construct(Container $dic, ilPlugin $plugin)
+ Here is the call graph for this function:

Member Function Documentation

◆ _exportXMLAlias()

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

export page alias to xml

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

References ilXmlWriter\xmlElement(), ilXmlWriter\xmlEndTag(), and ilXmlWriter\xmlStartTag().

Referenced by ilStructureObject\exportXMLPageObjects().

474  : void {
475  $attrs = array();
476  $a_xml_writer->xmlStartTag("PageObject", $attrs);
477 
478  $attrs = array();
479  $attrs["OriginId"] = "il_" . $a_inst .
480  "_pg_" . $a_id;
481  $a_xml_writer->xmlElement("PageAlias", $attrs);
482 
483  $a_xml_writer->xmlEndTag("PageObject");
484  }
xmlEndTag(string $tag)
Writes an endtag.
xmlStartTag(string $tag, ?array $attrs=null, bool $empty=false, bool $encode=true, bool $escape=true)
Writes a starttag.
xmlElement(string $tag, $attrs=null, $data=null, $encode=true, $escape=true)
Writes a basic element (no children, just textual content)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _getPresentationTitle()

static ilLMPageObject::_getPresentationTitle ( int  $a_pg_id,
string  $a_mode = self::CHAPTER_TITLE,
bool  $a_include_numbers = false,
bool  $a_time_scheduled_activation = false,
bool  $a_force_content = false,
int  $a_lm_id = 0,
string  $a_lang = "-",
bool  $a_include_short = false 
)
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_modeilLMOBject::CHAPTER_TITLE | ilLMOBject::PAGE_TITLE | ilLMOBject::NO_HEADER

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

References ilLMObject\$active, ilLMObject\$title, ilStructureObject\_getPresentationTitle(), ilPageObject\_lookupActivationData(), ilPageObject\_lookupActive(), ilLMObject\_lookupContObjID(), ilLMObject\_lookupShortTitle(), ilLMObject\_lookupTitle(), ilObject\_lookupType(), ilLMTree\getInstance(), ilObjectTranslation\getInstance(), ilLMObjTranslation\getTitle(), and ilUtil\now().

Referenced by ilLMObject\_getNodePresentationTitle(), ilObjContentObjectGUI\addLocations(), ilLMPageObjectGUI\executeCommand(), exportFO(), ilLMTOCExplorerGUI\getNodeContent(), ilLearningModuleNotification\getPageTitle(), ilGlossaryPresentationGUI\listDefinitions(), ilLMNavigationRendererGUI\render(), ilLMContentRendererGUI\render(), ilLMPresentationGUI\showPrintView(), and ilLMPresentationGUI\showPrintViewSelection().

338  : string {
339  if ($a_mode == self::NO_HEADER && !$a_force_content) {
340  return "";
341  }
342 
343  $cur_cnt = 0;
344 
345  if ($a_lm_id == 0) {
346  $a_lm_id = ilLMObject::_lookupContObjID($a_pg_id);
347  }
348 
349  if ($a_lm_id == 0) {
350  return "";
351  }
352 
353  // this is optimized when ilLMObject::preloadDataByLM is invoked (e.g. done in ilLMExplorerGUI)
354  $title = "";
355  if ($a_include_short) {
356  $title = trim(ilLMObject::_lookupShortTitle($a_pg_id));
357  }
358  if ($title == "") {
359  $title = ilLMObject::_lookupTitle($a_pg_id);
360  }
361 
362  // this is also optimized since ilObjectTranslation re-uses instances for one lm
363  $ot = ilObjectTranslation::getInstance($a_lm_id);
364  $languages = $ot->getLanguages();
365 
366  if ($a_lang != "-" && $ot->getContentActivated()) {
367  $lmobjtrans = new ilLMObjTranslation($a_pg_id, $a_lang);
368  $trans_title = "";
369  if ($a_include_short) {
370  $trans_title = trim($lmobjtrans->getShortTitle());
371  }
372  if ($trans_title == "") {
373  $trans_title = $lmobjtrans->getTitle();
374  }
375  if ($trans_title == "") {
376  $lmobjtrans = new ilLMObjTranslation($a_pg_id, $ot->getFallbackLanguage());
377  $trans_title = $lmobjtrans->getTitle();
378  }
379  if ($trans_title != "") {
380  $title = $trans_title;
381  }
382  }
383 
384  if ($a_mode == self::PAGE_TITLE) {
385  return $title;
386  }
387 
388  $tree = ilLMTree::getInstance($a_lm_id);
389 
390  if ($tree->isInTree($a_pg_id)) {
391  $pred_node = $tree->fetchPredecessorNode($a_pg_id, "st");
392  $childs = $tree->getChildsByType($pred_node["obj_id"], "pg");
393  $cnt_str = "";
394  if (count($childs) > 1) {
395  $cnt = 0;
396  foreach ($childs as $child) {
398  $child["obj_id"],
399  ilObject::_lookupType($a_lm_id),
400  $a_time_scheduled_activation
401  );
402 
403  if (!$active) {
404  $act_data = ilLMPage::_lookupActivationData((int) $child["obj_id"], ilObject::_lookupType($a_lm_id));
405  if ($act_data["show_activation_info"] &&
406  (ilUtil::now() < $act_data["activation_start"])) {
407  $active = true;
408  }
409  }
410 
411  if ($child["type"] != "pg" || $active) {
412  $cnt++;
413  }
414  if ($child["obj_id"] == $a_pg_id) {
415  $cur_cnt = $cnt;
416  }
417  }
418  if ($cnt > 1) {
419  $cnt_str = " (" . $cur_cnt . "/" . $cnt . ")";
420  }
421  }
423  $pred_node["obj_id"],
424  self::CHAPTER_TITLE,
425  $a_include_numbers,
426  false,
427  false,
428  0,
429  $a_lang,
430  true
431  ) . $cnt_str;
432  } else {
433  return $title;
434  }
435  }
static _lookupActive(int $a_id, string $a_parent_type, bool $a_check_scheduled_activation=false, string $a_lang="-")
lookup activation status
static _getPresentationTitle(int $a_st_id, string $a_mode=self::CHAPTER_TITLE, bool $a_include_numbers=false, bool $a_time_scheduled_activation=false, bool $a_force_content=false, int $a_lm_id=0, string $a_lang="-", bool $a_include_short=false)
static _lookupShortTitle(int $a_obj_id)
static _lookupActivationData(int $a_id, string $a_parent_type, string $a_lang="-")
Lookup activation data.
static now()
Return current timestamp in Y-m-d H:i:s format.
static getInstance(int $a_tree_id)
static _lookupTitle(int $a_obj_id)
static getInstance(int $obj_id)
static _lookupContObjID(int $a_id)
get learning module id for lm object
static _lookupType(int $id, bool $reference=false)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _splitPage()

static ilLMPageObject::_splitPage ( int  $a_page_id,
string  $a_pg_parent_type,
string  $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 178 of file class.ilLMPageObject.php.

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

Referenced by ilPageContentGUI\splitPage().

182  : ilLMPageObject {
183  // get content object (learning module / digilib book)
184  $lm_id = ilLMObject::_lookupContObjID($a_page_id);
186  $cont_obj = new ilObjLearningModule($lm_id, false);
187  $source_lm_page = new ilLMPageObject($cont_obj, $a_page_id);
188 
189  // create new page
190  $lm_page = new ilLMPageObject($cont_obj);
191  $lm_page->setTitle($source_lm_page->getTitle());
192  $lm_page->setLMId($source_lm_page->getLMId());
193  $lm_page->setType($source_lm_page->getType());
194  $lm_page->setDescription($source_lm_page->getDescription());
195  $lm_page->create(true);
196 
197 
198  // copy complete content of source page to new page
199  $source_page = $source_lm_page->getPageObject();
200  $page = $lm_page->getPageObject();
201  $page->setXMLContent($source_page->copyXmlContent());
202  $page->buildDom(true);
203  $page->update();
204 
205  // copy meta data
206  $md = new ilMD($source_lm_page->getLMId(), $a_page_id, $source_lm_page->getType());
207  $md->cloneMD($source_lm_page->getLMId(), $lm_page->getId(), $source_lm_page->getType());
208 
209  // insert new page in tree (after original page)
210  $tree = new ilTree($cont_obj->getId());
211  $tree->setTableNames('lm_tree', 'lm_data');
212  $tree->setTreeTablePK("lm_id");
213  if ($tree->isInTree($source_lm_page->getId())) {
214  $parent_node = $tree->getParentNodeData($source_lm_page->getId());
215  $tree->insertNode($lm_page->getId(), $parent_node["child"], $source_lm_page->getId());
216  }
217 
218  // remove all nodes < hierarchical id from new page (incl. update)
219  $page->addHierIDs();
220  $page->deleteContentBeforeHierId($a_hier_id);
221  // $page->update();
222 
223  // remove all nodes >= hierarchical id from source page
224  $source_page->buildDom();
225  $source_page->addHierIDs();
226  $source_page->deleteContentFromHierId($a_hier_id);
227 
228  return $lm_page;
229  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static _lookupContObjID(int $a_id)
get learning module id for lm object
static _lookupType(int $id, bool $reference=false)
cloneMD(int $a_rbac_id, int $a_obj_id, string $a_obj_type)
Definition: class.ilMD.php:288
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _splitPageNext()

static ilLMPageObject::_splitPageNext ( int  $a_page_id,
string  $a_pg_parent_type,
string  $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 238 of file class.ilLMPageObject.php.

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

Referenced by ilPageContentGUI\splitPageNext().

242  : int {
243  // get content object (learning module / digilib book)
244  $lm_id = ilLMObject::_lookupContObjID($a_page_id);
246  $cont_obj = new ilObjLearningModule($lm_id, false);
247  $tree = new ilTree($cont_obj->getId());
248  $tree->setTableNames('lm_tree', 'lm_data');
249  $tree->setTreeTablePK("lm_id");
250 
251  $source_lm_page = new ilLMPageObject($cont_obj, $a_page_id);
252  $source_page = $source_lm_page->getPageObject();
253 
254  // get next page
255  $succ = $tree->fetchSuccessorNode($a_page_id, "pg");
256  if ($succ["child"] > 0) {
257  $target_lm_page = new ilLMPageObject($cont_obj, $succ["child"]);
258  $target_page = $target_lm_page->getPageObject();
259  $target_page->buildDom();
260  $target_page->addHierIDs();
261 
262  // move nodes to target page
263  $source_page->buildDom();
264  $source_page->addHierIDs();
265  ilLMPage::_moveContentAfterHierId($source_page, $target_page, $a_hier_id);
266  //$source_page->deleteContentFromHierId($a_hier_id);
267 
268  return (int) $succ["child"];
269  }
270  return 0;
271  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static _lookupContObjID(int $a_id)
get learning module id for lm object
static _lookupType(int $id, bool $reference=false)
static _moveContentAfterHierId(ilPageObject $a_source_page, ilPageObject $a_target_page, string $a_hid)
move content of hierarchical id >= $a_hid to other page
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ assignPageObject()

ilLMPageObject::assignPageObject ( ilLMPage  $a_page_obj)

assign page object

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

277  : void
278  {
279  $this->page_object = $a_page_obj;
280  }

◆ copy()

ilLMPageObject::copy ( ilObjLearningModule  $a_target_lm)

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

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

94  : ilLMPageObject {
95  // copy page
96  $lm_page = new ilLMPageObject($a_target_lm);
97  $lm_page->setTitle($this->getTitle());
98  $lm_page->setShortTitle($this->getShortTitle());
99  $lm_page->setLayout($this->getLayout());
100  $lm_page->setLMId($a_target_lm->getId());
101  $lm_page->setType($this->getType());
102  $lm_page->setDescription($this->getDescription());
103  $lm_page->setImportId("il__pg_" . $this->getId());
104  $lm_page->create(true); // setting "upload" flag to true prevents creating of meta data
105 
106  // check whether export id already exists in the target lm
107  $del_exp_id = false;
108  $exp_id = ilLMPageObject::getExportId($this->getLMId(), $this->getId());
109  if (trim($exp_id) != "") {
110  if (ilLMPageObject::existsExportID($a_target_lm->getId(), $exp_id)) {
111  $del_exp_id = true;
112  }
113  }
114 
115  // copy meta data
116  $md = new ilMD($this->getLMId(), $this->getId(), $this->getType());
117  $new_md = $md->cloneMD($a_target_lm->getId(), $lm_page->getId(), $this->getType());
118 
119  // check whether export id already exists in the target lm
120  if ($del_exp_id) {
121  ilLMPageObject::saveExportId($a_target_lm->getId(), $lm_page->getId(), "");
122  } else {
124  $a_target_lm->getId(),
125  $lm_page->getId(),
126  trim($exp_id)
127  );
128  }
129 
130  // copy page content and activation
131  $page = $lm_page->getPageObject();
132  $this->page_object->copy($page->getId(), $page->getParentType(), $page->getParentId());
133  $lm_page->read(); // this gets the updated page object into lm page
134 
135  // copy translations
136  ilLMObjTranslation::copy($this->getId(), $lm_page->getId());
137 
138  return $lm_page;
139  }
static getExportId(int $a_lm_id, int $a_lmobj_id, string $a_type="pg")
static copy(string $a_source_id, string $a_target_id)
Copy all translations of an object.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
existsExportID(int $a_lm_id, int $a_exp_id, string $a_type="pg")
Does export ID exist in lm?
static saveExportId(int $a_lm_id, int $a_lmobj_id, string $a_exp_id, string $a_type="pg")
+ Here is the call graph for this function:

◆ copyToOtherContObject()

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

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

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

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

147  : ilLMPageObject {
148  // copy page
149  $lm_page = new ilLMPageObject($a_cont_obj);
150  $lm_page->setTitle($this->getTitle());
151  $lm_page->setShortTitle($this->getShortTitle());
152  $lm_page->setLMId($a_cont_obj->getId());
153  $lm_page->setImportId("il__pg_" . $this->getId());
154  $lm_page->setType($this->getType());
155  $lm_page->setDescription($this->getDescription());
156  $lm_page->create(true); // setting "upload" flag to true prevents creating of meta data
157  $a_copied_nodes[$this->getId()] = $lm_page->getId();
158 
159  // copy meta data
160  $md = new ilMD($this->getLMId(), $this->getId(), $this->getType());
161  $new_md = $md->cloneMD($a_cont_obj->getId(), $lm_page->getId(), $this->getType());
162 
163  // copy page content
164  $page = $lm_page->getPageObject();
165  $page->setXMLContent($this->page_object->getXMLContent());
166  $page->buildDom();
167  $page->update();
168 
169  return $lm_page;
170  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
+ Here is the call graph for this function:

◆ create()

ilLMPageObject::create ( bool  $a_upload = false,
bool  $a_omit_page_object_creation = false,
int  $a_layout_id = 0 
)

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

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

68  : void {
69  parent::create($a_upload);
70  if ($a_omit_page_object_creation) {
71  return;
72  }
73  if (!is_object($this->page_object)) {
74  $this->page_object = new ilLMPage();
75  }
76  $this->page_object->setId($this->getId());
77  $this->page_object->setParentId($this->getLMId());
78  if ($a_layout_id == 0) {
79  $this->page_object->create(false);
80  } else {
81  $this->page_object->createWithLayoutId($a_layout_id);
82  }
83  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
+ Here is the call graph for this function:

◆ delete()

ilLMPageObject::delete ( bool  $a_delete_meta_data = true)

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

85  : void
86  {
87  parent::delete($a_delete_meta_data);
88  $this->page_object->delete();
89  }

◆ exportFO()

ilLMPageObject::exportFO ( ilXmlWriter  $a_xml_writer)

export page object to fo

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

References ilLMObject\$title, _getPresentationTitle(), ilXmlWriter\appendXML(), getId(), and ilXmlWriter\xmlElement().

557  : void {
559  if ($title != "") {
560  $attrs = array();
561  $attrs["font-family"] = "Times";
562  $attrs["font-size"] = "14pt";
563  $a_xml_writer->xmlElement("fo:block", $attrs, $title);
564  }
565 
566  // PageContent
567  $this->page_object->buildDom();
568  $fo = $this->page_object->getFO();
569  $a_xml_writer->appendXML($fo);
570  }
appendXML(string $a_str)
append xml string to document
static _getPresentationTitle(int $a_pg_id, string $a_mode=self::CHAPTER_TITLE, bool $a_include_numbers=false, bool $a_time_scheduled_activation=false, bool $a_force_content=false, int $a_lm_id=0, string $a_lang="-", bool $a_include_short=false)
presentation title doesn&#39;t have to be page title, it may be chapter title + page title or chapter tit...
xmlElement(string $tag, $attrs=null, $data=null, $encode=true, $escape=true)
Writes a basic element (no children, just textual content)
+ Here is the call graph for this function:

◆ exportXML()

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

export page object to xml (see ilias_co.dtd)

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

References exportXMLMetaData(), exportXMLPageContent(), getId(), ilXmlWriter\xmlElement(), ilXmlWriter\xmlEndTag(), and ilXmlWriter\xmlStartTag().

444  : void {
445  $attrs = array();
446  $a_xml_writer->xmlStartTag("PageObject", $attrs);
447 
448  switch ($a_mode) {
449  case "normal":
450  // MetaData
451  $this->exportXMLMetaData($a_xml_writer);
452 
453  // PageContent
454  $this->exportXMLPageContent($a_xml_writer, $a_inst);
455  break;
456 
457  case "alias":
458  $attrs = array();
459  $attrs["OriginId"] = "il_" . $a_inst .
460  "_pg_" . $this->getId();
461  $a_xml_writer->xmlElement("PageAlias", $attrs);
462  break;
463  }
464  $a_xml_writer->xmlEndTag("PageObject");
465  }
exportXMLMetaData(ilXmlWriter $a_xml_writer)
xmlEndTag(string $tag)
Writes an endtag.
xmlStartTag(string $tag, ?array $attrs=null, bool $empty=false, bool $encode=true, bool $escape=true)
Writes a starttag.
xmlElement(string $tag, $attrs=null, $data=null, $encode=true, $escape=true)
Writes a basic element (no children, just textual content)
exportXMLPageContent(ilXmlWriter $a_xml_writer, int $a_inst=0)
+ Here is the call graph for this function:

◆ exportXMLMetaData()

ilLMPageObject::exportXMLMetaData ( ilXmlWriter  $a_xml_writer)

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

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

Referenced by exportXML().

488  : void {
489  $md2xml = new ilMD2XML($this->getLMId(), $this->getId(), $this->getType());
490  $md2xml->setExportMode(true);
491  $md2xml->startExport();
492  $a_xml_writer->appendXML($md2xml->getXML());
493  }
appendXML(string $a_str)
append xml string to document
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ exportXMLPageContent()

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

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

References $xml, ilXmlWriter\appendXML(), and ilPCFileList\collectFileItems().

Referenced by exportXML().

510  : void {
511  $this->page_object->buildDom();
512  $this->page_object->insertInstIntoIDs($a_inst);
513  $this->mobs_contained = $this->page_object->collectMediaObjects(false);
514  $this->files_contained = ilPCFileList::collectFileItems($this->page_object, $this->page_object->getDomDoc());
515  $xml = $this->page_object->getXMLFromDom(false, false, false, "", true);
516  $xml = str_replace("&", "&amp;", $xml);
517  $a_xml_writer->appendXML($xml);
518 
519  $this->page_object->freeDom();
520  }
appendXML(string $a_str)
append xml string to document
static collectFileItems(ilPageObject $a_page, DOMDocument $a_domdoc)
Get all file items that are used within the page.
$xml
Definition: metadata.php:351
+ 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 547 of file class.ilLMPageObject.php.

References $files_contained.

547  : array
548  {
549  return $this->files_contained;
550  }

◆ getId()

ilLMPageObject::getId ( )

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

References ilLMObject\$id.

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

296  : int
297  {
298  return $this->id;
299  }
+ 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 538 of file class.ilLMPageObject.php.

References $mobs_contained.

538  : array
539  {
540  return $this->mobs_contained;
541  }

◆ getPageList()

◆ getPageObject()

ilLMPageObject::getPageObject ( )

get assigned page object

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

References $page_object.

286  : ilLMPage
287  {
288  return $this->page_object;
289  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...

◆ getPagesWithLinksList()

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

Get all pages of lm that contain any internal links.

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

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

Referenced by ilLinksTableGUI\getLinks().

312  : array {
313  $pages = ilLMPageObject::getPageList($a_lm_id);
314  $linked_pages = ilLMPage::getPagesWithLinks($a_par_type, $a_lm_id);
315  $result = array();
316  foreach ($pages as $page) {
317  if (isset($linked_pages[$page["obj_id"]])) {
318  $result[] = $page;
319  }
320  }
321  return $result;
322  }
static getPagesWithLinks(string $a_parent_type, int $a_parent_id, string $a_lang="-")
Get all pages for parent object that contain internal links.
static getPageList(int $lm_id)
+ 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 526 of file class.ilLMPageObject.php.

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

526  : array
527  {
529  $this->content_object->getType(),
530  $this->getId()
531  );
532  }
static _getQuestionIdsForPage(string $a_parent_type, int $a_page_id, string $a_lang="-")
+ Here is the call graph for this function:

◆ insertPagesFromTemplate()

static ilLMPageObject::insertPagesFromTemplate ( int  $lm_id,
int  $num,
int  $node_id,
bool  $first_child,
int  $layout_id,
string  $title = "" 
)
static

Insert (multiple) pages templates at node.

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

References $DIC, $i, $lng, ilLMObject\$title, ilTree\POS_FIRST_NODE, and ilLMObject\putInTree().

Referenced by ilStructureObjectGUI\insertPageFromTemplate().

630  : array {
631  global $DIC;
632 
633  $lng = $DIC->language();
634 
635  if ($title == "") {
636  $title = $lng->txt("cont_new_page");
637  }
638  $lm_tree = new ilLMTree($lm_id);
639  $lm = new ilObjLearningModule($lm_id, false);
640  if (!$first_child) { // insert after node id
641  $parent_id = $lm_tree->getParentId($node_id);
642  $target = $node_id;
643  } else { // insert as first child
644  $parent_id = $node_id;
645  $target = ilTree::POS_FIRST_NODE;
646  }
647 
648  $page_ids = array();
649  for ($i = 1; $i <= $num; $i++) {
650  $page = new ilLMPageObject($lm);
651  $page->setTitle($title);
652  $page->setLMId($lm->getId());
653  $page->create(false, false, $layout_id);
654  ilLMObject::putInTree($page, $parent_id, $target);
655  $page_ids[] = $page->getId();
656  }
657  $page_ids = array_reverse($page_ids);
658  return $page_ids;
659  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
$lng
static putInTree(ilLMObject $a_obj, int $a_parent_id=0, int $a_target_node_id=0)
put this object into content object tree
global $DIC
Definition: feed.php:28
const POS_FIRST_NODE
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
$i
Definition: metadata.php:41
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ modifyExportIdentifier()

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

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

References getId(), and IL_INST_ID.

499  : string {
500  if ($a_tag == "Identifier" && $a_param == "Entry") {
501  $a_value = "il_" . IL_INST_ID . "_pg_" . $this->getId();
502  }
503 
504  return $a_value;
505  }
const IL_INST_ID
Definition: constants.php:40
+ Here is the call graph for this function:

◆ queryQuestionsOfLearningModule()

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

Get questions of learning module.

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

References $DIC, $ilDB, and $query.

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

581  : array {
582  global $DIC;
583 
584  $ilDB = $DIC->database();
585 
586  // count query
587  $count_query = "SELECT count(pq.question_id) cnt ";
588 
589  // basic query
590  $query = "SELECT pq.page_id, pq.question_id ";
591 
592  $from = " FROM page_question pq JOIN lm_tree t ON (t.lm_id = " . $ilDB->quote($a_lm_id, "integer") .
593  " AND pq.page_id = t.child and pq.page_parent_type = " . $ilDB->quote("lm", "text") . ") " .
594  " WHERE t.lm_id = " . $ilDB->quote($a_lm_id, "integer");
595  $count_query .= $from;
596  $query .= $from;
597 
598  // count query
599  $set = $ilDB->query($count_query);
600  $cnt = 0;
601  if ($rec = $ilDB->fetchAssoc($set)) {
602  $cnt = $rec["cnt"];
603  }
604 
605  $offset = $a_offset;
606  $limit = $a_limit;
607  if ($a_limit > 0) {
608  $ilDB->setLimit($limit, $offset);
609  }
610 
611  // set query
612  $set = $ilDB->query($query);
613  $result = array();
614  while ($rec = $ilDB->fetchAssoc($set)) {
615  $result[] = $rec;
616  }
617  return array("cnt" => $cnt, "set" => $result);
618  }
global $DIC
Definition: feed.php:28
$query
+ Here is the caller graph for this function:

◆ read()

ilLMPageObject::read ( )

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

Referenced by __construct().

58  : void
59  {
60  parent::read();
61  $this->page_object = new ilLMPage($this->id, 0);
62  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
+ Here is the caller graph for this function:

◆ setId()

ilLMPageObject::setId ( int  $a_id)

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

291  : void
292  {
293  $this->id = $a_id;
294  }

Field Documentation

◆ $contains_int_link

bool ilLMPageObject::$contains_int_link
protected

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

◆ $files_contained

array ilLMPageObject::$files_contained
protected

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

Referenced by getFileItemIds().

◆ $halt_on_error

bool ilLMPageObject::$halt_on_error
protected

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

◆ $mobs_contained

array ilLMPageObject::$mobs_contained
protected

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

Referenced by getMediaObjectIds().

◆ $page_object

ilLMPage ilLMPageObject::$page_object = null

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

Referenced by getPageObject().


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