1<?php
2/* Copyright (c) 1998-2013 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4include_once './Services/Form/classes/class.ilPropertyFormGUI.php';
5
6/**
7 * Class ilSCORM2004TrackingItemsPerUserFilterGUI
8 *
9 * @author Uwe Kohnle <kohnle@internetlehrer-gmbh.de>
10 * @ingroup ModulesScorm2004
11 */
12class ilSCORM2004TrackingItemsPerUserFilterGUI extends ilPropertyFormGUI
13{
14
15    /**
16     * Constructor
17     */
18    public function __construct($a_parent_obj, $a_parent_cmd)
19    {
20        $this->parent_obj = $a_parent_obj;
21        $this->parent_cmd = $a_parent_cmd;
22        parent::__construct($a_parent_obj, $a_parent_cmd);
23    }
24
25    public function parse($userSelected, $report, $reports)
26    {
27        global $DIC;
28        $ilCtrl = $DIC['ilCtrl'];
29        $lng = $DIC['lng'];
30        $lng->loadLanguageModule("scormtrac");
31        $this->form = new ilPropertyFormGUI();
32        $this->form->setFormAction($ilCtrl->getFormAction($this->parent_obj));
33
34        $options = array("all" => $lng->txt("all"));
35
36        include_once "Services/Tracking/classes/class.ilTrQuery.php";
37        $users = ilTrQuery::getParticipantsForObject($this->parent_obj->object->ref_id);
38
39        include_once('./Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
40        $privacy = ilPrivacySettings::_getInstance();
41        $allowExportPrivacy = $privacy->enabledExportSCORM();
42
43        if ($users && count($users) > 0) {
44            foreach ($users as $user) {
45                if (ilObject::_exists($user) && ilObject::_lookUpType($user) == 'usr') {
46                    if ($allowExportPrivacy == true) {
47                        $e_user = new ilObjUser($user);
48                        $options[$user] = $e_user->getLastname() . ", " . $e_user->getFirstname();
49                    } else {
50                        $options[$user] = 'User Id: ' . $user;
51                    }
52                }
53            }
54        } else {
55            $options = array("-1" => $lng->txt("no_items"));
56        }
57
58        $si = new ilSelectInputGUI($lng->txt("user"), "userSelected");
59        $si->setOptions($options);
60        $si->setValue($userSelected);
61        $this->form->addItem($si);
62
63        $options = array("choose" => $lng->txt("please_choose"));
64        for ($i = 0;$i < count($reports);$i++) {
65            $options[$reports[$i]] = $lng->txt(strtolower($reports[$i]));
66        }
67        $si = new ilSelectInputGUI($lng->txt("report"), "report");
68        $si->setOptions($options);
69        $si->setValue($report);
70        $this->form->addItem($si);
71        $this->form->addCommandButton($this->parent_cmd, $lng->txt("apply_filter"));
72    }
73}
74