%PDF- %PDF-
Server IP : 37.220.80.31 / Your IP : 18.221.188.161 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/modules/sender/lib/ |
Upload File : |
<?php /** * Bitrix Framework * @package bitrix * @subpackage sender * @copyright 2001-2012 Bitrix */ namespace Bitrix\Sender; use Bitrix\Main\EventManager; use Bitrix\Main\Event; use Bitrix\Main\EventResult; class MailEventHandler { private static $list = array(); /** * @param \Bitrix\Main\Event $event * @return mixed */ public static function handleEvent(Event $event) { $eventData = $event->getParameters(); $eventData = $eventData[0]; $eventName = $eventData['EVENT_NAME']; $fields = is_array($eventData['C_FIELDS']) ? $eventData['C_FIELDS'] : array(); if(static::isPreventable($eventName, $fields)) { // error $result = new EventResult(EventResult::ERROR); } else { // success $result = new EventResult(EventResult::SUCCESS); } return $result; } public static function prevent($eventName, array $filter) { if(empty(static::$list[$eventName])) { EventManager::getInstance()->addEventHandler('main', 'OnBeforeMailEventAdd', array(__CLASS__, 'handleEvent'), false, 1); } static::$list[$eventName][] = $filter; } public static function isPreventable($eventName, array $fields) { if(empty(static::$list[$eventName])) return false; $prevent = false; // check each filter foreach(static::$list[$eventName] as $filter) { foreach($filter as $key => $value) { $prevent = true; if(!isset($fields[$key]) || $fields[$key] != $value) { $prevent = false; break; } } if($prevent) break; } return $prevent; } }