%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/modules/sender/lib/integration/sender/connectors/ |
| Current File : //home/bitrix/www/bitrix/modules/sender/lib/integration/sender/connectors/contact.php |
<?php
/**
* Bitrix Framework
* @package bitrix
* @subpackage sender
* @copyright 2001-2012 Bitrix
*/
namespace Bitrix\Sender\Integration\Sender\Connectors;
use Bitrix\Main\Localization\Loc;
use Bitrix\Main\Entity;
use Bitrix\Sender\Connector;
use Bitrix\Sender\ListTable;
use Bitrix\Sender\ContactTable;
use Bitrix\Sender\Recipient\Type as RecipientType;
Loc::loadMessages(__FILE__);
class Contact extends Connector\BaseFilter
{
/**
* @return string
*/
public function getName()
{
return Loc::getMessage('SENDER_INTEGRATION_SENDER_CONNECTOR_CONTACT_NAME1');
}
/**
* @return string
*/
public function getCode()
{
return "contact_list";
}
/**
* Get data count by type.
*
* @return null|array
*/
public function getDataCountByType()
{
$listId = $this->getFieldValue('LIST_ID', null);
if (!$listId)
{
return array();
}
$query = ContactTable::query();
$query->addSelect('TYPE_ID');
$query->addSelect(new Entity\ExpressionField('CNT', 'COUNT(TYPE_ID)'));
$query->addFilter('=CONTACT_LIST.LIST_ID', $listId);
$query->addGroup('TYPE_ID');
$list = $query->exec();
$result = array();
foreach ($list as $item)
{
$typeName = RecipientType::getCode($item['TYPE_ID']);
$result[$typeName] = $item['CNT'];
}
return $result;
}
/**
* @return \Bitrix\Main\DB\Result|array
*/
public function getData()
{
$listId = $this->getFieldValue('LIST_ID', null);
if (!$listId)
{
return array();
}
$resultDb = ContactTable::getList(array(
'select' => array('NAME', 'TYPE_ID', 'CODE', 'USER_ID'),
'filter' => array(
'=CONTACT_LIST.LIST_ID' => $listId
)
));
$resultDb->addFetchDataModifier(
function ($data)
{
$row = array(
'NAME' => $data['NAME'],
'USER_ID' => $data['USER_ID'],
);
$key = RecipientType::getCode($data['TYPE_ID']);
$row[$key] = $data['CODE'];
return $row;
}
);
return $resultDb;
}
/**
* Get filter fields.
*
* @return array
*/
public static function getUiFilterFields()
{
$list = array();
$list[] = array(
"id" => "LIST_ID",
"name" => Loc::getMessage('SENDER_INTEGRATION_SENDER_CONNECTOR_CONTACT_FILTER_LIST_ID'),
"type" => "list",
"items" => ListTable::getList(array('select' => array('VALUE' => 'ID', 'NAME')))->fetchAll(),
"default" => true
);
return $list;
}
}