Index: branches/5.2.x/core/units/selectors/selectors_tag_processor.php =================================================================== diff -u -N -r14244 -r14628 --- branches/5.2.x/core/units/selectors/selectors_tag_processor.php (.../selectors_tag_processor.php) (revision 14244) +++ branches/5.2.x/core/units/selectors/selectors_tag_processor.php (.../selectors_tag_processor.php) (revision 14628) @@ -1,6 +1,6 @@ Application->recallObject( $this->getPrefixSpecial(), $this->Prefix, $params ); + $object =& $this->getObject($params); + /* @var $object SelectorsItem */ + $style_data = $object->GetDBField( $params['field'] ); $ret = $object->CompileStyleBody( getArrayValue($params,'inline') ? STYLE_INLINE : STYLE_PREVIEW ); @@ -62,34 +64,50 @@ return $ret; } - function PredefinedOptions($params) + /** + * Prints list a all possible field options + * + * @param Array $params + * @return string + * @access protected + */ + protected function PredefinedOptions($params) { $field = $params['field']; - $object =& $this->Application->recallObject($this->getPrefixSpecial(),$this->Prefix, $params); + $object =& $this->getObject($params); + /* @var $object kDBItem */ + $value = $object->GetDBField($field); - $subfield = getArrayValue($params,'subfield'); - if($subfield && $subfield != '$subfield') $value = $value[$subfield]; + $subfield = getArrayValue($params, 'subfield'); + + if ( $subfield && $subfield != '$subfield' ) { + $value = $value[$subfield]; + } - $value_field = getArrayValue($params,'value_field'); - if(!$value_field) $value_field = $field; + $value_field = getArrayValue($params, 'value_field'); + if ( !$value_field ) { + $value_field = $field; + } - $options = $object->GetFieldOptions($value_field); - $block_params['name'] = $params['block']; $block_params['field'] = $params['field']; $block_params['pass_params'] = 'true'; $selected_param_name = getArrayValue($params, 'selected_param'); - if (!$selected_param_name) $selected_param_name = $params['selected']; + if ( !$selected_param_name ) { + $selected_param_name = $params['selected']; + } $selected = $params['selected']; $o = ''; - foreach ($options['options'] as $key => $val) { + $options = $object->GetFieldOption($value_field, 'options'); + + foreach ($options as $key => $val) { $block_params['key'] = $key; $block_params['option'] = $val; $block_params['field_name'] = $this->InputName($params); - $block_params[$selected_param_name] = ( $key == $value ? ' '.$selected : ''); + $block_params[$selected_param_name] = ($key == $value ? ' ' . $selected : ''); $block_params['PrefixSpecial'] = $this->getPrefixSpecial(); $o .= $this->Application->ParseBlock($block_params, 1); }