예제 #1
0
    /**
     * Search box advance
     * 
     * @author MinhNV
     * Date 2010/07/01
     *
     */
    private function searchBoxAdvance()
    {
        global $display;
        $category_id = Url::get('category_id');
        $cat_product_id = Url::get('cat_product_id');
        $txt_search = Url::get('txt_search');
        //get from cookie
        $cookie_search = Url::get('so_advanced_category_id_search', 0);
        if ($cookie_search != '') {
            $cookie_search = unserialize($cookie_search);
        } else {
            $cookie_search = array();
        }
        $cookie_search[$category_id] = array('txt_search' => $txt_search, 'cat_product_id' => $cat_product_id);
        $cookie_search = serialize($cookie_search);
        $minute_expire = 3600 + TIME_NOW;
        EClassApi::set_cookie('so_advanced_category_id_search', $cookie_search, $minute_expire);
        $page_no = Url::get('page_no', 1);
        $page = Url::get('page');
        $order_by = Url::get('order_by', 'id');
        $order_dir = Url::get('order_dir', 'DESC');
        $cond = ' TRUE ';
        $paging = '';
        $aryDataSearch = array();
        $total_row = 0;
        if ($category_id > 0 && (!User::is_admin() && User::has_permit_cat($category_id) || User::is_admin())) {
            $cond .= ' AND category_id=' . $category_id;
        } elseif (!User::is_admin()) {
            $cond .= ' AND ' . User::get_query_permit_cat(false, 'category_id');
        }
        if ($cat_product_id > 0 && (!User::is_admin() && User::has_permit_cat_product($cat_product_id) || User::is_admin())) {
            $cond .= ' AND cat_product_id=' . $cat_product_id;
        } elseif (!User::is_admin()) {
            $temp = User::get_query_permit_all_table('cat_product_id', false);
            $cond .= ' AND ' . ($temp != '' ? $temp : ' TRUE ');
        }
        if ($txt_search != '') {
            $cond .= ' AND b.`name` like "%' . $txt_search . '%" ';
        }
        $item_per_page = CGlobal::$number_per_page;
        $total_row = DB::fetch('SELECT count(*) AS total_row FROM so_box_advanced  b WHERE ' . $cond . ' LIMIT 0,1', 'total_row', 0);
        if ($total_row) {
            $limit = '';
            $url_path = 'ajax.php?act=so_advanced&code=search_box_advance&category_id=' . $category_id . '&txt_search=' . $txt_search . '&cat_product_id=' . $cat_product_id . '&page=' . $page;
            BMPaging::AjaxPagingTemplate($paging, $limit, $total_row, CGlobal::$number_per_page, CGlobal::$number_pages_show, 'page_no', true, $url_path, 'paging_box_advanced_template');
            $sql = 'SELECT 
					b.`id`,
					b.`category_id`,
					b.`cat_product_id`,
					b.`product_id`,
					b.`name`,
					b.`description`,
					b.`image`,
					b.`link_fix`,
					b.`product_relate`,
					b.`total_item`,
					b.`product_relate_full`,
					b.`status`,
					b.`created_date`,
					c.`name` as category_name,
					d.`name` as product_category_name
					FROM so_box_advanced b LEFT JOIN so_category c ON b.category_id = c.id
							       LEFT JOIN so_products_category d ON cat_product_id = d.id
					WHERE ' . $cond . ' ORDER BY ' . $order_by . ' ' . $order_dir . ' ' . $limit;
            $re = DB::query($sql);
            if ($re) {
                while ($row = mysql_fetch_assoc($re)) {
                    //$row ['image'] = ImageUrl::getBoxAvancedImage ( 70, true, true, $row ['image'] ); // lay URL tu csdl cua image
                    $row['image'] = SoImg::getImage($row['image'], $row['id'], SoImg::FOLDER_BOX_ADVANCED, $row['created_date'], '100x50');
                    array_push($aryDataSearch, $row);
                }
            }
        }
        $display->add('hover', EClassApi::mouse_hover(COLOR_MOUSE_HOVER, true));
        $display->add('aryBox', $aryDataSearch);
        //$display->add('paging', $paging);
        $display->add('total_row', $total_row);
        $display->add('page', $page);
        $aryHtml = $display->output('list_box_advanced', true, 'SoBoxAdvanced');
        $aryData = array();
        $aryData['html'] = $aryHtml;
        $aryData['intIsOK'] = 1;
        $aryData['page'] = $paging;
        echo json_encode($aryData);
        exit;
    }