Created
February 8, 2018 06:15
-
-
Save picasso250/2fbf8c542e21081badad4797f91ce393 to your computer and use it in GitHub Desktop.
QuickForm 魔改
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/* vim: set expandtab tabstop=4 shiftwidth=4: */ | |
// +----------------------------------------------------------------------+ | |
// | PHP version 4.0 | | |
// +----------------------------------------------------------------------+ | |
// | Copyright (c) 1997, 1998, 1999, 2000, 2001 The PHP Group | | |
// +----------------------------------------------------------------------+ | |
// | This source file is subject to version 2.0 of the PHP license, | | |
// | that is bundled with this package in the file LICENSE, and is | | |
// | available at through the world-wide-web at | | |
// | http://www.php.net/license/2_02.txt. | | |
// | If you did not receive a copy of the PHP license and are unable to | | |
// | obtain it through the world-wide-web, please send a note to | | |
// | license@php.net so we can mail you a copy immediately. | | |
// +----------------------------------------------------------------------+ | |
// | Authors: Adam Daniel <adaniel1@eesus.jnj.com> | | |
// | Bertrand Mansion <bmansion@mamasam.com> | | |
// +----------------------------------------------------------------------+ | |
// | |
// $Id: input.php 6184 2005-09-07 10:08:17Z bmol $ | |
require_once("HTML/QuickForm/element.php"); | |
/** | |
* Base class for input form elements | |
* | |
* @author Adam Daniel <adaniel1@eesus.jnj.com> | |
* @author Bertrand Mansion <bmansion@mamasam.com> | |
* @version 1.0 | |
* @since PHP4.04pl1 | |
* @access public | |
* @abstract | |
*/ | |
class HTML_QuickForm_input extends HTML_QuickForm_element | |
{ | |
// {{{ constructor | |
/** | |
* Class constructor | |
* | |
* @param string Input field name attribute | |
* @param mixed Label(s) for the input field | |
* @param mixed Either a typical HTML attribute string or an associative array | |
* @since 1.0 | |
* @access public | |
* @return void | |
*/ | |
function HTML_QuickForm_input($elementName=null, $elementLabel=null, $attributes=null) | |
{ | |
$this->HTML_QuickForm_element($elementName, $elementLabel, $attributes); | |
} //end constructor | |
// }}} | |
// {{{ setType() | |
/** | |
* Sets the element type | |
* | |
* @param string $type Element type | |
* @since 1.0 | |
* @access public | |
* @return void | |
*/ | |
function setType($type) | |
{ | |
$this->_type = $type; | |
$this->updateAttributes(array('type'=>$type)); | |
} // end func setType | |
// }}} | |
// {{{ setName() | |
/** | |
* Sets the input field name | |
* | |
* @param string $name Input field name attribute | |
* @since 1.0 | |
* @access public | |
* @return void | |
*/ | |
function setName($name) | |
{ | |
$this->updateAttributes(array('name'=>$name)); | |
} //end func setName | |
// }}} | |
// {{{ getName() | |
/** | |
* Returns the element name | |
* | |
* @since 1.0 | |
* @access public | |
* @return string | |
*/ | |
function getName() | |
{ | |
return $this->getAttribute('name'); | |
} //end func getName | |
// }}} | |
// {{{ setValue() | |
/** | |
* Sets the value of the form element | |
* | |
* @param string $value Default value of the form element | |
* @since 1.0 | |
* @access public | |
* @return void | |
*/ | |
function setValue($value) | |
{ | |
$this->updateAttributes(array('value'=>$value)); | |
} // end func setValue | |
// }}} | |
// {{{ getValue() | |
/** | |
* Returns the value of the form element | |
* | |
* @since 1.0 | |
* @access public | |
* @return string | |
*/ | |
function getValue() | |
{ | |
return $this->getAttribute('value'); | |
} // end func getValue | |
// }}} | |
// {{{ toHtml() | |
/** | |
* Returns the input field in HTML | |
* | |
* @since 1.0 | |
* @access public | |
* @return string | |
*/ | |
function toHtml() | |
{ | |
if ($this->_flagFrozen) { | |
return $this->getFrozenHtml(); | |
} else { | |
$before = isset($this->_attributes['before_html']) ? $this->_attributes['before_html'] : ''; | |
$after = isset($this->_attributes['after_html']) ? $this->_attributes['after_html'] : ''; | |
return $this->_getTabs() . $before.'<input' . $this->_getAttrString($this->_attributes) . ' />'.$after; | |
} | |
} //end func toHtml | |
// }}} | |
// {{{ onQuickFormEvent() | |
/** | |
* Called by HTML_QuickForm whenever form event is made on this element | |
* | |
* @param string $event Name of event | |
* @param mixed $arg event arguments | |
* @param object $caller calling object | |
* @since 1.0 | |
* @access public | |
* @return void | |
* @throws | |
*/ | |
function onQuickFormEvent($event, $arg, &$caller) | |
{ | |
// do not use submit values for button-type elements | |
$type = $this->getType(); | |
if (('updateValue' != $event) || | |
('submit' != $type && 'reset' != $type && 'image' != $type && 'button' != $type)) { | |
parent::onQuickFormEvent($event, $arg, $caller); | |
} else { | |
$value = $this->_findValue($caller->_constantValues); | |
if (null === $value) { | |
$value = $this->_findValue($caller->_defaultValues); | |
} | |
if (null !== $value) { | |
$this->setValue($value); | |
} | |
} | |
return true; | |
} // end func onQuickFormEvent | |
// }}} | |
// {{{ exportValue() | |
/** | |
* We don't need values from button-type elements (except submit) and files | |
*/ | |
function exportValue(&$submitValues, $assoc = false) | |
{ | |
$type = $this->getType(); | |
if ('reset' == $type || 'image' == $type || 'button' == $type || 'file' == $type) { | |
return null; | |
} else { | |
return parent::exportValue($submitValues, $assoc); | |
} | |
} | |
// }}} | |
} // end class HTML_QuickForm_element |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment