/** * Display the textbox. */ function display($class = NULL, $size = NULL) { $maxlength = getRegexLength($this->regex, 16); if ($size == NULL) { $size = $maxlength == 0 ? INPUT_TEXTBOX_SIZE_MAX : $maxlength; } ensureIntInRange($size, INPUT_TEXTBOX_SIZE_MIN, INPUT_TEXTBOX_SIZE_MAX); if ($this->form->submitted() && ($this->required && !$this->wasSet || $this->wasSet && !$this->wasValid)) { $class = 'error'; } $type = ' type="' . $this->type . '"'; $name = ' name="' . $this->name . '"'; $value = ' value="' . htmlentities($this->value) . '"'; $size = ' size="' . $size . '"'; $class = $class == NULL ? '' : ' class="' . $class . '"'; $maxlength = $maxlength == 0 ? '' : ' maxlength="' . $maxlength . '"'; $required = $this->required ? ' *' : ''; echo '<input' . $type . $name . $value . $size . $maxlength . $class . ' />' . $required; }
/** * Display the textarea. * * <p> Called by templates to render text area form elements. * * @param string class CSS class assigned to text area * @param int width Number of columns for text area - CSS can substitute * @param int height Number of rows for text area */ function display($class = NULL, $width = NULL, $height = NULL) { // If maxlength was given, use it. Otherwise, check if the regex specified // a maximum length, and if that didn't use the max width * max height. $maxlength = $this->maxlength !== FALSE ? $this->maxlength : getRegexLength($this->regex, INPUT_TEXTAREA_WIDTH_MAX * INPUT_TEXTAREA_HEIGHT_MAX); if ($this->wasSet && !$this->wasValid) { $class .= ' error'; } $name = 'name="' . $this->name . '" '; $id = 'id="' . $this->name . '" '; $value = 'value="' . htmlentities($this->value) . '" '; $class = $class == NULL ? '' : 'class="' . $class . '" '; // If we have no width, nor no CSS class to specify it for us if ($width == NULL && $class == '') { $width = $maxlength == 0 ? INPUT_TEXTAREA_WIDTH_MAX : (int) ($maxlength / 2); } // make sure the width in range, and wrap it with pretty cols="" ensureIntInRange($width, INPUT_TEXTAREA_WIDTH_MIN, INPUT_TEXTAREA_WIDTH_MAX); $width = $width == NULL ? '' : 'cols="' . $width . '" '; // A height HAS to be specified - no CSS out, here. if ($height == NULL) { $height = $maxlength == 0 ? INPUT_TEXTAREA_HEIGHT_MAX : (int) ($maxlength / 10); } // ensure that the height is in range, and wrap it with requisite rows="" ensureIntInRange($height, INPUT_TEXTAREA_HEIGHT_MIN, INPUT_TEXTAREA_HEIGHT_MAX); $height = 'rows="' . $height . '" '; // and finally, display it! echo '<textarea ' . $name . $id . $width . $height . $class . 'wrap="virtual" >' . "\n" . htmlentities($this->value) . "\n" . '</textarea>' . "\n"; }