Source for file jFormsControlChoice.class.php
Documentation is available at jFormsControlChoice.class.php
- <?php
- /**
- * @package     jelix
- * @subpackage  forms
- * @author      Laurent Jouanneau
- * @contributor Julien Issler
- * @copyright   2006-2009 Laurent Jouanneau
- * @copyright   2010 Julien Issler
- * @link        http://www.jelix.org
- * @licence     http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public Licence, see LICENCE file
- */
-  
-  
- /**
-  * choice
-  * @package     jelix
-  * @subpackage  forms
-  */
- class jFormsControlChoice extends jFormsControlGroups {
-  
-     public $type="choice";
-  
-     /**
-      * list of item. Each value is an array which contains corresponding controls of the item
-      * an item could not have controls, in this case its value is an empty array
-      */
-     public $items = array();
-  
-     public $itemsNames = array();
-  
-     function check(){
-         $val = $this->container->data[$this->ref];
-  
-         if (isset($this->container->privateData[$this->ref][$val])) {
-             return $this->container->errors[$this->ref] = jForms::ERRDATA_INVALID;
-         }
-  
-         if($val !== "" && $val !== null && isset($this->items[$val])) {
-             $rv = null;
-             foreach($this->items[$val] as $ctrl) {
-                 if (!$ctrl->isActivated())
-                     continue;
-                 if (($rv2 = $ctrl->check()) !== null) {
-                     $rv = $rv2;
-                 }
-             }
-             return $rv;
-         } else if ($this->required) {
-             return $this->container->errors[$this->ref] = jForms::ERRDATA_INVALID;
-         }
-         return null;
-     }
-  
-     function createItem($value, $label) {
-         $this->items[$value] = array();
-         $this->itemsNames[$value]= $label;
-     }
-  
-     function deactivateItem($value, $deactivation=true) {
-         if (!isset($this->items[$value]))
-             return;
-         if ($deactivation) {
-             $this->container->privateData[$this->ref][$value] = true;
-         }
-         else if (isset($this->container->privateData[$this->ref][$value])) {
-             unset($this->container->privateData[$this->ref][$value]);
-         }
-     }
-  
-     function isItemActivated($value) {
-         return !(isset($this->container->privateData[$this->ref][$value]));
-     }
-  
-     function addChildControl($control, $itemValue = '') {
-         $this->childControls[$control->ref] = $control;
-         $this->items[$itemValue][$control->ref] = $control;
-     }
-  
-     function setValueFromRequest($request) {
-         $value = $request->getParam($this->ref,'');
-  
-         if (isset($this->container->privateData[$this->ref][$value])) {
-             $this->setData('');
-             return;
-         }
-         $this->setData($value);
-  
-         if(isset($this->items[$this->container->data[$this->ref]])){
-             foreach($this->items[$this->container->data[$this->ref]] as $name=>$ctrl) {
-                 $ctrl->setValueFromRequest($request);
-             }
-         }
-     }
- }
		Documentation generated on Wed, 24 Sep 2014 21:59:39 +0200 by phpDocumentor 1.4.3