Пример #1
0
Файл: home.php Проект: gblok/rsc
function h_spec_offers()
{
    $result = array();
    //    s.Price,
    //    s.list_price,
    $sql = '
    SELECT
    s.productID,
    s.categoryID,
    s.name,
    s.brief_description,
    s.product_code,
    s.default_picture,
    s.enabled,
    s.opt_margin,
    b.productID,
    t.filename,
    s.uri,
    s.uri_opt_val
    ' . convert_prices() . '
    FROM ' . SPECIAL_OFFERS_TABLE . ' AS b
    INNER JOIN ' . PRODUCTS_TABLE . ' AS s on (b.productID=s.productID)
    INNER JOIN ' . PRODUCT_PICTURES . ' AS t on (s.default_picture=t.photoID AND s.productID=t.productID)
    WHERE s.enabled=1
    ORDER BY b.sort_order';
    //fbug($sql);
    $q = db_query($sql);
    while ($row = db_fetch_row($q)) {
        $row['picture'] = $row['filename'];
        $extra = psGetExtra($row['productID']);
        if (!empty($extra)) {
            $row['product_extra'] = $extra;
            $row['product_extra_count'] = count($extra);
            $pre_extra = array();
            $pre_extra[$row['productID']] = $extra;
            $row['color'] = psGetColor($row['productID'], $pre_extra);
            $resource = psGetExtraVal('resource', $pre_extra, $row['productID']);
            if ($resource) {
                $row['resource'] = ' <span class="resource">' . $resource . ' стр.</span>';
            }
        }
        $row['sname'] = replace_name($row['name']);
        $row['ss'] = dizSpecialSet($row['productID']);
        $price_row = priceRow($row);
        $result[] = array_merge($row, $price_row);
    }
    //fbug($result);
    //$smarty->assign('special_offers', $result);
    return $result;
}
Пример #2
0
function prdSearchProductByTemplate($callBackParam, &$count_row, $navigatorParams = null)
{
    // navigator params
    if ($navigatorParams != null) {
        $offset = xEscSQL($navigatorParams["offset"]);
        $CountRowOnPage = xEscSQL($navigatorParams["CountRowOnPage"]);
    } else {
        $offset = 0;
        $CountRowOnPage = 0;
    }
    if (isset($callBackParam["extraParametrsTemplate"])) {
        $replicantExtraParametersTpl = $callBackParam["extraParametrsTemplate"];
    }
    // special symbol prepare
    if (isset($callBackParam["search_simple"])) {
        /*                for( $i=0; $i<count($callBackParam["search_simple"]); $i++ )
                  {
                  $callBackParam["search_simple"][$i] = $callBackParam["search_simple"][$i];
                  } */
        _deletePercentSymbol($callBackParam["search_simple"]);
    }
    if (isset($callBackParam["name"])) {
        for ($i = 0; $i < count($callBackParam["name"]); $i++) {
            $callBackParam["name"][$i] = xToText(trim($callBackParam["name"][$i]));
        }
        _deletePercentSymbol($callBackParam["name"][$i]);
    }
    if (isset($callBackParam["product_code"])) {
        for ($i = 0; $i < count($callBackParam["product_code"]); $i++) {
            $callBackParam["product_code"][$i] = xToText(trim($callBackParam["product_code"][$i]));
        }
        _deletePercentSymbol($callBackParam["product_code"]);
    }
    if (isset($callBackParam["extraParametrsTemplate"])) {
        foreach ($callBackParam["extraParametrsTemplate"] as $key => $value) {
            if (is_int($key)) {
                $callBackParam["extraParametrsTemplate"][$key] = xEscSQL(trim($callBackParam["extraParametrsTemplate"][$key]));
                _deletePercentSymbol($callBackParam["extraParametrsTemplate"][$key]);
            }
        }
    }
    $where_clause = "";
    if (isset($callBackParam['tid'])) {
        $where_clause = 'WHERE productID IN (' . implode(',', $callBackParam['tid']) . ')';
        //        if (!count($callBackParam["search_simple"])) { //empty array
        //            $where_clause = " where 0";
        //        } else { //search array is not empty
        //            $sscount = count($callBackParam["search_simple"]);
        //            for ($n = 0; $n < $sscount; $n++) {
        //                if ($where_clause != "")
        //                    $where_clause .= " AND ";
        //                $where_clause .= " ( LOWER(name) LIKE '%" . xToText(trim(strtolower($callBackParam["search_simple"][$n]))) . "%' OR " .
        //                        "   LOWER(description) LIKE '%" . xEscSQL(trim(strtolower($callBackParam["search_simple"][$n]))) . "%' OR " .
        //                        "   LOWER(product_code) LIKE '%" . xEscSQL(trim(strtolower($callBackParam["search_simple"][$n]))) . "%' OR " .
        //                        "   LOWER(brief_description) LIKE '%" . xEscSQL(trim(strtolower($callBackParam["search_simple"][$n]))) . "%' ) ";
        //            }
        //
        //            if ($where_clause != "") {
        //                $where_clause = " where categoryID>1 and enabled=1 and " . $where_clause;
        //            } else {
        //                $where_clause = " where categoryID>1 and enabled=1";
        //            }
        //
        //            if (CONF_CHECKSTOCK && CONF_SHOW_NULL_STOCK) {
        //                if ($where_clause != "")
        //                    $where_clause .= " AND in_stock>0 ";
        //                else
        //                    $where_clause = "where in_stock>0 ";
        //            }
        //        }
    } else {
        // "enabled" parameter
        if (isset($callBackParam["enabled"])) {
            if ($where_clause != "") {
                $where_clause .= " AND ";
            }
            $where_clause .= " enabled=" . (int) $callBackParam["enabled"];
        }
        // take into "name" parameter
        if (isset($callBackParam["name"])) {
            foreach ($callBackParam["name"] as $name) {
                if (strlen($name) > 0) {
                    if ($where_clause != "") {
                        $where_clause .= " AND ";
                    }
                    $where_clause .= " LOWER(name) LIKE '%" . xToText(trim(strtolower($name))) . "%' ";
                }
            }
        }
        // take into "product_code" parameter
        if (isset($callBackParam["product_code"])) {
            foreach ($callBackParam["product_code"] as $product_code) {
                if ($where_clause != "") {
                    $where_clause .= " AND ";
                }
                $where_clause .= " LOWER(product_code) LIKE '%" . xToText(trim(strtolower($product_code))) . "%' ";
            }
        }
        // take into "price" parameter
        if (isset($callBackParam["price"])) {
            $price = $callBackParam["price"];
            if (trim($price["from"]) != "" && $price["from"] != null) {
                if ($where_clause != "") {
                    $where_clause .= " AND ";
                }
                $from = ConvertPriceToUniversalUnit($price["from"]);
                $where_clause .= " Price>=" . (double) $from . " ";
            }
            if (trim($price["to"]) != "" && $price["to"] != null) {
                if ($where_clause != "") {
                    $where_clause .= " AND ";
                }
                $to = ConvertPriceToUniversalUnit($price["to"]);
                $where_clause .= " Price<=" . (double) $to . " ";
            }
        }
        if (CONF_CHECKSTOCK && CONF_SHOW_NULL_STOCK) {
            if ($where_clause != "") {
                $where_clause .= " AND in_stock>0 ";
            } else {
                $where_clause = "where in_stock>0 ";
            }
        }
        // categoryID
        if (isset($callBackParam["categoryID"])) {
            $searchInSubcategories = false;
            if (isset($callBackParam["searchInSubcategories"])) {
                if ($callBackParam["searchInSubcategories"]) {
                    $searchInSubcategories = true;
                } else {
                    $searchInSubcategories = false;
                }
            }
            if ($searchInSubcategories) {
                $where_clause = _getConditionWithCategoryConjWithSubCategories($where_clause, $callBackParam["categoryID"]);
            } else {
                $where_clause = _getConditionWithCategoryConj($where_clause, $callBackParam["categoryID"]);
            }
        }
        if ($where_clause != "") {
            $where_clause = "where " . $where_clause;
        }
    }
    $order_by_clause = "ORDER BY " . CONF_DEFAULT_SORT_ORDER . "";
    if (isset($callBackParam["sort"])) {
        if ($callBackParam["sort"] == "categoryID" || $callBackParam["sort"] == "name" || $callBackParam["sort"] == "brief_description" || $callBackParam["sort"] == "in_stock" || $callBackParam["sort"] == "Price" || $callBackParam["sort"] == "customer_votes" || $callBackParam["sort"] == "customers_rating" || $callBackParam["sort"] == "list_price" || $callBackParam["sort"] == "sort_order" || $callBackParam["sort"] == "items_sold" || $callBackParam["sort"] == "product_code" || $callBackParam["sort"] == "shipping_freight" || $callBackParam["sort"] == "viewed_times") {
            $order_by_clause = " order by " . xEscSQL($callBackParam["sort"]) . " ASC ";
            if (isset($callBackParam["direction"])) {
                if ($callBackParam["direction"] == "DESC") {
                    $order_by_clause = " order by " . xEscSQL($callBackParam["sort"]) . " DESC ";
                }
            }
        }
    }
    if (isset($callBackParam['tid'])) {
        $products_count = count($callBackParam['tid']);
    } else {
        $sql = "select count(*) from " . PRODUCTS_TABLE . " " . $where_clause;
        $q = db_query($sql);
        $products_count = db_fetch_row($q);
        $products_count = $products_count[0];
    }
    $limit_clause = isset($callBackParam["extraParametrsTemplate"]) || !$CountRowOnPage ? "" : " LIMIT " . $offset . "," . $CountRowOnPage;
    $sql = '
        select
        categoryID,
        name,
        in_stock,
        productID,
        default_picture,
        sort_order,   
        enabled,
        product_code,
        shipping_freight,
        min_order_amount,
        opt_margin,
        uri,
        uri_opt_val
        ' . convert_prices() . '
        FROM ' . PRODUCTS_TABLE . ' ' . $where_clause . ' ' . $order_by_clause . $limit_clause;
    //           viewed_times,
    //            brief_description,
    //            customers_rating,
    //            customer_votes,
    //            items_sold,
    //            description,
    //    fb($sql);
    $q = db_query($sql);
    $result = array();
    $i = 0;
    if ($offset >= 0 && $offset <= $products_count) {
        while ($row = db_fetch_row($q)) {
            //            if (isset($callBackParam["extraParametrsTemplate"])) {
            //
            //                // take into "extra" parametrs
            //                $testResult = _testExtraParametrsTemplate($row["productID"], $replicantExtraParametersTpl);
            //                if (!$testResult)
            //                    continue;
            //            }
            if (($i >= $offset || !isset($callBackParam["extraParametrsTemplate"])) && $i < $offset + $CountRowOnPage || $navigatorParams == null) {
                _setPictures($row);
                $productID = $row["productID"];
                $extra = psGetExtra($productID);
                //                if($extra){
                //                    foreach($extra as $options){
                //
                //                    }
                //                }
                //
                if (!empty($extra)) {
                    $row["product_extra"] = $extra;
                    $row["product_extra_count"] = count($extra);
                    $pre_extra = array();
                    $pre_extra[$productID] = $extra;
                    $row["color"] = psGetColor($productID, $pre_extra);
                    $row["color"] = psGetColor($productID, $pre_extra);
                    $resource = psGetExtraVal('resource', $pre_extra, $row['productID']);
                    //
                    //                    fbd($extra);
                }
                if ((double) $row["shipping_freight"] > 0) {
                    $row["shipping_freightUC"] = show_price($row["shipping_freight"]);
                }
                $row["name"] = $row["name"];
                $row["sname"] = replace_name($row['name']);
                $row["description"] = $row["description"];
                $row["brief_description"] = $row["brief_description"];
                $row["product_code"] = $row["product_code"];
                $row["viewed_times"] = $row["viewed_times"];
                $row["items_sold"] = $row["items_sold"];
                $row['ss'] = dizSpecialSet($productID);
                $price_row = priceRow($row);
                if (!empty($extra)) {
                    if ($resource) {
                        if ($price_row['Price_base'] > 0) {
                            $cost_print = number_format($price_row['Price_base'] / $resource, 2, '.', '');
                            $row['cost_print'] = '<span class="resource">' . $cost_print . ' р. стр.</span>';
                        }
                        $row['resource'] = ' <span class="resource">' . $resource . ' стр.</span>';
                    }
                }
                $result[] = array_merge($row, $price_row);
            }
            $i++;
        }
    }
    //    $count_row = isset($callBackParam["extraParametrsTemplate"]) ? $i : $products_count;
    //    fbug($count_row);
    $count_row = $products_count;
    return $result;
}