本文整理汇总了PHP中CIBlock::_Order方法的典型用法代码示例。如果您正苦于以下问题:PHP CIBlock::_Order方法的具体用法?PHP CIBlock::_Order怎么用?PHP CIBlock::_Order使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CIBlock
的用法示例。
在下文中一共展示了CIBlock::_Order方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: GetQueryBuildArrays
public static function GetQueryBuildArrays($arOrder, $arFilter, $arSelect)
{
global $DB, $USER, $stackCacheManager;
$strDefQuantityTrace = (string) Option::get('catalog', 'default_quantity_trace') == 'Y' ? 'Y' : 'N';
$strDefCanBuyZero = (string) Option::get('catalog', 'default_can_buy_zero') == 'Y' ? 'Y' : 'N';
$strDefNegAmount = (string) Option::get('catalog', 'allow_negative_amount') == 'Y' ? 'Y' : 'N';
$strSubscribe = (string) Option::get('catalog', 'default_subscribe') == 'N' ? 'N' : 'Y';
$sResSelect = '';
$sResFrom = '';
$sResWhere = '';
$arResOrder = array();
$arJoinGroup = array();
$arStoreWhere = array();
$arStore = array();
$arStoreOrder = array();
$arSensID = array('PRODUCT_ID' => true, 'CATALOG_GROUP_ID' => true, 'CURRENCY' => true, 'SHOP_QUANTITY' => true, 'PRICE' => true, 'STORE_AMOUNT' => true);
$arOrderTmp = array();
foreach ($arOrder as $key => $val) {
foreach ($val as $by => $order) {
if ($arField = CCatalogProduct::ParseQueryBuildField($by)) {
$res = '';
$join = true;
$inum = (int) $arField["NUM"];
$by = (string) $arField["FIELD"];
if ($by == '' || $inum <= 0 && isset($arSensID[$by])) {
continue;
}
switch ($by) {
case 'PRICE':
$res = " " . CIBlock::_Order("CAT_P" . $inum . ".PRICE", $order, "asc") . " ";
break;
case 'CURRENCY':
$res = " " . CIBlock::_Order("CAT_P" . $inum . ".CURRENCY", $order, "asc") . " ";
break;
case 'QUANTITY':
$arResOrder[$key] = " " . CIBlock::_Order("CAT_PR.QUANTITY", $order, "asc", false) . " ";
$join = false;
break;
case 'WEIGHT':
$arResOrder[$key] = " " . CIBlock::_Order("CAT_PR.WEIGHT", $order, "asc", false) . " ";
$join = false;
break;
case 'AVAILABLE':
$arResOrder[$key] = " " . CIBlock::_Order("CATALOG_AVAILABLE", $order, "desc", false) . " ";
$join = false;
break;
case 'TYPE':
$arResOrder[$key] = " " . CIBlock::_Order("CAT_PR.TYPE", $order, "asc", false) . " ";
$join = false;
break;
case 'PURCHASING_PRICE':
$arResOrder[$key] = " " . CIBlock::_Order("CAT_PR.PURCHASING_PRICE", $order, "asc") . " ";
$join = false;
break;
case 'PURCHASING_CURRENCY':
$arResOrder[$key] = " " . CIBlock::_Order("CAT_PR.PURCHASING_CURRENCY", $order, "asc") . " ";
$join = false;
break;
case 'STORE_AMOUNT':
$arStore[$inum] = true;
if (!isset($arStoreOrder[$inum])) {
$arStoreOrder[$inum] = array();
}
$arStoreOrder[$inum][$key] = " " . CIBlock::_Order("CAT_SP" . $inum . ".AMOUNT", $order, "asc") . " ";
$join = false;
break;
default:
$res = " " . CIBlock::_Order("CAT_P" . $inum . ".ID", $order, "asc", false) . " ";
break;
}
if ($join) {
if (!isset($arOrderTmp[$inum])) {
$arOrderTmp[$inum] = array();
}
$arOrderTmp[$inum][$key] = $res;
$arJoinGroup[$inum] = true;
}
}
}
}
$productWhere = array();
$arWhereTmp = array();
$arAddJoinOn = array();
$filter_keys = !is_array($arFilter) ? array() : array_keys($arFilter);
for ($i = 0, $cnt = count($filter_keys); $i < $cnt; $i++) {
$key = strtoupper($filter_keys[$i]);
$val = $arFilter[$filter_keys[$i]];
$res = CIBlock::MkOperationFilter($key);
$key = $res["FIELD"];
$cOperationType = $res["OPERATION"];
if ($arField = CCatalogProduct::ParseQueryBuildField($key)) {
$res = '';
$join = true;
$key = (string) $arField["FIELD"];
$inum = (int) $arField["NUM"];
if ($key == '' || $inum <= 0 && isset($arSensID[$key])) {
continue;
}
switch ($key) {
case "PRODUCT_ID":
//.........这里部分代码省略.........
示例2: GetQueryBuildArrays
public static function GetQueryBuildArrays($arOrder, $arFilter, $arSelect)
{
global $DB, $USER;
global $stackCacheManager;
$strDefQuantityTrace = COption::GetOptionString('catalog','default_quantity_trace','N');
if ('Y' != $strDefQuantityTrace)
$strDefQuantityTrace = 'N';
$strDefCanBuyZero = COption::GetOptionString('catalog','default_can_buy_zero','N');
if ('Y' != $strDefCanBuyZero)
$strDefCanBuyZero = 'N';
$strDefNegAmount = COption::GetOptionString('catalog','allow_negative_amount','N');
if ('Y' != $strDefNegAmount)
$strDefNegAmount = 'N';
$sResSelect = "";
$sResFrom = "";
$sResWhere = "";
$arResOrder = array();
$arJoinGroup = array();
$arSensID = array(
'PRODUCT_ID' => true,
'CATALOG_GROUP_ID' => true,
'CURRENCY' => true,
'SHOP_QUANTITY' => true,
'PRICE' => true
);
$arOrderTmp = array();
foreach ($arOrder as $key => $val)
{
foreach ($val as $by => $order)
{
if ($arField = CCatalogProduct::ParseQueryBuildField($by))
{
$inum = $arField["NUM"];
$by = $arField["FIELD"];
$res = '';
if (0 >= $inum && array_key_exists($by, $arSensID))
continue;
if ($by == "PRICE")
{
$res = " ".CIBlock::_Order("CAT_P".$inum.".PRICE", $order, "asc")." ";
}
elseif ($by == "CURRENCY")
{
$res = " ".CIBlock::_Order("CAT_P".$inum.".CURRENCY", $order, "asc")." ";
}
elseif ($by == "QUANTITY")
{
$arResOrder[$key] = " ".CIBlock::_Order("CAT_PR.QUANTITY", $order, "asc", false)." ";
continue;
}
elseif ($by == 'WEIGHT')
{
$arResOrder[$key] = " ".CIBlock::_Order("CAT_PR.WEIGHT", $order, "asc", false)." ";
continue;
}
elseif ($by == 'AVAILABLE')
{
$arResOrder[$key] = " ".CIBlock::_Order("CATALOG_AVAILABLE", $order, "desc", false)." ";
continue;
}
else
{
$res = " ".CIBlock::_Order("CAT_P".$inum.".ID", $order, "asc", false)." ";
}
if (!array_key_exists($inum, $arOrderTmp))
$arOrderTmp[$inum] = array();
$arOrderTmp[$inum][$key] = $res;
$arJoinGroup[$inum] = true;
}
}
}
$arWhereTmp = array();
$arAddJoinOn = array();
$filter_keys = (!is_array($arFilter) ? array() : array_keys($arFilter));
for ($i=0, $cnt = count($filter_keys); $i < $cnt; $i++)
{
$key = strtoupper($filter_keys[$i]);
$val = $arFilter[$filter_keys[$i]];
$res = CIBlock::MkOperationFilter($key);
$key = $res["FIELD"];
$cOperationType = $res["OPERATION"];
if ($arField = CCatalogProduct::ParseQueryBuildField($key))
{
$key = $arField["FIELD"];
$inum = $arField["NUM"];
if (0 >= $inum && array_key_exists($key, $arSensID))
continue;
//.........这里部分代码省略.........
示例3: PrepareGetList
function PrepareGetList(&$arIblockElementFields, &$arJoinProps, &$bOnlyCount, &$bDistinct, &$arSelectFields, &$sSelect, &$arAddSelectFields, &$arFilter, &$sWhere, &$sSectionWhere, &$arAddWhereFields, &$arGroupBy, &$sGroupBy, &$arOrder, &$arSqlOrder, &$arAddOrderByFields, &$arIBlockFilter, &$arIBlockMultProps, &$arIBlockConvProps, &$arIBlockAllProps, &$arIBlockNumProps, &$arIBlockLongProps)
{
if (is_array($arSelectFields) && (in_array("DETAIL_PAGE_URL", $arSelectFields) || in_array("CANONICAL_PAGE_URL", $arSelectFields)) && !in_array("LANG_DIR", $arSelectFields)) {
$arSelectFields[] = "LANG_DIR";
}
global $DB, $USER;
if (!is_array($arSelectFields) && $arSelectFields == "" || count($arSelectFields) <= 0 || $arSelectFields === false) {
$arSelectFields = array("*");
}
if (is_bool($arGroupBy) && $arGroupBy !== false) {
$arGroupBy = array();
}
if (is_array($arGroupBy) && count($arGroupBy) == 0) {
$bOnlyCount = true;
}
$iPropCnt = 0;
$arJoinProps = array("FP" => array(), "FPV" => array(), "FPS" => array(), "FPEN" => array(), "BE" => array(), "BE_FP" => array(), "BE_FPV" => array(), "BE_FPS" => array(), "BE_FPEN" => array(), "BES" => "", "RV" => false, "RVU" => false, "RVV" => false, "FC" => "");
$arIBlockMultProps = array();
$arIBlockAllProps = array();
$arIBlockNumProps = array();
$bWasGroup = false;
//********************************ORDER BY PART***********************************************
$arSqlOrder = array();
$arAddOrderByFields = array();
$iOrdNum = -1;
if (!is_array($arOrder)) {
$arOrder = array();
}
foreach ($arOrder as $by => $order) {
$by_orig = $by;
$by = strtoupper($by);
//Remove aliases
if ($by == "EXTERNAL_ID") {
$by = "XML_ID";
} elseif ($by == "DATE_ACTIVE_FROM") {
$by = "ACTIVE_FROM";
} elseif ($by == "DATE_ACTIVE_TO") {
$by = "ACTIVE_TO";
}
if (array_key_exists($by, $arSqlOrder)) {
continue;
}
if (substr($by, 0, 8) == "CATALOG_") {
$iOrdNum++;
$arAddOrderByFields[$iOrdNum] = array($by => $order);
//Reserve for future fill
$arSqlOrder[$iOrdNum] = false;
} else {
if ($by == "ID") {
$arSqlOrder[$by] = CIBlock::_Order("BE.ID", $order, "desc", false);
} elseif ($by == "NAME") {
$arSqlOrder[$by] = CIBlock::_Order("BE.NAME", $order, "desc", false);
} elseif ($by == "STATUS") {
$arSqlOrder[$by] = CIBlock::_Order("BE.WF_STATUS_ID", $order, "desc");
} elseif ($by == "XML_ID") {
$arSqlOrder[$by] = CIBlock::_Order("BE.XML_ID", $order, "desc");
} elseif ($by == "CODE") {
$arSqlOrder[$by] = CIBlock::_Order("BE.CODE", $order, "desc");
} elseif ($by == "TAGS") {
$arSqlOrder[$by] = CIBlock::_Order("BE.TAGS", $order, "desc");
} elseif ($by == "TIMESTAMP_X") {
$arSqlOrder[$by] = CIBlock::_Order("BE.TIMESTAMP_X", $order, "desc");
} elseif ($by == "CREATED") {
$arSqlOrder[$by] = CIBlock::_Order("BE.DATE_CREATE", $order, "desc");
} elseif ($by == "CREATED_DATE") {
$arSqlOrder[$by] = CIBlock::_Order($DB->DateFormatToDB("YYYY.MM.DD", "BE.DATE_CREATE"), $order, "desc");
} elseif ($by == "IBLOCK_ID") {
$arSqlOrder[$by] = CIBlock::_Order("BE.IBLOCK_ID", $order, "desc");
} elseif ($by == "MODIFIED_BY") {
$arSqlOrder[$by] = CIBlock::_Order("BE.MODIFIED_BY", $order, "desc");
} elseif ($by == "CREATED_BY") {
$arSqlOrder[$by] = CIBlock::_Order("BE.CREATED_BY", $order, "desc");
} elseif ($by == "ACTIVE") {
$arSqlOrder[$by] = CIBlock::_Order("BE.ACTIVE", $order, "desc");
} elseif ($by == "ACTIVE_FROM") {
$arSqlOrder[$by] = CIBlock::_Order("BE.ACTIVE_FROM", $order, "desc");
} elseif ($by == "ACTIVE_TO") {
$arSqlOrder[$by] = CIBlock::_Order("BE.ACTIVE_TO", $order, "desc");
} elseif ($by == "SORT") {
$arSqlOrder[$by] = CIBlock::_Order("BE.SORT", $order, "desc");
} elseif ($by == "IBLOCK_SECTION_ID") {
$arSqlOrder[$by] = CIBlock::_Order("BE.IBLOCK_SECTION_ID", $order, "desc");
} elseif ($by == "SHOW_COUNTER") {
$arSqlOrder[$by] = CIBlock::_Order("BE.SHOW_COUNTER", $order, "desc");
} elseif ($by == "SHOW_COUNTER_START") {
$arSqlOrder[$by] = CIBlock::_Order("BE.SHOW_COUNTER_START", $order, "desc");
} elseif ($by == "RAND") {
$arSqlOrder[$by] = CIBlockElement::GetRandFunction(true);
} elseif ($by == "SHOWS") {
$arSqlOrder[$by] = CIBlock::_Order(CIBlockElement::GetShowedFunction(), $order, "desc", false);
} elseif ($by == "HAS_PREVIEW_PICTURE") {
$arSqlOrder[$by] = CIBlock::_Order(CIBlock::_NotEmpty("BE.PREVIEW_PICTURE"), $order, "desc", false);
} elseif ($by == "HAS_DETAIL_PICTURE") {
$arSqlOrder[$by] = CIBlock::_Order(CIBlock::_NotEmpty("BE.DETAIL_PICTURE"), $order, "desc", false);
} elseif ($by == "RATING_TOTAL_VALUE") {
$arSqlOrder[$by] = CIBlock::_Order("RV.TOTAL_VALUE", $order, "desc");
$arJoinProps["RV"] = true;
} elseif ($by == "CNT") {
if (is_array($arGroupBy) && count($arGroupBy) > 0) {
$arSqlOrder[$by] = " CNT " . $order . " ";
//.........这里部分代码省略.........