1<?php
2/* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4/**
5* User interface class for a checkbox list overlay
6*
7* @author Alex Killing <alex.killing@gmx.de>
8* @version $Id:$
9*/
10class ilCheckboxListOverlayGUI
11{
12    /**
13     * @var ilLanguage
14     */
15    protected $lng;
16
17    private $items = array();
18
19    /**
20    * Constructor.
21    *
22    */
23    public function __construct($a_id = "")
24    {
25        global $DIC;
26
27        $this->lng = $DIC->language();
28        $this->setId($a_id);
29    }
30
31    /**
32     * Set id
33     *
34     * @param	string	id
35     */
36    public function setId($a_val)
37    {
38        $this->id = $a_val;
39    }
40
41    /**
42     * Get id
43     *
44     * @return	string	id
45     */
46    public function getId()
47    {
48        return $this->id;
49    }
50
51
52    /**
53     * Set link title
54     *
55     * @param	string	link title
56     */
57    public function setLinkTitle($a_val)
58    {
59        $this->link_title = $a_val;
60    }
61
62    /**
63     * Get link title
64     *
65     * @return	string	link title
66     */
67    public function getLinkTitle()
68    {
69        return $this->link_title;
70    }
71
72    /**
73     * Set items
74     *
75     * @param	array	items
76     */
77    public function setItems($a_val)
78    {
79        $this->items = $a_val;
80    }
81
82    /**
83     * Get items
84     *
85     * @return	array	items
86     */
87    public function getItems()
88    {
89        return $this->items;
90    }
91
92    /**
93    * Set Selection Header Class.
94    *
95    * @param	string	$a_selectionheaderclass	Selection Header Class
96    */
97    public function setSelectionHeaderClass($a_selectionheaderclass)
98    {
99        $this->selectionheaderclass = $a_selectionheaderclass;
100    }
101
102    /**
103    * Get Selection Header Class.
104    *
105    * @return	string	Selection Header Class
106    */
107    public function getSelectionHeaderClass()
108    {
109        return $this->selectionheaderclass;
110    }
111
112    /**
113     * Set form command
114     *
115     * @param	string	form command
116     */
117    public function setFormCmd($a_val)
118    {
119        $this->form_cmd = $a_val;
120    }
121
122    /**
123     * Get form command
124     *
125     * @return	string	form command
126     */
127    public function getFormCmd()
128    {
129        return $this->form_cmd;
130    }
131
132    /**
133     * Set field var
134     *
135     * @param	string	field var
136     */
137    public function setFieldVar($a_val)
138    {
139        $this->field_var = $a_val;
140    }
141
142    /**
143     * Get field var
144     *
145     * @return	string	field var
146     */
147    public function getFieldVar()
148    {
149        return $this->field_var;
150    }
151
152    /**
153     * Set hidden var (used to indicated that checkbox array has been sent in a form)
154     *
155     * @param	string	hidden var
156     */
157    public function setHiddenVar($a_val)
158    {
159        $this->hidden_var = $a_val;
160    }
161
162    /**
163     * Get hidden var
164     *
165     * @return	string	hidden var
166     */
167    public function getHiddenVar()
168    {
169        return $this->hidden_var;
170    }
171    /**
172    * Get selection list HTML
173    */
174    public function getHTML($pull_right = true)
175    {
176        $lng = $this->lng;
177
178        $items = $this->getItems();
179
180        $tpl = new ilTemplate(
181            "tpl.checkbox_list_overlay.html",
182            true,
183            true,
184            "Services/UIComponent/CheckboxListOverlay",
185            "DEFAULT",
186            false,
187            true
188        );
189
190        $tpl->setCurrentBlock("top_img");
191
192        // do not repeat title (accessibility) -> empty alt
193        $tpl->setVariable("TXT_SEL_TOP", $this->getLinkTitle());
194
195        $tpl->parseCurrentBlock();
196
197        reset($items);
198        $cnt = 0;
199        foreach ($items as $k => $v) {
200            $tpl->setCurrentBlock("list_entry");
201            $tpl->setVariable("VAR", $this->getFieldVar());
202            $tpl->setVariable("VAL_ENTRY", $k);
203            $tpl->setVariable("TXT_ENTRY", $v["txt"]);
204            $tpl->setVariable("IDX_ENTRY", ++$cnt);
205            if ($v["selected"]) {
206                $tpl->setVariable("CHECKED", "checked='checked'");
207            }
208            $tpl->parseCurrentBlock();
209        }
210
211        if ($pull_right) {
212            $tpl->touchBlock("pr");
213        }
214
215        $tpl->setVariable("ID", $this->getId());
216        $tpl->setVariable("HIDDEN_VAR", $this->getHiddenVar());
217        $tpl->setVariable("CMD_SUBMIT", $this->getFormCmd());
218        $tpl->setVariable("VAL_SUBMIT", $lng->txt("refresh"));
219        return $tpl->get();
220    }
221}
222