当前位置: 首页>>代码示例>>PHP>>正文


PHP CIBlock::_Order方法代码示例

本文整理汇总了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":
//.........这里部分代码省略.........
开发者ID:DarneoStudio,项目名称:bitrix,代码行数:101,代码来源:product.php

示例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;
//.........这里部分代码省略.........
开发者ID:ASDAFF,项目名称:bxApiDocs,代码行数:101,代码来源:product.php

示例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 . " ";
//.........这里部分代码省略.........
开发者ID:DarneoStudio,项目名称:bitrix,代码行数:101,代码来源:iblockelement.php


注:本文中的CIBlock::_Order方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。