cvs: php4 /pear/HTML Form.php
| From: | Stig Bakken | 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