function __construct($iblock_id) { if (!$iblock_id) { return false; } $this->iblock_id = $iblock_id; $this->obCache = new CPHPCache(); if ($this->obCache->InitCache(self::$config['CACHE_TIME'], md5($this->iblock_id . __METHOD__), self::$config['CACHE_DIR'])) { $this->props = $this->obCache->GetVars(); } elseif ($this->obCache->StartDataCache()) { CModule::IncludeModule('iblock'); global $CACHE_MANAGER; $CACHE_MANAGER->StartTagCache(self::$config['CACHE_DIR']); $CACHE_MANAGER->RegisterTag("iblock_id_" . $this->iblock_id); $CACHE_MANAGER->RegisterTag(self::$config['CACHE_TAG']); $CACHE_MANAGER->EndTagCache(); $properties = CIBlockProperty::GetList(array("sort" => "asc"), array("ACTIVE" => "Y", "IBLOCK_ID" => $this->iblock_id)); while ($prop_fields = $properties->GetNext()) { $propArr = array('ID' => $prop_fields['ID'], 'PROPERTY_NAME' => $prop_fields['NAME'], 'PROPERTY_TYPE' => $prop_fields['PROPERTY_TYPE'], 'CODE' => $prop_fields['CODE']); foreach (array('LINK_IBLOCK_ID', 'USER_TYPE') as $code) { if (isset($prop_fields[$code])) { $propArr[$code] = $prop_fields[$code]; } } if ($prop_fields["USER_TYPE_SETTINGS"]["TABLE_NAME"]) { $propArr['TABLE_NAME'] = $prop_fields["USER_TYPE_SETTINGS"]["TABLE_NAME"]; } $this->props[$prop_fields["CODE"]] = $propArr; } $this->obCache->EndDataCache($this->props); } }
/** * generateAddCode * @param array $params * @return bool|string */ public function generateAddCode($params) { $iBlock = new \CIBlock(); $IblockCode = $params['iblockCode']; $PropertyCode = $params['propertyCode']; $IblockProperty = new \CIBlockProperty(); $dbIblockProperty = $IblockProperty->GetList(array(), array('IBLOCK_CODE' => $IblockCode, 'CODE' => $PropertyCode)); if ($arIblockProperty = $dbIblockProperty->Fetch()) { if ($arIblockProperty['PROPERTY_TYPE'] == 'L') { $arIblockProperty['VALUES'] = $this->getEnumItemList($arIblockProperty['IBLOCK_ID'], $arIblockProperty['ID']); } if (isset($arIblockProperty['LINK_IBLOCK_ID'])) { $res = $iBlock->GetByID($arIblockProperty['LINK_IBLOCK_ID']); if ($ar_res = $res->GetNext()) { unset($arIblockProperty['LINK_IBLOCK_ID']); $arIblockProperty['LINK_IBLOCK_CODE'] = $ar_res['CODE']; } } unset($arIblockProperty['ID']); unset($arIblockProperty['IBLOCK_ID']); $arIblockProperty['IBLOCK_CODE'] = $IblockCode; return $this->getMethodContent('Bim\\Db\\Iblock\\IblockPropertyIntegrate', 'Add', array($arIblockProperty)); } else { return false; } }
function _getPropertiesEx($arParams) { $arFilter = array(); $arProperties = array(); $arPropListIds = array(); if (notEmpty($arParams["type"])) { $arFilter["PROPERTY_TYPE"] = $arParams["type"]; } if (notEmpty($arParams["iblock_id"])) { $arFilter["IBLOCK_ID"] = iblock($arParams["iblock_id"]); } $resProperties = \CIBlockProperty::GetList(array(), $arFilter); while ($arProperty = $resProperties->Fetch()) { $arProperties[$arProperty["CODE"]] = $arProperty; if ($arProperty["PROPERTY_TYPE"] == "L") { $arPropListIds[] = $arProperty["ID"]; } } // В фильтр CIBlockPropertyEnum::GetList() нельзя передать // PROPERTY_ID в виде массива ID, поэтому перебираем // каждое свойство в цикле foreach ($arPropListIds as $propListId) { $resPropValues = \CIBlockPropertyEnum::GetList(array('SORT' => 'ASC', 'VALUE' => 'ASC'), array('PROPERTY_ID' => $propListId)); while ($arPropValue = $resPropValues->Fetch()) { $arProperties[$arPropValue["PROPERTY_CODE"]]["VALUES"][$arPropValue["XML_ID"]] = $arPropValue["ID"]; } } return $arProperties; }
public function testAdd() { /** @var $dbList \CDBResult */ $dbList = \CIBlock::GetList(); $ibCountBefore = $dbList->SelectedRowsCount(); $beforeIds = array(); while ($arIblock = $dbList->Fetch()) { $beforeIds[] = $arIblock['ID']; } $this->_applyFixtures(self::FIXTURE_TYPE_ADD); $dbList = \CIBlock::GetList(); $ibCountAfter = $dbList->SelectedRowsCount(); $afterIds = array(); while ($arIblock = $dbList->Fetch()) { $afterIds[] = $arIblock['ID']; } $aAddedId = array_diff($afterIds, $beforeIds); $this->_processIblockId = array_shift($aAddedId); $this->assertNotEmpty($ibCountAfter, $this->errorMessage('record IB must be present')); $this->assertNotEquals($ibCountAfter, $ibCountBefore, $this->errorMessage('not also recording information block')); $this->assertNotEmpty($this->_processIblockId, $this->errorMessage('unavailable identifier of the new information block')); $rsProps = \CIBlockProperty::GetList(null, array('IBLOCK_ID' => $this->_processIblockId)); $this->assertNotEmpty($rsProps->AffectedRowsCount(), $this->errorMessage('added properties not available information block', array(':iblockId' => $this->_processIblockId))); $rsSections = \CIBlockSection::getList(null, array('IBLOCK_ID' => $this->_processIblockId), false, array('ID')); $this->assertNotEmpty($rsSections->AffectedRowsCount(), $this->errorMessage('added sections not available information block')); $registerRef = (bool) DbVersionReferencesTable::getList(array('filter' => array('=DB_VERSION' => Module::getInstance()->getDbVersion(), '=GROUP' => ReferenceController::GROUP_IBLOCK, '=ITEM_ID' => $this->_processIblockId)))->fetch(); $this->assertTrue($registerRef, $this->errorMessage('In added apply not created iblock reference ' . $this->_processIblockId)); }
/** * Генерация создания Информационного блока * * generateAddCode * @param array $IblockCode * @return bool|string */ public function generateAddCode($IblockCode) { $return = array(); $iblockObject = $this->iblock->GetList(array(), array('CODE' => $IblockCode, 'CHECK_PERMISSIONS' => 'N')); if ($item = $iblockObject->Fetch()) { # Установка групп пользователей $this->setUserGroupId($item['ID'], $item); $item['FIELDS'] = \CIBlock::GetFields($item['ID']); Helper::unsetFields(array('ID'), $item); if ($return[] = $this->getMethodContent('Bim\\Db\\Iblock\\IblockIntegrate', 'Add', array($item))) { $IblockProperty = new \CIBlockProperty(); $iblockPropertyQuery = $IblockProperty->GetList(array(), array('IBLOCK_CODE' => $item['CODE'])); while ($iblockProperty = $iblockPropertyQuery->Fetch()) { Helper::unsetFields(array('ID'), $iblockProperty); $iblockProperty['IBLOCK_CODE'] = $item['CODE']; $propertyQuery = \CIBlockPropertyEnum::GetList(array(), array("IBLOCK_ID" => $iblockProperty['IBLOCK_ID'], "CODE" => $iblockProperty['CODE'])); while ($propertyValues = $propertyQuery->Fetch()) { Helper::unsetFields(array('ID', 'PROPERTY_ID'), $propertyValues); $iblockProperty['VALUES'][] = $propertyValues; } if (!is_null($iblockProperty['LINK_IBLOCK_ID'])) { $linkedIBlock = $this->iblock->GetList(array(), array('ID' => $iblockProperty['LINK_IBLOCK_ID'], 'CHECK_PERMISSIONS' => 'N'))->Fetch(); $iblockProperty['LINK_IBLOCK_CODE'] = $linkedIBlock['CODE']; } $return[] = $this->getMethodContent('Bim\\Db\\Iblock\\IblockPropertyIntegrate', 'Add', array($iblockProperty)); } return implode(PHP_EOL, $return); } else { return false; } } else { return false; } }
/** * Генерация создания * * generateAddCode * @param array $IblockTypeId * @return bool|string */ public function generateAddCode($IblockTypeId) { $iBlock = new \CIBlock(); $CIblockType = new \CIBlockType(); $lang = new \CLanguage(); $return = array(); $dbIblockType = $CIblockType->GetByID($IblockTypeId); if ($arIblockType = $dbIblockType->GetNext()) { $Iblock = new \CIBlock(); $dbIblock = $Iblock->GetList(array(), array('TYPE' => $IblockTypeId, 'CHECK_PERMISSIONS' => 'N')); while ($arIblock = $dbIblock->GetNext()) { $IblockProperty = new \CIBlockProperty(); $dbIblockProperty = $IblockProperty->GetList(array(), array('IBLOCK_CODE' => $arIblock['CODE'], 'CHECK_PERMISSIONS' => 'N')); while ($arIblockProperty = $dbIblockProperty->GetNext()) { $dbPropertyValues = \CIBlockPropertyEnum::GetList(array(), array("IBLOCK_ID" => $arIblockProperty['IBLOCK_ID'], "CODE" => $arIblockProperty['CODE'])); while ($arPropertyValues = $dbPropertyValues->Fetch()) { $arIblockProperty['VALUES'][$arPropertyValues['ID']] = $arPropertyValues; } Helper::unsetFields(array('ID', '~ID', 'IBLOCK_ID', '~IBLOCK_ID'), $arIblockProperty); $arIblockProperty['IBLOCK_CODE'] = $arIblock['CODE']; foreach ($arIblockProperty as $k => $v) { if (strstr($k, "~") || is_null($v)) { unset($arIblockProperty[$k]); } } if (isset($arIblockProperty['LINK_IBLOCK_ID'])) { $res = $iBlock->GetList(array(), array("ID" => $arIblockProperty['LINK_IBLOCK_ID'], 'CHECK_PERMISSIONS' => 'N')); if ($ar_res = $res->GetNext()) { unset($arIblockProperty['LINK_IBLOCK_ID']); $arIblockProperty['LINK_IBLOCK_CODE'] = $ar_res['CODE']; } } $return[] = $this->getMethodContent('Bim\\Db\\Iblock\\IblockPropertyIntegrate', 'Add', array($arIblockProperty)); } foreach ($arIblock as $k => $v) { if (strstr($k, "~") || $k == 'ID') { unset($arIblock[$k]); } } $return[] = $this->getMethodContent('Bim\\Db\\Iblock\\IblockIntegrate', 'Add', array($arIblock)); } foreach ($arIblockType as $k => $v) { if (strstr($k, "~") || is_null($v)) { unset($arIblockType[$k]); } } $rsLang = $lang->GetList($by = "lid", $order = "desc"); while ($arLang = $rsLang->Fetch()) { $arTypeLang = $CIblockType->GetByIDLang($IblockTypeId, $arLang['LID']); $arIblockType["LANG"][$arLang['LID']] = array('NAME' => $arTypeLang['NAME'], 'SECTION_NAME' => $arTypeLang['SECTION_NAME'], 'ELEMENT_NAME' => $arTypeLang['ELEMENT_NAME']); } $return[] = $this->getMethodContent('Bim\\Db\\Iblock\\IblockTypeIntegrate', 'Add', array($arIblockType)); $return = array_reverse($return); return implode(PHP_EOL, $return); } else { return false; } }
function getIBlockProperties($IBlockId) { $Props = array(); $rsProperty = CIBlockProperty::GetList(array('sort' => 'asc'), array('ACTIVE' => 'Y', 'IBLOCK_ID' => $IBlockId)); while ($arProperty = $rsProperty->Fetch()) { $Props[] = 'PROPERTY_' . $arProperty['CODE']; } return $Props; }
public function getProperties() { if (!isset($this->properties)) { $this->properties = array(); $rs = \CIBlockProperty::GetList(array('sort' => 'asc'), array('IBLOCK_ID' => $this->id)); while ($ar = $rs->Fetch()) { $this->properties[$ar['CODE']] = new Property($ar); } } return $this->properties; }
function findId($code) { if (CModule::IncludeModule("iblock")) { $properties = CIBlockProperty::GetList(array("sort" => "asc", "name" => "asc"), array("ACTIVE" => "Y", 'CODE' => $code)); while ($prop_fields = $properties->GetNext()) { $temp = $prop_fields['ID']; } return $temp; } else { return false; } }
/** * @param string $propCode * @param string $userType * @return bool * @throws PropertyAlreadyExistException */ protected function checkExistProperty($propCode, $userType) { $propertyModel = new \CIBlockProperty(); $rsProperty = $propertyModel->GetList([], ['IBLOCK_ID' => $this->getIblockId(), 'CODE' => $propCode]); if ($property = $rsProperty->Fetch()) { if ($property['USER_TYPE'] !== $userType) { throw new PropertyAlreadyExistException($propCode); } else { return true; } } return false; }
/** * Delete * @param $sIBlockCode * @param $sPropertyCode * @return array * @throws \Exception */ public static function Delete($sIBlockCode, $sPropertyCode) { $rsProperty = \CIBlockProperty::GetList(array(), array('IBLOCK_CODE' => $sIBlockCode, 'CODE' => $sPropertyCode)); if ($arProperty = $rsProperty->Fetch()) { if (\CIBlockProperty::Delete($arProperty['ID'])) { return true; } else { throw new BimException(__METHOD__ . "Iblock property delete error!"); } } else { throw new BimException(__METHOD__ . 'Not find property with code ' . $sPropertyCode); } }
function SendRemindEventAgent($iblockId, $taskId, $pathTemplate) { if (!CModule::IncludeModule("socialnetwork") && !CModule::IncludeModule("iblock")) { return; } $iblockId = IntVal($iblockId); $taskId = IntVal($taskId); if (!isset($GLOBALS["USER"]) || !is_object($GLOBALS["USER"])) { $bTmpUser = True; $GLOBALS["USER"] = new CUser(); } $arTasksCustomProps = array(); $dbTasksCustomProps = CIBlockProperty::GetList(array("sort" => "asc", "name" => "asc"), array("ACTIVE" => "Y", "IBLOCK_ID" => $iblockId, "CHECK_PERMISSIONS" => "N")); while ($arTasksCustomProp = $dbTasksCustomProps->Fetch()) { $ind = StrLen($arTasksCustomProp["CODE"]) > 0 ? $arTasksCustomProp["CODE"] : $arTasksCustomProp["ID"]; $arTasksCustomProps[StrToUpper($ind)] = $arTasksCustomProp; } $dbTasksList = CIBlockElement::GetList(array(), array("IBLOCK_ID" => $iblockId, "ACTIVE" => "Y", "ID" => $taskId, "CHECK_PERMISSIONS" => "N"), false, false, array("ID", "NAME", "IBLOCK_ID", "CREATED_BY", "PROPERTY_" . $arTasksCustomProps["TASKASSIGNEDTO"]["ID"])); while ($arTask = $dbTasksList->GetNext()) { $ar = array(); $dbElementSections = CIBlockElement::GetElementGroups($arTask["ID"]); while ($arElementSection = $dbElementSections->Fetch()) { if ($arElementSection["IBLOCK_ID"] == $iblockId) { $ar[] = $arElementSection["ID"]; } } if (Count($ar) <= 0) { continue; } $taskType = ""; $taskOwnerId = 0; $dbSectionsChain = CIBlockSection::GetNavChain($iblockId, $ar[0]); if ($arSect = $dbSectionsChain->Fetch()) { $taskType = $arSect["XML_ID"] == "users_tasks" ? "user" : "group"; $taskOwnerId = IntVal($taskType == "user" ? $arTask["PROPERTY_" . $arTasksCustomProps["TASKASSIGNEDTO"]["ID"] . "_VALUE"] : $arSect["XML_ID"]); } if (!In_Array($taskType, array("user", "group")) || $taskOwnerId <= 0) { continue; } $path2view = ($GLOBALS["APPLICATION"]->IsHTTPS() ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . CComponentEngine::MakePathFromTemplate($pathTemplate, array("owner_id" => $taskOwnerId, "task_id" => $arTask["ID"], "action" => "view")); $arMessageFields = array("=DATE_CREATE" => $GLOBALS["DB"]->CurrentTimeFunction(), "MESSAGE_TYPE" => SONET_MESSAGE_SYSTEM, "FROM_USER_ID" => $arTask["CREATED_BY"], "TO_USER_ID" => $arTask["PROPERTY_" . $arTasksCustomProps["TASKASSIGNEDTO"]["ID"] . "_VALUE"], "MESSAGE" => str_replace(array("#URL_VIEW#", "#NAME#"), array($path2view, $arTask["NAME"]), GetMessage("INTE_REMIND_TASK_MESSAGE"))); CSocNetMessages::Add($arMessageFields); //CIBlockElement::SetPropertyValueCode($arTask["ID"], $arTasksCustomProps["TASKREMIND"]["ID"], false); } if ($bTmpUser) { unset($GLOBALS["USER"]); } //return "CIntranetTasks::SendRemindEventAgent($iblockId, $taskId, \"$pathTemplate\");"; }
protected function getOffers() { $arPropertyMap = array(); $arSelectedPropTypes = array('S', 'N', 'L', 'E', 'G'); $this->arSelectOfferProps = array(); $arOffers = \CCatalogSKU::GetInfoByProductIBlock($this->iBlockId); if (empty($arOffers['IBLOCK_ID'])) { return array(); } $this->intOfferIBlockID = $arOffers['IBLOCK_ID']; $rsOfferIBlocks = \CIBlock::GetByID($this->intOfferIBlockID); if (!($this->arOfferIBlock = $rsOfferIBlocks->Fetch())) { throw new SystemException("Bad offers iBlock ID (" . __CLASS__ . "::" . __METHOD__ . ")"); } $rsProps = \CIBlockProperty::GetList(array('SORT' => 'ASC', 'NAME' => 'ASC'), array('IBLOCK_ID' => $this->intOfferIBlockID, 'ACTIVE' => 'Y', 'CHECK_PERMISSIONS' => 'N')); while ($arProp = $rsProps->Fetch()) { $arProp['ID'] = (int) $arProp['ID']; if ($arOffers['SKU_PROPERTY_ID'] != $arProp['ID']) { $arProp['USER_TYPE'] = (string) $arProp['USER_TYPE']; $arProp['CODE'] = (string) $arProp['CODE']; $this->arIblock['OFFERS_PROPERTY'][$arProp['ID']] = $arProp; $this->arProperties[$arProp['ID']] = $arProp; if (in_array($arProp['PROPERTY_TYPE'], $arSelectedPropTypes)) { $this->arSelectOfferProps[] = $arProp['ID']; } if ($arProp['CODE'] !== '') { foreach ($this->arIblock['PROPERTY'] as &$arMainProp) { if ($arMainProp['CODE'] == $arProp['CODE']) { $arPropertyMap[$arProp['ID']] = $arMainProp['CODE']; break; } } if (isset($arMainProp)) { unset($arMainProp); } } } } $this->arOfferIBlock['LID'] = $this->arIblock['LID']; $this->arOfferIBlock['PROPERTY'] = array(); $rsProps = \CIBlockProperty::GetList(array('SORT' => 'ASC', 'NAME' => 'ASC'), array('IBLOCK_ID' => $this->intOfferIBlockID, 'ACTIVE' => 'Y', 'CHECK_PERMISSIONS' => 'N')); while ($arProp = $rsProps->Fetch()) { $arProp['ID'] = (int) $arProp['ID']; $arProp['USER_TYPE'] = (string) $arProp['USER_TYPE']; $arProp['CODE'] = (string) $arProp['CODE']; $this->arOfferIBlock['PROPERTY'][$arProp['ID']] = $arProp; } return $arOffers; }
public static function checkLinkField($iblock_id) { $rResult = CIBlockProperty::GetList( array('SORT' => 'ASC'), array( 'IBLOCK_ID' => $iblock_id, 'CODE' => 'LINK', 'ACTIVE' => 'Y', ) ); $arResult = array(); while (false != ($property = $rResult->GetNext())) { $arResult[] = $property; } return !empty($arResult); }
function getPropName($code,$iblock_id){ $properties = CIBlockProperty::GetList(Array("sort"=>"asc", "name"=>"asc"), Array("ACTIVE"=>"Y", "IBLOCK_ID"=>$iblock_id, "CODE"=>$code)); while ($prop_fields = $properties->GetNext()) { $res=$prop_fields["NAME"]; } /* foreach( $arResult["NAV_RESULT"]->arIBlockAllProps as $i=>$arPropFields){ if( $arPropFields["CODE"] == $code ){ return $arPropFields["NAME"]; } }*/ if ($res) return $res; return false; }
private function GetFilterData($IBLOCK_ID, $arFields = array()) { $filter_name = $this->sk_filter_name; global ${$filter_name}; $arPROPERTIES = array(); foreach ($arFields as $i => $PROP_ID) { $arSort = array(); $arFilter = array("ACTIVE" => "Y", "IBLOCK_ID" => $IBLOCK_ID); if (intval($PROP_ID) > 0) { $arFilter["ID"] = $PROP_ID; } else { $arFilter["CODE"] = $PROP_ID; } $properties = CIBlockProperty::GetList($arSort, $arFilter); while ($prop_fields = $properties->GetNext()) { switch ($prop_fields["PROPERTY_TYPE"]) { case "L": $PROP_ENUM_VALUES = array(); $arPropSort = array("value" => "asc"); $arPropFilter = array("PROPERTY_ID" => $prop_fields["ID"], "IBLOCK_ID" => $IBLOCK_ID); $prop_enums = CIBlockPropertyEnum::GetList($arPropSort, $arPropFilter); while ($enum_fields = $prop_enums->GetNext()) { $PROP_ENUM_VALUES[] = $enum_fields; } $prop_fields["VALUES"] = $PROP_ENUM_VALUES; break; case "E": $PROP_ENUM_VALUES = array(); $arPropSort = array("NAME" => "asc"); $arPropFilter = array("ACTIVE" => "Y", "IBLOCK_ID" => $prop_fields["LINK_IBLOCK_ID"]); $arSelFields = array("IBLOCK_ID", "ID", "NAME", "PROPERTY_*"); $db_vals = CIBlockElement::GetList($arPropSort, $arPropFilter, false, false, $arSelFields); while ($obElement = $db_vals->GetNextElement()) { $tmp = array(); $tmp = $obElement->GetFields(); $tmp["PROPERTIES"] = $obElement->GetProperties(); $PROP_ENUM_VALUES[$tmp["ID"]] = $tmp; } $prop_fields["VALUES"] = $PROP_ENUM_VALUES; break; } $arPROPERTIES[$prop_fields["ID"]] = $prop_fields; } } // // print_r( $arPROPERTIES ); return $arPROPERTIES; }
/** * [getPropertyIblock description] * @return array all products on iblock */ protected function getPropertyIblock(){ if (!CModule::IncludeModule("iblock")): return false; endif; $properties = CIBlockProperty::GetList(Array("sort"=>"asc", "name"=>"asc"), Array("ACTIVE"=>"Y", "IBLOCK_ID"=>$this->getIblockId())); while ($prop_fields = $properties->GetNext()) { if ($prop_fields["PROPERTY_TYPE"] == "L"): $property_enums = CIBlockPropertyEnum::GetList(Array("DEF"=>"DESC", "SORT"=>"ASC"), Array("IBLOCK_ID"=>$this->getIblockId(), "CODE"=>$prop_fields["CODE"])); while($enum_fields = $property_enums->GetNext()) { $prop_fields["ENUM_LIST"][] = $enum_fields; } endif; $arProperties[] = $prop_fields; } return $arProperties; }
function findCode($id, $val) { if (CModule::IncludeModule("iblock")) { $properties = CIBlockProperty::GetList(array("sort" => "asc", "name" => "asc"), array("ACTIVE" => "Y", 'ID' => $id)); while ($prop_fields = $properties->GetNext()) { $temp['CODE'] = $prop_fields['CODE']; if ($prop_fields['PROPERTY_TYPE'] == 'L') { $property_enums = CIBlockPropertyEnum::GetList(array("DEF" => "DESC", "SORT" => "ASC"), array("CODE" => $prop_fields['CODE'], 'ID' => $val)); while ($enum_fields = $property_enums->GetNext()) { $temp['VALUE'] = $enum_fields["VALUE"]; } } } return $temp; } else { return false; } }
/** * [findProperties description] * @param object $obprop * @return bool */ protected function findProperties($obprop){ if (!CModule::IncludeModule("iblock")): return false; endif; $name = null; $id1c = null; $name = $obprop->Наименование; $id1c = $obprop->Ид; $properties = CIBlockProperty::GetList(Array(), Array("ACTIVE"=>"Y", "IBLOCK_ID"=>$this->getIblockId())); while ($prop_fields = $properties->GetNext()) { $arProperties[] = $prop_fields; } foreach ($arProperties as $key => $prop) : if ($prop["NAME"] == $name && $prop["CODE"] == $id1c): return $prop; endif; endforeach; return false; }
function getProductByProps($iblockID, $arSkuProps) { $result = false; $arSelect = array(); $arOfFilter = array( "IBLOCK_ID" => $iblockID, ); $rsProps = CIBlockProperty::GetList( array('SORT' => 'ASC', 'ID' => 'ASC'), array('IBLOCK_ID' => $iblockID, 'ACTIVE' => 'Y') ); while ($arProp = $rsProps->Fetch()) { if (!$arProp['CODE']) $arProp['CODE'] = $arProp['ID']; if (isset($arSkuProps[$arProp["CODE"]])) { if ($arProp["CODE"] == "CML2_LINK" || $arProp['PROPERTY_TYPE'] == 'E' || ($arProp['PROPERTY_TYPE'] == 'S' && $arProp['USER_TYPE'] == 'directory')) { $arOfFilter["PROPERTY_".$arProp["CODE"]] = $arSkuProps[$arProp["CODE"]]; } elseif ($arProp["PROPERTY_TYPE"] == "L") { $arOfFilter["PROPERTY_".$arProp["CODE"]."_VALUE"] = $arSkuProps[$arProp["CODE"]]; } $arSelect[] = "PROPERTY_".$arProp["CODE"]; } } $rsOffers = CIBlockElement::GetList( array(), $arOfFilter, false, false, array_merge(array("ID"), $arSelect) ); if ($arOffer = $rsOffers->GetNext()) $result = $arOffer["ID"]; return $result; }
protected static function addIBlock2PropCache($IBLOCK_ID) { if (!is_numeric($IBLOCK_ID)) { return; } $IBLOCK_ID = intval($IBLOCK_ID); if (!array_key_exists($IBLOCK_ID, self::$arIBlockPropCache)) { self::$arIBlockPropCache[$IBLOCK_ID] = array(); self::$arIBlockPropCodeIndex[$IBLOCK_ID] = array(); } if (count(self::$arIBlockPropCache[$IBLOCK_ID]) < 1) { $properties = \CIBlockProperty::GetList(array('sort' => 'asc', 'name' => 'asc'), array('ACTIVE' => 'Y', 'IBLOCK_ID' => $IBLOCK_ID)); while ($prop_fields = $properties->GetNext()) { self::$arIBlockPropCache[$IBLOCK_ID][$prop_fields['ID']] = $prop_fields; $prop_fields['CODE'] = trim($prop_fields['CODE']); if (!empty($prop_fields['CODE'])) { self::$arIBlockPropCodeIndex[$IBLOCK_ID][$prop_fields['CODE']] =& self::$arIBlockPropCache[$IBLOCK_ID][$prop_fields['ID']]; } } } }
public static function GetCatalogPrices($IBLOCK_ID, $arPriceCode) { global $USER; $arCatalogPrices = array(); if (self::$catalogIncluded === null) { self::$catalogIncluded = Loader::includeModule('catalog'); } if (self::$catalogIncluded) { $arCatalogGroupCodesFilter = array(); foreach ($arPriceCode as $value) { $t_value = trim($value); if ('' != $t_value) { $arCatalogGroupCodesFilter[$value] = true; } } $arCatalogGroupsFilter = array(); $arCatalogGroups = CCatalogGroup::GetListArray(); foreach ($arCatalogGroups as $key => $value) { if (isset($arCatalogGroupCodesFilter[$value['NAME']])) { $arCatalogGroupsFilter[] = $key; $arCatalogPrices[$value["NAME"]] = array("ID" => (int) $value["ID"], "TITLE" => htmlspecialcharsbx($value["NAME_LANG"]), "SELECT" => "CATALOG_GROUP_" . $value["ID"]); } } $arPriceGroups = CCatalogGroup::GetGroupsPerms($USER->GetUserGroupArray(), $arCatalogGroupsFilter); foreach ($arCatalogPrices as $name => $value) { $arCatalogPrices[$name]["CAN_VIEW"] = in_array($value["ID"], $arPriceGroups["view"]); $arCatalogPrices[$name]["CAN_BUY"] = in_array($value["ID"], $arPriceGroups["buy"]); } } else { $arPriceGroups = array("view" => array()); $rsProperties = CIBlockProperty::GetList(array(), array("IBLOCK_ID" => $IBLOCK_ID, "CHECK_PERMISSIONS" => "N", "PROPERTY_TYPE" => "N", "MULTIPLE" => "N")); while ($arProperty = $rsProperties->Fetch()) { if (in_array($arProperty["CODE"], $arPriceCode)) { $arPriceGroups["view"][] = htmlspecialcharsbx("PROPERTY_" . $arProperty["CODE"]); $arCatalogPrices[$arProperty["CODE"]] = array("ID" => (int) $arProperty["ID"], "TITLE" => htmlspecialcharsbx($arProperty["NAME"]), "SELECT" => "PROPERTY_" . $arProperty["ID"], "CAN_VIEW" => true, "CAN_BUY" => false); } } } return $arCatalogPrices; }
public static function GetProps($catalogID, $arPropUserTypeList = array(), $arOperations = array()) { if (!is_array($arOperations)) { $arOperations = array(strval($arOperations)); } $arProps = array(); $catalogID = intval($catalogID); // validate operations list $validOperations = array('view', 'edit', 'filter', 'import', 'rest'); $validatedOperations = array(); foreach ($arOperations as $operationName) { if (in_array(strval($operationName), $validOperations, true)) { $validatedOperations[] = $operationName; } } $arOperations = $validatedOperations; unset($validatedOperations, $operationName); if ($catalogID > 0) { $propsFilter = array('IBLOCK_ID' => $catalogID, 'ACTIVE' => 'Y', 'CHECK_PERMISSIONS' => 'N', '!PROPERTY_TYPE' => 'G'); $bImport = false; foreach ($arOperations as $operationName) { if ($operationName === 'import') { $bImport = true; } else { $bImport = false; break; } } $dbRes = CIBlockProperty::GetList(array('SORT' => 'ASC', 'ID' => 'ASC'), $propsFilter); while ($arProp = $dbRes->Fetch()) { if (isset($arProp['USER_TYPE']) && !empty($arProp['USER_TYPE']) && !array_key_exists($arProp['USER_TYPE'], $arPropUserTypeList) || $bImport && ($arProp['PROPERTY_TYPE'] === 'E' && (!isset($arProp['USER_TYPE']) || empty($arProp['USER_TYPE'])) || $arProp['PROPERTY_TYPE'] === 'E' && isset($arProp['USER_TYPE']) && $arProp['USER_TYPE'] === 'EList')) { continue; } $propID = 'PROPERTY_' . $arProp['ID']; $arProps[$propID] = $arProp; } } return $arProps; }
function GetCatalogPrices($IBLOCK_ID, $arPriceCode) { global $USER; $arCatalogPrices = array(); if (CModule::IncludeModule("catalog")) { $bFromCatalog = true; $arCatalogGroupCodesFilter = array(); foreach ($arPriceCode as $key => $value) { $t_value = trim($value); if (strlen($t_value) > 0) { $arCatalogGroupCodesFilter[$value] = true; } } $arCatalogGroupsFilter = array(); $arCatalogGroups = CCatalogGroup::GetListArray(); foreach ($arCatalogGroups as $key => $value) { if (array_key_exists($value["NAME"], $arCatalogGroupCodesFilter)) { $arCatalogGroupsFilter[] = $key; $arCatalogPrices[$value["NAME"]] = array("ID" => htmlspecialcharsbx($value["ID"]), "TITLE" => htmlspecialcharsbx($value["NAME_LANG"]), "SELECT" => "CATALOG_GROUP_" . $value["ID"]); } } $arPriceGroups = CCatalogGroup::GetGroupsPerms($USER->GetUserGroupArray(), $arCatalogGroupsFilter); foreach ($arCatalogPrices as $name => $value) { $arCatalogPrices[$name]["CAN_VIEW"] = in_array($value["ID"], $arPriceGroups["view"]); $arCatalogPrices[$name]["CAN_BUY"] = in_array($value["ID"], $arPriceGroups["buy"]); } } else { $bFromCatalog = false; $arPriceGroups = array("view" => array()); $rsProperties = CIBlockProperty::GetList(array(), array("IBLOCK_ID" => $IBLOCK_ID, "CHECK_PERMISSIONS" => "N", "PROPERTY_TYPE" => "N")); while ($arProperty = $rsProperties->Fetch()) { if ($arProperty["MULTIPLE"] == "N" && in_array($arProperty["CODE"], $arPriceCode)) { $arPriceGroups["view"][] = htmlspecialcharsbx("PROPERTY_" . $arProperty["CODE"]); $arCatalogPrices[$arProperty["CODE"]] = array("ID" => htmlspecialcharsbx($arProperty["ID"]), "TITLE" => htmlspecialcharsbx($arProperty["NAME"]), "SELECT" => "PROPERTY_" . $arProperty["ID"], "CAN_VIEW" => true, "CAN_BUY" => false); } } } return $arCatalogPrices; }
protected function initializeVars($iblockId) { $this->iblock = \CIBlock::GetList(array('SORT' => 'ASC'), array('ID' => $iblockId))->Fetch(); if (!$this->iblock) { $this->throwException(__METHOD__, 'Iblock %d not found', $iblockId); } $dbResult = \CIBlockProperty::GetList(array("sort" => "asc"), array("IBLOCK_ID" => $iblockId, "CHECK_PERMISSIONS" => "N")); while ($aItem = $dbResult->Fetch()) { if (!empty($aItem['CODE'])) { $this->titles['PROPERTY_' . $aItem['ID']] = $aItem['NAME']; $this->props[$aItem['CODE']] = $aItem; } } $iblockMess = \IncludeModuleLangFile('/bitrix/modules/iblock/iblock.php', 'ru', true); $iblockMess['IBLOCK_FIELD_ACTIVE_FROM'] = $iblockMess['IBLOCK_FIELD_ACTIVE_PERIOD_FROM']; $iblockMess['IBLOCK_FIELD_ACTIVE_TO'] = $iblockMess['IBLOCK_FIELD_ACTIVE_PERIOD_TO']; foreach ($iblockMess as $code => $value) { if (false !== strpos($code, 'IBLOCK_FIELD_')) { $fcode = str_replace('IBLOCK_FIELD_', '', $code); $this->titles[$fcode] = $value; } } }
function EditAbsence($arFields) { global $iblockID; if (CModule::IncludeModule('iblock')) { $PROP = array(); $db_absence = CIBlockProperty::GetList(array(), array("CODE" => "ABSENCE_TYPE", "IBLOCK_ID" => $iblockID)); if ($ar_absence = $db_absence->Fetch()) { $PROP[$ar_absence['ID']] = array($arFields["ABSENCE_TYPE"]); } $db_user = CIBlockProperty::GetList(array(), array("CODE" => "USER", "IBLOCK_ID" => $iblockID)); if ($ar_user = $db_user->Fetch()) { $PROP[$ar_user['ID']] = array($arFields["USER_ID"]); } $arNewFields = array("NAME" => $arFields["NAME"], "PROPERTY_VALUES" => $PROP, "ACTIVE_FROM" => $arFields["ACTIVE_FROM"], "ACTIVE_TO" => $arFields["ACTIVE_TO"], "IBLOCK_ID" => $iblockID); $element = new CIBlockElement(); $ID = $element->Update(intval($arFields["absence_element_id"]), $arNewFields); } if (!$ID) { $arErrors = preg_split("/<br>/", $element->LAST_ERROR); return $arErrors; } else { return $ID; } }
'DEFAULT' => '', ); $arTemplateParameters['SECTION_PICTURE_HEIGHT'] = array( 'PARENT' => 'LIST_SETTINGS', 'NAME' => getMessage('RS_SLINE.SECTION_PICTURE_HEIGHT'), 'TYPE' => 'STRING', 'DEFAULT' => '', ); } $arOffers = CIBlockPriceTools::GetOffersIBlock($IBLOCK_ID); $OFFERS_IBLOCK_ID = is_array($arOffers) ? $arOffers['OFFERS_IBLOCK_ID']: 0; if($OFFERS_IBLOCK_ID){ $arProperty_Offers = array(); $rsProp = CIBlockProperty::GetList(array('sort'=>'asc', 'name'=>'asc'), array('IBLOCK_ID'=>$OFFERS_IBLOCK_ID, 'ACTIVE'=>'Y')); while($arr=$rsProp->Fetch()){ $arr['ID'] = intval($arr['ID']); if ($arOffers['OFFERS_PROPERTY_ID'] == $arr['ID']) continue; $strPropName = '['.$arr['ID'].']'.('' != $arr['CODE'] ? '['.$arr['CODE'].']' : '').' '.$arr['NAME']; if ('' == $arr['CODE']) $arr['CODE'] = $arr['ID']; $arProperty_Offers[$arr['CODE']] = $strPropName; } $arTemplateParameters['PROPCODE_SKU_MORE_PHOTO'] = array( 'PARENT' => 'OFFERS_SETTINGS', 'NAME' => getMessage('RS_SLINE.OFFER_ADDITIONAL_PICT_PROP'), 'TYPE' => 'LIST', 'VALUES' => array_merge($defaultListValues, $arProperty_Offers),
while ($arProperty = $dbProperty->GetNext()) { $arFields["find_el_property_" . $arProperty["ID"]] = ""; } $dbProperty = CIBlockProperty::GetList(array(), array("IBLOCK_ID" => $IBLOCK_CATALOG_ID, "CODE" => "SPECIALOFFER")); while ($arProperty = $dbProperty->GetNext()) { $arFields["find_el_property_" . $arProperty["ID"]] = ""; } require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/interface/admin_lib.php"; CAdminFilter::AddPresetToBase(array("NAME" => GetMessage("WIZ_PRECET"), "FILTER_ID" => "tbl_product_admin_" . md5($iblockType . "." . $IBLOCK_CATALOG_ID) . "_filter", "LANGUAGE_ID" => $lang, "FIELDS" => $arFields)); CUserOptions::SetOption("filter", "tbl_product_admin_" . md5($iblockType . "." . $IBLOCK_CATALOG_ID) . "_filter", array("rows" => "find_el_name, find_el_active, find_el_timestamp_from, find_el_timestamp_to"), true); CAdminFilter::SetDefaultRowsOption("tbl_product_admin_" . md5($iblockType . "." . $IBLOCK_CATALOG_ID) . "_filter", array("miss-0", "IBEL_A_F_PARENT")); //delete 1c props $arPropsToDelete = array("CML2_TAXES", "CML2_BASE_UNIT", "CML2_TRAITS", "CML2_ATTRIBUTES", "CML2_ARTICLE", "CML2_BAR_CODE", "CML2_FILES", "CML2_MANUFACTURER", "CML2_PICTURES"); foreach ($arPropsToDelete as $code) { $dbProperty = CIBlockProperty::GetList(array(), array("IBLOCK_ID" => $IBLOCK_CATALOG_ID, "XML_ID" => $code)); if ($arProperty = $dbProperty->GetNext()) { CIBlockProperty::Delete($arProperty["ID"]); } if ($IBLOCK_OFFERS_ID) { $dbProperty = CIBlockProperty::GetList(array(), array("IBLOCK_ID" => $IBLOCK_OFFERS_ID, "XML_ID" => $code)); if ($arProperty = $dbProperty->GetNext()) { CIBlockProperty::Delete($arProperty["ID"]); } } } CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/catalog/index.php", array("CATALOG_IBLOCK_ID" => $IBLOCK_CATALOG_ID)); CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/sect_inc.php", array("CATALOG_IBLOCK_ID" => $IBLOCK_CATALOG_ID)); CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/_index.php", array("CATALOG_IBLOCK_ID" => $IBLOCK_CATALOG_ID, "OFFERS_IBLOCK_ID" => $IBLOCK_OFFERS_ID)); CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/catalog/sect_sidebar.php.php", array("CATALOG_IBLOCK_ID" => $IBLOCK_CATALOG_ID)); CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/include/viewed_product.php", array("CATALOG_IBLOCK_ID" => $IBLOCK_CATALOG_ID, "OFFERS_IBLOCK_ID" => $IBLOCK_OFFERS_ID)); }
public function getSkuPropsData($arBasketItems, $arParents, $arSkuProps = array()) { $arRes = array(); $arSkuIblockID = array(); if (is_array($arParents)) { foreach ($arBasketItems as &$arItem) { if (array_key_exists($arItem["PRODUCT_ID"], $arParents)) { $arSKU = CCatalogSKU::GetInfoByProductIBlock($arParents[$arItem["PRODUCT_ID"]]["IBLOCK_ID"]); if (!array_key_exists($arSKU["IBLOCK_ID"], $arSkuIblockID)) { $arSkuIblockID[$arSKU["IBLOCK_ID"]] = $arSKU; } $arItem["IBLOCK_ID"] = $arSKU["IBLOCK_ID"]; $arItem["SKU_PROPERTY_ID"] = $arSKU["SKU_PROPERTY_ID"]; } } unset($arItem); foreach ($arSkuIblockID as $skuIblockID => $arSKU) { // possible props values $rsProps = CIBlockProperty::GetList(array('SORT' => 'ASC', 'ID' => 'ASC'), array('IBLOCK_ID' => $skuIblockID, 'ACTIVE' => 'Y')); while ($arProp = $rsProps->Fetch()) { if ($arProp['PROPERTY_TYPE'] == 'L' || $arProp['PROPERTY_TYPE'] == 'E' || $arProp['PROPERTY_TYPE'] == 'S' && $arProp['USER_TYPE'] == 'directory') { if ($arProp['XML_ID'] == 'CML2_LINK') { continue; } if (!in_array($arProp['CODE'], $arSkuProps)) { continue; } $arValues = array(); if ($arProp['PROPERTY_TYPE'] == 'L') { $arValues = array(); $rsPropEnums = CIBlockProperty::GetPropertyEnum($arProp['ID']); while ($arEnum = $rsPropEnums->Fetch()) { $arValues['n' . $arEnum['ID']] = array('ID' => $arEnum['ID'], 'NAME' => $arEnum['VALUE'], 'PICT' => false); } } elseif ($arProp['PROPERTY_TYPE'] == 'E') { $rsPropEnums = CIBlockElement::GetList(array('SORT' => 'ASC'), array('IBLOCK_ID' => $arProp['LINK_IBLOCK_ID'], 'ACTIVE' => 'Y'), false, false, array('ID', 'NAME', 'PREVIEW_PICTURE')); while ($arEnum = $rsPropEnums->Fetch()) { $arEnum['PREVIEW_PICTURE'] = CFile::GetFileArray($arEnum['PREVIEW_PICTURE']); if (!is_array($arEnum['PREVIEW_PICTURE'])) { $arEnum['PREVIEW_PICTURE'] = false; } if ($arEnum['PREVIEW_PICTURE'] !== false) { $productImg = CFile::ResizeImageGet($arEnum['PREVIEW_PICTURE'], array('width' => 80, 'height' => 80), BX_RESIZE_IMAGE_PROPORTIONAL, false, false); $arEnum['PREVIEW_PICTURE']['SRC'] = $productImg['src']; } $arValues['n' . $arEnum['ID']] = array('ID' => $arEnum['ID'], 'NAME' => $arEnum['NAME'], 'SORT' => $arEnum['SORT'], 'PICT' => $arEnum['PREVIEW_PICTURE']); } } elseif ($arProp['PROPERTY_TYPE'] == 'S' && $arProp['USER_TYPE'] == 'directory') { if (self::$highLoadInclude === null) { self::$highLoadInclude = Loader::includeModule('highloadblock'); } if (self::$highLoadInclude) { $hlblock = HL\HighloadBlockTable::getList(array("filter" => array("=TABLE_NAME" => $arProp["USER_TYPE_SETTINGS"]["TABLE_NAME"])))->fetch(); if ($hlblock) { $entity = HL\HighloadBlockTable::compileEntity($hlblock); $entity_data_class = $entity->getDataClass(); $rsData = $entity_data_class::getList(); while ($arData = $rsData->fetch()) { $arValues['n' . $arData['ID']] = array('ID' => $arData['ID'], 'NAME' => $arData['UF_NAME'], 'SORT' => $arData['UF_SORT'], 'FILE' => $arData['UF_FILE'], 'PICT' => false, 'XML_ID' => $arData['UF_XML_ID']); } } } } if (!empty($arValues) && is_array($arValues)) { $arRes[$skuIblockID][$arProp['ID']] = array('ID' => $arProp['ID'], 'CODE' => $arProp['CODE'], 'NAME' => $arProp['NAME'], 'TYPE' => $arProp['PROPERTY_TYPE'], 'USER_TYPE' => $arProp['USER_TYPE'], 'VALUES' => $arValues); } } } } foreach ($arBasketItems as &$arItem) { if (isset($arItem["IBLOCK_ID"]) && (int) $arItem["IBLOCK_ID"] > 0 && isset($arRes[$arItem["IBLOCK_ID"]])) { $arItem["SKU_DATA"] = $arRes[$arItem["IBLOCK_ID"]]; $arUsedValues = array(); $arTmpRes = array(); $arOfFilter = array("IBLOCK_ID" => $arItem["IBLOCK_ID"], "PROPERTY_" . $arSkuIblockID[$arItem["IBLOCK_ID"]]["SKU_PROPERTY_ID"] => $arParents[$arItem["PRODUCT_ID"]]["PRODUCT_ID"]); $rsOffers = CIBlockElement::GetList(array(), $arOfFilter, false, false, array("ID", "IBLOCK_ID")); while ($obOffer = $rsOffers->GetNextElement()) { $arProps = $obOffer->GetProperties(); foreach ($arProps as $propName => $propValue) { if (in_array($propName, $arSkuProps)) { if (array_key_exists('VALUE', $propValue)) { if (strlen($propValue['VALUE']) > 0 && (!is_array($arUsedValues[$arItem["PRODUCT_ID"]][$propName]) || !in_array($propValue['VALUE'], $arUsedValues[$arItem["PRODUCT_ID"]][$propName]))) { $arUsedValues[$arItem["PRODUCT_ID"]][$propName][] = $propValue['VALUE']; } } } } } if (!empty($arUsedValues)) { // add only used values to the item SKU_DATA foreach ($arRes[$arItem["IBLOCK_ID"]] as $propId => $arProp) { if (!array_key_exists($arProp["CODE"], $arUsedValues[$arItem["PRODUCT_ID"]])) { continue; } $arTmpRes['n' . $propId] = array(); foreach ($arProp["VALUES"] as $valId => $arValue) { // properties of various type have different values in the used values data if ($arProp["TYPE"] == "L" && in_array($arValue["NAME"], $arUsedValues[$arItem["PRODUCT_ID"]][$arProp["CODE"]]) || $arProp["TYPE"] == "E" && in_array($arValue["ID"], $arUsedValues[$arItem["PRODUCT_ID"]][$arProp["CODE"]]) || $arProp["TYPE"] == "S" && in_array($arValue["XML_ID"], $arUsedValues[$arItem["PRODUCT_ID"]][$arProp["CODE"]])) { if ($arProp["TYPE"] == "S") { if (!empty($arValue["FILE"])) { $arTmpFile = CFile::GetFileArray($arValue["FILE"]); if (!empty($arTmpFile)) { $tmpImg = CFile::ResizeImageGet($arTmpFile, array('width' => 80, 'height' => 80), BX_RESIZE_IMAGE_PROPORTIONAL, false, false); $arValue['PICT']['SRC'] = $tmpImg['src']; } } } $arTmpRes['n' . $propId]["CODE"] = $arProp["CODE"]; $arTmpRes['n' . $propId]["NAME"] = $arProp["NAME"]; $arTmpRes['n' . $propId]["VALUES"][$valId] = $arValue; } } } } $arItem["SKU_DATA"] = $arTmpRes; } } unset($arItem); } return $arBasketItems; }
while ($arr = $rsProp->Fetch()) { $arProperty_LINK[$arr["CODE"]] = "[" . $arr["CODE"] . "] " . $arr["NAME"]; } } $arUserFields_S = array("-" => " "); $arUserFields = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFields("IBLOCK_" . $arCurrentValues["IBLOCK_ID"] . "_SECTION"); foreach ($arUserFields as $FIELD_NAME => $arUserField) { if ($arUserField["USER_TYPE"]["BASE_TYPE"] == "string") { $arUserFields_S[$FIELD_NAME] = $arUserField["LIST_COLUMN_LABEL"] ? $arUserField["LIST_COLUMN_LABEL"] : $FIELD_NAME; } } $arOffers = CIBlockPriceTools::GetOffersIBlock($arCurrentValues["IBLOCK_ID"]); $OFFERS_IBLOCK_ID = is_array($arOffers) ? $arOffers["OFFERS_IBLOCK_ID"] : 0; $arProperty_Offers = array(); if ($OFFERS_IBLOCK_ID) { $rsProp = CIBlockProperty::GetList(array("sort" => "asc", "name" => "asc"), array("IBLOCK_ID" => $OFFERS_IBLOCK_ID, "ACTIVE" => "Y")); while ($arr = $rsProp->Fetch()) { if ($arr["PROPERTY_TYPE"] != "F") { $arProperty_Offers[$arr["CODE"]] = "[" . $arr["CODE"] . "] " . $arr["NAME"]; } } } $arPrice = array(); if (CModule::IncludeModule("catalog")) { $rsPrice = CCatalogGroup::GetList($v1 = "sort", $v2 = "asc"); while ($arr = $rsPrice->Fetch()) { $arPrice[$arr["NAME"]] = "[" . $arr["NAME"] . "] " . $arr["NAME_LANG"]; } } else { $arPrice = $arProperty_N; }