function getInstance($objId, $type, $title, $description, $parentRefId) { $classname = ilSoapStructureObjectFactory::_getClassnameForType($type); if ($classname == null) { return null; } return new $classname($objId, $type, $title, $description, $parentRefId); }
function _parseStructure() { // get all child nodes in LM $ctree =& $this->object->getLMTree(); $nodes = $ctree->getSubtree($ctree->getNodeData($ctree->getRootId())); $currentParentStructureObject = $this->structureObject; $currentParent = 1; $parents = array(); $parents[$currentParent] = $currentParentStructureObject; $lastStructureObject = null; $lastNode = null; $i = 0; foreach ($nodes as $node) { // only pages and chapters if ($node["type"] == "st" || $node["type"] == "pg") { // print_r($node); // echo $node["parent"]."<br>"; // echo $node["obj_id"]."<br>"; // echo $node["title"]."<br>"; // print_r($parents); // echo "<br>"; // parent has changed, to build a tree if ($currentParent != $node["parent"]) { // did we passed this parent before? if (array_key_exists($node["parent"], $parents)) { // echo "current_parent:".$currentParent."\n"; // echo "parent:".$node["parent"]."\n"; // // yes, we did, so use the known parent object // print_r($parents); $currentParentStructureObject = $parents[$node["parent"]]; // print_r($currentParentStructureObject); // // die(); } else { // no, we did not, so use the last inserted structure as new parent if ($lastNode["type"] != "pg") { $parents[$lastNode["child"]] = $lastStructureObject; $currentParentStructureObject = $lastStructureObject; } } $i++; $currentParent = $lastNode["child"]; } $lastNode = $node; $lastStructureObject = ilSoapStructureObjectFactory::getInstance($node["obj_id"], $node["type"], $node["title"], $node["description"], $this->getObject()->getRefId()); $currentParentStructureObject->addStructureObject($lastStructureObject); } } // print_r($this->structureObject); // // die(); }
function _parseStructure() { /* @var $object ilObjGlossary */ $terms = $this->object->getTermlist(); foreach ($terms as $term) { /* @var $termStructureObject ilSoapGLOTermStructureObject*/ $termStructureObject = ilSoapStructureObjectFactory::getInstance($term["id"], "git", $term["term"], "", $this->getObject()->getRefId()); $this->structureObject->addStructureObject($termStructureObject); $defs = ilGlossaryDefinition::getDefinitionList($term["id"]); foreach ($defs as $def) { $defStructureObject = ilSoapStructureObjectFactory::getInstance($def["id"], "gdf", $def["short_text"], "", $this->getObject()->getRefId()); $termStructureObject->addStructureObject($defStructureObject); } // print_r($defs); } }
function ilSoapStructureReader(&$object) { $this->object =& $object; $this->structureObject =& ilSoapStructureObjectFactory::getInstanceForObject($object); }