cvs: php4 /pear/HTML Form.php

From: Date: Sat, 14 Oct 2000 17:47:54 +0000
Subject: cvs: php4 /pear/HTML Form.php
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-2050@lists.php.net to get a copy of this message
ssb Sat Oct 14 10:47:54 2000 EDT Modified files: /php4/pear/HTML Form.php Log: PEAR HTML_Form class: * multiple file upload support (by Urs Gehrig) * select multiple fixes * added form target Index: php4/pear/HTML/Form.php diff -u php4/pear/HTML/Form.php:1.3 php4/pear/HTML/Form.php:1.4 --- php4/pear/HTML/Form.php:1.3 Mon Sep 18 16:27:07 2000 +++ php4/pear/HTML/Form.php Sat Oct 14 10:47:54 2000 @@ -17,7 +17,7 @@ // | Urs Gehrig <urs@circle.ch> | // +----------------------------------------------------------------------+ // -// $Id: Form.php,v 1.3 2000/09/18 23:27:07 ssb Exp $ +// $Id: Form.php,v 1.4 2000/10/14 17:47:54 ssb Exp $ // // HTML form utility functions. // @@ -26,6 +26,10 @@ define('HTML_FORM_TEXT_SIZE', 20); } +if (!defined('HTML_FORM_MAX_FILE_SIZE')) { + define('HTML_FORM_MAX_FILE_SIZE', 1048576); // 1 MB +} + class HTML_Form { // {{{ properties @@ -44,15 +48,23 @@ /** DB_storage object, if tied to one */ var $storageObject; + /** <FORM ENCODING=""> attribute value */ + var $encoding; + + /** TARGET attribute of <FORM> tag */ + var $target; + // }}} // {{{ constructor - function HTML_Form($action, $method = 'GET', $name = '') { + function HTML_Form($action, $method = 'GET', $name = '', $target = '') { $this->action = $action; $this->method = $method; $this->name = $name; $this->fields = array(); + $this->encoding = ''; + $this->target = $target; } // }}} @@ -104,9 +116,9 @@ // {{{ addSelect() function addSelect($name, $title, $entries, $default = '', $size = 1, - $blank = '', $multiple = false) { - $this->fields[] = array("select", $name, $title, &$entries, $default, $size, - $blank, $multiple); + $blank = '', $multiple = false, $attribs = '') { + $this->fields[] = array("select", $name, $title, &$entries, $default, + $size, $blank, $multiple, $attribs); } // }}} @@ -135,10 +147,13 @@ // {{{ start() function start() { - print "<FORM ACTION=\"" . basename ($this->action) . "\" METHOD=\"$this->method\""; + print "<FORM ACTION=\"" . basename($this->action) . "\" METHOD=\"$this->method\""; if ($this->name) { print " NAME=\"$this->name\""; } + if ($this->target) { + print " TARGET=\"$this->target\""; + } print ">"; } @@ -247,14 +262,14 @@ // {{{ displaySubmit() function displaySubmit($title = 'Submit Changes', $name = "submit") { - print $this->displaySubmit($title, $name); + print $this->returnSubmit($title, $name); } // }}} // {{{ displaySubmitRow() function displaySubmitRow($name = "submit", $title = 'Submit Changes') { - print $this->returnSubmitRow($name, $title); + print $this->returnSubmitRow($name, $title); } // }}} @@ -275,26 +290,26 @@ // {{{ displaySelect() function displaySelect($name, $entries, $default = '', $size = 1, - $blank = '', $multiple = false) { - print $this->returnSelect($name, $entries, $default, $size, $blank, - $multiple); + $blank = '', $multiple = false, $attribs = '') { + print $this->returnSelect($name, $entries, $default, $size, $blank, + $multiple, $attribs); } // }}} // {{{ displaySelectRow() function displaySelectRow($name, $title, &$entries, $default = '', - $size = 1, $blank = '', $multiple = false) + $size = 1, $blank = '', $multiple = false) { - print $this->returnSelectRow($name, $title, $entries, $default, $size, - $blank, $multiple); + print $this->returnSelectRow($name, $title, $entries, $default, $size, + $blank, $multiple); } // }}} // {{{ displayHidden() function displayHidden($name, $value) { - print $this->returnHidden($name, $value); + print $this->returnHidden($name, $value); } // }}} @@ -442,7 +457,10 @@ // {{{ returnSelect() function returnSelect($name, $entries, $default = '', $size = 1, - $blank = '', $multiple = false) { + $blank = '', $multiple = false, $attrib = '') { + if ($multiple && substr($name, -2) != "[]") { + $name .= "[]"; + } $str .= " <SELECT NAME=\"$name\""; if ($size) { $str .= " SIZE=\"$size\""; @@ -450,6 +468,9 @@ if ($multiple) { $str .= " MULTIPLE"; } + if ($attrib) { + $str .= " $attrib"; + } $str .= ">\n"; if ($blank) { $str .= " <OPTION VALUE=\"\">$blank\n"; @@ -490,16 +511,39 @@ } // }}} + // {{{ returnFile() + + function returnFile($name = 'userfile', $maxsize = HTML_FORM_MAX_FILE_SIZE, $size = HTML_FORM_TEXT_SIZE) { + $str .= " <INPUT TYPE=\"hidden\" NAME=\"MAX_FILE_SIZE\" VALUE=\"$maxsize\">"; + $str .= " <INPUT TYPE=\"file\" NAME=\"$name\" SIZE=\"$size\">"; + return $str; + } + + // }}} + // {{{ returnMultipleFiles() + function returnMultipleFiles($name = 'userfile[]', $maxsize = HTML_FORM_MAX_FILE_SIZE, $files = 3, $size = HTML_FORM_TEXT_SIZE) { + $str .= " <INPUT TYPE=\"hidden\" NAME=\"MAX_FILE_SIZE\" VALUE=\"$maxsize\">"; + for($i=0; $i<$files; $i++) { + $str .= " <INPUT TYPE=\"file\" NAME=\"$name\" SIZE=\"$size\"><br>"; + } + return $str; + } + + // }}} // {{{ returnStart() - function returnStart() { - $ret = "<FORM ACTION=\"" . basename ($this->action) . "\" METHOD=\"$this->method\""; + function returnStart($multipartformdata = false) { + $str .= "<FORM ACTION=\"" . basename ($this->action) . "\" METHOD=\"$this->method\""; if ($this->name) { - $ret .= " NAME=\"$this->name\""; + $str .= " NAME=\"$this->name\""; } - $ret .= ">"; - return $ret; + if ($multipartformdata) { + $str .= " ENCTYPE=\"multipart/form-data\""; + } + $str .= ">"; + + return $str; } // }}} @@ -514,9 +558,9 @@ } $fields[$data[1]] = true; } - $ret = $this->returnHidden("_fields", implode(":", array_keys($fields))); - $ret .= "</FORM>"; - return $ret; + $ret = $this->returnHidden("_fields", implode(":", array_keys($fields))); + $ret .= "</FORM>"; + return $ret; } // }}} @@ -553,7 +597,7 @@ $params = 5; break; case "select": - $params = 7; + $params = 8; break; default: // unknown field type

« previous php.cvs (#2050) next »