Your IP : 18.216.202.111


Current Path : /home/bitrix/ext_www/dev.home-comfort.in.ua/bitrix/modules/sender/admin/
Upload File :
Current File : /home/bitrix/ext_www/dev.home-comfort.in.ua/bitrix/modules/sender/admin/mailing_recipient_admin.php

<?
define("ADMIN_MODULE_NAME", "sender");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");

if(!\Bitrix\Main\Loader::includeModule("sender"))
	ShowError(\Bitrix\Main\Localization\Loc::getMessage("MAIN_MODULE_NOT_INSTALLED"));

IncludeModuleLangFile(__FILE__);

$POST_RIGHT = $APPLICATION->GetGroupRight("sender");
if($POST_RIGHT=="D")
	$APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));

$sTableID = "tbl_sender_posting_recipient";
$oSort = new CAdminSorting($sTableID, "ID", "desc");
$lAdmin = new CAdminList($sTableID, $oSort);

$MAILING_ID = intval($_REQUEST['MAILING_ID']);
$ID = intval($_REQUEST['ID']);
if($find_mailing_chain_id>0)
	$ID = $find_mailing_chain_id;

if($ID <= 0)
{
	$postingDb = \Bitrix\Sender\PostingTable::getList(array(
		'select' => array('MAILING_CHAIN_ID'),
		'filter' => array('MAILING_ID' => $MAILING_ID),
		'order' => array('DATE_SENT' => 'DESC', 'DATE_CREATE' => 'DESC'),
	));
	$arPosting = $postingDb->fetch();
	if($arPosting)
	{
		$ID = intval($arPosting['MAILING_CHAIN_ID']);
	}
}


function CheckFilter()
{
	global $FilterArr, $lAdmin;
	foreach ($FilterArr as $f) global $$f;

	return count($lAdmin->arFilterErrors)==0;
}

$FilterArr = Array(
	"find_email",
	"find_name",
	"find_mailing",
	"find_mailing_chain_id",
	"find_sent",
	"find_read",
	"find_click",
	"find_unsub",
);

$lAdmin->InitFilter($FilterArr);

if (CheckFilter() || $ID>0)
{
	$arFilter = Array(
		"%NAME" => $find_name,
		"%EMAIL" => $find_email,
		"=POSTING.MAILING_ID" => $MAILING_ID,
		"=POSTING.MAILING_CHAIN_ID" => $ID,
	);

	foreach($arFilter as $k => $v) if(empty($v)) unset($arFilter[$k]);


	if($find_sent && in_array($find_sent, array_keys(\Bitrix\Sender\PostingRecipientTable::getStatusList())))
	{
		$arFilter["=STATUS"] = $find_sent;
	}
	if(in_array($find_read, array('Y', 'N')))
	{
		$arFilter['=IS_READ'] = $find_read;
	}
	if(in_array($find_click, array('Y', 'N')))
	{
		$arFilter['=IS_CLICK'] = $find_click;
	}
	if(in_array($find_unsub, array('Y', 'N')))
	{
		$arFilter['=IS_UNSUB'] = $find_unsub;
	}

}

if(isset($order)) $order = ($order=='asc'?'ASC': 'DESC');

$nav = new \Bitrix\Main\UI\AdminPageNavigation("nav-sender-recipient");
$recipientListDb = \Bitrix\Sender\PostingRecipientTable::getList(array(
	'select' => array('NAME', 'EMAIL', 'CALC_IS_READ', 'CALC_IS_CLICK', 'CALC_IS_UNSUB'),
	'filter' => $arFilter,
	'runtime' => array(
		new \Bitrix\Main\Entity\ExpressionField('CALC_IS_READ', 'MAX(%s)', 'IS_READ'),
		new \Bitrix\Main\Entity\ExpressionField('CALC_IS_CLICK', 'MAX(%s)', 'IS_CLICK'),
		new \Bitrix\Main\Entity\ExpressionField('CALC_IS_UNSUB', 'MAX(%s)', 'IS_UNSUB'),
	),
	'group' => array('NAME', 'EMAIL'),
	'order' => array($by=>$order),
	'count_total' => true,
	'offset' => $nav->getOffset(),
	'limit' => $nav->getLimit(),
));

$aContext = array();
$nav->setRecordCount($recipientListDb->getCount());
$lAdmin->setNavigation($nav, \Bitrix\Main\Localization\Loc::getMessage("rub_nav"));

$lAdmin->AddHeaders(array(
	array(	"id"		=>"EMAIL",
		"content"	=>GetMessage("rub_email"),
		"sort"		=>"EMAIL",
		"default"	=>true,
	),
	array(	"id"		=>"NAME",
		"content"	=>GetMessage("rub_name"),
		"sort"		=>"NAME",
		"default"	=>true,
	),
	array(	"id"		=>"IS_READ",
		"content"	=>GetMessage("rub_f_read"),
		"sort"		=>"IS_READ",
		"default"	=>true,
	),
	array(	"id"		=>"IS_CLICK",
		"content"	=>GetMessage("rub_f_click"),
		"sort"		=>"IS_CLICK",
		"default"	=>true,
	),
	array(	"id"		=>"IS_UNSUB",
		"content"	=>GetMessage("rub_f_unsub"),
		"sort"		=>"IS_UNSUB",
		"default"	=>true,
	),
));

