ILIAS  release_5-0 Revision 5.0.0-1144-gc4397b1f870
All Data Structures Namespaces Files Functions Variables Modules Pages
ilCourseObjectiveMaterials Class Reference

class ilCourseObjectiveMaterials More...

+ Collaboration diagram for ilCourseObjectiveMaterials:

Public Member Functions

 __construct ($a_objective_id)
 
 cloneDependencies ($a_new_objective, $a_copy_id)
 clone objective materials More...
 
 getMaterials ()
 
 getChapters ()
 
 getLM ($lm_id)
 
 getObjectiveId ()
 
 setLMRefId ($a_ref_id)
 
 getLMRefId ()
 
 setLMObjId ($a_obj_id)
 
 getLMObjId ()
 
 setType ($a_type)
 
 getType ()
 
 isAssigned ($a_ref_id, $a_get_id=false)
 Check if material is assigned. More...
 
 isChapterAssigned ($a_ref_id, $a_obj_id)
 Check if chapter is assigned. More...
 
 checkExists ()
 
 add ()
 
 delete ($lm_id)
 
 deleteAll ()
 
 writePosition ($a_ass_id, $a_position)
 write position More...
 
 __read ()
 

Static Public Member Functions

static _getAssignedMaterials ($a_objective_id)
 get assigned materials More...
 
static _getAssignableMaterials ($a_container_id)
 Get an array of course material ids that can be assigned to learning objectives No tst, fold and grp. More...
 
static _getAllAssignedMaterials ($a_container_id)
 Get all assigned materials. More...
 

Data Fields

 $db = null
 
 $objective_id = null
 
 $lms
 

Detailed Description

class ilCourseObjectiveMaterials

Author
Stefan Meyer meyer.nosp@m.@lei.nosp@m.fos.c.nosp@m.om
Version
Id
lass.ilCourseObjectiveMaterials.php 13383 2007-03-02 10:54:46 +0000 (Fr, 02 Mrz 2007) smeyer

Definition at line 33 of file class.ilCourseObjectiveMaterials.php.

Constructor & Destructor Documentation

◆ __construct()

ilCourseObjectiveMaterials::__construct (   $a_objective_id)

Definition at line 40 of file class.ilCourseObjectiveMaterials.php.

References $ilDB, and __read().

41  {
42  global $ilDB;
43 
44  $this->db =& $ilDB;
45 
46  $this->objective_id = $a_objective_id;
47 
48  $this->__read();
49  }
global $ilDB
+ Here is the call graph for this function:

Member Function Documentation

◆ __read()

ilCourseObjectiveMaterials::__read ( )

Definition at line 426 of file class.ilCourseObjectiveMaterials.php.

References $ilDB, $query, $res, $row, ilObject\_getAllReferences(), ilCourseObjective\_lookupContainerIdByObjectiveId(), DB_FETCHMODE_OBJECT, and getObjectiveId().

Referenced by __construct().

427  {
428  global $tree,$ilDB;
429 
430  include_once('Modules/Course/classes/class.ilCourseObjective.php');
431  $container_ref_ids = ilObject::_getAllReferences(ilCourseObjective::_lookupContainerIdByObjectiveId($this->objective_id));
432  $container_ref_id = current($container_ref_ids);
433 
434  // begin-patch lok
435 
436  $this->lms = array();
437  $query = "SELECT position,lm_ass_id,lm.ref_id,lm.obj_id,lm.type FROM crs_objective_lm lm ".
438  "JOIN object_reference obr ON lm.ref_id = obr.ref_id ".
439  "JOIN object_data obd ON obr.obj_id = obd.obj_id ".
440  "LEFT JOIN lm_data lmd ON lmd.obj_id = lm.obj_id ".
441  "WHERE objective_id = ".$ilDB->quote($this->getObjectiveId(),'integer')." ".
442  "ORDER BY position,obd.title,lmd.title";
443 
444  $res = $this->db->query($query);
445  while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
446  {
447  if(!$tree->isInTree($row->ref_id) or !$tree->isGrandChild($container_ref_id,$row->ref_id))
448  {
449  $this->delete($row->lm_ass_id);
450  continue;
451  }
452  $lm['ref_id'] = $row->ref_id;
453  $lm['obj_id'] = $row->obj_id;
454  $lm['type'] = $row->type;
455  $lm['lm_ass_id'] = $row->lm_ass_id;
456  $lm['position'] = $row->position;
457 
458  $this->lms[$row->lm_ass_id] = $lm;
459  }
460 
461  // end-patch lok
462 
463  return true;
464  }
static _lookupContainerIdByObjectiveId($a_objective_id)
Get container of object.
static _getAllReferences($a_id)
get all reference ids of object
const DB_FETCHMODE_OBJECT
Definition: class.ilDB.php:11
global $ilDB
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _getAllAssignedMaterials()

