ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
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 ()
 
 toXml (ilXmlWriter $writer)
 

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 431 of file class.ilCourseObjectiveMaterials.php.

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

Referenced by __construct().

432  {
433  global $tree,$ilDB;
434 
435  include_once('Modules/Course/classes/class.ilCourseObjective.php');
436  $container_ref_ids = ilObject::_getAllReferences(ilCourseObjective::_lookupContainerIdByObjectiveId($this->objective_id));
437  $container_ref_id = current($container_ref_ids);
438 
439  // begin-patch lok
440 
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";
448 
449  $res = $this->db->query($query);
450  while($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT))
451  {
452  if(!$tree->isInTree($row->ref_id) or !$tree->isGrandChild($container_ref_id,$row->ref_id))
453  {
454  $this->delete($row->lm_ass_id);
455  continue;
456  }
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;
462 
463  $this->lms[$row->lm_ass_id] = $lm;
464  }
465 
466  // end-patch lok
467 
468  return true;
469  }
static _lookupContainerIdByObjectiveId($a_objective_id)
Get container of object.
static _getAllReferences($a_id)
get all reference ids of object
Create styles array
The data for the language used.
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 216 of file class.ilCourseObjectiveMaterials.php.

References $ilDB, $query, $res, $row, array, and ilDBConstants\FETCHMODE_OBJECT.

217  {
218  global $ilDB;
219 
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 ";
226 
227  $res = $ilDB->query($query);
228  while($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT))
229  {
230  $ref_ids[] = $row->ref_id;
231  }
232  return $ref_ids ? $ref_ids : array();
233  }
Create styles array
The data for the language used.
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, ilObject\_lookupObjId(), array, ilLOTestAssignments\getInstance(), ilUtil\sortArray(), and ilLOSettings\TYPE_TEST_UNDEFINED.

Referenced by ilCourseObjectivesGUI\materialAssignment().

168  {
169  global $tree,$ilDB;
170 
171  $container_obj_id = ilObject::_lookupObjId($a_container_id);
172 
173  $all_materials = $tree->getSubTree($tree->getNodeData($a_container_id),true);
174  $all_materials = ilUtil::sortArray($all_materials,'title','asc');
175 
176  // Filter
177  foreach($all_materials as $material)
178  {
179  switch($material['type'])
180  {
181  case 'tst':
182 
183  include_once './Modules/Course/classes/class.ilCourseObjectiveMaterials.php';
184  $type = ilLOTestAssignments::getInstance($container_obj_id)->getTypeByTest($material['child']);
186  {
187  continue;
188  }
189  else
190  {
191  $assignable[] = $material;
192  }
193  break;
194 
195  case 'crs':
196  case 'rolf':
197  case 'itgr':
198  continue;
199 
200  default:
201  $assignable[] = $material;
202  break;
203  }
204  }
205  return $assignable ? $assignable : array();
206  }
static getInstance($a_container_id)
Get instance by container id.
static sortArray($array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false, $a_keep_keys=false)
sortArray
static _lookupObjId($a_id)
Create styles array
The data for the language used.
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, array, and ilDBConstants\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(ilDBConstants::FETCHMODE_OBJECT))
149  {
150  $ref_ids[] = $row->ref_id;
151  }
152  return $ref_ids ? $ref_ids : array();
153  }
Create styles array
The data for the language used.
global $ilDB
+ Here is the caller graph for this function:

◆ add()

ilCourseObjectiveMaterials::add ( )

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

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

366  {
367  global $ilDB;
368 
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) ".
371  "VALUES( ".
372  $ilDB->quote($next_id, 'integer').", ".
373  $ilDB->quote($this->getObjectiveId() ,'integer').", ".
374  $ilDB->quote($this->getLMRefId() ,'integer').", ".
375  $ilDB->quote($this->getLMObjId() ,'integer').", ".
376  $ilDB->quote($this->getType() ,'text').
377  ")";
378  $res = $ilDB->manipulate($query);
379 
380  return (int) $next_id;
381  }
global $ilDB
+ Here is the call graph for this function:

◆ checkExists()

ilCourseObjectiveMaterials::checkExists ( )

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

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

343  {
344  global $ilDB;
345 
346  if($this->getLMObjId())
347  {
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')." ";
352  }
353  else
354  {
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')." ";
358  }
359 
360  $res = $this->db->query($query);
361 
362  return $res->numRows() ? true : false;
363  }
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 382 of file class.ilCourseObjectiveMaterials.php.