while($resultRow = $recipientListDb->fetch()):
	$row =& $lAdmin->AddRow(false, $resultRow);
	$row->AddViewField("NAME", htmlspecialcharsbx($resultRow['NAME']));
	$row->AddViewField("EMAIL", htmlspecialcharsbx($resultRow['EMAIL']));
	$row->AddViewField("IS_READ", $resultRow['CALC_IS_READ'] == 'Y' ? GetMessage("POST_U_YES") : GetMessage("POST_U_NO"));
	$row->AddViewField("IS_CLICK", $resultRow['CALC_IS_CLICK'] == 'Y' ? GetMessage("POST_U_YES") : GetMessage("POST_U_NO"));
	$row->AddViewField("IS_UNSUB", $resultRow['CALC_IS_UNSUB'] == 'Y' ? GetMessage("POST_U_YES") : GetMessage("POST_U_NO"));
endwhile;

$lAdmin->AddFooter(
	array(
		array("title"=>GetMessage("MAIN_ADMIN_LIST_SELECTED"), "value"=>$recipientListDb->getCount()),
		array("counter"=>true, "title"=>GetMessage("MAIN_ADMIN_LIST_CHECKED"), "value"=>"0"),
	)
);

$lAdmin->AddAdminContextMenu($aContext);
$lAdmin->CheckListMode();

$APPLICATION->SetTitle(GetMessage("rub_title"));

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");

$oFilter = new CAdminFilter(
	$sTableID."_filter",
	array(
		($MAILING_ID > 0 ? GetMessage("rub_f_mailing_chain") : null),
		GetMessage("rub_f_email"),
		GetMessage("rub_f_name"),
		GetMessage("rub_f_sent"),
		GetMessage("rub_f_read"),
		GetMessage("rub_f_click"),
		GetMessage("rub_f_unsub"),
	)
);
?>
<form name="find_form" method="get" action="<?echo $APPLICATION->GetCurPage();?>">
<?$oFilter->Begin();?>
	<?if($MAILING_ID > 0):?>
		<tr>
			<td><?=GetMessage("rub_f_mailing_chain")?>:</td>
			<td valign="middle">
				<?
				$arr = array();
				$mailingChainDb = \Bitrix\Sender\MailingChainTable::getList(array(
					'select' => array('SUBJECT', 'TITLE', 'ID'),
					'filter' => array('MAILING_ID' => $MAILING_ID)
				));
				while($arMailingChain = $mailingChainDb->fetch())
				{
					$arr['reference'][] = $arMailingChain['TITLE'] ? $arMailingChain['TITLE'] : $arMailingChain['SUBJECT'];
					$arr['reference_id'][] = $arMailingChain['ID'];
				}
				echo SelectBoxFromArray("find_mailing_chain_id", $arr, $ID, false, "");
				?>
			</td>
		</tr>
	<?endif;?>
	<tr>
		<td><?=GetMessage("rub_f_email")?>:</td>
		<td>
			<input type="text" name="find_email" size="47" value="<?echo htmlspecialcharsbx($find_email)?>">
		</td>
	</tr>
<tr>
	<td><?=GetMessage("rub_f_name")?>:</td>
	<td>
		<input type="text" name="find_name" size="47" value="<?echo htmlspecialcharsbx($find_name)?>">
</td>
</tr>

<tr>
	<td><?=GetMessage("rub_f_sent")?>:</td>
	<td>
		<?
		$arRecipientStatus = \Bitrix\Sender\PostingRecipientTable::getStatusList();
		$arr = array(
			"reference" => array_values($arRecipientStatus),
			"reference_id" => array_keys($arRecipientStatus)
		);
		echo SelectBoxFromArray("find_sent", $arr, $find_sent, GetMessage("MAIN_ALL"), "");
		?>
	</td>
</tr>
<tr>
	<td><?=GetMessage("rub_f_read")?>:</td>
	<td>
		<?
		$arr = array(
			"reference" => array(
				GetMessage("MAIN_YES"),
				GetMessage("MAIN_NO"),
			),
			"reference_id" => array(
				"Y",
				"N",
			)
		);
		echo SelectBoxFromArray("find_read", $arr, $find_read, GetMessage("MAIN_ALL"), "");
		?>
	</td>
</tr>
<tr>
	<td><?=GetMessage("rub_f_click")?>:</td>
	<td>
		<?
		$arr = array(
			"reference" => array(
				GetMessage("MAIN_YES"),
				GetMessage("MAIN_NO"),
			),
			"reference_id" => array(
				"Y",
				"N",
			)
		);
		echo SelectBoxFromArray("find_click", $arr, $find_click, GetMessage("MAIN_ALL"), "");
		?>
	</td>
</tr>
<tr>
	<td><?=GetMessage("rub_f_unsub")?>:</td>
	<td>
		<?
		$arr = array(
			"reference" => array(
				GetMessage("MAIN_YES"),
				GetMessage("MAIN_NO"),
			),
			"reference_id" => array(
				"Y",
				"N",
			)
		);
		echo SelectBoxFromArray("find_unsub", $arr, $find_unsub, GetMessage("MAIN_ALL"), "");
		?>
	</td>
</tr>

<?
$oFilter->Buttons(array("table_id"=>$sTableID,"url"=>$APPLICATION->GetCurPage()."?MAILING_ID=".$MAILING_ID,"form"=>"find_form"));
$oFilter->End();
?>
</form>

<?$lAdmin->DisplayList();?>

<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");?>