%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/modules/sender/lib/integration/crm/timeline/ |
| Current File : //home/bitrix/www/bitrix/modules/sender/lib/integration/crm/timeline/recipientcontroller.php |
<?php
namespace Bitrix\Sender\Integration\Crm\Timeline;
use Bitrix\Crm\Timeline;
use Bitrix\Sender\Entity;
use Bitrix\Sender\PostingRecipientTable;
/**
* Class RecipientController
* @package Bitrix\Sender\Integration\Crm\Timeline
*/
class RecipientController extends Timeline\EntityController
{
/** @var static|null */
protected static $instance = null;
/**
* Get instance.
*
* @return static
*/
public static function getInstance()
{
if(self::$instance === null)
{
self::$instance = new static();
}
return self::$instance;
}
/**
* Get entity type ID.
*
* @return int
*/
public function getEntityTypeID()
{
return \CCrmOwnerType::Wait;
}
/**
* Handler of event 'onCreate'.
*
* @param integer $id ID.
* @param array $params Parameters.
*/
public function onCreate($id, array $params)
{
}
/**
* Handler of event 'onModify'.
*
* @param integer $id ID.
* @param array $params Parameters.
*/
public function onModify($id, array $params)
{
}
/**
* Handler of event 'onDelete'.
*
* @param integer $ownerID Owner ID.
* @param array $params Parameters.
*/
public function onDelete($ownerID, array $params)
{
}
/**
* Prepare history data model.
*
* @param array $data Data.
* @param array|null $options Options.
* @return array
*/
public function prepareHistoryDataModel(array $data, array $options = null)
{
$settings = (object) ((isset($data['SETTINGS']) && is_array($data['SETTINGS'])) ? $data['SETTINGS'] : array());
$data = parent::prepareHistoryDataModel($data, $options);
if ($settings->isAds)
{
$entity = new Entity\Ad($settings->letterId);
$settings->path = '/marketing/ads/edit/' . $settings->letterId . '/';
$settings->messageName = $entity->getMessage()->getName();
}
else
{
$entity = new Entity\Letter($settings->letterId);
$settings->path = '/marketing/letter/edit/' . $settings->letterId . '/';
$settings->messageName = $entity->getMessage()->getName();
}
$settings->letterTitle = $entity->get('TITLE');
if ($settings->recipient)
{
$row = PostingRecipientTable::getRow([
'select' => ['IS_READ', 'IS_CLICK', 'IS_UNSUB'],
'filter' => ['=ID' => $settings->recipient['id']]
]);
$settings->isRead = $row ? $row['IS_READ'] == 'Y' : false;
$settings->isClick = $row ? $row['IS_CLICK'] == 'Y' : false;
$settings->isUnsub = $row ? $row['IS_UNSUB'] == 'Y' : false;
}
$data['SETTINGS'] = (array) $settings;
return $data;
}
}