1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
<?php defined("SYSPATH") or die("No direct script access.");
/**
* Gallery - a web based photo album viewer and editor
* Copyright (C) 2000-2008 Bharat Mediratta
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or (at
* your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
*/
/** * FORGE radio button input library. * */
/* http://forum.kohanaphp.com/comments.php?DiscussionID=164 */
class Form_Radio extends Form_Input {
protected $data = array (
'name' => '',
'class' => 'radio',
'type'=>'radio',
'options'=>array()
);
protected $protect = array('type');
public function __get($key) {
if ($key == 'value') {
return $this->selected;
}
return parent::__get($key);
}
public function html_element() {
// Import base data
$data = $this->data;
// Get the options and default selection
$options = arr::remove('options', $data);
$selected = arr::remove('selected', $data);
// martin hack
unset($data['label']);
$html ='';
foreach($options as $option=>$labelText){
$html .= form::radio(array ('name' => $data['name'], 'id' => $data['name'] . "_" . $option ),
$option, $this->value? $this->value==$option: $data['default']==$option).
form::label($data['name']."_".$option , $labelText)." ";
}
return $html;
}
protected function load_value() {
if (is_bool($this->valid))
return;
$this->data['selected'] = $this->input_value($this->name);
}
} // End Form radio
|