Index: trunk/core/kernel/db/db_tag_processor.php =================================================================== diff -u -N -r8388 -r8402 --- trunk/core/kernel/db/db_tag_processor.php (.../db_tag_processor.php) (revision 8388) +++ trunk/core/kernel/db/db_tag_processor.php (.../db_tag_processor.php) (revision 8402) @@ -1441,7 +1441,7 @@ case 'multiselect': case 'radio': $field_options = $object->GetFieldOptions($field, 'options'); - + if ($object->GetDBField('DirectOptions')) { // used for custom fields $field_options['options'] = $object->GetDBField('DirectOptions'); @@ -1450,7 +1450,7 @@ // used for configuration $field_options['options'] = $helper->GetValuesHash( $object->GetDBField($params['value_list_field']) ); } - + $object->SetFieldOptions($field, $field_options); break; @@ -1884,6 +1884,34 @@ $this->Application->HandleEvent(new kEvent($prefix.':OnNew')); } } + + function PrintSerializedFields($params) + { + $object =& $this->getObject(); + $field = $this->SelectParam($params, 'field'); + $data = unserialize($object->GetDBField($field)); + + $o = ''; + $std_params['name'] = $params['render_as']; + $std_params['field'] = $params['field']; + $std_params['pass_params'] = true; + foreach ($data as $key => $row) { + $block_params = array_merge($std_params, $row, array('key'=>$key)); + $o .= $this->Application->ParseBlock($block_params); + } + return $o; + } + + /** + * Checks if current prefix is main item + * + * @param Array $params + * @return bool + */ + function IsTopmostPrefix($params) + { + return $this->Prefix == $this->Application->GetTopmostPrefix($this->Prefix); + } } ?> \ No newline at end of file