Advertisement
Guest User

Untitled

a guest
Oct 16th, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.34 KB | None | 0 0
  1. try {
  2.             $savedFiltersHLClass = \HlHelper::getHLDataClass(PAN__HL_SAVED_FILTERS__IBLOCK_ID);
  3.             $dateCreate = new Main\Type\DateTime();
  4.             $filterXmlId = '';
  5.  
  6.             $filterName = htmlspecialchars(trim($this->request->get('filterName')));
  7.             $cityCode = htmlspecialchars(trim($this->request->get('CITY_CODE')));
  8.             $filterType = htmlspecialchars(trim($this->request->get('FILTER_FOR')));
  9.             $isShowFilter = htmlspecialchars(trim($this->request->get('isShowFilter')));
  10.  
  11.             if (empty($filterName)) {
  12.               $this->arResult['ERRORS'][] = 'Не заполнено название фильтра';
  13.             }
  14.  
  15.             if ($savedFiltersHLClass && empty($this->arResult['ERRORS'])) {
  16.               $arFilter = $_REQUEST;
  17.  
  18.               $unsetFields = [
  19.                 'is_filter_ajax',
  20.                 'filterName',
  21.                 'ajax_action',
  22.                 'savedFilterUrl',
  23.               ];
  24.  
  25.               foreach ($arFilter as $k => $v) {
  26.                 if (empty($v) || in_array($k, $unsetFields)) {
  27.                   unset($arFilter[$k]);
  28.                 }
  29.               }
  30.  
  31.               $strFilter = serialize($arFilter);
  32.               $filterXmlId = md5($userId.$strFilter.$filterName);
  33.               $arJSON['filterXmlIdParams'] = [
  34.                 $userId,
  35.                 $strFilter,
  36.                 $filterName
  37.               ];
  38.               //region Check exist filter
  39.               $existSavedFilter = $savedFiltersHLClass::getList([
  40.                 'filter' => [
  41.                   'UF_XML_ID' => $filterXmlId
  42.                 ],
  43.                 'select' => [
  44.                   'ID' => 'ID',
  45.                   'XML_ID' => 'UF_XML_ID',
  46.                   'NAME' => 'UF_NAME',
  47.                 ]
  48.               ])->fetch();
  49.               //endregion
  50.  
  51.               if (!$existSavedFilter) {
  52.                 $arFields = [
  53.                   'UF_XML_ID' => $filterXmlId,
  54.                   'UF_NAME' => $filterName,
  55.                   'UF_FILTER' => $strFilter,
  56.                   'UF_AGENT_ID' => $userId,
  57.                   'UF_DATE_CREATE' => $dateCreate,
  58.                   'UF_IS_SMART_FILTER' => 0,
  59.                   'UF_DATE_UPDATE' => $dateCreate,
  60.                   'UF_ACTIVE' => 1,
  61.                   'UF_IS_SHOW_FILTER' => $isShowFilter == 'Y',
  62.                   'UF_CITY' => $cityCode,
  63.                   'UF_FILTER_TYPE' => $filterType,
  64.                 ];
  65.  
  66.                 $addResult = $savedFiltersHLClass::add($arFields);
  67.  
  68.                 if (!$addResult->isSuccess()) {
  69.                   $this->arResult['ERRORS'][] = 'Не удалось сохарнить фильтр: '.implode(', ', $addResult->getErrorMessages());
  70.                 } else {
  71.                   $arJSON['ID'] = $addResult->getId();
  72.                 }
  73.               }
  74.             }
  75.           } catch (\Exception $ex) {
  76.             $this->arResult['ERRORS'][] = $ex->getMessage();
  77.           }
  78.  
  79.           if (!empty($this->arResult['ERRORS'])) {
  80.             $arJSON['error'] = 1;
  81.             $arJSON['error_msg'] = implode('<br>', $this->arResult['ERRORS']);
  82.           } else {
  83.             $arJSON['moveToPublic'] = true;
  84.             $arJSON['filterXmlId'] = $filterXmlId;
  85.             $arJSON['url'] = 'http://'.SITE_SERVER_NAME.PUBLIC_SECTION.$filterXmlId.'/';
  86.           }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement