XOOPS 2.5.6  Final
 All Classes Namespaces Files Functions Variables Pages
formradio.php
Go to the documentation of this file.
1 <?php
24 {
31  var $_options = array();
32 
39  var $_value = null;
40 
48 
55  var $columns;
56 
64  function XoopsFormRadio($caption, $name, $value = null, $delimeter = '&nbsp;')
65  {
66  $this->setCaption($caption);
67  $this->setName($name);
68  if (isset($value)) {
69  $this->setValue($value);
70  }
71  $this->_delimeter = $delimeter;
72  }
73 
80  function getValue($encode = false)
81  {
82  return ($encode && $this->_value !== null) ? htmlspecialchars($this->_value, ENT_QUOTES) : $this->_value;
83  }
84 
90  function setValue($value)
91  {
92  $this->_value = $value;
93  }
94 
101  function addOption($value, $name = '')
102  {
103  if ($name != '') {
104  $this->_options[$value] = $name;
105  } else {
106  $this->_options[$value] = $value;
107  }
108  }
109 
116  {
117  if (is_array($options)) {
118  foreach($options as $k => $v) {
119  $this->addOption($k, $v);
120  }
121  }
122  }
123 
130  function getOptions($encode = false)
131  {
132  if (! $encode) {
133  return $this->_options;
134  }
135  $value = array();
136  foreach($this->_options as $val => $name) {
137  $value[$encode ? htmlspecialchars($val, ENT_QUOTES) : $val] = ($encode > 1) ? htmlspecialchars($name, ENT_QUOTES) : $name;
138  }
139  return $value;
140  }
141 
148  function getDelimeter($encode = false)
149  {
150  return $encode ? htmlspecialchars(str_replace('&nbsp;', ' ', $this->_delimeter)) : $this->_delimeter;
151  }
152 
158  function render()
159  {
160  $ret = '';
161  $ele_name = $this->getName();
162  $ele_title = $this->getTitle();
163  $ele_value = $this->getValue();
164  $ele_options = $this->getOptions();
165  $ele_extra = $this->getExtra();
166  $ele_delimeter = empty($this->columns) ? $this->getDelimeter() : '';
167  if (! empty($this->columns)) {
168  $ret .= '<table><tr>';
169  }
170  $i = 0;
171  $id_ele = 0;
172  foreach($ele_options as $value => $name) {
173  $id_ele++;
174  if (! empty($this->columns)) {
175  if ($i % $this->columns == 0) {
176  $ret .= '<tr>';
177  }
178  $ret .= '<td>';
179  }
180  $ret .= '<input type="radio" name="' . $ele_name . '" id="' . $ele_name . $id_ele. '" title = "' . htmlspecialchars($ele_title, ENT_QUOTES) . '" value="' . htmlspecialchars($value, ENT_QUOTES) . '"';
181  if (isset($ele_value) && $value == $ele_value) {
182  $ret .= ' checked="checked"';
183  }
184  $ret .= $ele_extra . ' />' . "<label name='xolb_{$ele_name}' for='" . $ele_name . $id_ele. "'>" . $name . "</label>" . $ele_delimeter ;
185  if (! empty($this->columns)) {
186  $ret .= '</td>';
187  if (++ $i % $this->columns == 0) {
188  $ret .= '</tr>';
189  }
190  }
191  }
192  if (! empty($this->columns)) {
193  if ($span = $i % $this->columns) {
194  $ret .= '<td colspan="' . ($this->columns - $span) . '"></td></tr>';
195  }
196  $ret .= '</table>';
197  }
198  return $ret;
199  }
200 }
201 
202 ?>