From b831a581fed46c7d67ccb09544aa5fbf7ffc4ce2 Mon Sep 17 00:00:00 2001 From: Andrey Kutejko Date: Wed, 3 Sep 2014 04:52:05 +0300 Subject: [PATCH] fix init order for choice fields and widgets --- ipf/form/field/choice.php | 14 ++++++-------- ipf/form/widget/selectinput.php | 7 ++----- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/ipf/form/field/choice.php b/ipf/form/field/choice.php index 2359581..75a1490 100644 --- a/ipf/form/field/choice.php +++ b/ipf/form/field/choice.php @@ -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) diff --git a/ipf/form/widget/selectinput.php b/ipf/form/widget/selectinput.php index 10ccebe..c5ac4d1 100644 --- a/ipf/form/widget/selectinput.php +++ b/ipf/form/widget/selectinput.php @@ -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); } -- 2.49.0