46                $this->objective_id = $a_objective_id;
 
   62                global $ilObjDataCache,
$ilLog;
 
   64                include_once(
'Services/CopyWizard/classes/class.ilCopyWizardOptions.php');
 
   66                $mappings = $cwo->getMappings();
 
   67                #$ilLog->write(__METHOD__.': 1'); 
   70                #$ilLog->write(__METHOD__.': 2'); 
   72                        if(!isset($mappings[$material[
'ref_id']]) or !$mappings[$material[
'ref_id']])
 
   76                #$ilLog->write(__METHOD__.': 3'); 
   77                        $material_ref_id = $material[
'ref_id'];
 
   78                        $material_rbac_obj_id = $ilObjDataCache->lookupObjId($material_ref_id);
 
   79                        $material_obj_id = $material[
'obj_id'];
 
   80                        $new_ref_id = $mappings[$material_ref_id];
 
   81                        $new_rbac_obj_id = $ilObjDataCache->lookupObjId($new_ref_id);
 
   82                #$ilLog->write(__METHOD__.': 4'); 
   85                        if($new_rbac_obj_id == $material_rbac_obj_id)
 
   87                #$ilLog->write(__METHOD__.': 5'); 
   88                                $ilLog->write(__METHOD__.
': Material has been linked. Keeping object id.');
 
   89                                $new_obj_id = $material_obj_id;
 
   91                        elseif($material[
'type'] == 
'st' or $material[
'type'] == 
'pg')
 
   94                                #$GLOBALS['ilLog']->write(__METHOD__.': '.print_r($material,TRUE)); 
   95                                #$GLOBALS['ilLog']->write(__METHOD__.': '.print_r($mappings,TRUE)); 
   97                #$ilLog->write(__METHOD__.': 6'); 
   99                                $new_material_info = isset($mappings[$material_ref_id.
'_'.$material_obj_id]) ?
 
  100                                        $mappings[$material_ref_id.
'_'.$material_obj_id] :
 
  102                                $new_material_arr = explode(
'_',$new_material_info);
 
  103                                if(!isset($new_material_arr[1]) or !$new_material_arr[1])
 
  105                                        $ilLog->write(__METHOD__.
': No mapping found for chapter: '.$material_obj_id);
 
  108                                $new_obj_id = $new_material_arr[1];
 
  109                                $ilLog->write(__METHOD__.
': New material id is: '.$new_obj_id);
 
  113                #$ilLog->write(__METHOD__.': 7'); 
  115                                $new_obj_id = $ilObjDataCache->lookupObjId($mappings[$material_ref_id]);
 
  118                #$ilLog->write(__METHOD__.': 8'); 
  120                #$ilLog->write(__METHOD__.': 8.1'); 
  121                        $new_material->setLMRefId($new_ref_id);
 
  122                #$ilLog->write(__METHOD__.': 8.2'); 
  123                        $new_material->setLMObjId($new_obj_id);
 
  124                #$ilLog->write(__METHOD__.': 8.3'); 
  125                        $new_material->setType($material[
'type']);
 
  126                #$ilLog->write(__METHOD__.': 8.4'); 
  127                        $new_material->add();
 
  128                #$ilLog->write(__METHOD__.': 9'); 
  145                $query = 
"SELECT DISTINCT(ref_id) ref_id FROM crs_objective_lm ".
 
  146                        "WHERE objective_id = ".$ilDB->quote($a_objective_id ,
'integer');
 
  150                        $ref_ids[] = 
$row->ref_id;
 
  152                return $ref_ids ? $ref_ids : array();
 
  173                $all_materials = $tree->getSubTree($tree->getNodeData($a_container_id),
true);
 
  177                foreach($all_materials as $material)
 
  179                        switch($material[
'type'])
 
  183                                        include_once 
'./Modules/Course/classes/class.ilCourseObjectiveMaterials.php';
 
  191                                                $assignable[] = $material;
 
  201                                        $assignable[] = $material;
 
  205                return $assignable ? $assignable : array();
 
  220                $query = 
