Public Member Functions | Static Public Member Functions | Data Fields

ilLMObject Class Reference
[Modules/IliasLearningModule]

Class ilLMObject. More...

Inheritance diagram for ilLMObject:

Public Member Functions

 ilLMObject (&$a_content_obj, $a_id=0)
 MDUpdateListener ($a_element)
 Meta data update listener.
 _lookupNID ($a_lm_id, $a_lm_obj_id, $a_type)
 lookup named identifier (ILIAS_NID)
 createMetaData ()
 create meta data entry
 updateMetaData ()
 update meta data entry
 deleteMetaData ()
 delete meta data entry
 setDataRecord ($a_record)
 this method should only be called by class ilLMObjectFactory
 read ()
 setTitle ($a_title)
 set title of lm object
 getTitle ()
 get title of lm object
 _lookupTitle ($a_obj_id)
 _lookupType ($a_obj_id)
 _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)
 setActive ($a_active)
 set activation
 getActive ()
 get activation
 _writeImportId ($a_id, $a_import_id)
 write import id to db (static)
 create ($a_upload=false)
 update ()
 update complete object
 _isPagePublic ($a_node_id, $a_check_public_mode=false)
 delete ($a_delete_meta_data=true)
 delete lm object data
 _getIdForImportId ($a_import_id)
 get current object id for import id (static)
 _getAllObjectsForImportId ($a_import_id)
 Get all items for an import ID.
 _exists ($a_id)
 checks wether a lm content object with specified id exists or not
 getObjectList ($lm_id, $type="")
 static
 _deleteAllObjectData (&$a_cobj)
 delete all objects of content object (digi book / learning module)
 _lookupContObjID ($a_id)
 get learning module / digibook id for lm object
 _lookupActive ($a_id)
 lookup activation status
 _writeActive ($a_id, $a_active)
 write activation status

Static Public Member Functions

 _writePublicAccessStatus ($a_pages, $a_cont_obj_id)
 update public access flags in lm_data for all pages of a content object
static updateInternalLinks ($a_copied_nodes, $a_parent_type="lm")
 Update internal links, after multiple pages have been copied.

Data Fields

 $ilias
 $lm_id
 $type
 $id
 $meta_data
 $data_record
 $content_object
 $title
 $description
 $active = true

Detailed Description

Class ilLMObject.

Base class for ilStructureObjects and ilPageObjects (see ILIAS DTD)

Author:
Alex Killing <alex.killing@gmx.de>
Version:
Id:
class.ilLMObject.php 17107 2008-08-04 17:26:48Z akill

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


Member Function Documentation

ilLMObject::_deleteAllObjectData ( &$  a_cobj  ) 

delete all objects of content object (digi book / learning module)

Definition at line 653 of file class.ilLMObject.php.

References ilLMObjectFactory::getInstance().

Referenced by ilObjContentObject::delete().

        {
                global $ilDB;
                
                include_once './classes/class.ilNestedSetXML.php';

                $query = "SELECT * FROM lm_data ".
                        "WHERE lm_id= ".$ilDB->quote($a_cobj->getId())." ";
                $obj_set = $this->ilias->db->query($query);

                require_once("./Modules/LearningModule/classes/class.ilLMObjectFactory.php");
                while($obj_rec = $obj_set->fetchRow(DB_FETCHMODE_ASSOC))
                {
                        $lm_obj =& ilLMObjectFactory::getInstance($a_cobj, $obj_rec["obj_id"],false);

                        if (is_object($lm_obj))
                        {
                                $lm_obj->delete(true);
                        }
                }

                return true;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMObject::_exists ( a_id  ) 

checks wether a lm content object with specified id exists or not

Parameters:
int $id id
Returns:
boolean true, if lm content object exists

Definition at line 601 of file class.ilLMObject.php.

References ilInternalLink::_extractObjIdOfTarget().

Referenced by ilLMPresentationGUI::ilPage(), and ilLMPresentationGUI::showPrintView().

        {
                global $ilDB;
                
                include_once("./Services/COPage/classes/class.ilInternalLink.php");
                if (is_int(strpos($a_id, "_")))
                {
                        $a_id = ilInternalLink::_extractObjIdOfTarget($a_id);
                }
                
                $q = "SELECT * FROM lm_data WHERE obj_id = ".$ilDB->quote($a_id);
                $obj_set = $ilDB->query($q);
                if ($obj_rec = $obj_set->fetchRow(DB_FETCHMODE_ASSOC))
                {
                        return true;
                }
                else
                {
                        return false;
                }

        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMObject::_getAllObjectsForImportId ( a_import_id  ) 

Get all items for an import ID.

(only for items notnot in trash)

Parameters:
int $a_import_id import id
Returns:
int id

Definition at line 573 of file class.ilLMObject.php.

References ilObject::_hasUntrashedReference().

Referenced by updateInternalLinks().

        {
                global $ilDB;
                
                $q = "SELECT * FROM lm_data WHERE import_id = ".$ilDB->quote($a_import_id)." ".
                        " ORDER BY create_date DESC";
                $obj_set = $ilDB->query($q);
                
                $items = array();
                while ($obj_rec = $obj_set->fetchRow(DB_FETCHMODE_ASSOC))
                {
                        // check, whether lm is not trashed
                        if (ilObject::_hasUntrashedReference($obj_rec["lm_id"]))
                        {
                                $items[] = $obj_rec;
                        }
                }

                return $items;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMObject::_getIdForImportId ( a_import_id  ) 

get current object id for import id (static)

import ids can exist multiple times (if the same learning module has been imported multiple times). we get the object id of the last imported object, that is not in trash

Parameters:
int $a_import_id import id
Returns:
int id

Definition at line 543 of file class.ilLMObject.php.

References $lm_id, ilObject::_hasUntrashedReference(), and _lookupContObjID().

Referenced by assQuestion::_resolveInternalLink(), and SurveyQuestion::_resolveInternalLink().

        {
                global $ilDB;
                
                $q = "SELECT * FROM lm_data WHERE import_id = ".$ilDB->quote($a_import_id)." ".
                        " ORDER BY create_date DESC LIMIT 1";
                $obj_set = $ilDB->query($q);
                while ($obj_rec = $obj_set->fetchRow(DB_FETCHMODE_ASSOC))
                {
                        $lm_id = ilLMObject::_lookupContObjID($obj_rec["obj_id"]);

                        // link only in learning module, that is not trashed
                        if (ilObject::_hasUntrashedReference($lm_id))
                        {
                                return $obj_rec["obj_id"];
                        }
                }

                return 0;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMObject::_isPagePublic ( a_node_id,
a_check_public_mode = false 
)

Definition at line 487 of file class.ilLMObject.php.

References $ilLog, $lm_id, and ilUtil::yn2tf().

Referenced by ilPublicSectionSelector::formatObject(), ilLMPresentationGUI::getCurrentPageId(), ilLMPresentationGUI::ilLMNavigation(), ilLMPresentationGUI::ilPage(), ilLMTOCExplorer::isClickable(), ilTableOfContentsExplorer::isClickable(), ilLMExplorer::isClickable(), ilLMPresentationGUI::showPrintView(), and ilLMPresentationGUI::showPrintViewSelection().

        {
                global $ilDB,$ilLog;

                if (empty($a_node_id))
                {
                        $message = sprintf('ilLMObject::_isPagePublic(): Invalid parameter! $a_node_id is empty');
                        $ilLog->write($message,$ilLog->WARNING);
                        return false;
                }
                
                if ($a_check_public_mode === true)
                {
                        $lm_id = ilLMObject::_lookupContObjId($a_node_id);

                        $q = "SELECT public_access_mode FROM content_object WHERE id=".$ilDB->quote($lm_id);
                        $r = $ilDB->query($q);
                        $row = $r->fetchRow();
                        
                        if ($row[0] == "complete")
                        {
                                return true;
                        }
                }

                $q = "SELECT public_access FROM lm_data WHERE obj_id=".$ilDB->quote($a_node_id);
                $r = $ilDB->query($q);
                $row = $r->fetchRow();
                
                return ilUtil::yn2tf($row[0]);
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMObject::_lookupActive ( a_id  ) 

lookup activation status

Definition at line 694 of file class.ilLMObject.php.

References ilUtil::yn2tf().

Referenced by ilLMPageObject::_getPresentationTitle(), ilStructureObjectGUI::activatePages(), ilObjContentObjectGUI::activatePages(), ilLMPresentationGUI::getCurrentPageId(), ilLMEditorExplorer::getNodeStyleClass(), ilLMPresentationGUI::ilLMNavigation(), ilLMTOCExplorer::isVisible(), ilTableOfContentsExplorer::isVisible(), ilObjContentObjectGUI::pages(), ilLMPresentationGUI::showPrintView(), ilLMPresentationGUI::showPrintViewSelection(), and ilStructureObjectGUI::view().

        {
                global $ilDB;

                $query = "SELECT * FROM lm_data WHERE obj_id = ".$ilDB->quote($a_id);
                $obj_set = $ilDB->query($query);
                $obj_rec = $obj_set->fetchRow(DB_FETCHMODE_ASSOC);

                return ilUtil::yn2tf($obj_rec["active"]);
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMObject::_lookupContObjID ( a_id  ) 
ilLMObject::_lookupNID ( a_lm_id,
a_lm_obj_id,
a_type 
)

lookup named identifier (ILIAS_NID)

Definition at line 109 of file class.ilLMObject.php.

References $id.

Referenced by ilTableOfContentsExplorer::buildLinkTarget(), ilObjContentObject::exportPageHTML(), and ilLMPresentationGUI::getLink().

        {
                include_once 'Services/MetaData/classes/class.ilMD.php';
//echo "-".$a_lm_id."-".$a_lm_obj_id."-".$a_type."-";
                $md = new ilMD($a_lm_id, $a_lm_obj_id, $a_type);
                $md_gen = $md->getGeneral();
                foreach($md_gen->getIdentifierIds() as $id)
                {
                        $md_id = $md_gen->getIdentifier($id);
                        if ($md_id->getCatalog() == "ILIAS_NID")
                        {
                                return $md_id->getEntry();
                        }
                }
                
                return false;
        }

Here is the caller graph for this function:

ilLMObject::_lookupTitle ( a_obj_id  ) 

Definition at line 240 of file class.ilLMObject.php.

Referenced by ilSearchResultPresentationGUI::__appendChildLinks(), ilCourseObjectivePresentationGUI::__showLearningMaterials(), ilObjContentObjectGUI::confirmedDelete(), ilStructureObjectGUI::cutPage(), ilObjMediaObjectGUI::getMapAreaLinkString(), ilCourseObjectivesGUI::listMaterialAssignment(), ilStructureObjectGUI::pastePage(), ilObjContentObjectGUI::proceedDragDrop(), ilLMPresentationGUI::showPreconditionsOfPage(), and ilObjMediaObjectGUI::showUsagesObject().

        {
                global $ilDB;

                $query = "SELECT * FROM lm_data WHERE obj_id = ".$ilDB->quote($a_obj_id);
                $obj_set = $ilDB->query($query);
                $obj_rec = $obj_set->fetchRow(DB_FETCHMODE_ASSOC);

                return $obj_rec["title"];
        }

Here is the caller graph for this function:

ilLMObject::_lookupType ( a_obj_id  ) 

Definition at line 251 of file class.ilLMObject.php.

Referenced by ilSearchResultPresentationGUI::__appendChildLinks(), ilLMPageObject::_splitPage(), ilLMPageObject::_splitPageNext(), ilPageObject::moveIntLinks(), ilLMPresentationGUI::showPrintView(), and updateInternalLinks().

        {
                global $ilDB;

                $query = "SELECT * FROM lm_data WHERE obj_id = ".$ilDB->quote($a_obj_id);
                $obj_set = $ilDB->query($query);
                $obj_rec = $obj_set->fetchRow(DB_FETCHMODE_ASSOC);

                return $obj_rec["type"];
        }

Here is the caller graph for this function:

ilLMObject::_writeActive ( a_id,
a_active 
)

write activation status

Definition at line 708 of file class.ilLMObject.php.

References ilUtil::tf2yn().

Referenced by ilStructureObjectGUI::activatePages(), and ilObjContentObjectGUI::activatePages().

        {
                global $ilDB;

                $query = "UPDATE lm_data ".
                        " SET active = ".$ilDB->quote(ilUtil::tf2yn($a_active)).
                        " WHERE obj_id = ".$ilDB->quote($a_id);
                $ilDB->query($query);
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMObject::_writeImportId ( a_id,
a_import_id 
)

write import id to db (static)

Parameters:
int $a_id lm object id
string $a_import_id import id public

Definition at line 362 of file class.ilLMObject.php.

Referenced by ilContObjParser::handlerEndTag().

        {
                global $ilDB;

                $q = "UPDATE lm_data ".
                        "SET ".
                        "import_id = ".$ilDB->quote($a_import_id).",".
                        "last_update = now() ".
                        "WHERE obj_id = ".$ilDB->quote($a_id);

                $ilDB->query($q);
        }

Here is the caller graph for this function:

ilLMObject::_writePublicAccessStatus ( a_pages,
a_cont_obj_id 
) [static]

update public access flags in lm_data for all pages of a content object

public

Parameters:
array page ids
integer content object id
Returns:
of the jedi

Definition at line 426 of file class.ilLMObject.php.

References $ilErr, $ilLog, and ilUtil::quoteArray().

Referenced by ilObjContentObjectGUI::savePublicSection().

        {
                global $ilDB,$ilLog,$ilErr,$ilTree;
                
                if (!is_array($a_pages))
                {$a_pages = array(0);
                        /*$message = sprintf('ilLMObject::_writePublicAccessStatus(): Invalid parameter! $a_pages must be an array');
                        $ilLog->write($message,$ilLog->WARNING);
                        $ilErr->raiseError($message,$ilErr->MESSAGE);
                        return false;*/
                }
                
                if (empty($a_cont_obj_id))
                {
                        $message = sprintf('ilLMObject::_writePublicAccessStatus(): Invalid parameter! $a_cont_obj_id is empty');
                        $ilLog->write($message,$ilLog->WARNING);
                        $ilErr->raiseError($message,$ilErr->MESSAGE);
                        return false;
                }
                
                // update structure entries: if at least one page of a chapter is public set chapter to public too
                $lm_tree = new ilTree($a_cont_obj_id);
                $lm_tree->setTableNames('lm_tree','lm_data');
                $lm_tree->setTreeTablePK("lm_id");
                $lm_tree->readRootId();
                
                // get all st entries of cont_obj
                $q = "SELECT obj_id FROM lm_data " . 
                         "WHERE lm_id = ".$ilDB->quote($a_cont_obj_id)." " .
                         "AND type = 'st'";
                $r = $ilDB->query($q);
                
                // add chapters with a public page to a_pages
                while ($row = $r->fetchRow())
                {
                        $childs = $lm_tree->getChilds($row[0]);
                        
                        foreach ($childs as $page)
                        {
                                if ($page["type"] == "pg" and in_array($page["obj_id"],$a_pages))
                                {
                                        array_push($a_pages, $row[0]);
                                        break;
                                }
                        }
                }
                
                // update public access status of all pages of cont_obj
                $q = "UPDATE lm_data SET " .
                         "public_access = CASE " .
                         "WHEN obj_id IN (".implode(',',ilUtil::quoteArray($a_pages)).") " .
                         "THEN 'y' ".
                         "ELSE 'n' ".
                         "END " .
                         "WHERE lm_id = ".$ilDB->quote($a_cont_obj_id)." " .
                         "AND type IN ('pg','st')";
                $ilDB->query($q);
                
                return true;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMObject::_writeTitle ( a_obj_id,
a_title 
)

Definition at line 263 of file class.ilLMObject.php.

Referenced by MDUpdateListener().

        {
                global $ilDB;

                $query = "UPDATE lm_data SET ".
                        " title = ".$ilDB->quote($a_title).
                        " WHERE obj_id = ".$ilDB->quote($a_obj_id);
                $ilDB->query($query);
        }

Here is the caller graph for this function:

ilLMObject::create ( a_upload = false  ) 

Reimplemented in ilLMPageObject, and ilStructureObject.

Definition at line 375 of file class.ilLMObject.php.

References ilHistory::_createEntry(), createMetaData(), getActive(), getId(), getImportId(), getLMId(), getTitle(), getType(), setId(), and ilUtil::tf2yn().

        {
                global $ilDB;

                // insert object data
                $query = "INSERT INTO lm_data (title, type, lm_id, import_id, create_date, active) ".
                        "VALUES (".$ilDB->quote($this->getTitle()).",".$ilDB->quote($this->getType()).", ".
                        $ilDB->quote($this->getLMId()).",".$ilDB->quote($this->getImportId()).
                        ", now(),".$ilDB->quote(ilUtil::tf2yn($this->getActive())).")";
                $this->ilias->db->query($query);
                $this->setId($this->ilias->db->getLastInsertId());

                // create history entry
                include_once("classes/class.ilHistory.php");
                ilHistory::_createEntry($this->getId(), "create", "",
                        $this->content_object->getType().":".$this->getType());

                if (!$a_upload)
                {
                        $this->createMetaData();
                }

        }

Here is the call graph for this function:

ilLMObject::createMetaData (  ) 

create meta data entry

Definition at line 131 of file class.ilLMObject.php.

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

Referenced by create().

        {
                include_once 'Services/MetaData/classes/class.ilMDCreator.php';

                global $ilUser;

                $md_creator = new ilMDCreator($this->getLMId(), $this->getId(), $this->getType());
                $md_creator->setTitle($this->getTitle());
                $md_creator->setTitleLanguage($ilUser->getPref('language'));
                $md_creator->setDescription($this->getDescription());
                $md_creator->setDescriptionLanguage($ilUser->getPref('language'));
                $md_creator->setKeywordLanguage($ilUser->getPref('language'));
                $md_creator->setLanguage($ilUser->getPref('language'));
                $md_creator->create();

                return true;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMObject::delete ( a_delete_meta_data = true  ) 

delete lm object data

Reimplemented in ilLMPageObject, and ilStructureObject.

Definition at line 522 of file class.ilLMObject.php.

References deleteMetaData(), and getId().

        {
                global $ilDB;
                
                $query = "DELETE FROM lm_data WHERE obj_id= ".$ilDB->quote($this->getId());
                $this->ilias->db->query($query);

                $this->deleteMetaData();
        }

Here is the call graph for this function:

ilLMObject::deleteMetaData (  ) 

delete meta data entry

Definition at line 178 of file class.ilLMObject.php.

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

Referenced by delete().

        {
                // Delete meta data
                include_once('Services/MetaData/classes/class.ilMD.php');
                $md = new ilMD($this->getLMId(), $this->getId(), $this->getType());
                $md->deleteAll();
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMObject::getActive (  ) 

get activation

Returns:
boolean true/false for active or not

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

Referenced by create(), and update().

        {
                return $this->active;
        }

Here is the caller graph for this function:

& ilLMObject::getContentObject (  ) 

Definition at line 310 of file class.ilLMObject.php.

Referenced by ilStructureObject::copy(), ilLMPageObject::copy(), ilStructureObject::exportFOPageObjects(), ilLMPageObject::exportXMLPageContent(), and ilStructureObject::exportXMLStructureObjects().

        {
                return $this->content_object;
        }

Here is the caller graph for this function:

ilLMObject::getDescription (  ) 

Definition at line 279 of file class.ilLMObject.php.

Referenced by ilStructureObject::copy(), ilLMPageObject::copy(), ilLMPageObject::copyToOtherContObject(), and createMetaData().

        {
                return $this->description;
        }

Here is the caller graph for this function:

ilLMObject::getId (  ) 
ilLMObject::getImportId (  ) 

Definition at line 325 of file class.ilLMObject.php.

Referenced by create().

        {
                return $this->import_id;
        }

Here is the caller graph for this function:

ilLMObject::getLMId (  ) 
ilLMObject::getObjectList ( lm_id,
type = "" 
)

static

Definition at line 627 of file class.ilLMObject.php.

References $lm_id, and $type.

Referenced by ilLMPageObject::getPageList().

        {
                global $ilDB;
                
                $type_str = ($type != "")
                        ? "AND type = ".$ilDB->quote($type)." "
                        : "";
                $query = "SELECT * FROM lm_data ".
                        "WHERE lm_id= ".$ilDB->quote($lm_id)." ".
                        $type_str." ".
                        "ORDER BY title";
                $obj_set = $ilDB->query($query);
                $obj_list = array();
                while($obj_rec = $obj_set->fetchRow(DB_FETCHMODE_ASSOC))
                {
                        $obj_list[] = array("obj_id" => $obj_rec["obj_id"],
                                                                "title" => $obj_rec["title"],
                                                                "type" => $obj_rec["type"]);
                }
                return $obj_list;
        }

Here is the caller graph for this function:

ilLMObject::getTitle (  ) 

get title of lm object

Returns:
string title of chapter or page

Definition at line 234 of file class.ilLMObject.php.

Referenced by ilStructureObject::copy(), ilLMPageObject::copy(), ilLMPageObject::copyToOtherContObject(), create(), createMetaData(), ilStructureObject::exportFO(), update(), and updateMetaData().

        {
                return $this->title;
        }

Here is the caller graph for this function:

ilLMObject::getType (  ) 
ilLMObject::ilLMObject ( &$  a_content_obj,
a_id = 0 
)
Parameters:
object $a_content_obj content object (digi book or learning module)

Definition at line 52 of file class.ilLMObject.php.

References $ilias, read(), setContentObject(), and setLMId().

Referenced by ilLMPageObject::ilLMPageObject(), and ilStructureObject::ilStructureObject().

        {
                global $ilias;

                $this->ilias =& $ilias;
                $this->id = $a_id;
                $this->setContentObject($a_content_obj);
                $this->setLMId($a_content_obj->getId());
                if($a_id != 0)
                {
                        $this->read();
                }
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMObject::MDUpdateListener ( a_element  ) 

Meta data update listener.

Important note: Do never call create() or update() method of ilObject here. It would result in an endless loop: update object -> update meta -> update object -> ... Use static _writeTitle() ... methods instead.

Parameters:
string $a_element

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

References $id, _writeTitle(), getId(), getLMId(), and getType().

        {
                include_once 'Services/MetaData/classes/class.ilMD.php';

                switch($a_element)
                {
                        case 'General':

                                // Update Title and description
                                $md = new ilMD($this->getLMId(), $this->getId(), $this->getType());
                                $md_gen = $md->getGeneral();

                                ilLMObject::_writeTitle($this->getId(),$md_gen->getTitle());

                                foreach($md_gen->getDescriptionIds() as $id)
                                {
                                        $md_des = $md_gen->getDescription($id);
//                                      ilLMObject::_writeDescription($this->getId(),$md_des->getDescription());
                                        break;
                                }

                                break;

                        default:
                }
                return true;
        }

Here is the call graph for this function:

ilLMObject::read (  ) 

Reimplemented in ilLMPageObject.

Definition at line 196 of file class.ilLMObject.php.

References $ilBench, setActive(), setImportId(), setTitle(), and ilUtil::yn2tf().

Referenced by ilLMObject().

        {
                global $ilBench, $ilDB;

                $ilBench->start("ContentPresentation", "ilLMObject_read");

                if(!isset($this->data_record))
                {
                        $ilBench->start("ContentPresentation", "ilLMObject_read_getData");
                        $query = "SELECT * FROM lm_data WHERE obj_id = ".$ilDB->quote($this->id);
                        $obj_set = $this->ilias->db->query($query);
                        $this->data_record = $obj_set->fetchRow(DB_FETCHMODE_ASSOC);
                        $ilBench->stop("ContentPresentation", "ilLMObject_read_getData");
                }

                $this->type = $this->data_record["type"];
                $this->setImportId($this->data_record["import_id"]);
                $this->setTitle($this->data_record["title"]);
                $this->setActive(ilUtil::yn2tf($this->data_record["active"]));

                $ilBench->stop("ContentPresentation", "ilLMObject_read");
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMObject::setActive ( a_active  ) 

set activation

Parameters:
boolean $a_active true/false for active or not

Definition at line 340 of file class.ilLMObject.php.

Referenced by read().

        {
                $this->active = $a_active;
        }

Here is the caller graph for this function:

ilLMObject::setContentObject ( &$  a_content_obj  ) 

Definition at line 305 of file class.ilLMObject.php.

Referenced by ilLMObject().

        {
                $this->content_object =& $a_content_obj;
        }

Here is the caller graph for this function:

ilLMObject::setDataRecord ( a_record  ) 

this method should only be called by class ilLMObjectFactory

Definition at line 191 of file class.ilLMObject.php.

        {
                $this->data_record = $a_record;
        }

ilLMObject::setDescription ( a_description  ) 

Definition at line 274 of file class.ilLMObject.php.

        {
                $this->description = $a_description;
        }

ilLMObject::setId ( a_id  ) 

Reimplemented in ilLMPageObject.

Definition at line 315 of file class.ilLMObject.php.

Referenced by create().

        {
                $this->id = $a_id;
        }

Here is the caller graph for this function:

ilLMObject::setImportId ( a_id  ) 

Definition at line 330 of file class.ilLMObject.php.

Referenced by read().

        {
                $this->import_id = $a_id;
        }

Here is the caller graph for this function:

ilLMObject::setLMId ( a_lm_id  ) 

Definition at line 294 of file class.ilLMObject.php.

Referenced by ilLMObject().

        {
                $this->lm_id = $a_lm_id;

        }

Here is the caller graph for this function:

ilLMObject::setTitle ( a_title  ) 

set title of lm object

Parameters:
string $a_title title of chapter or page

Definition at line 224 of file class.ilLMObject.php.

Referenced by read().

        {
                $this->title = $a_title;
        }

Here is the caller graph for this function:

ilLMObject::setType ( a_type  ) 

Definition at line 284 of file class.ilLMObject.php.

Referenced by ilLMPageObject::ilLMPageObject(), and ilStructureObject::ilStructureObject().

        {
                $this->type = $a_type;
        }

Here is the caller graph for this function:

ilLMObject::update (  ) 

update complete object

Definition at line 402 of file class.ilLMObject.php.

References getActive(), getId(), getLMId(), getTitle(), ilUtil::tf2yn(), and updateMetaData().

        {
                global $ilDB;

                $this->updateMetaData();

                $query = "UPDATE lm_data SET ".
                        " lm_id = ".$ilDB->quote($this->getLMId()).
                        " ,title = ".$ilDB->quote($this->getTitle()).
                        " ,active = ".$ilDB->quote(ilUtil::tf2yn($this->getActive())).
                        " WHERE obj_id = ".$ilDB->quote($this->getId());

                $ilDB->query($query);
        }

Here is the call graph for this function:

static ilLMObject::updateInternalLinks ( a_copied_nodes,
a_parent_type = "lm" 
) [static]

Update internal links, after multiple pages have been copied.

Definition at line 721 of file class.ilLMObject.php.

References _getAllObjectsForImportId(), ilInternalLink::_getSourcesOfTarget(), ilInternalLink::_getTargetsOfSource(), _lookupContObjID(), ilObject::_lookupType(), and _lookupType().

Referenced by ilObjContentObjectGUI::pasteChapter(), ilStructureObjectGUI::pastePage(), ilObjContentObjectGUI::pastePage(), and ilObjContentObjectGUI::proceedDragDrop().

        {
                foreach($a_copied_nodes as $original_id => $copied_id)
                {
                        if (ilLMObject::_lookupType($copied_id) == "pg")
                        {
                                //
                                // 1. Outgoing links from the copied page.
                                //
                                $targets = ilInternalLink::_getTargetsOfSource($a_parent_type.":pg", $copied_id);
                                $copy_lm = ilLMObject::_lookupContObjID($copied_id);
                                $fix = array();
                                foreach($targets as $target)
                                {
                                        if (($target["inst"] == 0 || $target["inst"] = IL_INST_ID) &&
                                                ($target["type"] == "pg" || $target["type"] == "st"))
                                        {
                                                // first check, whether target is also within the copied set
                                                if ($a_copied_nodes[$target["id"]] > 0)
                                                {
                                                        $fix[$target["id"]] = $a_copied_nodes[$target["id"]];
                                                }
                                                else
                                                {
                                                        // now check, if a copy if the target is already in the same lm
                                                        $lm_data = ilLMObject::_getAllObjectsForImportId("il__".$target["type"]."_".$target["id"]);
                                                        $found = false;

                                                        foreach($lm_data as $item)
                                                        {
                                                                if (!$found && ($item["lm_id"] == $copy_lm))
                                                                {
                                                                        $fix[$target["id"]] = $item["obj_id"];
                                                                }
                                                        }
                                                        
                                                        if (!$found)
                                                        {
                                                                // we now could look for copies next to the copy lm
                                                        }
                                                }
                                        }
                                }
                                
                                // outgoing links to be fixed
                                if (count($fix) > 0)
                                {
                                        $page = new ilPageObject(ilObject::_lookupType($copy_lm), $copied_id);
                                        $page->moveIntLinks($fix);
                                        $page->update();
                                }
                                
                                //
                                // 2. Incoming links to the original pages
                                //
                                // A->B                 A2                      (A+B currently copied)
                                // A->C                 B2
                                // B->A
                                // C->A                 C2->A           (C already copied)
                                $original_lm = ilLMObject::_lookupContObjID($original_id);
                                $original_type = ilObject::_lookupType($original_lm);
                                
                                // This gets sources that link to A+B (so we have C here)
                                $sources = ilInternalLink::_getSourcesOfTarget("pg", $original_id, 0);
                                $fix = array();
                                foreach($sources as $source)
                                {
                                        $stype = explode(":", $source["type"]);
                                        $source_type = $stype[1];

                                        if ($source_type == "pg" || $source_type == "st")
                                        {
                                                // check, if a copy if the source is already in the same lm
                                                // now we look for the latest copy of C in LM2
                                                $lm_data = ilLMObject::_getAllObjectsForImportId("il__".$source_type."_".$source["id"]);
                                                $found = false;
                                                foreach($lm_data as $item)
                                                {
                                                        if (!$found && ($item["lm_id"] == $copy_lm))
                                                        {
                                                                $fix[$item["obj_id"]][$original_id] = $copied_id;
                                                        }
                                                }
                                                
                                                if (!$found)
                                                {
                                                        // we now could look for copies next to the copy lm
                                                }
                                        }
                                }

                                // outgoing links to be fixed
                                if (count($fix) > 0)
                                {
                                        foreach ($fix as $page_id => $fix_array)
                                        {
                                                $page = new ilPageObject(ilObject::_lookupType($copy_lm), $page_id);
                                                $page->moveIntLinks($fix_array);
                                                $page->update();
                                        }
                                }
                        }
                }
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilLMObject::updateMetaData (  ) 

update meta data entry

Definition at line 152 of file class.ilLMObject.php.

References getId(), getLMId(), getTitle(), and getType().

Referenced by update().

        {
                include_once("Services/MetaData/classes/class.ilMD.php");
                include_once("Services/MetaData/classes/class.ilMDGeneral.php");
                include_once("Services/MetaData/classes/class.ilMDDescription.php");

                $md =& new ilMD($this->getLMId(), $this->getId(), $this->getType());
                $md_gen =& $md->getGeneral();
                $md_gen->setTitle($this->getTitle());

                // sets first description (maybe not appropriate)
                $md_des_ids =& $md_gen->getDescriptionIds();
                if (count($md_des_ids) > 0)
                {
                        $md_des =& $md_gen->getDescription($md_des_ids[0]);
//                      $md_des->setDescription($this->getDescription());
                        $md_des->update();
                }
                $md_gen->update();

        }

Here is the call graph for this function:

Here is the caller graph for this function:


Field Documentation

ilLMObject::$active = true

Definition at line 47 of file class.ilLMObject.php.

ilLMObject::$content_object

Definition at line 44 of file class.ilLMObject.php.

ilLMObject::$data_record

Definition at line 43 of file class.ilLMObject.php.

ilLMObject::$description

Definition at line 46 of file class.ilLMObject.php.

ilLMObject::$id

Reimplemented in ilLMPageObject.

Definition at line 41 of file class.ilLMObject.php.

Referenced by _lookupNID(), and MDUpdateListener().

ilLMObject::$ilias

Reimplemented in ilLMPageObject.

Definition at line 38 of file class.ilLMObject.php.

Referenced by ilLMObject().

ilLMObject::$lm_id
ilLMObject::$meta_data

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

ilLMObject::$title

Definition at line 45 of file class.ilLMObject.php.

Referenced by ilLMPageObject::exportFO().

ilLMObject::$type

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