本文整理汇总了PHP中CIBlockElement::GetRandFunction方法的典型用法代码示例。如果您正苦于以下问题:PHP CIBlockElement::GetRandFunction方法的具体用法?PHP CIBlockElement::GetRandFunction怎么用?PHP CIBlockElement::GetRandFunction使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CIBlockElement
的用法示例。
在下文中一共展示了CIBlockElement::GetRandFunction方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: 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 . " ";
//.........这里部分代码省略.........