/**
  * Copy chapter
  */
 function copy($a_target_slm)
 {
     $chap = new ilSCORM2004Chapter($a_target_slm);
     $chap->setTitle($this->getTitle());
     if ($this->getSLMId() != $a_target_slm->getId()) {
         $chap->setImportId("il__chap_" . $this->getId());
     }
     $chap->setSLMId($a_target_slm->getId());
     $chap->setType($this->getType());
     $chap->setDescription($this->getDescription());
     $chap->create(true);
     $a_copied_nodes[$this->getId()] = $chap->getId();
     // copy meta data
     include_once "Services/MetaData/classes/class.ilMD.php";
     $md = new ilMD($this->getSLMId(), $this->getId(), $this->getType());
     $new_md =& $md->cloneMD($a_target_slm->getId(), $chap->getId(), $this->getType());
     return $chap;
 }
 /**
  * Insert (multiple) chapters at node
  */
 function insertChapter($a_redirect = true)
 {
     global $ilCtrl, $lng;
     include_once "./Modules/Scorm2004/classes/class.ilSCORM2004OrganizationHFormGUI.php";
     $slm_tree =& new ilTree($this->object->getId());
     $slm_tree->setTreeTablePK("slm_id");
     $slm_tree->setTableNames('sahs_sc13_tree', 'sahs_sc13_tree_node');
     $num = ilSCORM2004OrganizationHFormGUI::getPostMulti();
     $node_id = ilSCORM2004OrganizationHFormGUI::getPostNodeId();
     if (!ilSCORM2004OrganizationHFormGUI::getPostFirstChild()) {
         $parent_id = $slm_tree->getParentId($node_id);
         $target = $node_id;
     } else {
         $parent_id = $node_id;
         $target = IL_FIRST_NODE;
     }
     include_once "./Modules/Scorm2004/classes/class.ilSCORM2004Chapter.php";
     include_once "./Modules/Scorm2004/classes/class.ilSCORM2004Node.php";
     $chap_ids = array();
     for ($i = 1; $i <= $num; $i++) {
         $chap = new ilSCORM2004Chapter($this->object);
         $chap->setTitle($lng->txt("sahs_new_chapter"));
         $chap->setSLMId($this->object->getId());
         $chap->create();
         ilSCORM2004Node::putInTree($chap, $parent_id, $target);
         $chap_ids[] = $chap->getId();
     }
     $chap_ids = array_reverse($chap_ids);
     $chap_ids = implode($chap_ids, ":");
     if ($a_redirect) {
         $ilCtrl->setParameter($this, "highlight", $chap_ids);
         $ilCtrl->redirect($this, "showOrganization", "node_" . $node_id);
     }
     return array("node_id" => $node_id, "items" => $chap_ids);
 }
 /**
  * Constructor
  * @access	public
  */
 function ilSCORM2004SeqChapter($a_slm_object, $a_id = 0)
 {
     parent::ilSCORM2004Chapter($a_slm_object, $a_id);
     $this->setType("seqc");
 }
 /**
  * function import Template
  *
  * @return success of import
  * @author Hendrik Holtmann
  */
 public function importTemplate($a_target, $a_object, $a_parent, $node)
 {
     global $ilDB;
     switch ($node->getAttribute('type')) {
         case "lesson":
             if ($this->parentchapter == true) {
                 $chap = new ilSCORM2004SeqChapter($a_object);
             } else {
                 $chap = new ilSCORM2004Chapter($a_object);
             }
             $chap->setTitle($node->getElementsByTagName("title")->item(0)->nodeValue);
             $chap->setSLMId($a_object->getId());
             $chap->create();
             $this->sahs_sc13_treeId = $chap->getId();
             ilSCORM2004Node::putInTree($chap, $a_parent, $a_target);
             $a_parent = $this->sahs_sc13_treeId;
             if ($this->parentchapter == true) {
                 $ilDB->manipulate("INSERT INTO sahs_sc13_seq_assign (identifier, sahs_sc13_tree_node_id) VALUES " . "(" . $ilDB->quote($this->getIdentifier(), "text") . "," . $ilDB->quote($this->sahs_sc13_treeId, "integer") . ")");
                 $this->parentchapter = false;
             }
             $new_id = $chap->getId();
             break;
         case "sco":
             $sco = new ilSCORM2004Sco($a_object);
             $sco->setTitle($node->getElementsByTagName("title")->item(0)->nodeValue);
             $sco->setSLMId($a_object->getId());
             $sco->create(false, true);
             $this->sahs_sc13_treeId = $sco->getId();
             ilSCORM2004Node::putInTree($sco, $a_parent, $target);
             $new_id = $sco->getId();
             break;
     }
     $seq_node = $node->getElementsByTagName("sequencing")->item(0);
     $obj_node = $seq_node->getElementsByTagName("objectives")->item(0);
     //addtitle
     if ($obj_node) {
         foreach ($obj_node->childNodes as $objchild) {
             if ($objchild->nodeName === "objective" || $objchild->nodeName === "primaryObjective") {
                 $title = $objchild->getAttribute('objectiveID');
                 $objchild->setAttribute("title", $title);
                 $i++;
             }
         }
     }
     $seq_item = new ilSCORM2004Item();
     $seq_item->setTreeNodeId($this->sahs_sc13_treeId);
     $seq_item->setImportid($this->importId);
     $seq_item->setNocopy($seq_node->getAttribute('nocopy'));
     $seq_item->setNodelete($seq_node->getAttribute('nodelete'));
     $seq_item->setNomove($seq_node->getAttribute('nomove'));
     $seq_doc = new DOMDocument();
     $toadd = $seq_doc->importNode($seq_node, true);
     $seq_doc->appendChild($toadd);
     //generate Unique ObjectiveIDs for context
     //@targetObjectiveID
     $xpath_obj = new DOMXPath($seq_doc);
     $found_nodes = $xpath_obj->query('//@objectiveID | //@referencedObjective | //@targetObjectiveID');
     for ($i = 0; $i < $found_nodes->length; $i++) {
         $element = null;
         $val = $found_nodes->item($i)->value;
         $uid = $this->sahs_sc13_treeId;
         if ($found_nodes->item($i)->name == "targetObjectiveID") {
             $uid = $this->importId;
         }
         $val = strtolower(preg_replace('/ +/', '_', $val) . "_" . $uid);
         $element = $found_nodes->item($i)->ownerElement;
         $element->setAttribute($found_nodes->item($i)->name, $val);
     }
     $seq_item->setDom($seq_doc);
     $seq_item->insert();
     foreach ($node->childNodes as $child) {
         if ($child->nodeName === "item") {
             $this->importTemplate($a_target, $a_object, $a_parent, $child);
         }
     }
     return $new_id;
 }
 /**
  * Constructor
  * @access	public
  */
 function ilSCORM2004SeqTemplate($a_slm_object, $a_id = 0)
 {
     parent::ilSCORM2004SeqTemplate($a_slm_object, $a_id);
 }