static ilCourseObjectiveMaterials::_getAllAssignedMaterials (   $a_container_id)
static

Get all assigned materials.

public

Parameters
in

Definition at line 211 of file class.ilCourseObjectiveMaterials.php.

References $ilDB, $query, $res, $row, and DB_FETCHMODE_OBJECT.

212  {
213  global $ilDB;
214 
215  $query = "SELECT DISTINCT(com.ref_id) ref_id FROM crs_objectives co ".
216  "JOIN crs_objective_lm com ON co.objective_id = com.objective_id ".
217  "JOIN object_reference obr ON com.ref_id = obr.ref_id ".
218  "JOIN object_data obd ON obr.obj_id = obd.obj_id ".
219  "WHERE co.crs_id = ".$ilDB->quote($a_container_id,'integer')." ".
220  "ORDER BY obd.title ";
221 
222  $res = $ilDB->query($query);
223  while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
224  {
225  $ref_ids[] = $row->ref_id;
226  }
227  return $ref_ids ? $ref_ids : array();
228  }
const DB_FETCHMODE_OBJECT
Definition: class.ilDB.php:11
global $ilDB

◆ _getAssignableMaterials()

static ilCourseObjectiveMaterials::_getAssignableMaterials (   $a_container_id)
static

Get an array of course material ids that can be assigned to learning objectives No tst, fold and grp.

public

Parameters
intobj id of course
Returns
array data of course materials

Definition at line 167 of file class.ilCourseObjectiveMaterials.php.

References $ilDB, ilLOSettings\getInstanceByObjId(), and ilUtil\sortArray().

Referenced by ilCourseObjectivesGUI\materialAssignment().

168  {
169  global $tree,$ilDB;
170 
171  $all_materials = $tree->getSubTree($tree->getNodeData($a_container_id),true);
172  $all_materials = ilUtil::sortArray($all_materials,'title','asc');
173 
174  // Filter
175  foreach($all_materials as $material)
176  {
177  switch($material['type'])
178  {
179  case 'tst':
180  if(ilLOSettings::getInstanceByObjId($a_container_id)->isObjectiveTest($material['child']))
181  {
182  continue;
183  }
184  else
185  {
186  $assignable[] = $material;
187  }
188  break;
189 
190  case 'crs':
191  case 'rolf':
192  case 'itgr':
193  continue;
194 
195  default:
196  $assignable[] = $material;
197  break;
198  }
199  }
200  return $assignable ? $assignable : array();
201  }
static getInstanceByObjId($a_obj_id)
get singleton instance
static sortArray($array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false, $a_keep_keys=false)
sortArray
global $ilDB
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _getAssignedMaterials()

static ilCourseObjectiveMaterials::_getAssignedMaterials (   $a_objective_id)
static

get assigned materials

public

Parameters
intobjective_id
Returns

Definition at line 141 of file class.ilCourseObjectiveMaterials.php.

References $ilDB, $query, $res, $row, and DB_FETCHMODE_OBJECT.

Referenced by ilContainerObjectiveGUI\buildObjectiveMap(), and ilObjectActivation\getItemsByObjective().

142  {
143  global $ilDB;
144 
145  $query = "SELECT DISTINCT(ref_id) ref_id FROM crs_objective_lm ".
146  "WHERE objective_id = ".$ilDB->quote($a_objective_id ,'integer');
147  $res = $ilDB->query($query);
148  while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
149  {
150  $ref_ids[] = $row->ref_id;
151  }
152  return $ref_ids ? $ref_ids : array();
153  }
const DB_FETCHMODE_OBJECT
Definition: class.ilDB.php:11
global $ilDB
+ Here is the caller graph for this function:

