ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
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 $DIC;
43
44 $ilDB = $DIC['ilDB'];
45
46 $this->db = &$ilDB;
47
48 $this->objective_id = $a_objective_id;
49
50 $this->__read();
51 }
global $ilDB
$DIC
Definition: xapitoken.php:46

References $DIC, $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 $DIC;
434
435 $tree = $DIC['tree'];
436 $ilDB = $DIC['ilDB'];
437
438 include_once('Modules/Course/classes/class.ilCourseObjective.php');
440 $container_ref_id = current($container_ref_ids);
441
442 // begin-patch lok
443
444 $this->lms = array();
445 $query = "SELECT position,lm_ass_id,lm.ref_id,lm.obj_id,lm.type FROM crs_objective_lm lm " .
446 "JOIN object_reference obr ON lm.ref_id = obr.ref_id " .
447 "JOIN object_data obd ON obr.obj_id = obd.obj_id " .
448 "LEFT JOIN lm_data lmd ON lmd.obj_id = lm.obj_id " .
449 "WHERE objective_id = " . $ilDB->quote($this->getObjectiveId(), 'integer') . " " .
450 "ORDER BY position,obd.title,lmd.title";
451
452 $res = $this->db->query($query);
453 while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
454 if (!$tree->isInTree($row->ref_id) or !$tree->isGrandChild($container_ref_id, $row->ref_id)) {
455 $this->delete($row->lm_ass_id);
456 continue;
457 }
458 if (
459 $row->obj_id > 0 &&
460 ($row->type == 'pg' || $row->type == 'st') &&
461 !ilLMObject::_exists($row->obj_id)
462 ) {
463 continue;
464 }
465 $lm['ref_id'] = $row->ref_id;
466 $lm['obj_id'] = $row->obj_id;
467 $lm['type'] = $row->type;
468 $lm['lm_ass_id'] = $row->lm_ass_id;
469 $lm['position'] = $row->position;
470
471 $this->lms[$row->lm_ass_id] = $lm;
472 }
473
474 // end-patch lok
475
476 return true;
477 }
static _lookupContainerIdByObjectiveId($a_objective_id)
Get container of object.
static _exists($a_id)
checks wether a lm content object with specified id exists or not
static _getAllReferences($a_id)
get all reference ids of object
$query
foreach($_POST as $key=> $value) $res

References $DIC, $ilDB, $query, $res, ilLMObject\_exists(), ilObject\_getAllReferences(), ilCourseObjective\_lookupContainerIdByObjectiveId(), ilDBConstants\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 211 of file class.ilCourseObjectiveMaterials.php.

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

References $DIC, $ilDB, $query, $res, and ilDBConstants\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 164 of file class.ilCourseObjectiveMaterials.php.

165 {
166 global $DIC;
167
168 $tree = $DIC['tree'];
169 $ilDB = $DIC['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 switch ($material['type']) {
179 case 'tst':
180
181 include_once './Modules/Course/classes/class.ilCourseObjectiveMaterials.php';
182 $type = ilLOTestAssignments::getInstance($container_obj_id)->getTypeByTest($material['child']);
184 break;
185 }
186
187 $assignable[] = $material;
188 break;
189
190 case 'crs':
191 case 'rolf':
192 case 'itgr':
193 break;
194
195 default:
196 $assignable[] = $material;
197 break;
198 }
199 }
200 return $assignable ? $assignable : array();
201 }
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
$type

References $DIC, $ilDB, $type, 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 137 of file class.ilCourseObjectiveMaterials.php.

138 {
139 global $DIC;
140
141 $ilDB = $DIC['ilDB'];
142
143 $query = "SELECT DISTINCT(ref_id) ref_id FROM crs_objective_lm " .
144 "WHERE objective_id = " . $ilDB->quote($a_objective_id, 'integer');
145 $res = $ilDB->query($query);
146 while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
147 $ref_ids[] = $row->ref_id;
148 }
149 return $ref_ids ? $ref_ids : array();
150 }

