Source for file QuickForm2.php
Documentation is available at QuickForm2.php
* Class representing a HTML form
* Copyright (c) 2006, 2007, Alexey Borzov <avb@php.net>,
* Bertrand Mansion <golgote@mamasam.com>
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * The names of the authors may not be used to endorse or promote products
* derived from this software without specific prior written permission.
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* @package HTML_QuickForm2
* @author Alexey Borzov <avb@php.net>
* @author Bertrand Mansion <golgote@mamasam.com>
* @license http://opensource.org/licenses/bsd-license.php New BSD License
* @version CVS: $Id: QuickForm2.php,v 1.6 2007/05/29 20:40:10 avb Exp $
* @link http://pear.php.net/package/HTML_QuickForm2
* Abstract base class for QuickForm2 containers
require_once 'HTML/QuickForm2/Container.php';
* Data source for HTML_QuickForm2 objects based on superglobal arrays
require_once 'HTML/QuickForm2/DataSource/SuperGlobal.php';
* Class representing a HTML form
* @package HTML_QuickForm2
* @author Alexey Borzov <avb@php.net>
* @author Bertrand Mansion <golgote@mamasam.com>
* @version Release: 0.2.0
* Data sources providing values for form elements
* We do not allow setting "method" and "id" other than through constructor
* Class constructor, form's "id" and "method" attributes can only be set here
* @param string "id" attribute of <form> tag
* @param string HTTP method used to submit the form
* @param mixed Additional attributes (either a string or an array)
* @param bool Whether to track if the form was submitted by adding
public function __construct($id, $method = 'post', $attributes = null , $trackSubmit = true )
$method = ('GET' == strtoupper($method))? 'get': 'post';
$id = self ::generateId ('');
self ::prepareAttributes ($attributes),
array ('id' => (string) $id, 'method' => $method)
if (!isset ($this->attributes['action'])) {
$this->attributes['action'] = $_SERVER['PHP_SELF'];
if ($trackSubmit && isset ($_REQUEST['_qf__' . $id]) ||
!$trackSubmit && ('get' == $method && !empty ($_GET) ||
'post' == $method && (!empty ($_POST) || !empty ($_FILES))))
'Attribute \'' . $name . '\' is read-only'
protected function setContainer(HTML_QuickForm2_Container $container = null )
public function setId($id = null )
"Attribute 'id' is read-only"
* Adds a new data source to the form
* @param HTML_QuickForm2_DataSource Data source
public function addDataSource(HTML_QuickForm2_DataSource $datasource)
* Replaces the list of form's data sources with a completely new one
* @param array A new data source list
* @throws HTML_QuickForm2_InvalidArgumentException if given array
* contains something that is not a valid data source
foreach ($datasources as $ds) {
'Array should contain only DataSource instances'
* Returns the list of data sources attached to the form
* Performs the server-side validation
* @return boolean Whether all form's elements are valid
return $isSubmitted? parent ::validate(): false;
Documentation generated on Mon, 22 Oct 2007 12:30:22 -0400 by phpDocumentor 1.4.0. PEAR Logo Copyright © PHP Group 2004.
|