1<?php
2/*
3    +-----------------------------------------------------------------------------+
4    | ILIAS open source                                                           |
5    +-----------------------------------------------------------------------------+
6    | Copyright (c) 1998-2006 ILIAS open source, University of Cologne            |
7    |                                                                             |
8    | This program is free software; you can redistribute it and/or               |
9    | modify it under the terms of the GNU General Public License                 |
10    | as published by the Free Software Foundation; either version 2              |
11    | of the License, or (at your option) any later version.                      |
12    |                                                                             |
13    | This program is distributed in the hope that it will be useful,             |
14    | but WITHOUT ANY WARRANTY; without even the implied warranty of              |
15    | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               |
16    | GNU General Public License for more details.                                |
17    |                                                                             |
18    | You should have received a copy of the GNU General Public License           |
19    | along with this program; if not, write to the Free Software                 |
20    | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. |
21    +-----------------------------------------------------------------------------+
22*/
23
24include_once('Services/Table/classes/class.ilTable2GUI.php');
25
26/**
27*
28*
29* @author Stefan Meyer <meyer@leifos.com>
30* @version $Id$
31*
32*
33* @ingroup ServicesAccessControl
34*/
35class ilRoleSelectionTableGUI extends ilTable2GUI
36{
37
38    /**
39     *
40     * @return
41     * @param object $a_parent_obj
42     * @param object $a_parent_cmd
43     */
44    public function __construct($a_parent_obj, $a_parent_cmd)
45    {
46        global $DIC;
47
48        $lng = $DIC['lng'];
49        $ilCtrl = $DIC['ilCtrl'];
50
51        $this->lng = $lng;
52        $this->ctrl = $ilCtrl;
53
54        parent::__construct($a_parent_obj, $a_parent_cmd);
55        $this->addColumn('', 'f', 1);
56        $this->addColumn($this->lng->txt('title'), 'title', "70%");
57        $this->addColumn($this->lng->txt('context'), 'context', "30%");
58
59        $this->setFormAction($this->ctrl->getFormAction($a_parent_obj));
60        $this->setRowTemplate("tpl.show_role_selection_row.html", "Services/AccessControl");
61        $this->setDefaultOrderField('type');
62        $this->setDefaultOrderDirection("desc");
63    }
64
65
66    /**
67     * Fill row
68     *
69     * @access public
70     * @param array row data
71     *
72     */
73    public function fillRow($a_set)
74    {
75        $this->tpl->setVariable('VAL_ID', $a_set['id']);
76        $this->tpl->setVariable('VAL_TITLE', $a_set['title']);
77        if (strlen($a_set['description'])) {
78            $this->tpl->setVariable('VAL_DESC', $a_set['description']);
79        }
80
81        $this->tpl->setVariable('VAL_CONTEXT', $a_set['context']);
82    }
83
84
85    /**
86     * Parse Search entries
87     *
88     * @access public
89     * @param array array of search entries
90     *
91     */
92    public function parse($entries)
93    {
94        global $DIC;
95
96        $rbacreview = $DIC['rbacreview'];
97
98        include_once './Services/AccessControl/classes/class.ilObjRole.php';
99        foreach ($entries as $entry) {
100            $tmp_arr['id'] = $entry['obj_id'];
101            $tmp_arr['title'] = ilObjRole::_getTranslation(ilObject::_lookupTitle($entry['obj_id']));
102            $tmp_arr['description'] = ilObject::_lookupDescription($entry['obj_id']);
103            $tmp_arr['context'] = ilObject::_lookupTitle($rbacreview->getObjectOfRole($entry['obj_id']));
104
105            $records_arr[] = $tmp_arr;
106        }
107
108        $this->setData($records_arr ? $records_arr : array());
109    }
110}
111