References $DIC, $ilDB, $query, $res, and ilDBConstants\FETCHMODE_OBJECT.

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

+ Here is the caller graph for this function:

◆ add()

ilCourseObjectiveMaterials::add ( )

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

359 {
360 global $DIC;
361
362 $ilDB = $DIC['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 (int) $next_id;
376 }

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

+ Here is the call graph for this function:

◆ checkExists()

ilCourseObjectiveMaterials::checkExists ( )

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

337 {
338 global $DIC;
339
340 $ilDB = $DIC['ilDB'];
341
342 if ($this->getLMObjId()) {
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 } else {
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 }
352
353 $res = $this->db->query($query);
354
355 return $res->numRows() ? true : false;
356 }

References $DIC, $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 62 of file class.ilCourseObjectiveMaterials.php.

63 {
64 global $DIC;
65
66 $ilObjDataCache = $DIC['ilObjDataCache'];
67 $ilLog = $DIC['ilLog'];
68
69 include_once('Services/CopyWizard/classes/class.ilCopyWizardOptions.php');
70 $cwo = ilCopyWizardOptions::_getInstance($a_copy_id);
71 $mappings = $cwo->getMappings();
72 #$ilLog->write(__METHOD__.': 1');
73 foreach ($this->getMaterials() as $material) {
74 #$ilLog->write(__METHOD__.': 2');
75 // Copy action omit ?
76 if (!isset($mappings[$material['ref_id']]) or !$mappings[$material['ref_id']]) {
77 continue;
78 }
79 #$ilLog->write(__METHOD__.': 3');
80 $material_ref_id = $material['ref_id'];
81 $material_rbac_obj_id = $ilObjDataCache->lookupObjId($material_ref_id);
82 $material_obj_id = $material['obj_id'];
83 $new_ref_id = $mappings[$material_ref_id];
84 $new_rbac_obj_id = $ilObjDataCache->lookupObjId($new_ref_id);
85 #$ilLog->write(__METHOD__.': 4');
86
87 // Link
88 if ($new_rbac_obj_id == $material_rbac_obj_id) {
89 #$ilLog->write(__METHOD__.': 5');
90 $ilLog->write(__METHOD__ . ': Material has been linked. Keeping object id.');
91 $new_obj_id = $material_obj_id;
92 } elseif ($material['type'] == 'st' or $material['type'] == 'pg') {
93
94 #$GLOBALS['DIC']['ilLog']->write(__METHOD__.': '.print_r($material,TRUE));
95 #$GLOBALS['DIC']['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 $ilLog->write(__METHOD__ . ': No mapping found for chapter: ' . $material_obj_id);
105 continue;
106 }
107 $new_obj_id = $new_material_arr[1];
108 $ilLog->write(__METHOD__ . ': New material id is: ' . $new_obj_id);
109 } else {
110 #$ilLog->write(__METHOD__.': 7');
111 // Any type
112 $new_obj_id = $ilObjDataCache->lookupObjId($mappings[$material_ref_id]);
113 }
114
115 #$ilLog->write(__METHOD__.': 8');
116 $new_material = new ilCourseObjectiveMaterials($a_new_objective);
117 #$ilLog->write(__METHOD__.': 8.1');
118 $new_material->setLMRefId($new_ref_id);
119 #$ilLog->write(__METHOD__.': 8.2');
120 $new_material->setLMObjId($new_obj_id);
121 #$ilLog->write(__METHOD__.': 8.3');
122 $new_material->setType($material['type']);
123 #$ilLog->write(__METHOD__.': 8.4');
124 $new_material->add();
125 #$ilLog->write(__METHOD__.': 9');
126 }
127 }
static _getInstance($a_copy_id)
Get instance of copy wizard options.
class ilCourseObjectiveMaterials

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

+ Here is the call graph for this function:

