|
@@ -1397,6 +1397,8 @@ class Database
|
|
|
|
|
|
$prefix = 'search_';
|
|
|
|
|
|
+ $top_result = '';
|
|
|
+
|
|
|
$result .= $node[0];
|
|
|
|
|
|
if (isset($config['manage']['search']['linkage'])) {
|
|
@@ -1481,7 +1483,12 @@ class Database
|
|
|
|
|
|
if (isset($v['option']) && $v['option']) {
|
|
|
$value['option'] = $this->option($v['option']);
|
|
|
- $result .= Html::select($value, false);
|
|
|
+ $value['lang'] = $v['lang'];
|
|
|
+ if (isset($v['top']) && $v['top']) {
|
|
|
+ $top_result .= Html::select($value, false);
|
|
|
+ } else {
|
|
|
+ $result .= Html::select($value, false);
|
|
|
+ }
|
|
|
} else {
|
|
|
$result .= Html::text($value, false);
|
|
|
}
|
|
@@ -1691,6 +1698,10 @@ class Database
|
|
|
$result .= '<input type="hidden" value="'.$page_type.'" name="page_type" id="page_type" />';
|
|
|
}
|
|
|
|
|
|
+ if ($top_result) {
|
|
|
+ $result = $top_result . $result;
|
|
|
+ }
|
|
|
+
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
@@ -2140,7 +2151,10 @@ class Database
|
|
|
if ($v == 'no') {
|
|
|
$param['option_no'] = $config['manage']['search']['api'][$k]['no'];
|
|
|
} else {
|
|
|
- $option = array($col => $v);
|
|
|
+ $option = array($col => $v, 'clear_top' => true);
|
|
|
+
|
|
|
+ # 此处可以增加关联关系
|
|
|
+
|
|
|
$v = Dever::load($config['manage']['search']['api'][$k]['api'], $option);
|
|
|
$result = $config['manage']['search']['api'][$k]['result'];
|
|
|
if ($v && is_array($v)) {
|
|
@@ -2314,16 +2328,23 @@ class Database
|
|
|
if (isset($config['struct'][$k]) && isset($config['struct'][$k]['sync'])) {
|
|
|
|
|
|
}
|
|
|
- $sync = $config['struct'][$k];
|
|
|
- if ($v[$vi['sync'][0]] > 0) {
|
|
|
- $load = Dever::load($temp[0] . '/' . $temp[1] . '-one', array('option_' . $vi['sync'][1] => $v[$vi['sync'][0]]));
|
|
|
+ $struct = $config['struct'][$k];
|
|
|
+ if (isset($struct['search_col']) && $struct['search_col']) {
|
|
|
+ $param[$struct['search_col']] = $v;
|
|
|
} else {
|
|
|
- $lw = array('option_' . $vi['sync'][3] => $v[$vi['sync'][2]], 'option_' . $vi['sync'][4] => $v[$vi['sync'][0]]);
|
|
|
- $load = Dever::load($temp[0] . '/' . $temp[1] . '-one', $lw);
|
|
|
- }
|
|
|
-
|
|
|
- if (isset($temp[2])) {
|
|
|
- $data[$k][$ki] = $v[$ki] = isset($load[$temp[2]]) ? $load[$temp[2]] : $vi['default'];
|
|
|
+ $load = Dever::load($temp[0] . '/' . $temp[1] . '-one', array('option_' . $struct['sync'][1] => $v));
|
|
|
+ /*
|
|
|
+ if ($v[$vi['sync'][0]] > 0) {
|
|
|
+ $load = Dever::load($temp[0] . '/' . $temp[1] . '-one', array('option_' . $vi['sync'][1] => $v[$vi['sync'][0]]));
|
|
|
+ } else {
|
|
|
+ $lw = array('option_' . $vi['sync'][3] => $v[$vi['sync'][2]], 'option_' . $vi['sync'][4] => $v[$vi['sync'][0]]);
|
|
|
+ $load = Dever::load($temp[0] . '/' . $temp[1] . '-one', $lw);
|
|
|
+ }*/
|
|
|
+
|
|
|
+ if (isset($temp[2])) {
|
|
|
+ $v = isset($load[$temp[2]]) ? $load[$temp[2]] : $struct['default'];
|
|
|
+ $param[str_replace('search_', '', $k)] = $v;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
} elseif (strpos($k, 'dever_') !== false) {
|
|
@@ -2475,7 +2496,17 @@ class Database
|
|
|
if (isset($config['top_option']) && $config['top_option']) {
|
|
|
if (isset($config['top_option'][0])) {
|
|
|
foreach ($config['top_option'] as $k => $v) {
|
|
|
- $param['option'][$v['col']] = array($v['value'], 'in');
|
|
|
+ if (isset($v['join'])) {
|
|
|
+ $param['join'][] = $v['join'];
|
|
|
+ $col = 't_2.' . $v['col'];
|
|
|
+ $param['option']['state'] = 'yes-t_1.state';
|
|
|
+ } else {
|
|
|
+ $col = $v['col'];
|
|
|
+ }
|
|
|
+ if ($v['value']) {
|
|
|
+ $param['option'][$v['col']] = array('yes-' . $col, 'in');
|
|
|
+ $param[$v['col']] = $v['value'];
|
|
|
+ }
|
|
|
}
|
|
|
} else {
|
|
|
$param['option'][$config['top_option']['col']] = array($config['top_option']['value'], 'in');
|
|
@@ -4080,11 +4111,11 @@ class Database
|
|
|
foreach ($update_add[$k] as $k1 => $v1) {
|
|
|
$col = $update_col[$k][$k1];
|
|
|
foreach ($v1 as $k2 => $v2) {
|
|
|
- if (isset($update_set[$k][$k1][$k2][$col])) {
|
|
|
- $update_set[$k][$k1][$k2][$col] = $id;
|
|
|
+ if (isset($update_set[$k][$k1][$k2]['set_' . $col])) {
|
|
|
+ $update_set[$k][$k1][$k2]['set_' . $col] = $id;
|
|
|
}
|
|
|
- if (isset($v2[$col])) {
|
|
|
- $v2[$col] = $id;
|
|
|
+ if (isset($v2['add_' . $col])) {
|
|
|
+ $v2['add_' . $col] = $id;
|
|
|
}
|
|
|
|
|
|
$check = false;
|