◆ add()

ilCourseObjectiveMaterials::add ( )

Definition at line 360 of file class.ilCourseObjectiveMaterials.php.

References $ilDB, $query, $res, getLMObjId(), getLMRefId(), getObjectiveId(), and getType().

361  {
362  global $ilDB;
363 
364  $next_id = $ilDB->nextId('crs_objective_lm');
365  $query = "INSERT INTO crs_objective_lm (lm_ass_id,objective_id,ref_id,obj_id,type) ".
366  "VALUES( ".
367  $ilDB->quote($next_id, 'integer').", ".
368  $ilDB->quote($this->getObjectiveId() ,'integer').", ".
369  $ilDB->quote($this->getLMRefId() ,'integer').", ".
370  $ilDB->quote($this->getLMObjId() ,'integer').", ".
371  $ilDB->quote($this->getType() ,'text').
372  ")";
373  $res = $ilDB->manipulate($query);
374 
375  return true;
376  }
global $ilDB
+ Here is the call graph for this function:

◆ checkExists()

ilCourseObjectiveMaterials::checkExists ( )

Definition at line 337 of file class.ilCourseObjectiveMaterials.php.

References $ilDB, $query, $res, getLMObjId(), getLMRefId(), and getObjectiveId().

338  {
339  global $ilDB;
340 
341  if($this->getLMObjId())
342  {
343  $query = "SELECT * FROM crs_objective_lm ".
344  "WHERE objective_id = ".$ilDB->quote($this->getObjectiveId() ,'integer')." ".
345  "AND ref_id = ".$ilDB->quote($this->getLMRefId() ,'integer')." ".
346  "AND obj_id = ".$ilDB->quote($this->getLMObjId() ,'integer')." ";
347  }
348  else
349  {
350  $query = "SELECT * FROM crs_objective_lm ".
351  "WHERE objective_id = ".$ilDB->quote($this->getObjectiveId() ,'integer')." ".
352  "AND ref_id = ".$ilDB->quote($this->getLMRefId() ,'integer')." ";
353  }
354 
355  $res = $this->db->query($query);
356 
357  return $res->numRows() ? true : false;
358  }
global $ilDB
+ Here is the call graph for this function:

◆ cloneDependencies()

ilCourseObjectiveMaterials::cloneDependencies (   $a_new_objective,
  $a_copy_id 
)

clone objective materials

public

Parameters
intsource objective
inttarget objective
intcopy id

Definition at line 60 of file class.ilCourseObjectiveMaterials.php.

References $ilLog, ilCopyWizardOptions\_getInstance(), and getMaterials().

61  {
62  global $ilObjDataCache,$ilLog;
63 
64  include_once('Services/CopyWizard/classes/class.ilCopyWizardOptions.php');
65  $cwo = ilCopyWizardOptions::_getInstance($a_copy_id);
66  $mappings = $cwo->getMappings();
67  #$ilLog->write(__METHOD__.': 1');
68  foreach($this->getMaterials() as $material)
69  {
70  #$ilLog->write(__METHOD__.': 2');
71  // Copy action omit ?
72  if(!isset($mappings[$material['ref_id']]) or !$mappings[$material['ref_id']])
73  {
74  continue;
75  }
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');
83 
84  // Link
85  if($new_rbac_obj_id == $material_rbac_obj_id)
86  {
87  #$ilLog->write(__METHOD__.': 5');
88  $ilLog->write(__METHOD__.': Material has been linked. Keeping object id.');
89  $new_obj_id = $material_obj_id;
90  }
91  elseif($material['type'] == 'st' or $material['type'] == 'pg')
92  {
93 
94  #$GLOBALS['ilLog']->write(__METHOD__.': '.print_r($material,TRUE));
95  #$GLOBALS['ilLog']->write(__METHOD__.': '.print_r($mappings,TRUE));
96 
97  #$ilLog->write(__METHOD__.': 6');
98  // Chapter assignment
99  $new_material_info = isset($mappings[$material_ref_id.'_'.$material_obj_id]) ?
100  $mappings[$material_ref_id.'_'.$material_obj_id] :
101  '';
102  $new_material_arr = explode('_',$new_material_info);
103  if(!isset($new_material_arr[1]) or !$new_material_arr[1])
104  {
105  $ilLog->write(__METHOD__.': No mapping found for chapter: '.$material_obj_id);
106  continue;
107  }
108  $new_obj_id = $new_material_arr[1];
109  $ilLog->write(__METHOD__.': New material id is: '.$new_obj_id);
110  }
111  else
112  {
113  #$ilLog->write(__METHOD__.': 7');
114  // Any type
115  $new_obj_id = $ilObjDataCache->lookupObjId($mappings[$material_ref_id]);
116  }
117 
118  #$ilLog->write(__METHOD__.': 8');
119  $new_material = new ilCourseObjectiveMaterials($a_new_objective);
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');
129 
130  }
131  }
class ilCourseObjectiveMaterials
static _getInstance($a_copy_id)
Get instance of copy wizard options.
+ Here is the call graph for this function:

◆ delete()

ilCourseObjectiveMaterials::delete (   $lm_id)

Definition at line 377 of file class.ilCourseObjectiveMaterials.php.

References $ilDB, $query, and $res.

378  {
379  global $ilDB;
380 
381  if(!$lm_id)
382  {
383  return false;
384  }
385 
386  $query = "DELETE FROM crs_objective_lm ".
387  "WHERE lm_ass_id = ".$ilDB->quote($lm_id ,'integer')." ";
388  $res = $ilDB->manipulate($query);
389 
390  return true;
391  }
global $ilDB

◆ deleteAll()

ilCourseObjectiveMaterials::deleteAll ( )

Definition at line 393 of file class.ilCourseObjectiveMaterials.php.

References $ilDB, $query, $res, and getObjectiveId().

394  {
395  global $ilDB;
396 
397  $query = "DELETE FROM crs_objective_lm ".
398  "WHERE objective_id = ".$ilDB->quote($this->getObjectiveId() ,'integer')." ";
399  $res = $ilDB->manipulate($query);
400  return true;
401  }
global $ilDB
+ Here is the call graph for this function:

◆ getChapters()

ilCourseObjectiveMaterials::getChapters ( )

Definition at line 235 of file class.ilCourseObjectiveMaterials.php.

236  {
237  foreach($this->lms as $lm_data)
238  {
239  if($lm_data['type'] == 'st')
240  {
241  $chapters[] = $lm_data;
242  }
243  if($lm_data['type'] == 'pg')
244  {
245  $chapters[] = $lm_data;
246  }
247  }
248  return $chapters ? $chapters : array();
249  }

◆ getLM()

ilCourseObjectiveMaterials::getLM (   $lm_id)

Definition at line 251 of file class.ilCourseObjectiveMaterials.php.

252  {
253  return $this->lms[$lm_id] ? $this->lms[$lm_id] : array();
254  }

◆ getLMObjId()

ilCourseObjectiveMaterials::getLMObjId ( )

Definition at line 273 of file class.ilCourseObjectiveMaterials.php.

Referenced by add(), and checkExists().

274  {
275  return $this->lm_obj_id ? $this->lm_obj_id : 0;
276  }
+ Here is the caller graph for this function:

◆ getLMRefId()

ilCourseObjectiveMaterials::getLMRefId ( )

Definition at line 265 of file class.ilCourseObjectiveMaterials.php.

Referenced by add(), and checkExists().

266  {
267  return $this->lm_ref_id ? $this->lm_ref_id : 0;
268  }
+ Here is the caller graph for this function:

◆ getMaterials()

ilCourseObjectiveMaterials::getMaterials ( )

Definition at line 230 of file class.ilCourseObjectiveMaterials.php.

Referenced by cloneDependencies().

231  {
232  return $this->lms ? $this->lms : array();
233  }
+ Here is the caller graph for this function:

◆ getObjectiveId()

ilCourseObjectiveMaterials::getObjectiveId ( )

Definition at line 256 of file class.ilCourseObjectiveMaterials.php.

References $objective_id.

Referenced by __read(), add(), checkExists(), deleteAll(), isAssigned(), isChapterAssigned(), and writePosition().

+ Here is the caller graph for this function:

◆ getType()

ilCourseObjectiveMaterials::getType ( )

Definition at line 281 of file class.ilCourseObjectiveMaterials.php.

