ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
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.

41 {
42 global $ilDB;
43
44 $this->db =& $ilDB;
45
46 $this->objective_id = $a_objective_id;
47
48 $this->__read();
49 }
global $ilDB

References $ilDB, and __read().

+ Here is the call graph for this function:

Member Function Documentation

◆ __read()

ilCourseObjectiveMaterials::__read ( )

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

432 {
433 global $tree,$ilDB;
434
435 include_once('Modules/Course/classes/class.ilCourseObjective.php');
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(DB_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 }
const DB_FETCHMODE_OBJECT
Definition: class.ilDB.php:11
static _lookupContainerIdByObjectiveId($a_objective_id)
Get container of object.
static _getAllReferences($a_id)
get all reference ids of object

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

Referenced by __construct().

+ 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.

@access public

Parameters
in

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

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(DB_FETCHMODE_OBJECT))
229 {
230 $ref_ids[] = $row->ref_id;
231 }
232 return $ref_ids ? $ref_ids : array();
233 }

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

◆ _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.

@access public

Parameters
intobj id of course
Returns
array data of course materials

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

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 _lookupObjId($a_id)
static sortArray($array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false, $a_keep_keys=false)
sortArray

References $ilDB, ilObject\_lookupObjId(), ilLOTestAssignments\getInstance(), ilUtil\sortArray(), and ilLOSettings\TYPE_TEST_UNDEFINED.

Referenced by ilCourseObjectivesGUI\materialAssignment().

+ 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

@access public

Parameters
intobjective_id
Returns

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

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 }

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

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

+ Here is the caller graph for this function:

◆ add()

ilCourseObjectiveMaterials::add ( )

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

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 }

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

+ Here is the call graph for this function:

◆ checkExists()

ilCourseObjectiveMaterials::checkExists ( )

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

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 }

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

+ Here is the call graph for this function:

◆ cloneDependencies()

ilCourseObjectiveMaterials::cloneDependencies (   $a_new_objective,
  $a_copy_id 
)

clone objective materials

@access public

Parameters
intsource objective
inttarget objective
intcopy id

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

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 }
static _getInstance($a_copy_id)
Get instance of copy wizard options.
class ilCourseObjectiveMaterials

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

+ Here is the call graph for this function:

◆ delete()

ilCourseObjectiveMaterials::delete (   $lm_id)

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

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 }

References $ilDB, $query, and $res.

◆ deleteAll()

ilCourseObjectiveMaterials::deleteAll ( )

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

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 }

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

+ Here is the call graph for this function:

◆ getChapters()

ilCourseObjectiveMaterials::getChapters ( )

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

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 }

◆ getLM()

ilCourseObjectiveMaterials::getLM (   $lm_id)

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

257 {
258 return $this->lms[$lm_id] ? $this->lms[$lm_id] : array();
259 }

◆ getLMObjId()

ilCourseObjectiveMaterials::getLMObjId ( )

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

279 {
280 return $this->lm_obj_id ? $this->lm_obj_id : 0;
281 }

Referenced by add(), and checkExists().

+ Here is the caller graph for this function:

◆ getLMRefId()

ilCourseObjectiveMaterials::getLMRefId ( )

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

271 {
272 return $this->lm_ref_id ? $this->lm_ref_id : 0;
273 }

Referenced by add(), and checkExists().

+ Here is the caller graph for this function:

◆ getMaterials()

ilCourseObjectiveMaterials::getMaterials ( )

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

236 {
237 return $this->lms ? $this->lms : array();
238 }

Referenced by cloneDependencies(), and toXml().

+ 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.

287 {
288 return $this->type;
289 }

Referenced by add().

+ Here is the caller graph for this function:

◆ isAssigned()

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

Check if material is assigned.

@access public

Parameters
intref id
Returns
bool

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

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 }

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

+ Here is the call graph for this function:

◆ isChapterAssigned()

ilCourseObjectiveMaterials::isChapterAssigned (   $a_ref_id,
  $a_obj_id 
)

Check if chapter is assigned.

@access public

Parameters
intref id
Returns
bool

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

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 }

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

+ 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.

283 {
284 $this->type = $a_type;
285 }

◆ toXml()

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

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

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)

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

+ Here is the call graph for this function:

◆ writePosition()

ilCourseObjectiveMaterials::writePosition (   $a_ass_id,
  $a_position 
)

write position

@access public

Parameters
intnew position
Returns

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

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 }

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

+ 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: