• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/helpers/admin/blocks/orderbasket.php
  • Класс: BitrixSaleHelpersAdminBlocksOrderBasket
  • Вызов: OrderBasket::getVisibleColumns
protected function getVisibleColumns($idPrefix)
{
	if (self::$iblockIncluded === null)
		self::$iblockIncluded = MainLoader::includeModule('iblock');
	if (!self::$iblockIncluded)
		return array();

	$result = array();
	$arTmpColumns = array();
	$arColumnsOptions = static::loadVisibleColumns($idPrefix);

	if (is_array($arColumnsOptions) && isset($arColumnsOptions["columns"]) && $arColumnsOptions["columns"] <> '')
		$arTmpColumns = explode(",", $arColumnsOptions["columns"]);

	if(is_array($arTmpColumns) && !empty($arTmpColumns))
	{
		$iBlockProps = array();
		$iBlockPropsInt = array();

		foreach ($arTmpColumns as $id => $columnCode)
		{
			if (mb_substr($columnCode, 0, 9) == "PROPERTY_")
			{
				$iblockPropCode = mb_substr($columnCode, 9);

				if($iblockPropCode <> '')
				{
					$iBlockProps[] = $iblockPropCode;

					if(intval($iblockPropCode) > 0)
						$iBlockPropsInt[] = intval($iblockPropCode);

					$result[$columnCode] = "";
				}
			}
			else
			{
				$result[$columnCode] = Loc::getMessage("SALE_ORDER_BASKET_SETTINGS_COL_".$columnCode);
			}
		}

		if(!empty($iBlockProps))
		{
			$dbRes = BitrixIblockPropertyTable::getList(array(
				'filter' => array(
					'LOGIC' => 'OR',
					'=CODE' => $iBlockProps,
					'=ID' => $iBlockPropsInt
				),
				'select' => array('ID', 'NAME', 'CODE')
			));

			while($arPropData = $dbRes->fetch())
			{
				if($arPropData['CODE'] <> '')
					$result["PROPERTY_".$arPropData['CODE']] = $arPropData["NAME"];
				else
					$result["PROPERTY_".$arPropData['ID']] = $arPropData["NAME"];
			}
		}
	}
	else
	{
		$result = static::getDefaultVisibleColumns();
	}

	return $result;
}