Index: branches/unlabeled/unlabeled-1.62.2/core/kernel/db/db_tag_processor.php =================================================================== diff -u -r5615 -r5653 --- branches/unlabeled/unlabeled-1.62.2/core/kernel/db/db_tag_processor.php (.../db_tag_processor.php) (revision 5615) +++ branches/unlabeled/unlabeled-1.62.2/core/kernel/db/db_tag_processor.php (.../db_tag_processor.php) (revision 5653) @@ -91,29 +91,34 @@ $filters = Array(); $prefix_special = $this->getPrefixSpecial(); - foreach($filter_menu['Filters'] as $filter_key => $filter_params) - { - if(!$filter_params) - { + + + foreach ($filter_menu['Filters'] as $filter_key => $filter_params) { + $group_params = isset($filter_params['group_id']) ? $filter_menu['Groups'][ $filter_params['group_id'] ] : Array(); + if (!isset($group_params['element_type'])) { + $group_params['element_type'] = 'checkbox'; + } + + if (!$filter_params) { $filters[] = $separator; continue; } $block_params['label'] = addslashes( $this->Application->Phrase($filter_params['label']) ); - if( getArrayValue($view_filter,$filter_key) ) - { + if (getArrayValue($view_filter,$filter_key)) { $submit = 0; - $status = 1; + $status = $group_params['element_type'] == 'checkbox' ? 1 : 2; } - else - { + else { $submit = 1; $status = 0; } $block_params['filter_action'] = 'set_filter("'.$prefix_special.'","'.$filter_key.'","'.$submit.'",'.$params['ajax'].');'; - $block_params['filter_status'] = $status; + $block_params['filter_status'] = $status; // 1 - checkbox, 2 - radio, 0 - no image $filters[] = $this->Application->ParseBlock($block_params); } + + return implode('', $filters); }