public function parseSearchSymlink(umiField $field, $template, $category_id) { $block_arr = array(); $items = array(); $name = $field->getName(); $title = $field->getTitle(); $sel = new selector('pages'); $sel->types('hierarchy-type'); $sel->where('hierarchy')->page($category_id)->childs(1); $guide_items = array(); foreach ($sel->result as $element) { if ($value = $element->getValue($name)) { foreach ($value as $object) { $guide_items[$object->id] = $object->name; } } } $fields_filter = getRequest('fields_filter'); $value = getArrayKey($fields_filter, $name); $is_tpl = !def_module::isXSLTResultMode(); $unfilter_link = ""; foreach ($guide_items as $object_id => $object_name) { if (is_array($value)) { $selected = in_array($object_id, $value) ? "selected" : ""; } else { $selected = $object_id == $value ? "selected" : ""; } if ($is_tpl) { $items[] = "<option value=\"{$object_id}\" {$selected}>{$object_name}</option>"; } else { $line_arr = array(); $line_arr['attribute:id'] = $line_arr['void:object_id'] = $object_id; $line_arr['node:object_name'] = $object_name; $params = $_GET; unset($params['path']); unset($params['p']); $params['fields_filter'][$name] = $object_id; $filter_link = "?" . http_build_query($params, '', '&'); unset($params['fields_filter'][$name]); $unfilter_link = "?" . http_build_query($params, '', '&'); $line_arr['attribute:filter_link'] = $filter_link; $line_arr['attribute:unfilter_link'] = $unfilter_link; if ($selected) { $line_arr['attribute:selected'] = "selected"; } $items[] = def_module::parseTemplate('', $line_arr); } } $block_arr['attribute:unfilter_link'] = $unfilter_link; $block_arr['attribute:name'] = $name; $block_arr['attribute:title'] = $title; $block_arr['subnodes:values'] = $block_arr['void:items'] = $items; $block_arr['void:selected'] = $value ? "" : "selected"; return def_module::parseTemplate($template, $block_arr); }