--- inc/search.php 2001/09/25 15:38:04 1.6 +++ inc/search.php 2001/10/29 14:43:21 1.10 @@ -23,7 +23,7 @@ array_push($search, array( "field" => ${"field_".$i}, "not" => ${"not_".$i}, - "query" => MyEscape(${"query_".$i}), + "query" => MyEscape(${"query_".$i}, true), "logic" => ${"logic_".$i}, "concat" => ${"concat_".$i}, "case" => ${"case_".$i} @@ -49,12 +49,18 @@ $search[count($search) - 1]["logic"] = ""; $tp->assign("search", $search); } else { - global $field, $query; - $tp->assign("field", $field?$field:$def_field); - $tp->assign("query", MyEscape($query)); + // Nothing. } - if (!$stype) $stype = 0; + if (!$stype) $stype = false; $tp->assign("stype", $stype); + if (!$stype && !$go) { + reset($fields); + while (list($k, $v) = each($fields)) { + $var = "go_$k"; + global $$var; + if ($$var) $go = true; + } + } if ($go) { if ($stype) { $qry = ""; @@ -94,43 +100,52 @@ $i++; } } else { - $q = preg_split('/\s+/', $query); - $q2 = array(); - $q3 = array(); - while (list($k, $v) = each($q)) { - if (!$q[$k]) continue; - $qq = "(UPPER(".$fields[$field]["dbname"].") LIKE '%".MyUpper($q[$k])."%')"; - $is_q1 = false; - for ($i = 0; $i < count($q1_fields); $i++) - if ($q1_fields[$i] == $field) $is_q1 = true; - $is_q2 = false; - for ($i = 0; $i < count($q2_fields); $i++) - if ($q2_fields[$i] == $field) $is_q2 = true; - if ($is_q1) $q2[$k] = $qq; - if ($is_q2) $q3[$k] = $qq; + reset($fields); + while (list($k, $v) = each($fields)) { + $field = $k; + $var = "query_".$field; global $$var; + $query = $$var; + $tp->assign($var, $$var); + $go1 = "go_$field"; + if (!$$var) continue; + $q = preg_split('/\s+/', $query); + $q2 = array(); + $q3 = array(); + while (list($k, $v) = each($q)) { + if (!$q[$k]) continue; + $qq = "(UPPER(".$fields[$field]["dbname"].") LIKE '%".MyUpper($q[$k])."%')"; + $is_q1 = false; + for ($i = 0; $i < count($q1_fields); $i++) + if ($q1_fields[$i] == $field) $is_q1 = true; + $is_q2 = false; + for ($i = 0; $i < count($q2_fields); $i++) + if ($q2_fields[$i] == $field) $is_q2 = true; + if ($is_q1) $q2[$k] = $qq; + if ($is_q2) $q3[$k] = $qq; + } + global $basic_logic; + $qry_1 = implode(" ".$basic_logic." ", $q2); + $qry_2 = implode(" ".$basic_logic." ", $q3); } - global $basic_logic; - $qry_1 = implode(" ".$basic_logic." ", $q2); - $qry_2 = implode(" ".$basic_logic." ", $q3); } } $flds = array(); + reset($fields); while (list($k, $v) = each($fields)) { + $var = "query_$k"; + global $$var; array_push($flds, array( - "name" => MyEscape($k), - "caption" => MyEscape($v["caption"]) + "name" => MyEscape($k, true), + "caption" => MyEscape($v["caption"]), + "query" => MyEscape($$var) )); } $tp->assign("fields", $flds); - global $PHP_SELF, $section, $section_menu; + global $section, $section_menu; $tp->assign("section", $section); $tp->assign("section_menu", $section_menu); - $tp->assign("FORM_ACTION", $PHP_SELF.HTMLSpecialChars("?section=$section§ion_menu={$section_menu}&stype=$stype")); + $tp->assign("FORM_ACTION", HTMLSpecialChars("?section=$section§ion_menu={$section_menu}&stype=$stype")); $form = $tp->fetch("search.tpl"); - if ($form) { - global $onload; - $onload .= "document.forms[1].elements[".($stype?2:1)."].focus();"; - } return array($form, $qry_1, $qry_2); } ?>