"SELECT DISTINCT(com.ref_id) ref_id FROM crs_objectives co ".
 
  221                        "JOIN crs_objective_lm com ON co.objective_id = com.objective_id ".
 
  222                        "JOIN object_reference obr ON com.ref_id = obr.ref_id ".
 
  223                        "JOIN object_data obd ON obr.obj_id = obd.obj_id ".
 
  224                        "WHERE co.crs_id = ".$ilDB->quote($a_container_id,
'integer').
" ".
 
  225                        "ORDER BY obd.title ";
 
  230                        $ref_ids[] = 
$row->ref_id;
 
  232                return $ref_ids ? $ref_ids : array();
 
  237                return $this->lms ? $this->lms : array();
 
  242                foreach($this->lms as $lm_data)
 
  244                        if($lm_data[
'type'] == 
'st')
 
  246                                $chapters[] = $lm_data;
 
  248                        if($lm_data[
'type'] == 
'pg')
 
  250                                $chapters[] = $lm_data;
 
  253                return $chapters ? $chapters : array();
 
  258                return $this->lms[$lm_id] ? $this->lms[$lm_id] : array();
 
  268                $this->lm_ref_id = $a_ref_id;
 
  272                return $this->lm_ref_id ? $this->lm_ref_id : 0;
 
  276                $this->lm_obj_id = $a_obj_id;
 
  280                return $this->lm_obj_id ? $this->lm_obj_id : 0;
 
  284                $this->type = $a_type;
 
  303                $query = 
"SELECT * FROM crs_objective_lm ".
 
  304                        "WHERE ref_id = ".$this->db->quote($a_ref_id ,
'integer').
" ".
 
  305                        "AND objective_id = ".$this->db->quote($this->
getObjectiveId() ,
'integer').
" ".
 
  306                        "AND type != 'st' AND type != 'pg' ";
 
  312                        return $res->numRows() ? true : 
false;
 
  317                        return $row[
"lm_ass_id"];
 
  334                $query = 
"SELECT * FROM crs_objective_lm ".
 
  335                        "WHERE ref_id = ".$this->db->quote($a_ref_id ,
'integer').
" ".
 
  336                        "AND obj_id = ".$this->db->quote($a_obj_id ,
'integer').
" ".
 
  337                        "AND objective_id = ".$this->db->quote($this->
getObjectiveId() ,
'integer').
" ".
 
  338                        "AND (type = 'st' OR type = 'pg')";
 
  340                return $res->numRows() ? true : 
false;
 
  348                        $query = 
"SELECT * FROM crs_objective_lm ".
 
  349                                "WHERE objective_id = ".$ilDB->quote($this->
getObjectiveId() ,
'integer').
" ".
 
  350                                "AND ref_id = ".$ilDB->quote($this->
getLMRefId() ,
'integer').
" ".
 
  351                                "AND obj_id = ".$ilDB->quote($this->
getLMObjId() ,
'integer').
" ";
 
  355                        $query = 
"SELECT * FROM crs_objective_lm ".
 
  356                                "WHERE objective_id = ".$ilDB->quote($this->
getObjectiveId() ,
'integer').
" ".
 
  357                                "AND ref_id = ".$ilDB->quote($this->
getLMRefId() ,
'integer').
" ";
 
  362                return $res->numRows() ? true : 
false;
 
  369                $next_id = 
$ilDB->nextId(
'crs_objective_lm');
 
  370                $query = 
"INSERT INTO crs_objective_lm (lm_ass_id,objective_id,ref_id,obj_id,type) ".
 
  372                        $ilDB->quote($next_id, 
'integer').
", ".
 
  374                        $ilDB->quote($this->
getLMRefId() ,
'integer').
", ".
 
  375                        $ilDB->quote($this->
getLMObjId() ,
'integer').
", ".
 
  376                        $ilDB->quote($this->
getType() ,
'text').
 
  380                return (
int) $next_id;
 
  382        function delete($lm_id)
 
  391                $query = 
