/fmake/libs/xajax/xajax_controls/form.inc.php
https://github.com/fmake/fmake · PHP · 315 lines · 167 code · 34 blank · 114 comment · 28 complexity · 9fbffc44d835bd6a39be20a703be774c MD5 · raw file
- <?php
- /*
- File: form.inc.php
- HTML Control Library - Form Level Tags
- Title: xajax HTML control class library
- Please see <copyright.inc.php> for a detailed description, copyright
- and license information.
- */
- /*
- @package xajax
- @version $Id: form.inc.php 362 2007-05-29 15:32:24Z calltoconstruct $
- @copyright Copyright (c) 2005-2007 by Jared White & J. Max Wilson
- @copyright Copyright (c) 2008-2009 by Joseph Woolley, Steffen Konerow, Jared White & J. Max Wilson
- @license http://www.xajaxproject.org/bsd_license.txt BSD License
- */
- /*
- Section: Description
-
- This file contains the class declarations for the following HTML Controls:
-
- - form
- - input, textarea, select, optgroup, option
- - label
- - fieldset, legend
-
- The following tags are deprecated as of HTML 4.01, therefore, they will not
- be supported:
-
- - isindex
- */
- class clsForm extends xajaxControlContainer
- {
- function clsForm($aConfiguration=array())
- {
- if (false == isset($aConfiguration['attributes']))
- $aConfiguration['attributes'] = array();
- if (false == isset($aConfiguration['attributes']['method']))
- $aConfiguration['attributes']['method'] = 'POST';
- if (false == isset($aConfiguration['attributes']['action']))
- $aConfiguration['attributes']['action'] = '#';
- xajaxControlContainer::xajaxControlContainer('form', $aConfiguration);
- }
- }
- class clsInput extends xajaxControl
- {
- function clsInput($aConfiguration=array())
- {
- xajaxControl::xajaxControl('input', $aConfiguration);
- }
- }
- class clsInputWithLabel extends clsInput
- {
- var $objLabel;
- var $sWhere;
- var $objBreak;
-
- function clsInputWithLabel($sLabel, $sWhere, $aConfiguration=array())
- {
- clsInput::clsInput($aConfiguration);
-
- $this->objLabel =& new clsLabel(array(
- 'child' => new clsLiteral($sLabel)
- ));
- $this->objLabel->setControl($this);
-
- $this->sWhere = $sWhere;
-
- $this->objBreak =& new clsBr();
- }
-
- function printHTML($sIndent='')
- {
- if ('left' == $this->sWhere || 'above' == $this->sWhere)
- $this->objLabel->printHTML($sIndent);
- if ('above' == $this->sWhere)
- $this->objBreak->printHTML($sIndent);
-
- clsInput::printHTML($sIndent);
- if ('below' == $this->sWhere)
- $this->objBreak->printHTML($sIndent);
- if ('right' == $this->sWhere || 'below' == $this->sWhere)
- $this->objLabel->printHTML($sIndent);
- }
- }
- /*
- Class: clsSelect
-
- A <xajaxControlContainer> derived class that assists in the construction
- of an HTML select control.
-
- This control can only accept <clsOption> controls as children.
- */
- class clsSelect extends xajaxControlContainer
- {
- /*
- Function: clsSelect
-
- Construct and initialize an instance of the class. See <xajaxControlContainer>
- for details regarding the aConfiguration parameter.
- */
- function clsSelect($aConfiguration=array())
- {
- xajaxControlContainer::xajaxControlContainer('select', $aConfiguration);
- }
-
- /*
- Function: addOption
-
- Used to add a single option to the options list.
-
- sValue - (string): The value that is returned as the form value
- when this option is the selected option.
- sText - (string): The text that is displayed in the select box when
- this option is the selected option.
- */
- function addOption($sValue, $sText)
- {
- $optionNew =& new clsOption();
- $optionNew->setValue($sValue);
- $optionNew->setText($sText);
- $this->addChild($optionNew);
- }
-
- /*
- Function: addOptions
-
- Used to add a list of options.
-
- aOptions - (associative array): A list of key/value pairs that will
- be passed to <clsSelect->addOption>.
- */
- function addOptions($aOptions, $aFields=array())
- {
- if (0 == count($aFields))
- foreach ($aOptions as $sValue => $sText)
- $this->addOption($sValue, $sText);
- else if (1 < count($aFields))
- foreach ($aOptions as $aOption)
- $this->addOption($aOption[$aFields[0]], $aOption[$aFields[1]]);
- else
- trigger_error('Invalid list of fields passed to clsSelect::addOptions; should be array of two strings.'
- . $this->backtrace(),
- E_USER_ERROR
- );
- }
- }
- /*
- Class: clsOptionGroup
-
- A <xajaxControlContainer> derived class that can be used around a list of <clsOption>
- objects to help the user find items in a select list.
- */
- class clsOptionGroup extends xajaxControlContainer
- {
- function clsOptionGroup($aConfiguration=array())
- {
- xajaxControlContainer::xajaxControlContainer('optgroup', $aConfiguration);
- }
-
- /*
- Function: addOption
-
- Used to add a single option to the options list.
-
- sValue - (string): The value that is returned as the form value
- when this option is the selected option.
- sText - (string): The text that is displayed in the select box when
- this option is the selected option.
- */
- function addOption($sValue, $sText)
- {
- $optionNew =& new clsOption();
- $optionNew->setValue($sValue);
- $optionNew->setText($sText);
- $this->addChild($optionNew);
- }
-
- /*
- Function: addOptions
-
- Used to add a list of options.
-
- aOptions - (associative array): A list of key/value pairs that will
- be passed to <clsSelect->addOption>.
- */
- function addOptions($aOptions, $aFields=array())
- {
- if (0 == count($aFields))
- foreach ($aOptions as $sValue => $sText)
- $this->addOption($sValue, $sText);
- else if (1 < count($aFields))
- foreach ($aOptions as $aOption)
- $this->addOption($aOption[$aFields[0]], $aOption[$aFields[1]]);
- else
- trigger_error('Invalid list of fields passed to clsOptionGroup::addOptions; should be array of two strings.'
- . $this->backtrace(),
- E_USER_ERROR
- );
- }
- }
- /*
- Class: clsOption
-
- A <xajaxControlContainer> derived class that assists with the construction
- of HTML option tags that will be assigned to an HTML select tag.
- This control can only accept <clsLiteral> objects as children.
- */
- class clsOption extends xajaxControlContainer
- {
- /*
- Function: clsOption
-
- Constructs and initializes an instance of this class. See <xajaxControlContainer>
- for more information regarding the aConfiguration parameter.
- */
- function clsOption($aConfiguration=array())
- {
- xajaxControlContainer::xajaxControlContainer('option', $aConfiguration);
- }
-
- /*
- Function: setValue
-
- Used to set the value associated with this option. The value is sent as the
- value of the select control when this is the selected option.
- */
- function setValue($sValue)
- {
- $this->setAttribute('value', $sValue);
- }
-
- /*
- Function: setText
-
- Sets the text to be shown in the select control when this is the
- selected option.
- */
- function setText($sText)
- {
- $this->clearChildren();
- $this->addChild(new clsLiteral($sText));
- }
- }
- class clsTextArea extends xajaxControlContainer
- {
- function clsTextArea($aConfiguration=array())
- {
- xajaxControlContainer::xajaxControlContainer('textarea', $aConfiguration);
-
- $this->sClass = '%block';
- }
- }
- class clsLabel extends xajaxControlContainer
- {
- var $objFor;
- function clsLabel($aConfiguration=array())
- {
- xajaxControlContainer::xajaxControlContainer('label', $aConfiguration);
- }
- function setControl(&$objControl)
- {
- if (false == is_a($objControl, 'xajaxControl'))
- trigger_error(
- 'Invalid control passed to clsLabel::setControl(); should be xajaxControl.'
- . $this->backtrace(),
- E_USER_ERROR);
- $this->objFor =& $objControl;
- }
- function printHTML($sIndent='')
- {
- $this->aAttributes['for'] = $this->objFor->aAttributes['id'];
-
- xajaxControlContainer::printHTML($sIndent);
- }
- }
- class clsFieldset extends xajaxControlContainer
- {
- function clsFieldset($aConfiguration=array())
- {
- xajaxControlContainer::xajaxControlContainer('fieldset', $aConfiguration);
-
- $this->sClass = '%block';
- }
- }
- class clsLegend extends xajaxControlContainer
- {
- function clsLegend($aConfiguration=array())
- {
- xajaxControlContainer::xajaxControlContainer('legend', $aConfiguration);
-
- $this->sClass = '%inline';
- }
- }