protected function getServiceRequestParamsByType($type) { $a = array('uid' => $_COOKIE['BX_USER_ID'], 'aid' => \Bitrix\Main\Analytics\Counter::getAccountId(), 'count' => $this->arParams['PAGE_ELEMENT_COUNT'] + 10); // random choices if ($type == 'any_similar') { $possible = array('similar_sell', 'similar_view', 'similar'); $type = $possible[array_rand($possible)]; } elseif ($type == 'any_personal') { $possible = array('bestsell', 'personal'); $type = $possible[array_rand($possible)]; } elseif ($type == 'any') { $possible = array('similar_sell', 'similar_view', 'similar', 'bestsell', 'personal'); $type = $possible[array_rand($possible)]; } // configure if ($type == 'bestsell') { $a['op'] = 'sim_domain_items'; $a['type'] = 'order'; $a['domain'] = Bitrix\Main\Context::getCurrent()->getServer()->getHttpHost(); } elseif ($type == 'personal') { $a['op'] = 'recommend'; } elseif ($type == 'similar_sell') { $a['op'] = 'simitems'; $a['eid'] = $this->arParams['ID']; $a['type'] = 'order'; } elseif ($type == 'similar_view') { $a['op'] = 'simitems'; $a['eid'] = $this->arParams['ID']; $a['type'] = 'view'; } elseif ($type == 'similar') { $a['op'] = 'simitems'; $a['eid'] = $this->arParams['ID']; } else { // unkonwn type } // get iblocks $iblocks = array(); if (!empty($this->arParams['IBLOCK_ID'])) { $iblocks = array($this->arParams['IBLOCK_ID']); } else { $iblockList = array(); /* catalog */ $iblockIterator = \Bitrix\Catalog\CatalogIblockTable::getList(array('select' => array('IBLOCK_ID', 'PRODUCT_IBLOCK_ID'))); while ($iblock = $iblockIterator->fetch()) { $iblock['IBLOCK_ID'] = (int) $iblock['IBLOCK_ID']; $iblock['PRODUCT_IBLOCK_ID'] = (int) $iblock['PRODUCT_IBLOCK_ID']; $iblockList[$iblock['IBLOCK_ID']] = $iblock['IBLOCK_ID']; if ($iblock['PRODUCT_IBLOCK_ID'] > 0) { $iblockList[$iblock['PRODUCT_IBLOCK_ID']] = $iblock['PRODUCT_IBLOCK_ID']; } } /* iblock */ $iblockIterator = \Bitrix\Iblock\IblockSiteTable::getList(array('select' => array('IBLOCK_ID'), 'filter' => array('@IBLOCK_ID' => $iblockList, '=SITE_ID' => $this->getSiteId()))); while ($iblock = $iblockIterator->fetch()) { $iblocks[] = $iblock['IBLOCK_ID']; } } $a['ib'] = join('.', $iblocks); return $a; }
if ($arParams["ELEMENT_CODE"] !== '') { $findFilter = array("IBLOCK_ID" => $arParams["IBLOCK_ID"], "IBLOCK_LID" => SITE_ID, "IBLOCK_ACTIVE" => "Y", "ACTIVE_DATE" => "Y", "CHECK_PERMISSIONS" => "Y", "MIN_PERMISSION" => 'R'); if ($arParams["SHOW_DEACTIVATED"] !== "Y") { $findFilter["ACTIVE"] = "Y"; } $arParams["ELEMENT_ID"] = CIBlockFindTools::GetElementID($arParams["ELEMENT_ID"], $arParams["ELEMENT_CODE"], false, false, $findFilter); } } if ($arParams["ELEMENT_ID"] > 0) { $blogGroupID = 0; $blogID = 0; $propBlogPostID = 0; $propBlogCommentsCountID = 0; $arResult['BLOG_DATA'] = array('BLOG_URL' => $arParams['BLOG_URL'], 'BLOG_ID' => 0, 'BLOG_POST_ID_PROP' => 0, 'BLOG_COMMENTS_COUNT_PROP' => 0, 'BLOG_POST_ID' => 0, 'IBLOCK_SITES' => array()); if ($arResultModules['blog']) { $siteIterator = Iblock\IblockSiteTable::getList(array('select' => array('SITE_ID'), 'filter' => array('=IBLOCK_ID' => $arParams['IBLOCK_ID']))); while ($iblockSite = $siteIterator->fetch()) { $arResult['BLOG_DATA']['IBLOCK_SITES'][] = $iblockSite['SITE_ID']; } unset($iblockSite, $siteIterator); $newBlog = false; $blogExist = false; $blogGroupExist = false; $blogIterator = CBlog::GetList(array(), array('URL' => $arResult['BLOG_DATA']['BLOG_URL']), false, false, array('ID', 'GROUP_ID', 'EMAIL_NOTIFY', 'GROUP_SITE_ID')); if ($blog = $blogIterator->Fetch()) { if ($blog['GROUP_SITE_ID'] == SITE_ID || in_array($blog['GROUP_SITE_ID'], $arResult['BLOG_DATA']['IBLOCK_SITES'])) { $blogExist = true; $blogGroupExist = true; } else { $newBlog = true; $arResult['BLOG_DATA']['BLOG_URL'] .= '_' . SITE_ID;