summaryrefslogtreecommitdiffstats
path: root/library/vendor/Zend/Form/Element/Checkbox.php
diff options
context:
space:
mode:
Diffstat (limited to 'library/vendor/Zend/Form/Element/Checkbox.php')
-rw-r--r--library/vendor/Zend/Form/Element/Checkbox.php202
1 files changed, 202 insertions, 0 deletions
diff --git a/library/vendor/Zend/Form/Element/Checkbox.php b/library/vendor/Zend/Form/Element/Checkbox.php
new file mode 100644
index 0000000..65cdccc
--- /dev/null
+++ b/library/vendor/Zend/Form/Element/Checkbox.php
@@ -0,0 +1,202 @@
+<?php
+/**
+ * Zend Framework
+ *
+ * LICENSE
+ *
+ * This source file is subject to the new BSD license that is bundled
+ * with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://framework.zend.com/license/new-bsd
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@zend.com so we can send you a copy immediately.
+ *
+ * @category Zend
+ * @package Zend_Form
+ * @subpackage Element
+ * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
+ * @license http://framework.zend.com/license/new-bsd New BSD License
+ */
+
+/** Zend_Form_Element_Xhtml */
+
+/**
+ * Checkbox form element
+ *
+ * @category Zend
+ * @package Zend_Form
+ * @subpackage Element
+ * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
+ * @license http://framework.zend.com/license/new-bsd New BSD License
+ * @version $Id$
+ */
+class Zend_Form_Element_Checkbox extends Zend_Form_Element_Xhtml
+{
+ /**
+ * Is the checkbox checked?
+ * @var bool
+ */
+ public $checked = false;
+
+ /**
+ * Use formCheckbox view helper by default
+ * @var string
+ */
+ public $helper = 'formCheckbox';
+
+ /**
+ * Options that will be passed to the view helper
+ * @var array
+ */
+ public $options = array(
+ 'checkedValue' => '1',
+ 'uncheckedValue' => '0',
+ );
+
+ /**
+ * Value when checked
+ * @var string
+ */
+ protected $_checkedValue = '1';
+
+ /**
+ * Value when not checked
+ * @var string
+ */
+ protected $_uncheckedValue = '0';
+
+ /**
+ * Current value
+ * @var string 0 or 1
+ */
+ protected $_value = '0';
+
+ /**
+ * Set options
+ *
+ * Intercept checked and unchecked values and set them early; test stored
+ * value against checked and unchecked values after configuration.
+ *
+ * @param array $options
+ * @return Zend_Form_Element_Checkbox
+ */
+ public function setOptions(array $options)
+ {
+ if (array_key_exists('checkedValue', $options)) {
+ $this->setCheckedValue($options['checkedValue']);
+ unset($options['checkedValue']);
+ }
+ if (array_key_exists('uncheckedValue', $options)) {
+ $this->setUncheckedValue($options['uncheckedValue']);
+ unset($options['uncheckedValue']);
+ }
+ parent::setOptions($options);
+
+ $curValue = $this->getValue();
+ $test = array($this->getCheckedValue(), $this->getUncheckedValue());
+ if (!in_array($curValue, $test)) {
+ $this->setValue($curValue);
+ }
+
+ return $this;
+ }
+
+ /**
+ * Set value
+ *
+ * If value matches checked value, sets to that value, and sets the checked
+ * flag to true.
+ *
+ * Any other value causes the unchecked value to be set as the current
+ * value, and the checked flag to be set as false.
+ *
+ *
+ * @param mixed $value
+ * @return Zend_Form_Element_Checkbox
+ */
+ public function setValue($value)
+ {
+ if ($value == $this->getCheckedValue()) {
+ parent::setValue($value);
+ $this->checked = true;
+ } else {
+ parent::setValue($this->getUncheckedValue());
+ $this->checked = false;
+ }
+ return $this;
+ }
+
+ /**
+ * Set checked value
+ *
+ * @param string $value
+ * @return Zend_Form_Element_Checkbox
+ */
+ public function setCheckedValue($value)
+ {
+ $this->_checkedValue = (string) $value;
+ $this->options['checkedValue'] = $value;
+ return $this;
+ }
+
+ /**
+ * Get value when checked
+ *
+ * @return string
+ */
+ public function getCheckedValue()
+ {
+ return $this->_checkedValue;
+ }
+
+ /**
+ * Set unchecked value
+ *
+ * @param string $value
+ * @return Zend_Form_Element_Checkbox
+ */
+ public function setUncheckedValue($value)
+ {
+ $this->_uncheckedValue = (string) $value;
+ $this->options['uncheckedValue'] = $value;
+ return $this;
+ }
+
+ /**
+ * Get value when not checked
+ *
+ * @return string
+ */
+ public function getUncheckedValue()
+ {
+ return $this->_uncheckedValue;
+ }
+
+ /**
+ * Set checked flag
+ *
+ * @param bool $flag
+ * @return Zend_Form_Element_Checkbox
+ */
+ public function setChecked($flag)
+ {
+ $this->checked = (bool) $flag;
+ if ($this->checked) {
+ $this->setValue($this->getCheckedValue());
+ } else {
+ $this->setValue($this->getUncheckedValue());
+ }
+ return $this;
+ }
+
+ /**
+ * Get checked flag
+ *
+ * @return bool
+ */
+ public function isChecked()
+ {
+ return $this->checked;
+ }
+}