Referenced by add().

282  {
283  return $this->type;
284  }
+ Here is the caller graph for this function:

◆ isAssigned()

ilCourseObjectiveMaterials::isAssigned (   $a_ref_id,
  $a_get_id = false 
)

Check if material is assigned.

public

Parameters
intref id
Returns
bool

Definition at line 294 of file class.ilCourseObjectiveMaterials.php.

References $ilDB, $query, $res, $row, and getObjectiveId().

295  {
296  global $ilDB;
297 
298  $query = "SELECT * FROM crs_objective_lm ".
299  "WHERE ref_id = ".$this->db->quote($a_ref_id ,'integer')." ".
300  "AND objective_id = ".$this->db->quote($this->getObjectiveId() ,'integer')." ".
301  "AND type != 'st' AND type != 'pg' ";
302  $res = $this->db->query($query);
303 
304  // begin-patch lok
305  if(!$a_get_id)
306  {
307  return $res->numRows() ? true : false;
308  }
309  else
310  {
311  $row = $this->db->fetchAssoc($res);
312  return $row["lm_ass_id"];
313  }
314  // end-patch lok
315  }
global $ilDB
+ Here is the call graph for this function:

◆ isChapterAssigned()

ilCourseObjectiveMaterials::isChapterAssigned (   $a_ref_id,
  $a_obj_id 
)

Check if chapter is assigned.

public

Parameters
intref id
Returns
bool

Definition at line 325 of file class.ilCourseObjectiveMaterials.php.

References $ilDB, $query, $res, and getObjectiveId().

326  {
327  global $ilDB;
328 
329  $query = "SELECT * FROM crs_objective_lm ".
330  "WHERE ref_id = ".$this->db->quote($a_ref_id ,'integer')." ".
331  "AND obj_id = ".$this->db->quote($a_obj_id ,'integer')." ".
332  "AND objective_id = ".$this->db->quote($this->getObjectiveId() ,'integer')." ".
333  "AND (type = 'st' OR type = 'pg')";
334  $res = $this->db->query($query);
335  return $res->numRows() ? true : false;
336  }
global $ilDB
+ Here is the call graph for this function:

◆ setLMObjId()

ilCourseObjectiveMaterials::setLMObjId (   $a_obj_id)

Definition at line 269 of file class.ilCourseObjectiveMaterials.php.

270  {
271  $this->lm_obj_id = $a_obj_id;
272  }

◆ setLMRefId()

ilCourseObjectiveMaterials::setLMRefId (   $a_ref_id)

Definition at line 261 of file class.ilCourseObjectiveMaterials.php.

262  {
263  $this->lm_ref_id = $a_ref_id;
264  }

◆ setType()

ilCourseObjectiveMaterials::setType (   $a_type)

Definition at line 277 of file class.ilCourseObjectiveMaterials.php.

278  {
279  $this->type = $a_type;
280  }

◆ writePosition()

ilCourseObjectiveMaterials::writePosition (   $a_ass_id,
  $a_position 
)

write position

public

Parameters
intnew position
Returns

Definition at line 412 of file class.ilCourseObjectiveMaterials.php.

References $ilDB, $query, $res, and getObjectiveId().

413  {
414  global $ilDB;
415 
416  $query = "UPDATE crs_objective_lm ".
417  "SET position = ".$this->db->quote((string) $a_position ,'integer')." ".
418  "WHERE objective_id = ".$this->db->quote($this->getObjectiveId() ,'integer')." ".
419  "AND lm_ass_id = ".$ilDB->quote($a_ass_id, "integer");
420  $res = $ilDB->manipulate($query);
421  }
global $ilDB
+ Here is the call graph for this function:

Field Documentation

◆ $db

ilCourseObjectiveMaterials::$db = null

Definition at line 35 of file class.ilCourseObjectiveMaterials.php.

◆ $lms

ilCourseObjectiveMaterials::$lms

Definition at line 38 of file class.ilCourseObjectiveMaterials.php.

◆ $objective_id

ilCourseObjectiveMaterials::$objective_id = null

Definition at line 37 of file class.ilCourseObjectiveMaterials.php.

Referenced by getObjectiveId().


The documentation for this class was generated from the following file: