Configure the dmca form site on ridley
[chef.git] / cookbooks / dmca / files / default / html / HTML / QuickForm / textarea.php
1 <?php
2 /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
3
4 /**
5  * HTML class for a textarea type field
6  * 
7  * PHP versions 4 and 5
8  *
9  * LICENSE: This source file is subject to version 3.01 of the PHP license
10  * that is available through the world-wide-web at the following URI:
11  * http://www.php.net/license/3_01.txt If you did not receive a copy of
12  * the PHP License and are unable to obtain it through the web, please
13  * send a note to license@php.net so we can mail you a copy immediately.
14  *
15  * @category    HTML
16  * @package     HTML_QuickForm
17  * @author      Adam Daniel <adaniel1@eesus.jnj.com>
18  * @author      Bertrand Mansion <bmansion@mamasam.com>
19  * @copyright   2001-2011 The PHP Group
20  * @license     http://www.php.net/license/3_01.txt PHP License 3.01
21  * @version     CVS: $Id$
22  * @link        http://pear.php.net/package/HTML_QuickForm
23  */
24
25 /**
26  * Base class for form elements
27  */ 
28 require_once 'HTML/QuickForm/element.php';
29
30 /**
31  * HTML class for a textarea type field
32  * 
33  * @category    HTML
34  * @package     HTML_QuickForm
35  * @author      Adam Daniel <adaniel1@eesus.jnj.com>
36  * @author      Bertrand Mansion <bmansion@mamasam.com>
37  * @version     Release: 3.2.16
38  * @since       1.0
39  */
40 class HTML_QuickForm_textarea extends HTML_QuickForm_element
41 {
42     // {{{ properties
43
44     /**
45      * Field value
46      * @var       string
47      * @since     1.0
48      * @access    private
49      */
50     var $_value = null;
51
52     // }}}
53     // {{{ constructor
54         
55     /**
56      * Class constructor
57      * 
58      * @param     string    Input field name attribute
59      * @param     mixed     Label(s) for a field
60      * @param     mixed     Either a typical HTML attribute string or an associative array
61      * @since     1.0
62      * @access    public
63      * @return    void
64      */
65     function HTML_QuickForm_textarea($elementName=null, $elementLabel=null, $attributes=null)
66     {
67         HTML_QuickForm_element::HTML_QuickForm_element($elementName, $elementLabel, $attributes);
68         $this->_persistantFreeze = true;
69         $this->_type = 'textarea';
70     } //end constructor
71     
72     // }}}
73     // {{{ setName()
74
75     /**
76      * Sets the input field name
77      * 
78      * @param     string    $name   Input field name attribute
79      * @since     1.0
80      * @access    public
81      * @return    void
82      */
83     function setName($name)
84     {
85         $this->updateAttributes(array('name'=>$name));
86     } //end func setName
87     
88     // }}}
89     // {{{ getName()
90
91     /**
92      * Returns the element name
93      * 
94      * @since     1.0
95      * @access    public
96      * @return    string
97      */
98     function getName()
99     {
100         return $this->getAttribute('name');
101     } //end func getName
102
103     // }}}
104     // {{{ setValue()
105
106     /**
107      * Sets value for textarea element
108      * 
109      * @param     string    $value  Value for textarea element
110      * @since     1.0
111      * @access    public
112      * @return    void
113      */
114     function setValue($value)
115     {
116         $this->_value = $value;
117     } //end func setValue
118     
119     // }}}
120     // {{{ getValue()
121
122     /**
123      * Returns the value of the form element
124      *
125      * @since     1.0
126      * @access    public
127      * @return    string
128      */
129     function getValue()
130     {
131         return $this->_value;
132     } // end func getValue
133
134     // }}}
135     // {{{ setWrap()
136
137     /**
138      * Sets wrap type for textarea element
139      * 
140      * @param     string    $wrap  Wrap type
141      * @since     1.0
142      * @access    public
143      * @return    void
144      */
145     function setWrap($wrap)
146     {
147         $this->updateAttributes(array('wrap' => $wrap));
148     } //end func setWrap
149     
150     // }}}
151     // {{{ setRows()
152
153     /**
154      * Sets height in rows for textarea element
155      * 
156      * @param     string    $rows  Height expressed in rows
157      * @since     1.0
158      * @access    public
159      * @return    void
160      */
161     function setRows($rows)
162     {
163         $this->updateAttributes(array('rows' => $rows));
164     } //end func setRows
165
166     // }}}
167     // {{{ setCols()
168
169     /**
170      * Sets width in cols for textarea element
171      * 
172      * @param     string    $cols  Width expressed in cols
173      * @since     1.0
174      * @access    public
175      * @return    void
176      */ 
177     function setCols($cols)
178     {
179         $this->updateAttributes(array('cols' => $cols));
180     } //end func setCols
181
182     // }}}
183     // {{{ toHtml()
184
185     /**
186      * Returns the textarea element in HTML
187      * 
188      * @since     1.0
189      * @access    public
190      * @return    string
191      */
192     function toHtml()
193     {
194         if ($this->_flagFrozen) {
195             return $this->getFrozenHtml();
196         } else {
197             return $this->_getTabs() .
198                    '<textarea' . $this->_getAttrString($this->_attributes) . '>' .
199                    // because we wrap the form later we don't want the text indented
200                    preg_replace("/(\r\n|\n|\r)/", '&#010;', htmlspecialchars($this->_value)) .
201                    '</textarea>';
202         }
203     } //end func toHtml
204     
205     // }}}
206     // {{{ getFrozenHtml()
207
208     /**
209      * Returns the value of field without HTML tags (in this case, value is changed to a mask)
210      * 
211      * @since     1.0
212      * @access    public
213      * @return    string
214      */
215     function getFrozenHtml()
216     {
217         $value = htmlspecialchars($this->getValue());
218         if ($this->getAttribute('wrap') == 'off') {
219             $html = $this->_getTabs() . '<pre>' . $value."</pre>\n";
220         } else {
221             $html = nl2br($value)."\n";
222         }
223         return $html . $this->_getPersistantData();
224     } //end func getFrozenHtml
225
226     // }}}
227
228 } //end class HTML_QuickForm_textarea
229 ?>