|
@@ -168,7 +168,7 @@ class Api
|
|
|
}
|
|
|
|
|
|
if ($v['value']) {
|
|
|
- $config['struct'][$k]['default'] = $v['value'];
|
|
|
+ //$config['struct'][$k]['default'] = $v['value'];
|
|
|
}
|
|
|
|
|
|
if ($v['state'] == 2) {
|
|
@@ -223,7 +223,7 @@ class Api
|
|
|
*
|
|
|
* @return mixed
|
|
|
*/
|
|
|
- public function string($ids, $value)
|
|
|
+ public function string($ids, $value = '')
|
|
|
{
|
|
|
$result = $this->getInfo($ids, $value);
|
|
|
|
|
@@ -243,30 +243,66 @@ class Api
|
|
|
*
|
|
|
* @return mixed
|
|
|
*/
|
|
|
- public function getSearch($ids, $cate = true)
|
|
|
+ public function getSearch($ids, $cate = true, $city = false, $search_value = false)
|
|
|
{
|
|
|
+ $value = array();
|
|
|
+ $search_value = Dever::preInput('attr_', $search_value);
|
|
|
+
|
|
|
if ($cate && Dever::project('category')) {
|
|
|
- $attr_where['category'] = $ids;
|
|
|
+ $attr_where['category'] = Dever::defaultValue($ids);
|
|
|
$attr = Dever::db('category/attr')->getAttr($attr_where);
|
|
|
if ($attr) {
|
|
|
- $value = array();
|
|
|
+ $ids = $ids_input = array();
|
|
|
foreach ($attr as $k => $v) {
|
|
|
- $value = array_merge($value, explode(',', $v['attr']));
|
|
|
+ $v['attr'] = explode(',', $v['attr']);
|
|
|
+ $v['attr_input'] = explode(',', $v['attr_input']);
|
|
|
+ foreach ($v['attr'] as $k1 => $v1) {
|
|
|
+ $ids[$v1] = $v1;
|
|
|
+ if (isset($v['attr_input'][$k1])) {
|
|
|
+ $ids_input[$v1] = $v['attr_input'][$k1];
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- $ids = array_unique($value);
|
|
|
+ $ids = array_keys($ids);
|
|
|
}
|
|
|
- print_r($ids);die;
|
|
|
}
|
|
|
$where['ids'] = $ids;
|
|
|
$where['search_reorder'] = 1;
|
|
|
$data = Dever::db('attr/info')->getSearch($where);
|
|
|
|
|
|
- print_r($data);die;
|
|
|
- $table = array();
|
|
|
- foreach ($data as $k => $v) {
|
|
|
-
|
|
|
+ if ($data) {
|
|
|
+ foreach ($data as $k => $v) {
|
|
|
+ if (isset($ids_input[$v['id']]) && $ids_input[$v['id']]) {
|
|
|
+ $data[$k]['name'] = $ids_input[$v['id']];
|
|
|
+ }
|
|
|
+ $data[$k]['key'] = 'attr_' . $v['id'];
|
|
|
+ if ($v['type'] == 7 && $city > 0) {
|
|
|
+ # 获取地区,获取最后一个级别的地区
|
|
|
+ $data[$k]['option'] = Dever::db('area/county')->state(array('city_id' => $city));
|
|
|
+ } elseif ($v['type_option']) {
|
|
|
+ $temp = explode("\n", $v['type_option']);
|
|
|
+ foreach ($temp as $k1 => $v1) {
|
|
|
+ $v1 = explode(',', $v1);
|
|
|
+ $k1 = $k1+1;
|
|
|
+ $data[$k]['option'][$k1] = array
|
|
|
+ (
|
|
|
+ 'id' => $k1,
|
|
|
+ 'name' => $v1[0],
|
|
|
+ );
|
|
|
+ if (isset($v1[1])) {
|
|
|
+ $data[$k]['option_match'][$k1] = $v1[1];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (isset($search_value[$data[$k]['key']])) {
|
|
|
+ $data[$k]['option_value'] = $search_value[$data[$k]['key']];
|
|
|
+ $value[$data[$k]['key']] = $data[$k]['option_value'];
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
|
|
|
- return Dever::table($table);
|
|
|
+ return array('search' => $data, 'value' => $value);
|
|
|
}
|
|
|
}
|