Allow setting separate name and id in textare inputs, and cols and rows

This commit is contained in:
Zach Copley 2011-04-17 15:09:00 -07:00
parent 606d7d7185
commit 5206ee7f9a

View File

@ -517,28 +517,48 @@ class HTMLOutputter extends XMLOutputter
* @param string $label text of label for the element * @param string $label text of label for the element
* @param string $content content of the textarea, default none * @param string $content content of the textarea, default none
* @param string $instructions instructions for valid input * @param string $instructions instructions for valid input
* @param string $name name of textarea; if null, $id will be used
* @param int $cols number of columns
* @param int $rows number of rows
* *
* @return void * @return void
*
* @todo add a $name parameter
* @todo add a $cols parameter
* @todo add a $rows parameter
*/ */
function textarea($id, $label, $content=null, $instructions=null) function textarea(
{ $id,
$label,
$content = null,
$instructions = null,
$name = null,
$cols = null,
$rows = null
) {
$this->element('label', array('for' => $id), $label); $this->element('label', array('for' => $id), $label);
$this->element('textarea', array('rows' => 3, $attrs = array(
'cols' => 40, 'rows' => 3,
'name' => $id, 'cols' => 40,
'id' => $id), 'id' => $id
($content) ? $content : ''); );
$attrs['name'] = is_null($name) ? $id : $name;
if ($cols != null) {
$attrs['cols'] = $cols;
}
if ($rows != null) {
$attrs['rows'] = $rows;
}
$this->element(
'textarea',
$attrs,
is_null($content) ? '' : $content
);
if ($instructions) { if ($instructions) {
$this->element('p', 'form_guide', $instructions); $this->element('p', 'form_guide', $instructions);
} }
} }
/** /**
* Internal script to autofocus the given element on page onload. * Internal script to autofocus the given element on page onload.
* *
* @param string $id element ID, must refer to an existing element * @param string $id element ID, must refer to an existing element