function ReCalculate($TYPE, $ID, $VAL) { $ID = (int) $ID; if ($ID <= 0) { return; } $iblockList = array(); if ($TYPE == 'EXTRA') { $baseType = CCatalogGroup::GetBaseGroup(); if (empty($baseType)) { return; } $db_res = CPrice::GetListEx(array(), array('EXTRA_ID' => $ID), false, false, array('ID', 'PRODUCT_ID', 'EXTRA_ID', 'QUANTITY_FROM', 'QUANTITY_TO')); while ($res = $db_res->Fetch()) { $parentFilter = array('PRODUCT_ID' => $res['PRODUCT_ID'], 'CATALOG_GROUP_ID' => $baseType['ID'], 'QUANTITY_FROM' => $res['QUANTITY_FROM'] === null ? false : $res['QUANTITY_FROM'], 'QUANTITY_TO' => $res['QUANTITY_TO'] === null ? false : $res['QUANTITY_TO']); $parentIterator = CPrice::GetListEx(array(), $parentFilter, false, false, array('ID', 'PRODUCT_ID', 'PRICE', 'CURRENCY', 'ELEMENT_IBLOCK_ID')); $basePrice = $parentIterator->Fetch(); if (!empty($basePrice)) { $basePrice['ELEMENT_IBLOCK_ID'] = (int) $basePrice['ELEMENT_IBLOCK_ID']; $fields = array('PRICE' => roundex($basePrice['PRICE'] * (1 + 1 * $VAL / 100), 2), 'CURRENCY' => $basePrice['CURRENCY']); CPrice::Update($res['ID'], $fields); unset($arFields); $iblockList[$basePrice['ELEMENT_IBLOCK_ID']] = $basePrice['ELEMENT_IBLOCK_ID']; } unset($basePrice, $parentIterator); } unset($res, $db_res, $baseType); } else { $db_res = CPrice::GetListEx(array(), array("PRODUCT_ID" => $ID), false, false, array('ID', 'PRODUCT_ID', 'EXTRA_ID', 'ELEMENT_IBLOCK_ID')); while ($res = $db_res->Fetch()) { $res['ELEMENT_IBLOCK_ID'] = (int) $res['ELEMENT_IBLOCK_ID']; $res["EXTRA_ID"] = (int) $res["EXTRA_ID"]; if ($res["EXTRA_ID"] > 0) { $res1 = CExtra::GetByID($res["EXTRA_ID"]); $arFields = array("PRICE" => $VAL * (1 + 1 * $res1["PERCENTAGE"] / 100)); CPrice::Update($res["ID"], $arFields); $iblockList[$res['ELEMENT_IBLOCK_ID']] = $res['ELEMENT_IBLOCK_ID']; } } unset($res, $db_res); } if (!empty($iblockList) && Main\Loader::includeModule('iblock')) { foreach ($iblockList as &$iblock) { CIblock::clearIblockTagCache($iblock); } unset($iblock); } unset($iblockList); }
/** * @return array */ protected function getList() { if ($this->_list !== null) { return $this->_list; } $cache = $this->getCache(); $cId = get_class($this) . '_list'; if (!$cache || ($this->_list = $cache->get($cId)) === false) { $this->_list = []; $res = \CIblock::GetList([], $this->filter); $iblocksIds = []; while ($ob = $res->Fetch()) { $arItem = []; foreach ($this->select as $field) { if (!isset($ob[$field])) { continue; } $arItem[$field] = $ob[$field]; } $this->_list[$ob['ID']] = $arItem; } if (in_array('PROPERTIES', $this->select) && !empty($this->_list)) { $pRes = \CIBlockProperty::GetList(['sort' => 'asc'], []); while ($pOb = $pRes->Fetch()) { if (!isset($this->_list[$pOb['IBLOCK_ID']])) { continue; } $this->_list[$pOb['IBLOCK_ID']]['PROPERTIES'][] = $pOb; } } if ($cache) { $cache->set($cId, $this->_list, $this->cacheTime); } } return $this->_list; }
private function CheckIblock() { if ($arIblock = CIblock::GetList(array(), array("CODE" => $this->ModuleIblockCode))->Fetch()) { $this->arResult["INSTALLATION"]["IBLOCK_INSTALL"] = false; $this->arResult["INSTALLATION"]["IBLOCK_ID"] = $arIblock["ID"]; } }
} $userPropValue = $userProp; $arExcludedProperties = array('LOGIN', 'PASSWORD', 'EMAIL', 'UF_STATE_FIRST', 'UF_STATE_LAST', 'UF_1C'); foreach ($arExcludedProperties as $prop) { unset($userPropValue[$prop]); } $userPropValue = array_keys($userPropValue); $arIBlockType = array("-" => ''); $rsIBlockType = CIBlockType::GetList(array("sort" => "asc"), array("ACTIVE" => "Y")); while ($arr = $rsIBlockType->Fetch()) { if ($ar = CIBlockType::GetByIDLang($arr["ID"], LANGUAGE_ID)) { $arIBlockType[$arr["ID"]] = "[" . $arr["ID"] . "] " . $ar["NAME"]; } } if ($arCurrentValues['IBLOCK_TYPE'] && $arCurrentValues['IBLOCK_TYPE'] != '-') { $rsIBlock = CIblock::GetList(array('SORT' => 'ASC'), array('TYPE' => $arCurrentValues['IBLOCK_TYPE'])); while ($arIBlock = $rsIBlock->Fetch()) { $arIBLockList[$arIBlock['ID']] = $arIBlock['NAME']; } } $arUGroupsEx = array(); $dbUGroups = CGroup::GetList($by = "c_sort", $order = "asc"); while ($arUGroups = $dbUGroups->Fetch()) { $arUGroupsEx[$arUGroups["ID"]] = $arUGroups["NAME"]; } $bLDAP = CModule::IncludeModule('ldap'); if ($bLDAP) { $dbRes = CLDAPServer::GetList(); $arLDAPServers = array('' => GetMessage('CP_BCI1_LDAP_SERVER_CHOOSE')); while ($arRes = $dbRes->Fetch()) { $arLDAPServers[$arRes['ID']] = $arRes['NAME'];
require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/ws.projectsettings/prolog.php"; /* @var $APPLICATION CMain */ if ($APPLICATION->GetGroupRight("ws.projectsettings") == "D") { $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); } #--- save fields --- if ($fields = $_REQUEST['fields']) { WS_PSettings::clearAll(); foreach ($fields as $fName => $fData) { WS_PSettings::setupField($fData); } } #--- view fields --- if (CModule::IncludeModule('iblock')) { $iblocks = array(); $rsIblock = CIblock::GetList(null, array('ACTIVE' => 'Y')); while ($arIblock = $rsIblock->fetch()) { $iblocks[$arIblock['ID']] = $arIblock['NAME']; } } $groups = array(); $rsUserGroups = CGroup::GetList($ugBy = 'name', $ugOrder = 'asc', array('ACTIVE' => 'Y')); while ($arUGroup = $rsUserGroups->fetch()) { $groups[$arUGroup['ID']] = $arUGroup['NAME']; } $tab = new CAdminTabControl('WS_ProgectSettings_tab', array(array('TAB' => GetMessage('ws_product_settings_page_title'), 'DIV' => 'edit1'))); $APPLICATION->SetTitle(GetMessage('ws_product_settings_page_title')); require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php"; CJSCore::Init(array('ws_progectssettings_fields')); $jsParams = array('fields' => array(), 'curUri' => $APPLICATION->GetCurPage(), 'newFieldButton' => 'ws_project_settings_add_field_button', 'toogleSimCodesButton' => 'ws_project_settings_toogle_sim_codes_button', 'submitButton' => 'ws_project_settings_save_button', 'defaultButton' => 'ws_project_settings_default_button', 'cancelButton' => 'ws_project_settings_cancel_button', 'types' => array(WS_PSettings::FIELD_TYPE_NUMERIC => GetMessage('ws_projectsettings_field_type_number'), WS_PSettings::FIELD_TYPE_STRING => GetMessage('ws_projectsettings_field_type_string'), WS_PSettings::FIELD_TYPE_LIST => GetMessage('ws_projectsettings_field_type_list'), WS_PSettings::FIELD_TYPE_SIGN => GetMessage('ws_projectsettings_field_type_sign'), WS_PSettings::FIELD_TYPE_USER => GetMessage('ws_projectsettings_field_type_user'), WS_PSettings::FIELD_TYPE_USER_GROUP => GetMessage('ws_projectsettings_field_type_user_group'), WS_PSettings::FIELD_TYPE_IBLOCK => GetMessage('ws_projectsettings_field_type_iblock')), 'variants' => array(WS_PSettings::FIELD_TYPE_IBLOCK => $iblocks, WS_PSettings::FIELD_TYPE_USER_GROUP => $groups), 'customLists' => array()); $typeBuildEvents = GetModuleEvents("ws.projectsettings", "OnBuildTypes");
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die; } if (!CModule::IncludeModule("blog")) { return false; } if (!CModule::IncludeModule("iblock")) { return false; } if (!CModule::IncludeModule("idea")) { return false; } $arCurrentValues = is_array($arCurrentValues) ? $arCurrentValues : array(); //IB Idea category $arIb = array(); $oRes = CIblock::GetList(array("IBLOCK_ID" => "ASC", "NAME" => "DESC"), array('ACTIVE' => 'Y')); while ($arRes = $oRes->Fetch()) { $arIb[$arRes["ID"]] = '(' . $arRes["IBLOCK_TYPE_ID"] . ') ' . $arRes["NAME"]; } //Default Idea Status $arUFStatus = array(); $arStatusList = CIdeaManagment::getInstance()->Idea()->GetStatusList(); foreach ($arStatusList as $Status) { $arUFStatus[$Status["ID"]] = $Status["VALUE"]; } //Blog URL $arBlog = array(); $dbBlog = CBlog::GetList(array("NAME" => "ASC"), array("ACTIVE" => "Y"), false, false, array("ID", "NAME", "URL")); while ($Blog = $dbBlog->Fetch()) { $arBlog[$Blog["URL"]] = $Blog["NAME"]; }
$iblock = new CIBlock(); $arFields = array("ACTIVE" => "Y", "FIELDS" => array('IBLOCK_SECTION' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'ACTIVE' => array('IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => 'Y'), 'ACTIVE_FROM' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'ACTIVE_TO' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'SORT' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'NAME' => array('IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => ''), 'PREVIEW_PICTURE' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => array('FROM_DETAIL' => 'N', 'SCALE' => 'N', 'WIDTH' => '', 'HEIGHT' => '', 'IGNORE_ERRORS' => 'N', 'METHOD' => 'resample', 'COMPRESSION' => 95, 'DELETE_WITH_DETAIL' => 'N', 'UPDATE_WITH_DETAIL' => 'N')), 'PREVIEW_TEXT_TYPE' => array('IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => 'text'), 'PREVIEW_TEXT' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'DETAIL_PICTURE' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => array('SCALE' => 'N', 'WIDTH' => '', 'HEIGHT' => '', 'IGNORE_ERRORS' => 'N', 'METHOD' => 'resample', 'COMPRESSION' => 95)), 'DETAIL_TEXT_TYPE' => array('IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => 'text'), 'DETAIL_TEXT' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'XML_ID' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'CODE' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => array('UNIQUE' => 'Y', 'TRANSLITERATION' => 'Y', 'TRANS_LEN' => 100, 'TRANS_CASE' => 'L', 'TRANS_SPACE' => '_', 'TRANS_OTHER' => '_', 'TRANS_EAT' => 'Y', 'USE_GOOGLE' => 'Y')), 'TAGS' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'SECTION_NAME' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'SECTION_PICTURE' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => array('FROM_DETAIL' => 'N', 'SCALE' => 'N', 'WIDTH' => '', 'HEIGHT' => '', 'IGNORE_ERRORS' => 'N', 'METHOD' => 'resample', 'COMPRESSION' => 95, 'DELETE_WITH_DETAIL' => 'N', 'UPDATE_WITH_DETAIL' => 'N')), 'SECTION_DESCRIPTION_TYPE' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => 'text'), 'SECTION_DESCRIPTION' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'SECTION_DETAIL_PICTURE' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => array('SCALE' => 'N', 'WIDTH' => '', 'HEIGHT' => '', 'IGNORE_ERRORS' => 'N', 'METHOD' => 'resample', 'COMPRESSION' => 95)), 'SECTION_XML_ID' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'SECTION_CODE' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => array('UNIQUE' => 'Y', 'TRANSLITERATION' => 'Y', 'TRANS_LEN' => 100, 'TRANS_CASE' => 'L', 'TRANS_SPACE' => '_', 'TRANS_OTHER' => '_', 'TRANS_EAT' => 'Y', 'USE_GOOGLE' => 'Y'))), "CODE" => "furniture_offers", "XML_ID" => $iblockCode); $iblock->Update($IBLOCK_OFFERS_ID, $arFields); $iblockCodeFur = "furniture_" . WIZARD_SITE_ID; $iblockTypeFur = "catalog"; $rsIBlockFur = CIBlock::GetList(array(), array("XML_ID" => $iblockCodeFur, "TYPE" => $iblockTypeFur)); if ($arIBlockFur = $rsIBlockFur->Fetch()) { $ID_SKU = CCatalog::LinkSKUIBlock($arIBlockFur["ID"], $IBLOCK_OFFERS_ID); } $arCatalog = CCatalog::GetByID($IBLOCK_OFFERS_ID); if ($arCatalog) { CCatalog::Update($IBLOCK_OFFERS_ID, array('PRODUCT_IBLOCK_ID' => $arIBlockFur["ID"], 'SKU_PROPERTY_ID' => $ID_SKU)); } else { CCatalog::Add(array('IBLOCK_ID' => $IBLOCK_OFFERS_ID, 'PRODUCT_IBLOCK_ID' => $arIBlockFur["ID"], 'SKU_PROPERTY_ID' => $ID_SKU)); } $dbOfferProps = CIblock::GetProperties($IBLOCK_OFFERS_ID, array(), array()); while ($arOfferProps = $dbOfferProps->Fetch()) { $arProps[$arOfferProps["XML_ID"]] = $arOfferProps["ID"]; } $property_enums = CIBlockPropertyEnum::GetList(array(), array("IBLOCK_ID" => $IBLOCK_OFFERS_ID, "CODE" => "WIDTH")); $arEnumIds = array(); while ($enum_fields = $property_enums->GetNext()) { $arEnumIds[] = $enum_fields["ID"]; } $dbElement = CIBlockElement::GetList(array(), array("IBLOCK_ID" => $arIBlockFur["ID"], "XML_ID" => 56), false); $arElement = $dbElement->Fetch(); $arOfferElements[] = array("PRODUCT" => array("IBLOCK_ID" => $IBLOCK_OFFERS_ID, "NAME" => GetMessage("CAT_OFFER_NAME_1"), "ACTIVE" => "Y", "PROPERTY_VALUES" => array($arProps["CML2_LINK"] => $arElement["ID"], $arProps["327"] => $arEnumIds[0], $arProps["329"] => GetMessage("CAT_OFFER_COLOR_1"))), "PRICE" => GetMessage("CAT_OFFER_PRICE_11")); $arOfferElements[] = array("PRODUCT" => array("IBLOCK_ID" => $IBLOCK_OFFERS_ID, "NAME" => GetMessage("CAT_OFFER_NAME_1"), "ACTIVE" => "Y", "PROPERTY_VALUES" => array($arProps["CML2_LINK"] => $arElement["ID"], $arProps["327"] => $arEnumIds[1], $arProps["329"] => GetMessage("CAT_OFFER_COLOR_1"))), "PRICE" => GetMessage("CAT_OFFER_PRICE_12")); $dbElement = CIBlockElement::GetList(array(), array("IBLOCK_ID" => $arIBlockFur["ID"], "XML_ID" => 55), false); $arElement = $dbElement->Fetch(); $arOfferElements[] = array("PRODUCT" => array("IBLOCK_ID" => $IBLOCK_OFFERS_ID, "NAME" => GetMessage("CAT_OFFER_NAME_2"), "ACTIVE" => "Y", "PROPERTY_VALUES" => array($arProps["CML2_LINK"] => $arElement["ID"], $arProps["327"] => $arEnumIds[2], $arProps["329"] => GetMessage("CAT_OFFER_COLOR_1"))), "PRICE" => GetMessage("CAT_OFFER_PRICE_21"));