• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/classes/general/iblockelement.php
  • Класс: CAllIBlockElement
  • Вызов: CAllIBlockElement::MkPropertyGroup
public function MkPropertyGroup($db_prop, &$arJoinProps, $bSort = false)
{
	if($db_prop["VERSION"] == 2 && $db_prop["MULTIPLE"]=="N")
	{
		if(!array_key_exists($db_prop["IBLOCK_ID"], $arJoinProps["FPS"]))
			$arJoinProps["FPS"][$db_prop["IBLOCK_ID"]] = count($arJoinProps["FPS"]);
		$iPropCnt = $arJoinProps["FPS"][$db_prop["IBLOCK_ID"]];
	}
	else
	{
		//Join property metadata table
		if(!array_key_exists($db_prop["ID"], $arJoinProps["FP"]))
			$arJoinProps["FP"][$db_prop["ID"]] = array(
				"CNT" => count($arJoinProps["FP"]),
				"bFullJoin" => false,
			);

		if(!array_key_exists($db_prop["ID"], $arJoinProps["FPV"]))
			$arJoinProps["FPV"][$db_prop["ID"]] = array(
				"CNT" => count($arJoinProps["FPV"]),
				"IBLOCK_ID" => $db_prop["IBLOCK_ID"],
				"MULTIPLE" => $db_prop["MULTIPLE"],
				"VERSION" => $db_prop["VERSION"],
				"ORIG_ID" => $db_prop["ORIG_ID"],
				"JOIN" => $arJoinProps["FP"][$db_prop["ID"]]["CNT"],
				"bFullJoin" => false,
			);
		$iPropCnt = $arJoinProps["FPV"][$db_prop["ID"]]["CNT"];
	}

	if($db_prop["PROPERTY_TYPE"]=="L")
	{
		if(!array_key_exists($db_prop["ID"], $arJoinProps["FPEN"]))
			$arJoinProps["FPEN"][$db_prop["ID"]] = array(
				"CNT" => count($arJoinProps["FPEN"]),
				"MULTIPLE" => $db_prop["MULTIPLE"],
				"VERSION" => $db_prop["VERSION"],
				"ORIG_ID" => $db_prop["ORIG_ID"],
				"JOIN" => $iPropCnt,
				"bFullJoin" => false,
			);
		$iFpenCnt = $arJoinProps["FPEN"][$db_prop["ID"]]["CNT"];

		return ($bSort? ", FPEN".$iFpenCnt.".SORT": ", FPEN".$iFpenCnt.".VALUE, FPEN".$iFpenCnt.".ID");
	}
	elseif($db_prop["VERSION"]==2 && $db_prop["MULTIPLE"]=="N")
	{
		return ", FPS".$iPropCnt.".PROPERTY_".$db_prop["ORIG_ID"];
	}
	elseif($db_prop["PROPERTY_TYPE"]=="N")
	{
		return ", FPV".$iPropCnt.".VALUE, FPV".$iPropCnt.".VALUE_NUM";
	}
	else
	{
		return ", FPV".$iPropCnt.".VALUE";
	}
}