Index: trunk/core/units/configuration/configuration_tag_processor.php =================================================================== diff -u -N -r8067 -r8784 --- trunk/core/units/configuration/configuration_tag_processor.php (.../configuration_tag_processor.php) (revision 8067) +++ trunk/core/units/configuration/configuration_tag_processor.php (.../configuration_tag_processor.php) (revision 8784) @@ -1,14 +1,14 @@ Application->LinkVar('module_key'); } - + /** * Prints list content using block specified * @@ -29,118 +29,118 @@ // $block_params['name'] = $this->SelectParam($params, 'render_as,block'); $block_params['pass_params'] = 'true'; $block_params['IdField'] = $list->IDField; - + $prev_heading = ''; $next_block = $params['full_block']; $this->groupRecords($list->Records, 'heading'); $field_values = $this->Application->GetVar($this->getPrefixSpecial(true)); - + while (!$list->EOL()) { $this->Application->SetVar( $this->getPrefixSpecial().'_id', $list->GetDBField($id_field) ); // for edit/delete links using GET - + // using 2 blocks for drawing o row in case if current & next record titles match $next_item_prompt = $list->CurrentIndex + 1 < $list->RecordsCount ? $list->Records[$list->CurrentIndex + 1]['prompt'] : ''; $this_item_prompt = $list->GetDBField('prompt'); - + if ($next_item_prompt == $this_item_prompt) { $curr_block = $params['half_block1']; $next_block = $params['half_block2']; } else { $curr_block = $next_block; $next_block = $params['full_block']; } - + $block_params['name'] = $curr_block; - + $block_params['show_heading'] = ($prev_heading != $list->GetDBField('heading') ) ? 1 : 0; - + // set values from submit if any if ($field_values) { $list->SetDBField('VariableValue', $field_values[$list->GetDBField('VariableName')]['VariableValue']); } $list->SetDBField('DirectOptions', ''); - + $o.= $this->Application->ParseBlock($block_params, 1); $prev_heading = $list->GetDBField('heading'); $list->GoNext(); } - + $this->Application->RemoveVar('ModuleRootCategory'); $this->Application->SetVar( $this->getPrefixSpecial().'_id', ''); return $o; } - + function getModuleItemName() { $module = $this->Application->GetVar('module'); $table = $this->Application->getUnitOption('confs', 'TableName'); - + $sql = 'SELECT ConfigHeader FROM '.$table.' WHERE ModuleName = '.$this->Conn->qstr($module); return $this->Conn->GetOne($sql); } - + function PrintConfList($params) { $list =& $this->GetList($params); $id_field = $this->Application->getUnitOption($this->Prefix, 'IDField'); - + $list->PerPage = -1; $list->Query(); $o = ''; - $list->GoFirst(); - + $list->GoFirst(); + $tmp_row = Array(); - + while (!$list->EOL()) { $rec = $list->getCurrentRecord(); $tmp_row[0][$rec['VariableName']] = $rec['VariableValue']; $tmp_row[0][$rec['VariableName'].'_prompt'] = $rec['prompt']; $list->GoNext(); } - + $list->Records = $tmp_row; - + $block_params = $this->prepareTagParams($params); $block_params['name'] = $this->SelectParam($params, 'render_as,block'); $block_params['module_key'] = $this->Application->GetVar('module_key'); $block_params['module_item'] = $this->getModuleItemName(); $list->GoFirst(); - + return $this->Application->ParseBlock($block_params, 1); - + } - + function ShowRelevance($params) { return $this->Application->GetVar('module_key') != '_'; } - + function ConfigValue($params) { return $this->Application->ConfigValue($params['name']); } - + function Error($params) { $object =& $this->Application->recallObject( $this->getPrefixSpecial() ); $field = $object->GetDBField($params['id_field']); - + $errors = $this->Application->GetVar('errormsgs'); $errors = $errors[$this->getPrefixSpecial()]; - + if (isset($errors[$field])) { $msg = $this->Application->Phrase($errors[$field]); } else { $msg = ''; } - + return $msg; } - + /** * Allows to show category path of selected module * @@ -155,7 +155,7 @@ return $this->Application->ProcessParsedTag('c', 'CategoryPath', $params); } - + /** * Shows edit warning in case if module root category changed but not saved * @@ -170,7 +170,7 @@ } return ''; } - + function ModuleRootCategory($params) { $category_id = $this->Application->RecallVar('ModuleRootCategory'); @@ -179,6 +179,30 @@ } return $category_id; } + + /** + * Returns variable ID by it's name (used on search relevance configuration screen) + * + * @param Array $params + * @return int + */ + function GetVariableID($params) + { + static $cached_ids = Array (); + + $var_name = $params['name']; + if (!isset($cached_ids[$var_name])) { + $id_field = $this->Application->getUnitOption($this->Prefix, 'IDField'); + $table_name = $this->Application->getUnitOption($this->Prefix, 'TableName'); + + $sql = 'SELECT '.$id_field.' + FROM '.$table_name.' + WHERE VariableName = '.$this->Conn->qstr($params['name']); + $cached_ids[$var_name] = $this->Conn->GetOne($sql); + } + + return $cached_ids[$var_name]; + } } ?> \ No newline at end of file Index: trunk/core/admin_templates/config/config_search.tpl =================================================================== diff -u -N -r8397 -r8784 --- trunk/core/admin_templates/config/config_search.tpl (.../config_search.tpl) (revision 8397) +++ trunk/core/admin_templates/config/config_search.tpl (.../config_search.tpl) (revision 8784) @@ -90,16 +90,16 @@ "> - ][VariableValue]" VALUE="">% + ][VariableValue]" VALUE="">% "> - ][VariableValue]" value="">%     - ][VariableValue]" value="">%     - ][VariableValue]" value="">% + ][VariableValue]" value="">%     + ][VariableValue]" value="">%     + ][VariableValue]" value="">% @@ -113,8 +113,8 @@ "> - ][VariableValue]" id="_cb_conf[Search_ShowMultiple_][VariableValue]" onclick="update_checkbox(this, document.getElementById('conf[Search_ShowMultiple_][VariableValue]'))" > - ][VariableValue]" name="conf[Search_ShowMultiple_][VariableValue]" value=""> + ][VariableValue]" id="_cb_conf[][VariableValue]" onclick="update_checkbox(this, document.getElementById('conf[][VariableValue]'))" > + ][VariableValue]" name="conf[][VariableValue]" value="">