References $ilDB, $query, and $res.

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

◆ deleteAll()

ilCourseObjectiveMaterials::deleteAll ( )

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

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

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

◆ getChapters()

ilCourseObjectiveMaterials::getChapters ( )

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

References array.

241  {
242  foreach($this->lms as $lm_data)
243  {
244  if($lm_data['type'] == 'st')
245  {
246  $chapters[] = $lm_data;
247  }
248  if($lm_data['type'] == 'pg')
249  {
250  $chapters[] = $lm_data;
251  }
252  }
253  return $chapters ? $chapters : array();
254  }
Create styles array
The data for the language used.

◆ getLM()

ilCourseObjectiveMaterials::getLM (   $lm_id)

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

References array.

257  {
258  return $this->lms[$lm_id] ? $this->lms[$lm_id] : array();
259  }
Create styles array
The data for the language used.

◆ getLMObjId()

ilCourseObjectiveMaterials::getLMObjId ( )

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

Referenced by add(), and checkExists().

279  {
280  return $this->lm_obj_id ? $this->lm_obj_id : 0;
281  }
+ Here is the caller graph for this function:

◆ getLMRefId()

ilCourseObjectiveMaterials::getLMRefId ( )

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

Referenced by add(), and checkExists().

271  {
272  return $this->lm_ref_id ? $this->lm_ref_id : 0;
273  }
+ Here is the caller graph for this function:

◆ getMaterials()

ilCourseObjectiveMaterials::getMaterials ( )

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

References array.

Referenced by cloneDependencies(), and toXml().

236  {
237  return $this->lms ? $this->lms : array();
238  }
Create styles array
The data for the language used.
+ Here is the caller graph for this function:

◆ getObjectiveId()

ilCourseObjectiveMaterials::getObjectiveId ( )

Definition at line 261 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 286 of file class.ilCourseObjectiveMaterials.php.

Referenced by add().

287  {
288  return $this->type;
289  }
+ 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 299 of file class.ilCourseObjectiveMaterials.php.

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

300  {
301  global $ilDB;
302 
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' ";
307  $res = $this->db->query($query);
308 
309  // begin-patch lok
310  if(!$a_get_id)
311  {
312  return $res->numRows() ? true : false;
313  }
314  else
315  {
316  $row = $this->db->fetchAssoc($res);
317  return $row["lm_ass_id"];
318  }
319  // end-patch lok
320  }
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 330 of file class.ilCourseObjectiveMaterials.php.

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

331  {
332  global $ilDB;
333 
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')";
339  $res = $this->db->query($query);
340  return $res->numRows() ? true : false;
341  }
global $ilDB
+ Here is the call graph for this function:

◆ setLMObjId()

ilCourseObjectiveMaterials::setLMObjId (   $a_obj_id)

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

275  {
276  $this->lm_obj_id = $a_obj_id;
277  }

◆ setLMRefId()

ilCourseObjectiveMaterials::setLMRefId (   $a_ref_id)

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

267  {
268  $this->lm_ref_id = $a_ref_id;
269  }

◆ setType()

ilCourseObjectiveMaterials::setType (   $a_type)

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

References $a_type.

283  {
284  $this->type = $a_type;
285  }
$a_type
Definition: workflow.php:93

◆ toXml()

ilCourseObjectiveMaterials::toXml ( ilXmlWriter  $writer)
Parameters
ilXmlWriter$writer

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

References array, getMaterials(), and ilXmlWriter\xmlElement().

478  {
479  foreach($this->getMaterials() as $material)
480  {
481  $writer->xmlElement(
482  'Material',
483  array(
484  'refId' => $material['ref_id'],
485  'objId' => $material['obj_id'],
486  'type' => $material['type'],
487  'position' => $material['position']
488  )
489  );
490  }
491  return true;
492  }
xmlElement($tag, $attrs=NULL, $data=Null, $encode=TRUE, $escape=TRUE)
Writes a basic element (no children, just textual content)
Create styles array
The data for the language used.
+ Here is the call graph for this function:

◆ writePosition()

ilCourseObjectiveMaterials::writePosition (   $a_ass_id,
  $a_position 
)

write position

public

Parameters
intnew position
Returns

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

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

418  {
419  global $ilDB;
420 
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");
425  $res = $ilDB->manipulate($query);
426  }
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: