本文整理汇总了PHP中CCatalogMeasureRatio::GetList方法的典型用法代码示例。如果您正苦于以下问题:PHP CCatalogMeasureRatio::GetList方法的具体用法?PHP CCatalogMeasureRatio::GetList怎么用?PHP CCatalogMeasureRatio::GetList使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CCatalogMeasureRatio
的用法示例。
在下文中一共展示了CCatalogMeasureRatio::GetList方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getProductDataToFillBasket
/**
* @param $productId
* @param $quantity
* @param $userId
* @param $LID
* @param $userColumns
* @param string $tmpId we can suggest that this mean the set_item
* @return array
* @throws Main\LoaderException
*/
protected function getProductDataToFillBasket($productId, $quantity, $userId, $LID, $userColumns, $tmpId = "")
{
$isSetItem = $tmpId != "";
if (self::$catalogIncluded === null) {
self::$catalogIncluded = Main\Loader::includeModule('catalog');
}
if (!self::$catalogIncluded) {
return array();
}
$arParams = array();
static $proxyIblockElement = array();
static $proxyCatalogMeasure = array();
static $proxyParent = array();
static $proxyIblockProperty = array();
static $proxyProductData = array();
static $proxyCatalogProduct = array();
static $proxyCatalogMeasureRatio = array();
$productId = (int) $productId;
if ($productId <= 0) {
return $arParams;
}
if (!empty($proxyIblockElement[$productId])) {
$iblockId = $proxyIblockElement[$productId];
} else {
$iblockId = (int) \CIBlockElement::getIBlockByID($productId);
if ($iblockId > 0) {
$proxyIblockElement[$productId] = $iblockId;
}
}
if ($iblockId <= 0) {
return $arParams;
}
$arSku2Parent = array();
$arElementId = array();
$arElementId[] = $productId;
$proxyParentKey = $productId . "|" . $iblockId;
if (!empty($proxyParent[$proxyParentKey]) && is_array($proxyParent[$proxyParentKey])) {
$arParent = $proxyParent[$proxyParentKey];
} else {
$arParent = \CCatalogSku::getProductInfo($productId, $iblockId);
$proxyParent[$proxyParentKey] = $arParent;
}
if ($arParent) {
$arElementId[] = $arParent["ID"];
$arSku2Parent[$productId] = $arParent["ID"];
}
$arPropertyInfo = array();
$userColumns = (string) $userColumns;
$arUserColumns = $userColumns != '' ? explode(",", $userColumns) : array();
foreach ($arUserColumns as $key => $column) {
if (strncmp($column, 'PROPERTY_', 9) != 0) {
unset($arUserColumns[$key]);
} else {
$propertyCode = substr($column, 9);
if ($propertyCode == '') {
unset($arUserColumns[$key]);
continue;
}
if (!empty($proxyIblockProperty[$propertyCode]) && is_array($proxyIblockProperty[$propertyCode])) {
$arPropertyInfo[$column] = $proxyIblockProperty[$propertyCode];
} else {
$dbres = \CIBlockProperty::GetList(array(), array("CODE" => $propertyCode));
if ($arPropData = $dbres->GetNext()) {
$arPropertyInfo[$column] = $arPropData;
$proxyIblockProperty[$propertyCode] = $arPropData;
}
}
}
}
$arSelect = array_merge(array("ID", "NAME", "IBLOCK_ID", "IBLOCK_SECTION_ID", "DETAIL_PICTURE", "PREVIEW_PICTURE", "XML_ID", "IBLOCK_XML_ID"), $arUserColumns);
$proxyProductDataKey = md5(join('|', $arElementId) . "_" . join('|', $arSelect));
if (!empty($proxyProductData[$proxyProductDataKey]) && is_array($proxyProductData[$proxyProductDataKey])) {
$arProductData = $proxyProductData[$proxyProductDataKey];
} else {
$arProductData = getProductProps($arElementId, $arSelect);
$proxyProductData[$proxyProductDataKey] = $arProductData;
}
$defaultMeasure = \CCatalogMeasure::getDefaultMeasure(true, true);
if (!empty($arProductData)) {
$arElementInfo = array();
foreach ($arProductData as $elemId => &$arElement) {
foreach ($arElement as $key => $value) {
if (strncmp($key, 'PROPERTY_', 9) == 0 && substr($key, -6) == "_VALUE") {
$columnCode = str_replace("_VALUE", "", $key);
$arElement[$key] = getIblockPropInfo($value, $arPropertyInfo[$columnCode], array("WIDTH" => 90, "HEIGHT" => 90));
}
}
}
unset($arElement);
if (isset($arProductData[$productId])) {
//.........这里部分代码省略.........
示例2: getProductDataToFillBasket
function getProductDataToFillBasket($productId, $quantity, $userId, $LID, $userColumns, $tmpId = "")
{
if (!\Bitrix\Main\Loader::includeModule("catalog"))
return array();
$arParams = array();
$productId = (int)$productId;
if ($productId <= 0)
{
return $arParams;
}
$iblockId = (int)CIBlockElement::GetIBlockByID($productId);
if ($iblockId <= 0)
{
return $arParams;
}
$arSku2Parent = array();
$arElementId = array();
$arElementId[] = $productId;
$arParent = CCatalogSku::GetProductInfo($productId, $iblockId);
if ($arParent)
{
$arElementId[] = $arParent["ID"];
$arSku2Parent[$productId] = $arParent["ID"];
}
$arPropertyInfo = array();
$userColumns = (string)$userColumns;
$arUserColumns = ($userColumns != '') ? explode(",", $userColumns) : array();
foreach ($arUserColumns as $key => $column)
{
if (strncmp($column, 'PROPERTY_', 9) != 0)
{
unset($arUserColumns[$key]);
}
else
{
$propertyCode = substr($column, 9);
if ($propertyCode == '')
{
unset($arUserColumns[$key]);
continue;
}
$dbres = CIBlockProperty::GetList(array(), array("CODE" => $propertyCode));
if ($arPropData = $dbres->GetNext())
$arPropertyInfo[$column] = $arPropData;
}
}
$arSelect = array_merge(
array("ID", "NAME", "LID", "IBLOCK_ID", "IBLOCK_SECTION_ID", "DETAIL_PICTURE", "PREVIEW_PICTURE", "DETAIL_PAGE_URL", "XML_ID", "IBLOCK_XML_ID"),
$arUserColumns
);
$arProductData = getProductProps($arElementId, $arSelect);
$defaultMeasure = CCatalogMeasure::getDefaultMeasure(true, true);
if (!empty($arProductData))
{
$arElementInfo = array();
foreach ($arProductData as $elemId => &$arElement)
{
foreach ($arElement as $key => $value)
{
if (strncmp($key, 'PROPERTY_', 9) == 0 && substr($key, -6) == "_VALUE")
{
$columnCode = str_replace("_VALUE", "", $key);
$arElement[$key] = getIblockPropInfo($value, $arPropertyInfo[$columnCode], array("WIDTH" => 90, "HEIGHT" => 90));
}
}
}
unset($arElement);
if (isset($arProductData[$productId]))
$arElementInfo = $arProductData[$productId];
if (isset( $arSku2Parent[$productId]))
$arParent = $arProductData[$arSku2Parent[$productId]];
if (!empty($arSku2Parent)) // if sku element doesn't have value of some property - we'll show parent element value instead
{
foreach ($arUserColumns as $field)
{
$fieldVal = $field."_VALUE";
$parentId = $arSku2Parent[$productId];
if ((!isset($arElementInfo[$fieldVal]) || (isset($arElementInfo[$fieldVal]) && strlen($arElementInfo[$fieldVal]) == 0))
&& (isset($arProductData[$parentId][$fieldVal]) && !empty($arProductData[$parentId][$fieldVal]))) // can be array or string
{
$arElementInfo[$fieldVal] = $arProductData[$parentId][$fieldVal];
}
}
if (strpos($arElementInfo["~XML_ID"], '#') === false)
{
$arElementInfo["~XML_ID"] = $arParent['~XML_ID'].'#'.$arElementInfo["~XML_ID"];
}
//.........这里部分代码省略.........
示例3: getRatio
function getRatio($arBasketItems)
{
if (CModule::IncludeModule("catalog"))
{
$arElementId = array();
foreach ($arBasketItems as $arItem)
$arElementId[] = $arItem["PRODUCT_ID"];
if (!empty($arElementId))
{
$dbRatio = CCatalogMeasureRatio::GetList(array(), array_unique($arElementId));
while ($arRatio = $dbRatio->GetNext())
{
foreach ($arBasketItems as &$basketItem)
{
if ($arRatio["PRODUCT_ID"] == $basketItem["PRODUCT_ID"])
$basketItem["MEASURE_RATIO"] = $arRatio["RATIO"];
}
}
unset($basketItem);
return $arBasketItems;
}
}
}