예제 #1
0
파일: class.php 프로젝트: Satariall/izurit
 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;
 }
예제 #2
0
     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;