Пример #1
0
function get_child_cids($id, $parent)
{
    if (isset($parent[$id])) {
        $cids[] = $id;
        foreach ($parent[$id] as $k => $v) {
            if (isset($parent[$k])) {
                $cids = array_merge($cids, get_child_cids($k, $parent));
            } else {
                $cids[] = $k;
            }
        }
    } else {
        $cids[] = $id;
    }
    return $cids;
}
Пример #2
0
 function search($page = NULL, $posts = NULL)
 {
     $keys = NULL;
     if ($posts) {
         $keys = @unserialize(base64_decode($posts));
         if (!is_array($keys)) {
             info_page('错误的参数');
         }
     }
     $keys['searchtxt'] = isset($keys['searchtxt']) && $keys['searchtxt'] ? z($keys['searchtxt']) : NULL;
     $cates = get_shop_cates();
     if (isset($keys['cate']) && intval($keys['cate']) > 0 && isset($cates[intval($keys['cate'])])) {
         if ($cates) {
             foreach ($cates as $v) {
                 $parent[$v['pid']][$v['id']] = $v['orders'];
             }
             $cids = get_child_cids(intval($keys['cate']), $parent);
             $keys['cates'] = $cids;
         } else {
             $keys['cates'] = NULL;
         }
     } else {
         $keys['cates'] = NULL;
     }
     $page = intval($page) > 0 ? intval($page) : 1;
     $limit = 10;
     $start = ($page - 1) * $limit;
     $data['list'] = $this->shop->get_search_items($start, $limit, $keys);
     $all = get_count();
     $page_all = ceil($all / $limit);
     $keeps = array();
     $wishes = array();
     if ($data['list']) {
         foreach ($data['list'] as $v) {
             $sids[$v['id']] = $v['id'];
         }
         $keeps = $this->shop->get_wishlist_with_ids($sids, 1);
         $wishes = $this->shop->get_wishlist_with_ids($sids, 2);
     }
     $data['keeps'] = $keeps;
     $data['wishes'] = $wishes;
     $data['pager'] = get_pager($page, $page_all, '/shop/search', $posts);
     $data['nav'] = array('搜索结果列表');
     $data['cates'] = $cates;
     $data['brands'] = $this->shop->get_brands();
     unset($keys['cates']);
     $set = NULL;
     if ($keys) {
         foreach ($keys as $k => $v) {
             $set .= "set( '" . $k . "' , '" . add_slashes_on_quote($v) . "' );";
         }
     }
     $data['set'] = $set;
     $data['views'] = $this->get_viewed_item();
     $this->view('search', $data);
 }