40 include_once
'./Services/Tracking/classes/ItemList/class.ilLPItemListFactory.php';
41 include_once
'./Services/Xml/classes/class.ilXmlWriter.php';
57 $this->current_user_id = $a_tracked_user;
64 return $this->current_user_id;
74 $this->ctrl->setReturn($this,
"");
75 switch($this->ctrl->getNextClass())
78 $cmd = $this->ctrl->getCmd();
87 $this->type = $a_type;
100 include_once
'./Services/Xml/classes/class.ilXmlWriter.php';
103 include_once
'./Services/Tracking/classes/class.ilLPFilter.php';
104 $this->filter =
new ilLPFilter($ilUser->getId());
106 include_once
'./Services/Tracking/classes/class.ilLPFilterGUI.php';
107 $this->filter_gui =
new ilLPFilterGUI($ilUser->getId());
124 $this->ctrl->returnToParent($this);
142 global $ilObjDataCache;
144 include_once
'./Services/Xml/classes/class.ilXmlWriter.php';
146 $this->writer->xmlHeader();
147 $this->writer->xmlStartTag(
'LearningProgress');
148 $this->writer->xmlElement(
'Title',null,$this->lng->txt(
'learning_progress'));
152 $this->writer->xmlElement(
'Header',null,$header);
155 $this->writer->xmlElement(
'Footer',null,
'powered by ILIAS');
158 include_once
'Services/Tracking/classes/ItemList/class.ilLPItemListFactory.php';
159 $this->details_obj_id = $ilObjDataCache->lookupObjId($this->
getRefId());
160 $item_list =& ilLPItemListFactory::_getInstance(0,$this->details_obj_id,$ilObjDataCache->lookupType($this->details_obj_id));
164 $item_list->setCurrentUser($this->current_user_id);
165 $item_list->readUserInfo();
166 $item_list->renderObjectInfoXML($this->writer,
true,
true);
170 $item_list->renderObjectInfoXML($this->writer,
false,
false);
173 include_once
'Services/Tracking/classes/class.ilLPObjSettings.php';
179 $this->writer->xmlEndTag(
'LearningProgress');
187 include_once
'Services/Tracking/classes/class.ilLPMarks.php';
189 global $ilObjDataCache,$ilUser;
199 $all_users = array_merge($completed,$in_progress,$not_attempted,
$failed);
200 $all_users = $this->
__sort($all_users,
'usr_data',
'lastname',
'usr_id');
204 $all_users = array($this->current_user_id);
209 $this->writer->xmlStartTag(
'Items');
210 $this->writer->xmlStartTag(
'ItemHeader');
211 $this->writer->xmlElement(
'HeaderTitle',null,$this->lng->txt(
'trac_objects'));
214 include_once
'Modules/Course/classes/class.ilCourseItems.php';
217 $this->writer->xmlElement(
'HeaderInfo',null,$this->lng->txt(
'trac_head_timing'));
219 $this->writer->xmlEndTag(
'ItemHeader');
222 $this->container_row_counter = 0;
223 foreach($all_users as
$user)
225 $this->writer->xmlStartTag(
'Item');
227 $this->writer->xmlEndTag(
'Item');
229 $this->writer->xmlEndTag(
'Items');
233 global $ilObjDataCache,$ilUser,$ilAccess;
235 include_once
'Services/Tracking/classes/ItemList/class.ilLPItemListFactory.php';
237 $item_list =& ilLPItemListFactory::_getInstanceByRefId($a_parent_id,$a_item_id,
$type);
238 if($this->has_timings)
240 $item_list->readTimings();
241 $item_list->enable(
'timings');
243 $item_list->setCurrentUser($a_usr_id);
244 $item_list->readUserInfo();
245 $item_list->setIndentLevel($level);
248 $item_list->renderObjectDetailsXML($this->writer);
250 if(
$type ==
'sahs_item' or
251 $type ==
'objective' or
257 include_once
'./Services/Tracking/classes/class.ilLPCollectionCache.php';
260 switch($item_list->getMode())
263 $this->writer->xmlStartTag(
'Item');
265 $this->writer->xmlEndTag(
'Item');
269 $this->writer->xmlStartTag(
'Item');
271 $this->writer->xmlEndTag(
'Item');
275 if(!$ilAccess->checkAccess(
'read',
'',$child_id))
279 $this->writer->xmlStartTag(
'Item');
281 $ilObjDataCache->lookupType($ilObjDataCache->lookupObjId($child_id)),$level + 2);
282 $this->writer->xmlEndTag(
'Item');
290 include_once
'Services/Transformation/classes/class.ilXML2FO.php';
293 $xml2FO->setXSLTLocation($this->tpl->getTemplatePath(
'learning_progress_fo.xsl',
'Services/Tracking'));
294 $xml2FO->setXMLString($this->writer->xmlDumpMem());
295 $xml2FO->transform();
297 $this->fo_string = $xml2FO->getFOString();
298 #var_dump("<pre>",htmlentities($this->fo_string),"<pre>");
306 include_once
'./Services/WebServices/RPC/classes/class.ilRpcClientFactory.php';
315 $ilLog->write(__METHOD__.
': '.$e->getMessage());
316 $this->ctrl->returnToParent($this);
322 $ilLog->write(__METHOD__.
': '.$e->getMessage());
323 $this->ctrl->returnToParent($this);
330 global $ilObjDataCache,$ilUser;
333 $this->tpl =
new ilTemplate(
'tpl.lp_pdf_list.xml',
true,
true,
'Services/Tracking');
336 $this->tpl->setVariable(
"FILTER",$this->filter_gui->getFO());
337 $this->filter->setRequiredPermission(
'read');
338 $type = $this->filter->getFilterType();
339 $this->tpl->setVariable(
"TXT_OBJS",$this->lng->txt(
'objs_'.$type));
342 $objs = $this->filter->getObjects();
343 $sorted_objs = $this->
__sort(array_keys($objs),
'object_data',
'title',
'obj_id');
346 foreach($sorted_objs as $object_id)
348 $item_list =& ilLPItemListFactory::_getInstance(0,$object_id,$ilObjDataCache->lookupType($object_id));
350 $item_list->readUserInfo();
351 $item_list->renderSimpleProgressFO();
360 global $ilObjDataCache,$ilUser;
363 $this->tpl =
new ilTemplate(
'tpl.lp_pdf_list.xml',
true,
true,
'Services/Tracking');
366 $this->tpl->setVariable(
"FILTER",$this->filter_gui->getFO());
367 $this->filter->setRequiredPermission(
'read');
368 $type = $this->filter->getFilterType();
369 $this->tpl->setVariable(
"TXT_OBJS",$this->lng->txt(
'objs_'.$type));
372 $objs = $this->filter->getObjects();
373 $sorted_objs = $this->
__sort(array_keys($objs),
'object_data',
'title',
'obj_id');
376 foreach($sorted_objs as $object_id)
378 $item_list =& ilLPItemListFactory::_getInstance(0,$object_id,$ilObjDataCache->lookupType($object_id));
379 #$item_list->setCurrentUser($this->tracked_user->getId());
381 $item_list->readUserInfo();
382 $item_list->renderObjectListFO();
392 global $ilUser,$ilObjDataCache;
394 $this->tpl->setVariable(
"LEARNING_PROGRESS_OF",$this->lng->txt(
'learning_progress'));
399 $this->tpl->setVariable(
"USER_FULLNAME",$name[
'lastname'].
', '.$name[
'firstname']);
412 include_once
'./Services/WebServices/RPC/classes/class.ilRpcClientFactory.php';
422 $ilLog->write(__METHOD__.
': '.$e->getMessage());
423 $this->ctrl->returnToParent($this);
429 $ilLog->write(__METHOD__.
': '.$e->getMessage());
430 $this->ctrl->returnToParent($this);