/htdocs/solar/1.1.1/source/solar/Solar/View/Helper/FormElement.php
PHP | 170 lines | 51 code | 16 blank | 103 comment | 0 complexity | 2d6a680da4ad1afb073cfdae5e80ceda MD5 | raw file
Possible License(s): LGPL-3.0, Apache-2.0, BSD-3-Clause, ISC, AGPL-3.0, LGPL-2.1
- <?php
- /**
- *
- * Abstract helper for form elements.
- *
- * @category Solar
- *
- * @package Solar_View_Helper_Form
- *
- * @author Paul M. Jones <pmjones@solarphp.com>
- *
- * @license http://opensource.org/licenses/bsd-license.php BSD
- *
- * @version $Id: FormElement.php 3409 2008-09-20 18:04:17Z pmjones $
- *
- */
- abstract class Solar_View_Helper_FormElement extends Solar_View_Helper {
-
- /**
- *
- * Default form element information.
- *
- * @var array
- *
- */
- protected $_info = array(
- 'type' => '',
- 'name' => '',
- 'value' => '',
- 'label' => '',
- 'attribs' => '',
- 'options' => array(),
- 'require' => false,
- 'disable' => false,
- 'invalid' => array(),
- );
-
- /**
- *
- * The order in which to process info keys.
- *
- * Attribs is last so that attributes are unset properly.
- *
- * @var array
- *
- */
- protected $_keys = array(
- 'type',
- 'name',
- 'value',
- 'label',
- 'options',
- 'require',
- 'disable',
- 'invalid',
- 'attribs',
- );
-
- /**
- *
- * The form element type (text, radio, etc).
- *
- * @var string
- *
- */
- protected $_type;
-
- /**
- *
- * The form element name.
- *
- * @var string
- *
- */
- protected $_name;
-
-
- /**
- *
- * The form element value.
- *
- * @var string
- *
- */
- protected $_value;
-
- /**
- *
- * The form element label.
- *
- * @var string
- *
- */
- protected $_label;
-
- /**
- *
- * The form element attributes (checked, selected, readonly, etc).
- *
- * @var array
- *
- */
-
- protected $_attribs;
-
- /**
- *
- * Options for checkbox, select, and radio elements.
- *
- * @var array
- *
- */
- protected $_options;
-
- /**
- *
- * Whether or not the element is required.
- *
- * @var bool
- *
- */
- protected $_require;
-
- /**
- *
- * Whether or not the element is to be disabled.
- *
- * @var bool
- *
- */
- protected $_disable;
-
- /**
- *
- * Feedback messages for the element.
- *
- * @var bool
- *
- */
- protected $_invalid;
-
- /**
- *
- * Prepares an info array and imports to the properties.
- *
- * @param array $info An array of element information.
- *
- * @return void
- *
- */
- protected function _prepare($info)
- {
- $info = array_merge($this->_info, $info);
-
- settype($info['type'], 'string');
- settype($info['name'], 'string');
- settype($info['label'], 'string');
- settype($info['attribs'], 'array');
- settype($info['options'], 'array');
- settype($info['require'], 'bool');
- settype($info['disable'], 'bool');
- settype($info['invalid'], 'array');
-
- foreach ($this->_keys as $key) {
- unset($info['attribs'][$key]);
- $prop = "_$key";
- $this->$prop = $info[$key];
- }
- }
- }