ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
ilSoapLMStructureReader Class Reference
+ Inheritance diagram for ilSoapLMStructureReader:
+ Collaboration diagram for ilSoapLMStructureReader:

Public Member Functions

 ilSoapLMStructureReader ($object)
 
 _parseStructure ()
 
- Public Member Functions inherited from ilSoapStructureReader
 ilSoapStructureReader (& $object)
 
 getStructureObject ()
 
 _parseStructure ()
 
 isValid ()
 
 getObject ()
 read access to parent object More...
 

Additional Inherited Members

- Data Fields inherited from ilSoapStructureReader
 $object
 
 $structureObject
 

Detailed Description

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

Member Function Documentation

◆ _parseStructure()

ilSoapLMStructureReader::_parseStructure ( )

Reimplemented from ilSoapStructureReader.

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

45 {
46 // get all child nodes in LM
47 $ctree =& $this->object->getLMTree();
48
49 $nodes = $ctree->getSubtree($ctree->getNodeData($ctree->getRootId()));
50
51 $currentParentStructureObject = $this->structureObject;
52 $currentParent = 1;
53
54 $parents = array ();
55 $parents [$currentParent]= $currentParentStructureObject;
56
57 $lastStructureObject = null;
58 $lastNode = null;
59 $i =0;
60 foreach($nodes as $node)
61 {
62
63 // only pages and chapters
64 if($node["type"] == "st" || $node["type"] == "pg")
65 {
66// print_r($node);
67// echo $node["parent"]."<br>";
68// echo $node["obj_id"]."<br>";
69// echo $node["title"]."<br>";
70// print_r($parents);
71// echo "<br>";
72
73 // parent has changed, to build a tree
74 if ($currentParent != $node["parent"])
75 {
76 // did we passed this parent before?
77
78 if (array_key_exists($node["parent"], $parents))
79 {
80// echo "current_parent:".$currentParent."\n";
81// echo "parent:".$node["parent"]."\n";
82// // yes, we did, so use the known parent object
83// print_r($parents);
84 $currentParentStructureObject = $parents[$node["parent"]];
85
86// print_r($currentParentStructureObject);
87//
88// die();
89 }
90 else
91 {
92 // no, we did not, so use the last inserted structure as new parent
93 if ($lastNode["type"] != "pg")
94 {
95 $parents[$lastNode["child"]] = $lastStructureObject;
96 $currentParentStructureObject = $lastStructureObject;
97 }
98
99 }
100 $i++;
101 $currentParent = $lastNode["child"];
102 }
103
104 $lastNode = $node;
105
106 $lastStructureObject = ilSoapStructureObjectFactory::getInstance ($node["obj_id"],$node["type"], $node["title"], $node["description"], $this->getObject()->getRefId());
107
108 $currentParentStructureObject->addStructureObject( $lastStructureObject);
109
110 }
111 }
112
113// print_r($this->structureObject);
114//
115// die();
116 }
getInstance($objId, $type, $title, $description, $parentRefId)
getObject()
read access to parent object

References ilSoapStructureReader\$structureObject, ilSoapStructureObjectFactory\getInstance(), and ilSoapStructureReader\getObject().

+ Here is the call graph for this function:

◆ ilSoapLMStructureReader()

ilSoapLMStructureReader::ilSoapLMStructureReader (   $object)

Definition at line 40 of file class.ilSoapLMStructureReader.php.

41 {
42 parent::ilSoapStructureReader($object);
43 }

References ilSoapStructureReader\$object.


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