3 declare(strict_types=0);
39 $this->cronManager = $DIC->cron()->manager();
44 if ($this->
http->wrapper()->query()->has(
'ref_id')) {
45 $this->ref_id = $this->
http->wrapper()->query()->retrieve(
55 if ($this->
http->wrapper()->post()->has(
'item_id')) {
56 return $this->
http->wrapper()->post()->retrieve(
59 $this->
refinery->kindlyTo()->string()
68 $this->tabs_gui->addSubTab(
69 'trac_object_stat_access',
70 $this->
lng->txt(
'trac_object_stat_access'),
71 $this->
ctrl->getLinkTarget($this,
'accessFilter')
73 $this->tabs_gui->addSubTab(
74 'trac_object_stat_daily',
75 $this->
lng->txt(
'trac_object_stat_daily'),
76 $this->
ctrl->getLinkTarget($this,
'dailyFilter')
78 $this->tabs_gui->addSubTab(
79 'trac_object_stat_lp',
80 $this->
lng->txt(
'trac_object_stat_lp'),
81 $this->
ctrl->getLinkTarget($this,
'learningProgressFilter')
83 $this->tabs_gui->addSubTab(
84 'trac_object_stat_types',
85 $this->
lng->txt(
'trac_object_stat_types'),
86 $this->
ctrl->getLinkTarget($this,
'typesFilter')
89 if ($this->rbacsystem->checkAccess(
"visible,read", $this->ref_id)) {
90 $this->tabs_gui->addSubTab(
91 'trac_object_stat_admin',
92 $this->
lng->txt(
'trac_object_stat_admin'),
93 $this->
ctrl->getLinkTarget($this,
'admin')
100 $this->
ctrl->setReturn($this,
"");
103 switch ($this->
ctrl->getNextClass()) {
104 case "illpobjectstatisticstablegui":
111 $this->
ctrl->forwardCommand($lp_table);
114 case "illpobjectstatisticsdailytablegui":
121 $this->
ctrl->forwardCommand($lp_table);
124 case "illpobjectstatisticslptablegui":
131 $this->
ctrl->forwardCommand($lp_table);
148 $lp_table->resetOffset();
149 $lp_table->writeFilterToSession();
161 $lp_table->resetOffset();
162 $lp_table->resetFilter();
171 public function access(
bool $a_load_data =
true): void
173 $this->tabs_gui->activateSubTab(
'trac_object_stat_access');
182 $lp_table->getItems();
184 $lp_table->disable(
"content");
185 $lp_table->disable(
"header");
187 $this->tpl->setContent($lp_table->getHTML());
193 $this->tpl->setOnScreenMessage(
195 $this->
lng->txt(
"no_checkbox")
200 $this->tabs_gui->activateSubTab(
'trac_object_stat_access');
207 $lp_table->getItems();
208 $this->tpl->setContent(
210 $this->initItemIdFromPost()
211 ) . $lp_table->getHTML()
223 $lp_table->resetOffset();
224 $lp_table->writeFilterToSession();
236 $lp_table->resetOffset();
237 $lp_table->resetFilter();
246 public function types(
bool $a_load_data =
true): void
248 $this->tabs_gui->activateSubTab(
'trac_object_stat_types');
259 $lp_table->disable(
"content");
260 $lp_table->disable(
"header");
263 $this->tpl->setContent($lp_table->getHTML());
269 $this->tpl->setOnScreenMessage(
271 $this->
lng->txt(
"no_checkbox")
277 $this->tabs_gui->activateSubTab(
'trac_object_stat_types');
285 $this->tpl->setContent(
287 $this->initItemIdFromPost()
288 ) . $lp_table->getHTML()
300 $lp_table->resetOffset();
301 $lp_table->writeFilterToSession();
313 $lp_table->resetOffset();
314 $lp_table->resetFilter();
323 public function daily(
bool $a_load_data =
true): void
325 $this->tabs_gui->activateSubTab(
'trac_object_stat_daily');
337 $lp_table->getItems();
339 $lp_table->disable(
"content");
340 $lp_table->disable(
"header");
342 $this->tpl->setContent($lp_table->getHTML());
348 $this->tpl->setOnScreenMessage(
350 $this->
lng->txt(
"no_checkbox")
356 $this->tabs_gui->activateSubTab(
'trac_object_stat_daily');
364 $lp_table->getItems();
365 $this->tpl->setContent(
367 $this->initItemIdFromPost()
368 ) . $lp_table->getHTML()
374 $this->tabs_gui->activateSubTab(
'trac_object_stat_admin');
378 if ($this->rbacsystem->checkAccess(
'write', $this->ref_id)) {
380 $this->
lng->txt(
"trac_sync_obj_stats"),
381 $this->
ctrl->getLinkTarget($this,
"adminSync")
385 if ($this->
access->checkAccess(
"delete",
"", $this->ref_id)) {
387 $this->tpl->setContent($lp_table->getHTML());
395 $this->tpl->setOnScreenMessage(
398 "trac_sync_obj_stats_success" 402 $this->
ctrl->redirect($this,
"admin");
408 $this->tpl->setOnScreenMessage(
410 $this->
lng->txt(
"no_checkbox")
416 $this->tabs_gui->clearTargets();
417 $this->tabs_gui->setBackTarget(
418 $this->
lng->txt(
"back"),
419 $this->
ctrl->getLinkTarget($this,
"admin")
424 $cgui->setFormAction($this->
ctrl->getFormAction($this));
425 $cgui->setHeaderText($this->
lng->txt(
"trac_sure_delete_data"));
426 $cgui->setCancel($this->
lng->txt(
"cancel"),
"admin");
427 $cgui->setConfirm($this->
lng->txt(
"delete"),
"deleteData");
431 $caption = $this->
lng->txt(
439 " " . substr($i, 0, 4);
441 $cgui->addItem(
"item_id[]", $i, $caption);
444 $this->tpl->setContent($cgui->getHTML());
450 $this->tpl->setOnScreenMessage(
452 $this->
lng->txt(
"no_checkbox")
459 $this->tpl->setOnScreenMessage(
461 $this->
lng->txt(
"trac_data_deleted")
474 $lp_table->resetOffset();
475 $lp_table->writeFilterToSession();
487 $lp_table->resetOffset();
488 $lp_table->resetFilter();
499 $this->tabs_gui->activateSubTab(
'trac_object_stat_lp');
510 $lp_table->loadItems();
512 $lp_table->disable(
"content");
513 $lp_table->disable(
"header");
515 $this->tpl->setContent($lp_table->getHTML());
521 $this->tpl->setOnScreenMessage(
523 $this->
lng->txt(
"no_checkbox")
529 $this->tabs_gui->activateSubTab(
'trac_object_stat_lp');
537 $lp_table->loadItems();
538 $this->tpl->setContent(
540 $this->initItemIdFromPost()
541 ) . $lp_table->getHTML()
548 if ($this->
http->wrapper()->query()->has(
'item_id')) {
549 $item_id = $this->
http->wrapper()->query()->retrieve(
556 "showLearningProgressDetails",
562 $lp_table->loadItems();
564 "tpl.lp_object_statistics_lp_details.html",
567 "components/ILIAS/Tracking" 569 $a_tpl->setVariable(
"CONTENT", $lp_table->getHTML());
570 $a_tpl->setVariable(
'CLOSE_IMG_TXT', $this->
lng->txt(
'close'));
583 if ($a_show_link && $this->
access->checkAccess(
588 $link =
" <a href=\"" . $this->
ctrl->getLinkTarget(
592 $this->
lng->txt(
"trac_log_info_link") .
"</a>";
595 $this->tpl->setOnScreenMessage(
609 if (!$this->cronManager->isJobActive(
"lp_object_statistics")) {
610 $this->tpl->setOnScreenMessage(
612 $this->
lng->txt(
"trac_cron_info")
applyLearningProgressFilter()
types(bool $a_load_data=true)
daily(bool $a_load_data=true)
showLearningProgressDetails()
access(bool $a_load_data=true)
resetLearningProgressFilter()
static deleteObjectStatistics(array $a_months)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
TableGUI class for learning progress.
static _syncObjectStats(?int $a_now=null, int $a_minimum=20000)
learningProgress(bool $a_load_data=true)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
static http()
Fetches the global http state from ILIAS.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
__construct(int $a_mode, int $a_ref_id=0)
showAggregationInfo(bool $a_show_link=true)
__construct(Container $dic, ilPlugin $plugin)
static formatDate(ilDateTime $date, bool $a_skip_day=false, bool $a_include_wd=false, bool $include_seconds=false, ?ilObjUser $user=null,)
TableGUI class for learning progress.
TableGUI class for learning progress.
showLearningProgressGraph()
static getObjectStatisticsLogInfo()
Get last update info for object statistics.