]> git.andy128k.dev Git - ipf.git/commitdiff
fix init order for choice fields and widgets
authorAndrey Kutejko <andy128k@gmail.com>
Wed, 3 Sep 2014 01:52:05 +0000 (04:52 +0300)
committerAndrey Kutejko <andy128k@gmail.com>
Wed, 3 Sep 2014 01:52:05 +0000 (04:52 +0300)
ipf/form/field/choice.php
ipf/form/widget/selectinput.php

index 2359581dd11de15f55046d8126b6759159941103..75a1490bd88c90e146a3f42e097068d674cd6d68 100644 (file)
@@ -7,9 +7,13 @@ class IPF_Form_Field_Choice extends IPF_Form_Field
 
     function __construct($params=array())
     {
+        $this->_choices = \PFF\Arr::pop($params, 'choices', array());
+
+        $widget_attrs = \PFF\Arr::pop($params, 'widget_attrs', array());
+        $widget_attrs['choices'] = $this->_choices;
+        $params['widget_attrs'] = $widget_attrs;
+
         parent::__construct($params);
-        if (isset($params['choices']))
-            $this->setChoices($params['choices']);
     }
 
     public function clean($value)
@@ -23,12 +27,6 @@ class IPF_Form_Field_Choice extends IPF_Form_Field
         return $value;
     }
 
-    public function setChoices($choices)
-    {
-        $this->_choices = $choices;
-        $this->widget->choices = $choices;
-    }
-
     public function validValue($value)
     {
         foreach ($this->_choices as $name => $val)
index 10ccebeeb8a7c22f7b3e6eb19fea390e898c83de..c5ac4d1d302d42f8c46bb518b04ec7da6814c3e8 100644 (file)
@@ -4,14 +4,11 @@ use \PFF\HtmlBuilder\Tag as Tag;
 
 class IPF_Form_Widget_SelectInput extends IPF_Form_Widget
 {
-    public $choices = array();
+    private $choices = array();
 
     public function __construct($attrs=array())
     {
-        if (isset($attrs['choices'])){
-            $this->choices = $attrs['choices'];
-            unset($attrs['choices']);
-        }
+        $this->choices = \PFF\Arr::pop($attrs, 'choices', array());
         parent::__construct($attrs);
     }