"DELETE FROM crs_objective_lm ".
 
  392                        "WHERE lm_ass_id = ".$ilDB->quote($lm_id ,
'integer').
" ";
 
  402                $query = 
"DELETE FROM crs_objective_lm ".
 
  403                        "WHERE objective_id = ".$ilDB->quote($this->
getObjectiveId() ,
'integer').
" ";
 
  421                $query = 
"UPDATE crs_objective_lm ".
 
  422                        "SET position = ".$this->db->quote((
string) $a_position ,
'integer').
" ".
 
  423                        "WHERE objective_id = ".$this->db->quote($this->
getObjectiveId() ,
'integer').
" ".
 
  424                        "AND lm_ass_id = ".$ilDB->quote($a_ass_id, 
"integer");
 
  435                include_once(
'Modules/Course/classes/class.ilCourseObjective.php');
 
  437                $container_ref_id  = current($container_ref_ids);
 
  441                $this->lms = array();
 
  442                $query = 
"SELECT position,lm_ass_id,lm.ref_id,lm.obj_id,lm.type FROM crs_objective_lm lm ".
 
  443                        "JOIN object_reference obr ON lm.ref_id = obr.ref_id ".
 
  444                        "JOIN object_data obd ON obr.obj_id = obd.obj_id ".
 
  445                        "LEFT JOIN lm_data lmd ON lmd.obj_id = lm.obj_id ".
 
  446                        "WHERE objective_id = ".$ilDB->quote($this->
getObjectiveId(),
'integer').
" ".                    
 
  447                        "ORDER BY position,obd.title,lmd.title";                        
 
  452                        if(!$tree->isInTree(
$row->ref_id) or !$tree->isGrandChild($container_ref_id,
$row->ref_id))
 
  454                                $this->
delete(
$row->lm_ass_id);
 
  457                        $lm[
'ref_id'] = 
$row->ref_id;
 
  458                        $lm[
'obj_id'] = 
$row->obj_id;
 
  459                        $lm[
'type'] = 
$row->type;
 
  460                        $lm[
'lm_ass_id'] = 
$row->lm_ass_id;
 
  461                        $lm[
'position'] = 
$row->position;
 
  463                        $this->lms[
$row->lm_ass_id] = $lm;
 
  484                                        'refId'         => $material[
'ref_id'],
 
  485                                        'objId'         => $material[
'obj_id'],
 
  486                                        'type'          => $material[
'type'],
 
  487                                        'position'      => $material[
'position']
 
const DB_FETCHMODE_OBJECT
static _getInstance($a_copy_id)
Get instance of copy wizard options.
class ilCourseObjectiveMaterials
__construct($a_objective_id)
cloneDependencies($a_new_objective, $a_copy_id)
clone objective materials
static _getAssignableMaterials($a_container_id)
Get an array of course material ids that can be assigned to learning objectives No tst,...
isAssigned($a_ref_id, $a_get_id=false)
Check if material is assigned.
static _getAssignedMaterials($a_objective_id)
get assigned materials
static _getAllAssignedMaterials($a_container_id)
Get all assigned materials.
isChapterAssigned($a_ref_id, $a_obj_id)
Check if chapter is assigned.
writePosition($a_ass_id, $a_position)
write position
toXml(ilXmlWriter $writer)
static _lookupContainerIdByObjectiveId($a_objective_id)
Get container of object.
const TYPE_TEST_UNDEFINED
static getInstance($a_container_id)
Get instance by container id.
static _lookupObjId($a_id)
static _getAllReferences($a_id)
get all reference ids of object
static sortArray($array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false, $a_keep_keys=false)
sortArray
xmlElement($tag, $attrs=NULL, $data=Null, $encode=TRUE, $escape=TRUE)
Writes a basic element (no children, just textual content)