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