1: <?php
2: // $Id: formradio.php,v 1.1 2007/05/15 02:34:42 minahito Exp $
3: // ------------------------------------------------------------------------ //
4: // XOOPS - PHP Content Management System //
5: // Copyright (c) 2000 XOOPS.org //
6: // <http://www.xoops.org/> //
7: // ------------------------------------------------------------------------ //
8: // This program is free software; you can redistribute it and/or modify //
9: // it under the terms of the GNU General Public License as published by //
10: // the Free Software Foundation; either version 2 of the License, or //
11: // (at your option) any later version. //
12: // //
13: // You may not change or alter any portion of this comment or credits //
14: // of supporting developers from this source code or any supporting //
15: // source code which is considered copyrighted (c) material of the //
16: // original comment or credit authors. //
17: // //
18: // This program is distributed in the hope that it will be useful, //
19: // but WITHOUT ANY WARRANTY; without even the implied warranty of //
20: // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
21: // GNU General Public License for more details. //
22: // //
23: // You should have received a copy of the GNU General Public License //
24: // along with this program; if not, write to the Free Software //
25: // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA //
26: // ------------------------------------------------------------------------ //
27: // Author: Kazumi Ono (AKA onokazu) //
28: // URL: http://www.myweb.ne.jp/, http://www.xoops.org/, http://jp.xoops.org/ //
29: // Project: The XOOPS Project //
30: // ------------------------------------------------------------------------- //
31:
32: if (!defined('XOOPS_ROOT_PATH')) exit();
33:
34: /**
35: *
36: *
37: * @package kernel
38: * @subpackage form
39: *
40: * @author Kazumi Ono <onokazu@xoops.org>
41: * @copyright copyright (c) 2000-2003 XOOPS.org
42: */
43: /**
44: * A Group of radiobuttons
45: *
46: * @author Kazumi Ono <onokazu@xoops.org>
47: * @copyright copyright (c) 2000-2003 XOOPS.org
48: *
49: * @package kernel
50: * @subpackage form
51: */
52: class XoopsFormRadio extends XoopsFormElement {
53:
54: /**
55: * Array of Options
56: * @var array
57: * @access private
58: */
59: var $_options = array();
60:
61: /**
62: * Pre-selected value
63: * @var string
64: * @access private
65: */
66: var $_value = null;
67:
68: /**
69: * Constructor
70: *
71: * @param string $caption Caption
72: * @param string $name "name" attribute
73: * @param string $value Pre-selected value
74: */
75: function XoopsFormRadio($caption, $name, $value = null){
76: $this->setCaption($caption);
77: $this->setName($name);
78: if (isset($value)) {
79: $this->setValue($value);
80: }
81: }
82:
83: /**
84: * Get the pre-selected value
85: *
86: * @return string
87: */
88: function getValue(){
89: return $this->_value;
90: }
91:
92: /**
93: * Set the pre-selected value
94: *
95: * @param $value string
96: */
97: function setValue($value){
98: $this->_value = $value;
99: }
100:
101: /**
102: * Add an option
103: *
104: * @param string $value "value" attribute - This gets submitted as form-data.
105: * @param string $name "name" attribute - This is displayed. If empty, we use the "value" instead.
106: */
107: function addOption($value, $name=""){
108: if ( $name != "" ) {
109: $this->_options[$value] = $name;
110: } else {
111: $this->_options[$value] = $value;
112: }
113: }
114:
115: /**
116: * Adds multiple options
117: *
118: * @param array $options Associative array of value->name pairs.
119: */
120: function addOptionArray($options){
121: if ( is_array($options) ) {
122: foreach ( $options as $k=>$v ) {
123: $this->addOption($k, $v);
124: }
125: }
126: }
127:
128: /**
129: * Gets the options
130: *
131: * @return array Associative array of value->name pairs.
132: */
133: function getOptions(){
134: return $this->_options;
135: }
136:
137: /**
138: * Prepare HTML for output
139: *
140: * @return string HTML
141: */
142: function render(){
143: $root =& XCube_Root::getSingleton();
144: $renderSystem =& $root->getRenderSystem(XOOPSFORM_DEPENDENCE_RENDER_SYSTEM);
145:
146: $renderTarget =& $renderSystem->createRenderTarget();
147:
148: $renderTarget->setAttribute('legacy_module', 'legacy');
149: $renderTarget->setTemplateName("legacy_xoopsform_radio.html");
150: $renderTarget->setAttribute("element", $this);
151:
152: $renderSystem->render($renderTarget);
153:
154: return $renderTarget->getResult();
155: }
156: }
157: ?>