62 $this->copy_id = $a_copy_id;
80 if(is_array(self::$instances) and isset(self::$instances[$a_copy_id]))
82 return self::$instances[$a_copy_id];
99 $query =
"SELECT * FROM copy_wizard_options ".
100 "WHERE copy_id = ".$ilDB->quote($a_copy_id ,
'integer').
" ";
102 return $res->numRows() ?
false :
true;
116 $query =
"SELECT MAX(copy_id) latest FROM copy_wizard_options ";
120 $ilDB->insert(
"copy_wizard_options", array(
121 "copy_id" => array(
"integer",
$row->latest + 1),
122 "source_id" => array(
"integer", 0)
124 return $row->latest + 1;
138 $ilDB->insert(
"copy_wizard_options", array(
139 "copy_id" => array(
"integer", $this->
getCopyId()),
140 "source_id" => array(
"integer", self::OWNER_KEY),
141 "options" => array(
'clob',serialize(array($a_user_id)))
158 $ilDB->insert(
"copy_wizard_options", array(
159 "copy_id" => array(
"integer", $this->
getCopyId()),
160 "source_id" => array(
"integer", self::ROOT_NODE),
161 "options" => array(
'clob',serialize(array($a_root)))
177 return in_array($a_root,$this->
getOptions(self::ROOT_NODE));
193 $ilDB->insert(
"copy_wizard_options", array(
194 "copy_id" => array(
"integer", $this->
getCopyId()),
195 "source_id" => array(
"integer", self::DISABLE_SOAP),
196 "options" => array(
'clob',serialize(array(1)))
208 if(isset($this->options[self::DISABLE_SOAP]) and $this->options[self::DISABLE_SOAP])
226 return in_array($a_user_id,$this->
getOptions(self::OWNER_KEY));
253 $mapping_source = $tree->getParentId($a_source_id);
273 $a_tree_structure = $this->tmp_tree;
275 $ilDB->update(
"copy_wizard_options", array(
276 "options" => array(
'clob',serialize($a_tree_structure))
278 "copy_id" => array(
'integer',$this->
getCopyId()),
279 "source_id" => array(
'integer',0
282 $ilDB->insert(
'copy_wizard_options',array(
283 'copy_id' => array(
'integer',$this->
getCopyId()),
284 'source_id' => array(
'integer',-1),
285 'options' => array(
'clob',serialize($a_tree_structure))
300 if(isset($tree[0]) and is_array($tree[0]))
340 if(!isset($this->options[$a_id]) or !is_array($this->options[$a_id]))
345 $this->options[$a_id] = array_slice($this->options[$a_id],1);
347 $ilDB->update(
'copy_wizard_options',array(
348 'options' => array(
'clob',serialize($this->options[$a_id]))
350 'copy_id' => array(
'integer',$this->
getCopyId()),
351 'source_id' => array(
'integer',$a_id)));
359 if($node[
'type'] ==
'rolf')
397 if(isset($this->options[$a_source_id]) and is_array($this->options[$a_source_id]))
399 return $this->options[$a_source_id];
416 if(!is_array($a_options))
421 $query =
"DELETE FROM copy_wizard_options ".
422 "WHERE copy_id = ".$this->db->quote($this->copy_id ,
'integer').
" ".
423 "AND source_id = ".$this->db->quote($a_source_id ,
'integer');
426 $ilDB->insert(
'copy_wizard_options',array(
427 'copy_id' => array(
'integer',$this->copy_id),
428 'source_id' => array(
'integer',$a_source_id),
429 'options' => array(
'clob',serialize($a_options))
446 $query =
"SELECT * FROM copy_wizard_options ".
447 "WHERE copy_id = ".$this->db->quote($this->copy_id ,
'integer').
" ".
448 "AND source_id = -2 ";
453 $mappings = unserialize(
$row->options);
455 $mappings[$a_source_id] = $a_target_id;
457 $query =
"DELETE FROM copy_wizard_options ".
458 "WHERE copy_id = ".$ilDB->quote($this->
getCopyId(),
'integer').
" ".
459 "AND source_id = -2 ";
463 $ilDB->insert(
'copy_wizard_options', array(
464 'copy_id' => array(
'integer',$this->
getCopyId()),
465 'source_id' => array(
'integer',-2),
466 'options' => array(
'clob',serialize($mappings))
480 if(isset($this->options[-2]) and is_array($this->options[-2]))
482 return $this->options[-2];
497 $query =
"DELETE FROM copy_wizard_options ".
498 "WHERE copy_id = ".$this->db->quote($this->copy_id ,
'integer');
513 $query =
"SELECT * FROM copy_wizard_options ".
514 "WHERE copy_id = ".$this->db->quote($this->copy_id ,
'integer');
517 $this->options = array();
520 $this->options[
$row->source_id] = unserialize(
$row->options);
537 $this->tmp_tree[] = $tree->getNodeData($a_source_id);
540 foreach($tree->getChilds($a_source_id) as $sub_nodes)
542 $sub_node_ref_id = $sub_nodes[
'child'];
544 $options = $this->options[$sub_node_ref_id];
545 if(
$options[
'type'] == self::COPY_WIZARD_COPY or
546 $options[
'type'] == self::COPY_WIZARD_LINK)