ILIAS  release_4-4 Revision
All Data Structures Namespaces Files Functions Variables Modules Pages
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 ( )

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

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

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  }
getObject()
read access to parent object
getInstance($objId, $type, $title, $description, $parentRefId)
+ Here is the call graph for this function:

◆ ilSoapLMStructureReader()

ilSoapLMStructureReader::ilSoapLMStructureReader (   $object)

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

References ilSoapStructureReader\$object.

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

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