◆ delete()

ilCourseObjectiveMaterials::delete (   $lm_id)

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

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

References $DIC, $ilDB, $query, and $res.

◆ deleteAll()

ilCourseObjectiveMaterials::deleteAll ( )

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

395 {
396 global $DIC;
397
398 $ilDB = $DIC['ilDB'];
399
400 $query = "DELETE FROM crs_objective_lm " .
401 "WHERE objective_id = " . $ilDB->quote($this->getObjectiveId(), 'integer') . " ";
402 $res = $ilDB->manipulate($query);
403 return true;
404 }

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

+ Here is the call graph for this function:

◆ getChapters()

ilCourseObjectiveMaterials::getChapters ( )

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

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

◆ getLM()

ilCourseObjectiveMaterials::getLM (   $lm_id)

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

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

◆ getLMObjId()

ilCourseObjectiveMaterials::getLMObjId ( )

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

272 {
273 return $this->lm_obj_id ? $this->lm_obj_id : 0;
274 }

Referenced by add(), and checkExists().

+ Here is the caller graph for this function:

◆ getLMRefId()

ilCourseObjectiveMaterials::getLMRefId ( )

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

264 {
265 return $this->lm_ref_id ? $this->lm_ref_id : 0;
266 }

Referenced by add(), and checkExists().

+ Here is the caller graph for this function:

◆ getMaterials()

ilCourseObjectiveMaterials::getMaterials ( )

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

232 {
233 return $this->lms ? $this->lms : array();
234 }

Referenced by cloneDependencies(), and toXml().

+ Here is the caller graph for this function:

◆ getObjectiveId()

ilCourseObjectiveMaterials::getObjectiveId ( )

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

280 {
281 return $this->type;
282 }

References $type.

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

293 {
294 global $DIC;
295
296 $ilDB = $DIC['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 return $res->numRows() ? true : false;
307 } else {
308 $row = $this->db->fetchAssoc($res);
309 return $row["lm_ass_id"];
310 }
311 // end-patch lok
312 }

References $DIC, $ilDB, $query, $res, 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 322 of file class.ilCourseObjectiveMaterials.php.

323 {
324 global $DIC;
325
326 $ilDB = $DIC['ilDB'];
327
328 $query = "SELECT * FROM crs_objective_lm " .
329 "WHERE ref_id = " . $this->db->quote($a_ref_id, 'integer') . " " .
330 "AND obj_id = " . $this->db->quote($a_obj_id, 'integer') . " " .
331 "AND objective_id = " . $this->db->quote($this->getObjectiveId(), 'integer') . " " .
332 "AND (type = 'st' OR type = 'pg')";
333 $res = $this->db->query($query);
334 return $res->numRows() ? true : false;
335 }

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

+ Here is the call graph for this function:

◆ setLMObjId()

ilCourseObjectiveMaterials::setLMObjId (   $a_obj_id)

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

268 {
269 $this->lm_obj_id = $a_obj_id;
270 }

◆ setLMRefId()

ilCourseObjectiveMaterials::setLMRefId (   $a_ref_id)

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

260 {
261 $this->lm_ref_id = $a_ref_id;
262 }

◆ setType()

ilCourseObjectiveMaterials::setType (   $a_type)

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

276 {
277 $this->type = $a_type;
278 }
$a_type
Definition: workflow.php:92

References $a_type.

◆ toXml()

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

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

486 {
487 foreach ($this->getMaterials() as $material) {
488 $writer->xmlElement(
489 'Material',
490 array(
491 'refId' => $material['ref_id'],
492 'objId' => $material['obj_id'],
493 'type' => $material['type'],
494 'position' => $material['position']
495 )
496 );
497 }
498 return true;
499 }
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 415 of file class.ilCourseObjectiveMaterials.php.

416 {
417 global $DIC;
418
419 $ilDB = $DIC['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 $DIC, $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: