Go to the documentation of this file.00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00034 include_once "./webservice/soap/classes/class.ilSoapStructureReader.php";
00035 include_once "./webservice/soap/classes/class.ilSoapStructureObjectFactory.php";
00036
00037 class ilSoapLMStructureReader extends ilSoapStructureReader
00038 {
00039
00040 function ilSoapLMStructureReader ($object)
00041 {
00042 parent::ilSoapStructureReader($object);
00043 }
00044
00045 function _parseStructure () {
00046
00047 $ctree =& $this->object->getLMTree();
00048
00049 $nodes = $ctree->getSubtree($ctree->getNodeData($ctree->getRootId()));
00050
00051 $currentParentStructureObject = $this->structureObject;
00052 $currentParent = 1;
00053
00054 $parents = array ();
00055 $parents [$currentParent]= $currentParentStructureObject;
00056
00057 $lastStructureObject = null;
00058 $lastNode = null;
00059 $i =0;
00060 foreach($nodes as $node)
00061 {
00062
00063
00064 if($node["type"] == "st" || $node["type"] == "pg")
00065 {
00066
00067
00068
00069
00070
00071
00072
00073
00074 if ($currentParent != $node["parent"])
00075 {
00076
00077
00078 if (array_key_exists($node["parent"], $parents))
00079 {
00080
00081
00082
00083
00084 $currentParentStructureObject = $parents[$node["parent"]];
00085
00086
00087
00088
00089 }
00090 else
00091 {
00092
00093 if ($lastNode["type"] != "pg")
00094 {
00095 $parents[$lastNode["child"]] = $lastStructureObject;
00096 $currentParentStructureObject = $lastStructureObject;
00097 }
00098
00099 }
00100 $i++;
00101 $currentParent = $lastNode["child"];
00102 }
00103
00104 $lastNode = $node;
00105
00106 $lastStructureObject = ilSoapStructureObjectFactory::getInstance ($node["obj_id"],$node["type"], $node["title"], $node["description"], $this->getObject()->getRefId());
00107
00108 $currentParentStructureObject->addStructureObject( $lastStructureObject);
00109
00110 }
00111 }
00112
00113
00114
00115
00116 }
00117
00118
00119
00120
00121 }
00122
00123 ?>