public static function getIBlockId($code, $site_id, $use_cache = true) { $iblock_list = null; $arIblock = null; $result = array(); if ($use_cache) { $iblock_list = static::getCache(__FUNCTION__ . '_list'); } if (!is_array($iblock_list['RESULT'])) { \CModule::IncludeModule('iblock'); $dbResult = \CIBlock::GetList(); while ($next = $dbResult->fetch()) { $iblock_list['RESULT'][] = $next; } static::setCache(__FUNCTION__ . '_list', $iblock_list['RESULT']); } if ($use_cache) { $arIblock = static::getCache(__FUNCTION__ . '_iblock'); } if (!is_array($arIblock['RESULT'])) { \CModule::IncludeModule('iblock'); foreach ($iblock_list['RESULT'] as $iblock) { if ($iblock['CODE'] == $code) { $dbResult = \CIBlock::GetSite($iblock['ID']); while ($next = $dbResult->getNext()) { if ($next['SITE_ID'] == $site_id) { $arIblock['RESULT'][] = $iblock; } } } } static::setCache(__FUNCTION__ . '_iblock', $arIblock['RESULT']); } if (is_array($arIblock['RESULT']) && count($arIblock['RESULT']) > 0) { foreach ($arIblock['RESULT'] as $iblock) { $result[] = $iblock['ID']; } } return $result; }
$tabControl->EndCustomField("CATALOG", ""); } if ($arShowTabs['sku']) { $tabControl->BeginNextFormTab(); $tabControl->BeginCustomField('OFFERS', GetMessage("IBLOCK_EL_TAB_OFFERS"), false); ?><tr id="tr_OFFERS"><td colspan="2"><? define('B_ADMIN_SUBELEMENTS',1); define('B_ADMIN_SUBELEMENTS_LIST',false); $intSubIBlockID = $arMainCatalog['IBLOCK_ID']; $arSubIBlock = CIBlock::GetArrayByID($intSubIBlockID); $arSubIBlock["SITE_ID"] = array(); $rsSites = CIBlock::GetSite($intSubIBlockID); while($arSite = $rsSites->Fetch()) $arSubIBlock["SITE_ID"][] = $arSite["LID"]; $strSubIBlockType = $arSubIBlock['IBLOCK_TYPE_ID']; $arSubIBlockType = CIBlockType::GetByIDLang($strSubIBlockType, LANGUAGE_ID); $boolIncludeOffers = CIBlockRights::UserHasRightTo($intSubIBlockID, $intSubIBlockID, "iblock_admin_display");; $arSubCatalog = CCatalogSKU::GetInfoByOfferIBlock($arMainCatalog['IBLOCK_ID']); $boolSubCatalog = (!empty($arSubCatalog) && is_array($arSubCatalog)); if (!$boolCatalogRead && !$boolCatalogPrice) $boolSubCatalog = false; $boolSubWorkFlow = CModule::IncludeModule("workflow") && $arSubIBlock["WORKFLOW"] != "N"; $boolSubBizproc = CModule::IncludeModule("bizproc") && $arSubIBlock["BIZPROC"] != "N"; $intSubPropValue = (0 == $ID || $bCopy ? '-'.$TMP_ID : $ID);
function OnAfterIBlockElementDelete($arFields) { // news if (!array_key_exists("WF_STATUS_ID", $arFields) || $arFields["WF_STATUS_ID"] == 1) { $dbIBlock = CIBlock::GetByID($arFields["IBLOCK_ID"]); if ($arIBlock = $dbIBlock->Fetch()) { $rsSite = CIBlock::GetSite($arFields["IBLOCK_ID"]); if ($arSite = $rsSite->Fetch()) { $site_id = $arSite["SITE_ID"]; } $val = COption::GetOptionString("intranet", "sonet_log_news_iblock", "", $site_id); if (strlen($val) > 0) { $arIBCode = unserialize($val); if (!is_array($arIBCode) || count($arIBCode) <= 0) { $arIBCode = array(); } } else { $arIBCode = array(); } if (in_array($arIBlock["CODE"], $arIBCode) && CModule::IncludeModule("socialnetwork")) { CSocNetAllowed::GetAllowedEntityTypes(); $dbRes = CSocNetLog::GetList(array("ID" => "DESC"), array("ENTITY_TYPE" => SONET_SUBSCRIBE_ENTITY_NEWS, "EVENT_ID" => "news", "SOURCE_ID" => $arFields["ID"]), false, false, array("ID")); while ($arRes = $dbRes->Fetch()) { CSocNetLog::Delete($arRes["ID"]); } } } } // --news }
<? if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die(); if (!CModule::IncludeModule("iblock")) return false; $rsIBlock = CIBlock::GetList(array(), array("CODE" => "aqw_shop_products", "TYPE" => "catalog")); if ($arIBlock = $rsIBlock->Fetch()) { $arSites = array(); $db_res = CIBlock::GetSite($arIBlock['ID']); while ($res = $db_res->Fetch()) $arSites[] = $res["LID"]; if (!in_array(WIZARD_SITE_ID, $arSites)) { $arSites[] = WIZARD_SITE_ID; $iBlock = new CIBlock; $iBlock->Update($arIBlock['ID'], array("LID" => $arSites)); } $iblockID = $arIBlock['ID']; } else { $iblockID = WizardServices::ImportIBlockFromXML( WIZARD_SERVICE_RELATIVE_PATH . "/xml/" . LANGUAGE_ID . "/products.xml", "aqw_shop_products", "catalog", WIZARD_SITE_ID ); }
$lAdmin = new CAdminList($sTableID); $arHeader = array(array("id" => "NAME", "content" => GetMessage("CAT_CADM_NAME"), "default" => true), array("id" => "SORT", "content" => GetMessage("CAT_CADM_SORT"), "default" => true, "align" => "right"), array("id" => "ACTIVE", "content" => GetMessage("CAT_CADM_ACTIVE"), "default" => true, "align" => "center"), array("id" => "LID", "content" => GetMessage("CAT_CADM_LANG"), "default" => true, "align" => "left"), array("id" => "ID", "content" => GetMessage("CAT_CADM_ID"), "sort" => "id", "default" => true, "align" => "right")); $lAdmin->AddHeaders($arHeader); $arCatalogs = array(); $rsCatalog = CCatalog::GetList(array(), array(), false, false, array('IBLOCK_ID', 'PRODUCT_IBLOCK_ID')); while ($ar = $rsCatalog->Fetch()) { if (!$ar["PRODUCT_IBLOCK_ID"]) { $arCatalogs[$ar["IBLOCK_ID"]] = 1; } } $rsIBlocks = CIBlock::GetList(array("SORT" => "asc", "NAME" => "ASC"), array('ID' => array_keys($arCatalogs), "MIN_PERMISSION" => "U")); $rsIBlocks = new CAdminResult($rsIBlocks, $sTableID); while ($dbrs = $rsIBlocks->NavNext(true, "f_")) { $row =& $lAdmin->AddRow($f_ID, $dbrs, 'cat_catalog_edit.php?IBLOCK_ID=' . $f_ID . '&lang=' . LANGUAGE_ID); $f_LID = ''; $db_LID = CIBlock::GetSite($f_ID); while ($ar_LID = $db_LID->Fetch()) { $f_LID .= ($f_LID != "" ? " / " : "") . htmlspecialcharsbx($ar_LID["LID"]); } $row->AddViewField("LID", $f_LID); $row->AddViewField("NAME", '<a href="' . htmlspecialcharsbx('cat_catalog_edit.php?IBLOCK_ID=' . $f_ID . '&lang=' . LANGUAGE_ID) . '">' . $f_NAME . '</a>'); $row->AddCheckField("ACTIVE", false); $arActions = array(); if (CIBlockRights::UserHasRightTo($f_ID, $f_ID, "iblock_edit")) { $arActions[] = array("ICON" => "edit", "TEXT" => GetMessage("MAIN_ADMIN_MENU_EDIT"), "DEFAULT" => $_REQUEST["admin"] == "Y", "ACTION" => "window.location='" . CUtil::JSEscape('cat_catalog_edit.php?IBLOCK_ID=' . $f_ID . '&lang=' . LANGUAGE_ID) . "';"); } if (!empty($arActions)) { $row->AddActions($arActions); } } $lAdmin->CheckListMode();
?> <?echo ShowError(GetMessage("IBLIST_A_BAD_IBLOCK"));?> <a href="<?echo htmlspecialcharsbx("iblock_admin.php?lang=".LANGUAGE_ID."&type=".urlencode($type))?>"><?echo GetMessage("IBLOCK_BACK_TO_ADMIN")?></a> <? endif; require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php"); die(); } if(!$arIBlock["SECTIONS_NAME"]) $arIBlock["SECTIONS_NAME"] = $arIBTYPE["SECTION_NAME"]? $arIBTYPE["SECTION_NAME"]: GetMessage("IBLIST_A_SECTIONS"); if(!$arIBlock["ELEMENTS_NAME"]) $arIBlock["ELEMENTS_NAME"] = $arIBTYPE["ELEMENT_NAME"]? $arIBTYPE["ELEMENT_NAME"]: GetMessage("IBLIST_A_ELEMENTS"); $arIBlock["SITE_ID"] = array(); $rsSites = CIBlock::GetSite($IBLOCK_ID); while($arSite = $rsSites->Fetch()) $arIBlock["SITE_ID"][] = $arSite["LID"]; $bWorkFlow = $bWorkflow && (CIBlock::GetArrayByID($IBLOCK_ID, "WORKFLOW") != "N"); $bBizproc = $bBizproc && (CIBlock::GetArrayByID($IBLOCK_ID, "BIZPROC") != "N"); define("MODULE_ID", "iblock"); define("ENTITY", "CIBlockDocument"); define("DOCUMENT_TYPE", "iblock_".$IBLOCK_ID); $bCatalog = Loader::includeModule("catalog"); $boolSKU = false; $boolSKUFiltrable = false; $strSKUName = ''; $uniq_id = 0;
$tasksForumId = 0; if (CModule::IncludeModule("iblock")) { $iblockCode = "intranet_tasks"; $iblockType = "services"; $rsIBlock = CIBlock::GetList(array(), array("XML_ID" => $iblockCode, "TYPE" => $iblockType)); if ($arIBlock = $rsIBlock->Fetch()) { $tasksIblockId = $arIBlock["ID"]; } if ($tasksIblockId == 0) { $tasksIblockId = WizardServices::ImportIBlockFromXML(WIZARD_SERVICE_RELATIVE_PATH . "/xml/" . LANGUAGE_ID . "/tasks.xml", $iblockCode, $iblockType, WIZARD_SITE_ID, array("1" => "X", "2" => "R", WIZARD_PORTAL_ADMINISTRATION_GROUP => "X")); $iblock = new CIBlock(); $arFields = array("CODE" => $iblockCode, "XML_ID" => $iblockCode); $iblock->Update($tasksIblockId, $arFields); } else { $arSites = array(); $db_res = CIBlock::GetSite($tasksIblockId); while ($res = $db_res->Fetch()) { $arSites[] = $res["LID"]; } if (!in_array(WIZARD_SITE_ID, $arSites)) { $arSites[] = WIZARD_SITE_ID; $iblock = new CIBlock(); $iblock->Update($tasksIblockId, array("LID" => $arSites)); } } } if (CModule::IncludeModule("forum")) { $forumCode = "intranet_tasks"; $dbRes = CForumNew::GetListEx(array(), array("SITE_ID" => WIZARD_SITE_ID, "XML_ID" => $forumCode)); if ($arRes = $dbRes->Fetch()) { $tasksForumId = $arRes["ID"];
); while ($arCatalog = $rsCatalogs->Fetch()) { $arIBlockIDs[] = intval($arCatalog['IBLOCK_ID']); } if (empty($arIBlockIDs)) $arIBlockIDs[] = -1; $arIBlockList = array(); $db_res = CIBlock::GetList( array("IBLOCK_TYPE"=>"ASC", "NAME"=>"ASC"), array('ID' => $arIBlockIDs, 'ACTIVE' => 'Y', 'CHECK_PERMISSIONS' => 'Y', 'MIN_PERMISSION' => 'W') ); while ($res = $db_res->Fetch()) { $arSiteList = array(); $rsSites = CIBlock::GetSite($res["ID"]); while ($arSite = $rsSites->Fetch()) { $arSiteList[] = $arSite["SITE_ID"]; } $boolYandex = array_key_exists($res['ID'], $arYandexKeys); $arIBlockList[] = array( 'ID' => $res['ID'], 'NAME' => $res['NAME'], 'IBLOCK_TYPE_ID' => $res['IBLOCK_TYPE_ID'], 'YANDEX_EXPORT' => $boolYandex, 'SITE_LIST' => '('.implode(' ',$arSiteList).')', ); if ($boolYandex) $intCountChecked++;
/** * @param $id * @param bool|false $forCache * @return bool|string */ public static function run($id, $forCache = false) { $data = \CIBlock::GetByID($id)->Fetch(); if ($data) { $code = $data['CODE']; $name = $data['NAME']; $isactive = $data['ACTIVE'] == 'Y'; $sort = $data['SORT']; $description = (string) $data['DESCRIPTION']; $descriptionType = $data['DESCRIPTION_TYPE']; $className = $forCache ? \TAO::normalizeMnemocode($code) : \TAO::chunkCap($code); unset($data['ID']); unset($data['TIMESTAMP_X']); unset($data['IBLOCK_TYPE_ID']); unset($data['CODE']); unset($data['NAME']); unset($data['LANG_DIR']); unset($data['SERVER_NAME']); unset($data['LID']); unset($data['ACTIVE']); unset($data['SORT']); unset($data['DESCRIPTION']); unset($data['DESCRIPTION_TYPE']); $defs = array('RSS_ACTIVE' => 'Y', 'RSS_TTL' => '24', 'RSS_FILE_ACTIVE' => 'N', 'RSS_YANDEX_ACTIVE' => 'N', 'INDEX_ELEMENT' => 'Y', 'INDEX_SECTION' => 'N', 'WORKFLOW' => 'Y', 'VERSION' => '1', 'BIZPROC' => 'N', 'SECTION_CHOOSER' => 'L', 'RIGHTS_MODE' => 'S', 'SECTION_PROPERTY' => 'N', 'PROPERTY_INDEX' => 'N'); foreach (array_keys($data) as $k) { if (empty($data[$k])) { unset($data[$k]); } if (isset($defs[$k]) && $defs[$k] == $data[$k]) { unset($data[$k]); } } $sites = ''; $res = \CIBlock::GetSite($id); while ($row = $res->Fetch()) { $sites .= $sites != '' ? ',' : ''; $sites .= "'" . $row['SITE_ID'] . "'"; } unset($data['ELEMENTS_NAME']); unset($data['ELEMENT_NAME']); $sData = self::generateArrayExport($data, ' '); $sDescription = self::generateSimpleStringFunctionText('description', $description, ''); $sDescriptionType = self::generateSimpleStringFunctionText('descriptionType', $descriptionType, 'text'); $sIsActive = self::generateSimpleStringFunctionText('isActive', $isactive, true); $sSort = self::generateSimpleStringFunctionText('sort', $sort, '500'); $sSites = "\n\n public function sites()\n {\n return array({$sites});\n }"; $properties = array(); $result = \CIBlockProperty::GetList(array(), array('IBLOCK_ID' => $id, 'CHECK_PERMISSIONS' => 'N')); $defs = array('VERSION' => '1', 'FILTRABLE' => 'N', 'SEARCHABLE' => 'N', 'LIST_TYPE' => 'L', 'COL_COUNT' => '30', 'ROW_COUNT' => '1', 'MULTIPLE' => 'N', 'SORT' => '500', 'IS_REQUIRED' => 'N', 'WITH_DESCRIPTION' => 'N', 'MULTIPLE_CNT' => '5'); while ($row = $result->Fetch()) { $code = trim($row['CODE']); if ($code == '') { $code = 'PROP_' . $row['ID']; } $pid = $row['ID']; unset($row['ID']); unset($row['TIMESTAMP_X']); unset($row['IBLOCK_ID']); unset($row['ACTIVE']); unset($row['CODE']); foreach (array_keys($row) as $k) { if (empty($row[$k])) { unset($row[$k]); } if (isset($defs[$k]) && $defs[$k] == $row[$k]) { unset($row[$k]); } } if ($row['PROPERTY_TYPE'] == 'L') { $items = array(); $res = \CIBlockPropertyEnum::GetList(array(), array('PROPERTY_ID' => $pid, 'CHECK_PERMISSIONS' => 'N')); while ($lrow = $res->Fetch()) { $iid = $lrow['ID']; $eid = $lrow['EXTERNAL_ID']; unset($lrow['ID']); unset($lrow['EXTERNAL_ID']); unset($lrow['XML_ID']); unset($lrow['TMP_ID']); unset($lrow['PROPERTY_ID']); unset($lrow['PROPERTY_NAME']); unset($lrow['PROPERTY_CODE']); unset($lrow['PROPERTY_SORT']); if ($lrow['SORT'] == '500') { unset($lrow['SORT']); } if ($lrow['DEF'] == 'N') { unset($lrow['DEF']); } if (count($lrow) == 1 && isset($lrow['VALUE'])) { $lrow = $lrow['VALUE']; } $items[$eid] = $lrow; } $row['ITEMS'] = $items; } if (isset($row['LINK_IBLOCK_ID']) && !$forCache) { $row['LINK_IBLOCK_CODE'] = \TAO::getInfoblockCode($row['LINK_IBLOCK_ID']); unset($row['LINK_IBLOCK_ID']); } $properties[$code] = $row; } $sProperties = self::generateArrayExport($properties, ' '); $messages = \CIBlock::GetMessages($id); $sMessages = self::generateArrayExport($messages, ' '); $fields = self::trimArrayValues(\CIBlock::GetFields($id)); $defFields = self::defaultFields(); foreach (array_keys($fields) as $field) { if (isset($defFields[$field])) { $md5 = md5(serialize($fields[$field])); $def = md5(serialize($defFields[$field])); if ($md5 == $def) { //unset($fields[$field]); } else { //var_dump($fields[$field], $defFields[$field]); } } } $sFields = self::generateArrayExport($fields, ' '); $permissions = \CIBlock::GetGroupPermissions($id); $sPermissions = self::generateArrayExport($permissions, ' '); ob_start(); include \TAO::taoDir() . '/views/template-iblock.phtml'; $content = "<?php\n" . ob_get_clean(); return $content; } return false; }
$oldPropertyProduct = null; if (isset($IBLOCK_PROPERTY_PRODUCT[$iblock['ID']])) { foreach ($iblockPropertiesName as $key => $prop) { $oldPropertyProduct[$key] = $IBLOCK_PROPERTY_PRODUCT[$iblock['ID']][$key]; } } $oldPropertyUnitProduct = null; if (isset($IBLOCK_PROPERTY_UNIT_PRODUCT[$iblock['ID']])) { foreach ($iblockPropertiesName as $key => $prop) { $oldPropertyUnitProduct[$key] = $IBLOCK_PROPERTY_UNIT_PRODUCT[$iblock['ID']][$key]; } } $arSiteList = array(); $rsSites = CIBlock::GetSite($iblock["ID"]); while ($arSite = $rsSites->Fetch()) { $arSiteList[] = $arSite["SITE_ID"]; } if (count($IBLOCK_EXPORT) != 0) $boolExport = (in_array($iblock['ID'], $IBLOCK_EXPORT)); else $boolExport = true; $arIBlockList[] = array( 'ID' => $iblock['ID'], 'NAME' => $iblock['NAME'], 'IBLOCK_TYPE_ID' => $iblock['IBLOCK_TYPE_ID'],
} } //--offers if ($IBLOCK_OFFERS_ID == false) { $permissions = array("1" => "X", "2" => "R"); $dbGroup = CGroup::GetList($by = "", $order = "", array("STRING_ID" => "sale_administrator")); if ($arGroup = $dbGroup->Fetch()) { $permissions[$arGroup["ID"]] = 'W'; } $dbGroup = CGroup::GetList($by = "", $order = "", array("STRING_ID" => "content_editor")); if ($arGroup = $dbGroup->Fetch()) { $permissions[$arGroup["ID"]] = 'W'; } $IBLOCK_OFFERS_ID = WizardServices::ImportIBlockFromXML($iblockXMLFileOffers, "clothes_offers", $iblockTypeOffers, WIZARD_SITE_ID, $permissions); $iblockID1 = WizardServices::ImportIBlockFromXML($iblockXMLFilePricesOffers, "clothes_offers", $iblockTypeOffers . "_prices", WIZARD_SITE_ID, $permissions); if ($IBLOCK_OFFERS_ID < 1) { return; } $_SESSION["WIZARD_OFFERS_IBLOCK_ID"] = $IBLOCK_OFFERS_ID; } else { $arSites = array(); $db_res = CIBlock::GetSite($IBLOCK_OFFERS_ID); while ($res = $db_res->Fetch()) { $arSites[] = $res["LID"]; } if (!in_array(WIZARD_SITE_ID, $arSites)) { $arSites[] = WIZARD_SITE_ID; $iblock = new CIBlock(); $iblock->Update($IBLOCK_OFFERS_ID, array("LID" => $arSites)); } }
foreach ($keys as $key) { $id = intval($arParams["IBLOCK_OTHER_IDS"][$key]); if ($id > 0 && $id != $arParams['IBLOCK_USER_ID'] && $id != $arParams['IBLOCK_GROUP_ID']) { $arParams["IBLOCK_OTHER_IDS"][$key] = $id; $dbRes = CIBlock::GetByID($id); if ($dbRes && ($arRes = $dbRes->Fetch())) { $path = str_replace(array('///', '//'), '/', str_replace('#SITE_DIR#', SITE_DIR, $arRes['LIST_PAGE_URL'])); if (SubStr($path, 0, 1) != '/') { $path = '/' . $path; } if (SubStr($path, -1, 1) != '/') { $path .= '/'; } $path .= '#PATH#'; $arSites = array(); $rSites = CIBlock::GetSite($id); while ($arSite = $rSites->Fetch()) { $arSites[$arSite['LID']] = $arSite; } if (isset($arSites[SITE_ID])) { $arDefaultUrlTemplates404 = array('i' . $id => $path) + $arDefaultUrlTemplates404; $modes = array($id => rawurlencode(str_replace("/", "", $arRes['NAME']))) + $modes; } else { unset($arParams["IBLOCK_OTHER_IDS"][$key]); } } else { unset($arParams["IBLOCK_OTHER_IDS"][$key]); } } else { unset($arParams["IBLOCK_OTHER_IDS"][$key]); }
function PClearComponentCacheEx($iblockId = false, $arSections = array(), $arGalleries = array(), $arUsers = array(), $clearCommon = true) { if (!$iblockId) { return; } $arCache = array(); $arCache[] = "photogallery"; if ($clearCommon) { $arCache[] = "search.page"; $arCache[] = "search.tags.cloud"; $arCache[] = "photogallery/" . $iblockId; $arCache[] = "photogallery/" . $iblockId . "/pemission"; $arCache[] = "photogallery.detail.comment/" . $iblockId; $arCache[] = "photogallery.gallery.list/" . $iblockId; } if (is_array($arSections)) { $arSections = array_unique($arSections); foreach ($arSections as $sectionId) { $arCache[] = "photogallery/" . $iblockId . "/section" . intVal($sectionId); } } $arCache[] = "photogallery/" . $iblockId . "/section" . intVal($sectionId); if (is_array($arGalleries)) { $arGalleries = array_unique($arGalleries); foreach ($arGalleries as $galleryCode) { $arCache[] = "photogallery/" . $iblockId . "/gallery" . $galleryCode; } // todo: secure galleryCode!!!! } if (is_array($arUsers)) { $arUsers = array_unique($arUsers); foreach ($arUsers as $userId) { $arCache[] = "photogallery/" . $iblockId . "/user" . intVal($userId); } } $arSite = array(); $rsIblockSite = CIBlock::GetSite($iblockId); while ($arIblockSite = $rsIblockSite->Fetch()) { $arSite[] = $arIblockSite["SITE_ID"]; } PClearComponentCache($arCache, $arSite); }
public static function getIBlockSites($iblockID) { $db_res = \CIBlock::GetSite($iblockID); while ($res = $db_res->Fetch()) { $arSites[] = $res["LID"]; } return $arSites; }
public function executeComponent() { if (!CModule::IncludeModule('sale')) { ShowError("Module sale not installed!"); return; } if (!CModule::IncludeModule('catalog')) { ShowError("Module catalog not installed!"); return; } $this->arResult["BITRIX_CATEGORY_ID"] = isset($this->arParams["BITRIX_CATEGORY_ID"]) ? $this->arParams["BITRIX_CATEGORY_ID"] : 0; $this->arResult["IBLOCK_ID"] = isset($this->arParams["IBLOCK_ID"]) ? $this->arParams["IBLOCK_ID"] : 0; if (isset($this->arParams["EBAY_CATEGORY_ID"])) { $this->arResult["EBAY_CATEGORY_ID"] = $this->arParams["EBAY_CATEGORY_ID"]; } else { $this->arResult["EBAY_CATEGORY_ID"] = $this->getMappedEbayCategoryId($this->arResult["BITRIX_CATEGORY_ID"]); } $this->arResult["TOP_CATEGORIES_LIST"] = $this->getTopCategories(); $this->arResult["VARIATIONS_BLOCK_ID"] = 'SALE_EBAY_CAT_' . $this->arResult["EBAY_CATEGORY_ID"] . '_VARIATIONS'; $siteRes = CIBlock::GetSite($this->arResult["IBLOCK_ID"]); //todo: It can be many sites for one iblock. if ($site = $siteRes->Fetch()) { $this->arResult["SITE_ID"] = $site["LID"]; } else { $this->arResult["SITE_ID"] = ""; } if (strlen($this->arResult["EBAY_CATEGORY_ID"]) > 0) { $this->arResult["CATEGORY_AND_PARENTS_INFO"] = $this->getCategoryAndParentsInfo($this->arResult["EBAY_CATEGORY_ID"]); if (isset($this->arResult["CATEGORY_AND_PARENTS_INFO"][1]["CATEGORY_ID"])) { $this->arResult["TOP_CATEGORY_ID"] = $this->arResult["CATEGORY_AND_PARENTS_INFO"][1]["CATEGORY_ID"]; } $this->arResult["EBAY_CATEGORY_VARIATIONS"] = \Bitrix\Sale\TradingPlatform\Ebay\Helper::getEbayCategoryVariations($this->arResult["EBAY_CATEGORY_ID"], $this->arResult["SITE_ID"]); if (isset($this->arParams["VARIATIONS_VALUES"])) { $this->arResult["VARIATIONS_VALUES"] = $this->arParams["VARIATIONS_VALUES"]; } else { $this->arResult["VARIATIONS_VALUES"] = $this->getVariationsValues($this->arResult["IBLOCK_ID"], $this->arResult["EBAY_CATEGORY_ID"], $this->arResult["EBAY_CATEGORY_VARIATIONS"]); } } else { $this->arResult["VARIATIONS_VALUES"] = array('' => ''); $this->arResult["EBAY_CATEGORY_VARIATIONS"] = array(); } $this->arResult["CATEGORY_PROPS"] = \CIBlockSectionPropertyLink::GetArray($this->arParams["IBLOCK_ID"], $this->arParams["BITRIX_CATEGORY_ID"]); $rsProps = \CIBlockProperty::GetList(array("SORT" => "ASC", 'ID' => 'ASC'), array("IBLOCK_ID" => $this->arParams["IBLOCK_ID"], "CHECK_PERMISSIONS" => "N", "ACTIVE" => "Y")); while ($arProp = $rsProps->Fetch()) { if (isset($this->arResult["CATEGORY_PROPS"][$arProp["ID"]])) { $this->arResult["CATEGORY_PROPS"][$arProp["ID"]]["NAME"] = $arProp["NAME"]; } } $this->arResult["IBLOCK_IDS"] = array($this->arParams["IBLOCK_ID"] => Loc::getMessage("SALE_EBAY_SEC_CATEGORY_PROP")); $arOffers = \CCatalogSKU::GetInfoByProductIBlock($this->arParams["IBLOCK_ID"]); if (is_array($arOffers) && !empty($arOffers)) { $this->arResult["OFFERS_IBLOCK_ID"] = $arOffers["IBLOCK_ID"]; $this->arResult["CATEGORY_OFFERS_PROPS"] = \CIBlockSectionPropertyLink::GetArray($arOffers["IBLOCK_ID"], $this->arParams["BITRIX_CATEGORY_ID"]); $rsProps = \CIBlockProperty::GetList(array("SORT" => "ASC", 'ID' => 'ASC'), array("IBLOCK_ID" => $arOffers["IBLOCK_ID"], "CHECK_PERMISSIONS" => "N", "ACTIVE" => "Y")); while ($arProp = $rsProps->Fetch()) { if (isset($this->arResult["CATEGORY_OFFERS_PROPS"][$arProp["ID"]])) { $this->arResult["CATEGORY_OFFERS_PROPS"][$arProp["ID"]]["NAME"] = $arProp["NAME"]; } } $this->arResult["IBLOCK_IDS"][$arOffers["IBLOCK_ID"]] = Loc::getMessage("SALE_EBAY_SEC_OFFERS_PROP"); } $this->IncludeComponentTemplate(); }
public function GetDiscountForProduct($arProduct, $arParams = false) { global $DB; self::initDiscountSettings(); $arResult = array(); $arResultID = array(); if (is_array($arProduct) && !empty($arProduct)) { if (!is_array($arParams)) { $arParams = array(); } if (!isset($arProduct['ID'])) { $arProduct['ID'] = 0; } $arProduct['ID'] = (int) $arProduct['ID']; if (!isset($arProduct['IBLOCK_ID'])) { $arProduct['IBLOCK_ID'] = 0; } $arProduct['IBLOCK_ID'] = (int) $arProduct['IBLOCK_ID']; if ($arProduct['IBLOCK_ID'] <= 0) { return $arResult; } $arSKUExt = false; if (isset($arParams['SKU']) && $arParams['SKU'] == 'Y') { $arSKUExt = CCatalogSKU::GetInfoByOfferIBlock($arProduct['IBLOCK_ID']); } $arFieldsParams = array(); if (isset($arParams['TIME_ZONE'])) { $arFieldsParams['TIME_ZONE'] = $arParams['TIME_ZONE']; } if (isset($arParams['PRODUCT'])) { $arFieldsParams['PRODUCT'] = $arParams['PRODUCT']; } $boolGenerate = false; $arSelect = array('ID', 'SITE_ID', 'SORT', 'NAME', 'VALUE_TYPE', 'VALUE', 'CURRENCY', 'UNPACK'); if (isset($arParams['DISCOUNT_FIELDS']) && !empty($arParams['DISCOUNT_FIELDS']) && is_array($arParams['DISCOUNT_FIELDS'])) { $arSelect = $arParams['DISCOUNT_FIELDS']; } if (!in_array('UNPACK', $arSelect)) { $arSelect[] = 'UNPACK'; } $strDate = date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL"))); if (isset($arParams['CURRENT_DATE'])) { $strDate = $arParams['CURRENT_DATE']; } $strRenewal = 'N'; if (isset($arParams['RENEWAL'])) { $strRenewal = $arParams['RENEWAL']; } $strRenewal = $strRenewal == 'Y' ? 'Y' : 'N'; $arSiteList = array(); if (isset($arParams['SITE_ID'])) { if (!is_array($arParams['SITE_ID'])) { $arParams['SITE_ID'] = array($arParams['SITE_ID']); } if (!empty($arParams['SITE_ID'])) { $arSiteList = $arParams['SITE_ID']; } } if (empty($arSiteList)) { $rsIBlockSites = CIBlock::GetSite($arProduct['IBLOCK_ID']); while ($arIBlockSite = $rsIBlockSites->Fetch()) { $arSiteList[] = $arIBlockSite['SITE_ID']; } } $arFilter = array('SITE_ID' => $arSiteList, 'TYPE' => self::ENTITY_ID, 'ACTIVE' => "Y", 'RENEWAL' => $strRenewal, '+<=ACTIVE_FROM' => $strDate, '+>=ACTIVE_TO' => $strDate, 'COUPON' => ''); CTimeZone::Disable(); $rsPriceDiscounts = CCatalogDiscount::GetList(array(), $arFilter, false, false, $arSelect); CTimeZone::Enable(); while ($arPriceDiscount = $rsPriceDiscounts->Fetch()) { if ($arPriceDiscount['COUPON_ACTIVE'] != 'N') { if (!$boolGenerate) { if (!isset(self::$arCacheProduct[$arProduct['ID']])) { if (!self::__GenerateFields($arProduct, $arFieldsParams)) { return $arResult; } if (!empty($arSKUExt)) { self::__GenerateParent($arProduct, $arSKUExt); } $boolGenerate = true; self::$arCacheProduct[$arProduct['ID']] = $arProduct['ID']; } else { $arProduct = self::$arCacheProduct[$arProduct['ID']]; } } if (CCatalogDiscount::__Unpack($arProduct, $arPriceDiscount['UNPACK'])) { unset($arPriceDiscount['UNPACK']); $arResult[] = $arPriceDiscount; $arResultID[] = $arPriceDiscount['ID']; } } } } return $arResult; }
} } if (strPos($componentPage, "user_files") !== false || strPos($componentPage, "group_files") !== false) { if ($bExtranetEnabled && strPos($componentPage, "user_files") !== false && CModule::IncludeModule("iblock")) { $bIsUserExtranet = false; $obCache = new CPHPCache(); $strCacheID = $arResult["VARIABLES"]["user_id"]; $path = "/sonet_user_files_iblock_" . intval($arResult["VARIABLES"]["user_id"] / 100) . "_" . SITE_ID; if ($obCache->StartDataCache(60 * 60 * 24 * 365, $strCacheID, $path)) { if (defined("BX_COMP_MANAGED_CACHE")) { $GLOBALS["CACHE_MANAGER"]->StartTagCache($path); $GLOBALS["CACHE_MANAGER"]->RegisterTag("USER_CARD_" . intval($arResult["VARIABLES"]["user_id"] / TAGGED_user_card_size)); } $rsIBlock = CIBlock::GetList(array(), array("ACTIVE" => "Y", "CHECK_PERMISSIONS" => "N", "CODE" => "user_files%")); while ($arIBlock = $rsIBlock->Fetch()) { $rsSite = CIBlock::GetSite($arIBlock["ID"]); while ($arSite = $rsSite->Fetch()) { if ($arSite["SITE_ID"] == $extranetSiteId && intval($extranet_iblock_id) <= 0) { $extranet_iblock_id = $arIBlock["ID"]; } elseif ($arSite["SITE_ID"] != $extranetSiteId && intval($intranet_iblock_id) <= 0) { $intranet_iblock_id = $arIBlock["ID"]; } } if (intval($intranet_iblock_id) > 0 && intval($extranet_iblock_id) > 0) { break; } } if (intval($intranet_iblock_id) > 0 && intval($extranet_iblock_id) > 0) { if (CSocNetUser::IsUserModuleAdmin($arResult["VARIABLES"]["user_id"])) { $bIsUserExtranet = false; } else {
public function GetDiscountForProduct($arProduct, $arParams = false) { global $DB; $arResult = array(); $arResultID = array(); if (is_array($arProduct) && !empty($arProduct)) { if (!is_array($arParams)) { $arParams = array(); } if (!isset($arProduct['ID'])) { $arProduct['ID'] = 0; } $arProduct['ID'] = intval($arProduct['ID']); if (!isset($arProduct['IBLOCK_ID'])) { $arProduct['IBLOCK_ID'] = 0; } $arProduct['IBLOCK_ID'] = intval($arProduct['IBLOCK_ID']); if (0 >= $arProduct['IBLOCK_ID']) { return $arResult; } $arFieldsParams = array(); if (isset($arParams['TIME_ZONE'])) { $arFieldsParams['TIME_ZONE'] = $arParams['TIME_ZONE']; } if (isset($arParams['PRODUCT'])) { $arFieldsParams['PRODUCT'] = $arParams['PRODUCT']; } $boolGenerate = false; $arSelect = array("ID", "SITE_ID", "SORT", "NAME", "VALUE_TYPE", "VALUE", "CURRENCY", 'UNPACK'); if (isset($arParams['DISCOUNT_FIELDS']) && is_array($arParams['DISCOUNT_FIELDS']) && !empty($arParams['DISCOUNT_FIELDS'])) { $arSelect = $arParams['DISCOUNT_FIELDS']; } if (!in_array('UNPACK', $arSelect)) { $arSelect[] = 'UNPACK'; } $strDate = date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL"))); if (isset($arParams['CURRENT_DATE'])) { $strDate = $arParams['CURRENT_DATE']; } $strRenewal = 'N'; if (isset($arParams['RENEWAL'])) { $strRenewal = $arParams['RENEWAL']; } else { $rsCatalogs = CCatalog::GetList(array(), array('ID' => $arProduct['IBLOCK_ID']), false, false, array('ID', 'SUBSCRIPTION')); if ($arCatalog = $rsCatalogs->Fetch()) { $strRenewal = $arCatalog['SUBSCRIPTION']; } } if ('Y' != $strRenewal) { $strRenewal = 'N'; } $arSiteList = array(); if (isset($arParams['SITE_ID'])) { if (!is_array($arParams['SITE_ID'])) { $arParams['SITE_ID'] = array($arParams['SITE_ID']); } if (!empty($arParams['SITE_ID'])) { $arSiteList = $arParams['SITE_ID']; } } if (empty($arSiteList)) { $rsIBlockSites = CIBlock::GetSite($arProduct['IBLOCK_ID']); while ($arIBlockSite = $rsIBlockSites->Fetch()) { $arSiteList[] = $arIBlockSite['SITE_ID']; } } $arFilter = array("SITE_ID" => $arSiteList, "TYPE" => DISCOUNT_TYPE_STANDART, "ACTIVE" => "Y", "RENEWAL" => $strRenewal, "+<=ACTIVE_FROM" => $strDate, "+>=ACTIVE_TO" => $strDate, 'COUPON' => ''); $rsPriceDiscounts = CCatalogDiscount::GetList(array(), $arFilter, false, false, $arSelect); while ($arPriceDiscount = $rsPriceDiscounts->Fetch()) { if ($arPriceDiscount['COUPON_ACTIVE'] != 'N') { if (!$boolGenerate) { if (!self::__GenerateFields($arProduct, $arFieldsParams)) { return $arResult; } $boolGenerate = true; } if (CCatalogDiscount::__Unpack($arProduct, $arPriceDiscount['UNPACK'])) { unset($arPriceDiscount['UNPACK']); $arResult[] = $arPriceDiscount; $arResultID[] = $arPriceDiscount['ID']; } } } if (isset($arParams['SKU']) && 'Y' == $arParams['SKU']) { if (isset($arParams['SKU_PARAMS']) && is_array($arParams['SKU_PARAMS']) && !empty($arParams['SKU_PARAMS'])) { $arSKU = $arParams['SKU_PARAMS']; } else { $arSKU = CCatalogSKU::GetInfoByOfferIBlock($arProduct['IBLOCK_ID']); } if (is_array($arSKU)) { $arParent = array(); $arParent['ID'] = 0; $arParent['IBLOCK_ID'] = $arSKU['PRODUCT_IBLOCK_ID']; if (isset($arProduct['PROPERTY_' . $arSKU['SKU_PROPERTY_ID'] . '_VALUE']) && is_array($arProduct['PROPERTY_' . $arSKU['SKU_PROPERTY_ID'] . '_VALUE'])) { $intParentID = intval(current($arProduct['PROPERTY_' . $arSKU['SKU_PROPERTY_ID'] . '_VALUE'])); if (0 < $intParentID) { $arParent['ID'] = $intParentID; } } $arParentParams = array(); if (isset($arParams['TIME_ZONE'])) { $arParentParams['TIME_ZONE'] = $arParams['TIME_ZONE']; } if (isset($arParams['DISCOUNT_FIELDS'])) { $arParentParams['DISCOUNT_FIELDS'] = $arParams['DISCOUNT_FIELDS']; } $arParentParams['RENEWAL'] = $strRenewal; $arParentParams['SITE_ID'] = $arSiteList; $arParentParams['CURRENT_DATE'] = $strDate; $arDiscountParent = self::GetDiscountForProduct($arParent, $arParentParams); if (!empty($arDiscountParent)) { if (empty($arResult)) { $arResult = $arDiscountParent; } else { foreach ($arDiscountParent as &$arOneParentDiscount) { if (in_array($arOneParentDiscount['ID'], $arResultID)) { continue; } $arResult[] = $arOneParentDiscount; $arResultID[] = $arOneParentDiscount['ID']; } if (isset($arOneParentDiscount)) { unset($arOneParentDiscount); } } } } } } return $arResult; }
$arIBlockFullInfo = array(); $arRecurring = array(); $arRecurringKey = array(); $rsIBlocks = CIBlock::GetList(array('IBLOCK_TYPE' => 'ASC','ID' => 'ASC')); while ($arIBlock = $rsIBlocks->Fetch()) { $arIBlock['ID'] = (int)$arIBlock['ID']; if (!isset($arIBlockSitesList[$arIBlock['ID']])) { $arLIDList = array(); $arWithLinks = array(); $arWithoutLinks = array(); $rsIBlockSites = CIBlock::GetSite($arIBlock['ID']); while ($arIBlockSite = $rsIBlockSites->Fetch()) { $arLIDList[] = $arIBlockSite['LID']; $arWithLinks[] = '<a href="/bitrix/admin/site_edit.php?LID='.urlencode($arIBlockSite['LID']).'&lang='.LANGUAGE_ID.'" title="'.Loc::getMessage("CO_SITE_ALT").'">'.htmlspecialcharsbx($arIBlockSite["LID"]).'</a>'; $arWithoutLinks[] = htmlspecialcharsbx($arIBlockSite['LID']); } $arIBlockSitesList[$arIBlock['ID']] = array( 'SITE_ID' => $arLIDList, 'WITH_LINKS' => implode(' ',$arWithLinks), 'WITHOUT_LINKS' => implode(' ',$arWithoutLinks), ); } $arIBlockItem = array( 'ID' => $arIBlock['ID'], 'IBLOCK_TYPE_ID' => $arIBlock['IBLOCK_TYPE_ID'],
$arFields["USER_GROUP_BUY"] = array(1); CCatalogGroup::Add($arFields); } if ($IBLOCK_CATALOG_ID == false) { $permissions = array("1" => "X", "2" => "R"); $dbGroup = CGroup::GetList($by = "", $order = "", array("STRING_ID" => "sale_administrator")); if ($arGroup = $dbGroup->Fetch()) { $permissions[$arGroup["ID"]] = 'W'; } $dbGroup = CGroup::GetList($by = "", $order = "", array("STRING_ID" => "content_editor")); if ($arGroup = $dbGroup->Fetch()) { $permissions[$arGroup["ID"]] = 'W'; } $IBLOCK_CATALOG_ID = WizardServices::ImportIBlockFromXML($iblockXMLFile, "clothes", $iblockType, WIZARD_SITE_ID, $permissions); $IBLOCK_CATALOG_ID1 = WizardServices::ImportIBlockFromXML($iblockXMLFilePrices, "clothes", $iblockType . "_prices", WIZARD_SITE_ID, $permissions); if ($IBLOCK_CATALOG_ID < 1) { return; } $_SESSION["WIZARD_CATALOG_IBLOCK_ID"] = $IBLOCK_CATALOG_ID; } else { $arSites = array(); $db_res = CIBlock::GetSite($IBLOCK_CATALOG_ID); while ($res = $db_res->Fetch()) { $arSites[] = $res["LID"]; } if (!in_array(WIZARD_SITE_ID, $arSites)) { $arSites[] = WIZARD_SITE_ID; $iblock = new CIBlock(); $iblock->Update($IBLOCK_CATALOG_ID, array("LID" => $arSites)); } }
$iblockID = false; if ($arIBlock = $rsIBlock->Fetch()) { $iblockID = $arIBlock["ID"]; } if ($iblockID == false) { $iblockID = WizardServices::ImportIBlockFromXML($iblockXMLFile, 'idea', $iblockType, WIZARD_SITE_ID, $permissions = array("1" => "X", "2" => "R", WIZARD_PORTAL_ADMINISTRATION_GROUP => "X", WIZARD_PERSONNEL_DEPARTMENT_GROUP => "W")); if ($iblockID < 1) { return; } //Iblock Section form settings $aFormOptions = array('tabs' => "edit1--#--" . GetMessage("IDEA_CATEGORY_EDIT_FORM_TAB_TITLE") . "--,--ID--#--ID--,--ACTIVE--#--" . GetMessage("IDEA_CATEGORY_EDIT_FORM_P_ACTIVE") . "--,--NAME--#--" . GetMessage("IDEA_CATEGORY_EDIT_FORM_P_NAME") . "--,--CODE--#--" . GetMessage("IDEA_CATEGORY_EDIT_FORM_P_CODE") . "--,--IBLOCK_SECTION_ID--#--" . GetMessage("IDEA_CATEGORY_EDIT_FORM_P_IBLOCK_SECTION_ID") . "--,--SORT--#--" . GetMessage("IDEA_CATEGORY_EDIT_FORM_P_SORT") . "--;--"); WizardServices::SetUserOption("form", "form_section_" . $iblockID, $aFormOptions, $common = true); WizardServices::SetIBlockFormSettings($iblockID, $aFormOptions); //IBlock fields settings $iblock = new CIBlock(); $arFields = array("ACTIVE" => "Y", "FIELDS" => array("SECTION_CODE" => array("IS_REQUIRED" => "Y", "DEFAULT_VALUE" => array("UNIQUE" => "Y", "TRANSLITERATION" => "Y", "TRANS_LEN" => 50, "TRANS_CASE" => "L", "TRANS_SPACE" => "_", "TRANS_OTHER" => "_", "TRANS_EAT" => "Y", "USE_GOOGLE" => "Y"))), "CODE" => $iblockCode, "XML_ID" => $iblockCode); $iblock->Update($iblockID, $arFields); } else { $arSites = array(); $db_res = CIBlock::GetSite($iblockID); while ($res = $db_res->Fetch()) { $arSites[] = $res["LID"]; } if (!in_array(WIZARD_SITE_ID, $arSites)) { $arSites[] = WIZARD_SITE_ID; $iblock = new CIBlock(); $iblock->Update($iblockID, array("LID" => $arSites)); } } CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/about/idea/index.php", array("IDEA_IBLOCK_CATEGORY" => $iblockID)); CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/include/feedback.php", array("IDEA_IBLOCK_CATEGORY" => $iblockID));
$res = $ib->Update($photoGroupIBlockID, $arIBlockFields); } } } // tasks $tasksIblockId = 0; if (CModule::IncludeModule("iblock") && strlen($default_site_id) > 0) { $ib = new CIBlock(); $ibtype_tasks = COption::GetOptionString('intranet', 'iblock_type_tasks', '', ''); if (strlen($ibtype_tasks) <= 0) { $ibtype_tasks = "services"; COption::SetOptionString("intranet", 'iblock_type_tasks', $ibtype_tasks); } $dbRes = CIBlock::GetList(array(), array("SITE_ID" => $default_site_id, "CODE" => "intranet_tasks")); if ($arRes = $dbRes->Fetch()) { $tasksIblockId = $arRes["ID"]; $arSiteID = array(WIZARD_SITE_ID); $rsSites = CIBlock::GetSite($tasksIblockId); while ($arSite = $rsSites->Fetch()) { $arSiteID[] = $arSite["SITE_ID"]; } $arIBlockFields = array("ACTIVE" => $arRes["ACTIVE"], "SITE_ID" => $arSiteID); $res = $ib->Update($tasksIblockId, $arIBlockFields); } } $arReplace = array("FILES_USER_IBLOCK_ID" => $filesUserIBlockID, "CALENDAR_USER_IBLOCK_ID" => $calendarUserIBlockID, "PHOTO_USER_IBLOCK_ID" => $photoUserIBlockID, "FILES_GROUP_IBLOCK_ID" => $filesGroupIBlockID, "CALENDAR_GROUP_IBLOCK_ID" => $calendarGroupIBlockID, "PHOTO_GROUP_IBLOCK_ID" => $photoGroupIBlockID, "TASKS_IBLOCK_ID" => $tasksIblockId); CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/workgroups/index.php", $arReplace); CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/contacts/personal.php", $arReplace); CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/index.php", $arReplace); CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/index_b24.php", $arReplace); }