diff options
Diffstat (limited to 'html_form.class')
-rw-r--r-- | html_form.class | 166 |
1 files changed, 166 insertions, 0 deletions
diff --git a/html_form.class b/html_form.class new file mode 100644 index 0000000..03497e3 --- /dev/null +++ b/html_form.class @@ -0,0 +1,166 @@ +<?php +/* +** $Id$ +** +** ITools - the Internet Tools Library +** +** Copyright (C) 1995-2003 by the ITools Authors. +** This program is free software; you can redistribute it and/or +** modify it under the terms of either the GNU General Public License +** or the GNU Lesser General Public License, as published by the Free +** Software Foundation. See http://www.gnu.org/licenses/ for details. +** +** class it_html_form - Generic HTML Form +*/ + + +/** + * Functions to facilitate creation of HTML forms + */ +class it_html_form +{ + var $name; /* Name of form */ + +/** + * Constructor: set action, name and method (echo <FORM> tag) + * @param $action the action to be performed by this form or empty for link to self + * @param $name form name (optional) + * @param $method the method used for the action (defaults to 'post') + * @param $target Target frame of the form (optional) + */ +function it_html_form($action='*', $name='', $method='post', $target='') +{ + if ($action == '*') + $action = $_SERVER['PHP_SELF']; + + $this->name = $name; + + echo '<form method="'.$method.'" action="'.$action.'"'; + + if ($target) + echo " target=\"$target\""; + + if ($name) + echo " name=\"$name\""; + + echo '>'; +} + + +/** + * Close the form (echo </FORM> tag) + */ +function close() +{ + echo "</form>"; +} + + +/** + * Add a parameter (as a hidden field) + * @param $name parameter name + * @param $value default (?) value + * @param $return_output if true, output will be returned instaed of echoed + */ +function hidden($name, $value="", $return_output=false) +{ + $output = "<input type=\"hidden\" name=\"$name\" value=\"" . htmlspecialchars($value) . "\">"; + if ($return_output) + return $output; + else + echo $output; +} + + +/** + * Create a text field or a textarea if size is width:height + * @param $name text field name + * @param $size textfield width[:height] in chars + * @param $maxlength maximum length of input + * @param $value text field value + */ +function text($name, $size=8, $maxlength=255, $value="") +{ + if (strchr($size, ":")) + { + list($cols, $rows) = explode(":", $size); + echo "<textarea name=\"$name\" rows=\"$rows\" cols=\"$cols\">".htmlspecialchars($value)."</textarea>"; + } + else + echo "<input type=\"text\" name=\"$name\" size=\"$size\" maxlength=\"$maxlength\" value=\"".htmlspecialchars($value)."\">"; +} + + +/** + * Create a password field (masked characters) + * @param $name text field name + * @param $size textfield width[:height] in chars + * @param $maxlength maximum length of input + * @param $value text field value + */ +function password($name, $size=8, $maxlength=255, $value="") +{ + echo "<input type=\"password\" name=\"$name\" size=\"$size\" maxlength=\"$maxlength\" value=\"".htmlspecialchars($value)."\">"; +} + + +/** + * Create a dropdown menu object + * @param $name dropdown field name + * @param $options array (value => text) of available options or + * string key:val{,key:val} where key will be rawurldecoded so it may contain %2C as comma + * @param $selected currently selected value + */ +function select($name, $options, $selected='') +{ + if (!is_array($options)) + { + $opts = explode(',', $options); + $options = array(); + foreach($opts as $opt) + { + list($key, $value) = explode(':', $opt); + $options[rawurldecode($key)] = $value; + } + } + + echo '<select name="'.$name.'">'; + foreach($options as $value => $text) + { + $sel = ($value == $selected) ? ' selected' : ''; + echo '<option value="'.htmlspecialchars($value).'"'.$sel.'>'.$text.'</option>'; + } + echo '</select>'; +} + + +/** + * Create a filename field with browse button + * @param $name file field name + * @param $label label to be echoed before the field + * @param $size file field width in chars + * @param $maxlength maximum length of input + * @param $value text field value + */ +function file($name, $label="", $size=16, $maxlength=255, $value="filename") +{ + echo $label."<input type=\"file\" name=\"$name\" size=\"$size\" maxlength=\"$maxlength\" value=\"".htmlspecialchars($value)."\">"; +} + +/** + * Create a Submit button + * @param $label button label + * @param $name button name + */ +function submit($label="", $name="") +{ + if (!$label) + $label = T('Button-Save'); + + echo "<input type=\"submit\" value=\"$label\""; + if ($name) echo " name=\"$name\""; + echo ">"; +} + +} /* End class html_form */ +?> |