Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- try {
- $savedFiltersHLClass = \HlHelper::getHLDataClass(PAN__HL_SAVED_FILTERS__IBLOCK_ID);
- $dateCreate = new Main\Type\DateTime();
- $filterXmlId = '';
- $filterName = htmlspecialchars(trim($this->request->get('filterName')));
- $cityCode = htmlspecialchars(trim($this->request->get('CITY_CODE')));
- $filterType = htmlspecialchars(trim($this->request->get('FILTER_FOR')));
- $isShowFilter = htmlspecialchars(trim($this->request->get('isShowFilter')));
- if (empty($filterName)) {
- $this->arResult['ERRORS'][] = 'Не заполнено название фильтра';
- }
- if ($savedFiltersHLClass && empty($this->arResult['ERRORS'])) {
- $arFilter = $_REQUEST;
- $unsetFields = [
- 'is_filter_ajax',
- 'filterName',
- 'ajax_action',
- 'savedFilterUrl',
- ];
- foreach ($arFilter as $k => $v) {
- if (empty($v) || in_array($k, $unsetFields)) {
- unset($arFilter[$k]);
- }
- }
- $strFilter = serialize($arFilter);
- $filterXmlId = md5($userId.$strFilter.$filterName);
- $arJSON['filterXmlIdParams'] = [
- $userId,
- $strFilter,
- $filterName
- ];
- //region Check exist filter
- $existSavedFilter = $savedFiltersHLClass::getList([
- 'filter' => [
- 'UF_XML_ID' => $filterXmlId
- ],
- 'select' => [
- 'ID' => 'ID',
- 'XML_ID' => 'UF_XML_ID',
- 'NAME' => 'UF_NAME',
- ]
- ])->fetch();
- //endregion
- if (!$existSavedFilter) {
- $arFields = [
- 'UF_XML_ID' => $filterXmlId,
- 'UF_NAME' => $filterName,
- 'UF_FILTER' => $strFilter,
- 'UF_AGENT_ID' => $userId,
- 'UF_DATE_CREATE' => $dateCreate,
- 'UF_IS_SMART_FILTER' => 0,
- 'UF_DATE_UPDATE' => $dateCreate,
- 'UF_ACTIVE' => 1,
- 'UF_IS_SHOW_FILTER' => $isShowFilter == 'Y',
- 'UF_CITY' => $cityCode,
- 'UF_FILTER_TYPE' => $filterType,
- ];
- $addResult = $savedFiltersHLClass::add($arFields);
- if (!$addResult->isSuccess()) {
- $this->arResult['ERRORS'][] = 'Не удалось сохарнить фильтр: '.implode(', ', $addResult->getErrorMessages());
- } else {
- $arJSON['ID'] = $addResult->getId();
- }
- }
- }
- } catch (\Exception $ex) {
- $this->arResult['ERRORS'][] = $ex->getMessage();
- }
- if (!empty($this->arResult['ERRORS'])) {
- $arJSON['error'] = 1;
- $arJSON['error_msg'] = implode('<br>', $this->arResult['ERRORS']);
- } else {
- $arJSON['moveToPublic'] = true;
- $arJSON['filterXmlId'] = $filterXmlId;
- $arJSON['url'] = 'http://'.SITE_SERVER_NAME.PUBLIC_SECTION.$filterXmlId.'/';
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement