• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/subscribe.php
  • Класс: BitrixCatalogSubscribeTable
  • Вызов: SubscribeTable::prepareDataForNotice
static function prepareDataForNotice(array $listSubscribe, $eventName)
{
	/* Preparation of data for the mail template */
	$itemIdGroupByIblock = array();
	foreach($listSubscribe as $key => $subscribeData)
		$itemIdGroupByIblock[$subscribeData['IBLOCK_ID']][$subscribeData['ITEM_ID']] = $subscribeData['ITEM_ID'];

	$detailPageUrlGroupByItemId = array();
	if(!empty($itemIdGroupByIblock))
	{
		foreach($itemIdGroupByIblock as $iblockId => $listItemId)
		{
			$queryObject = CIBlockElement::getList(array('ID'=>'ASC'),
				array('IBLOCK_ID' => $iblockId, 'ID' => $listItemId), false, false, array('DETAIL_PAGE_URL'));
			while($result = $queryObject->getNext())
				$detailPageUrlGroupByItemId[$result['ID']] = $result['DETAIL_PAGE_URL'];
		}
	}

	$dataSendToNotice = array();
	$listNotifiedSubscribeId = array();
	foreach($listSubscribe as $key => $subscribeData)
	{
		$pageUrl = self::getPageUrl($subscribeData, $detailPageUrlGroupByItemId);
		if ($pageUrl == '')
		{
			continue;
		}

		$listNotifiedSubscribeId[] = $subscribeData['ID'];

		$subscribeData['EVENT_NAME'] = $eventName;
		$subscribeData['USER_NAME'] = $subscribeData['USER_NAME'] ?
			$subscribeData['USER_NAME'] : Loc::getMessage('EMAIL_TEMPLATE_USER_NAME');
		$subscribeData['EMAIL_TO'] = $subscribeData['USER_CONTACT'];
		$subscribeData['NAME'] = $subscribeData['PRODUCT_NAME'];
		$subscribeData['PAGE_URL'] = $pageUrl;
		$subscribeData['PRODUCT_ID'] = $subscribeData['ITEM_ID'];
		$subscribeData['CHECKOUT_URL'] = CHTTP::urlAddParams($pageUrl, array(
			'action' => 'BUY', 'id' => $subscribeData['PRODUCT_ID']));
		$subscribeData['CHECKOUT_URL_PARAMETERS'] = CHTTP::urlAddParams('', array(
			'action' => 'BUY', 'id' => $subscribeData['PRODUCT_ID']));
		$subscribeData['UNSUBSCRIBE_URL'] = CHTTP::urlAddParams(
			self::getUnsubscribeUrl($subscribeData),
			array('unSubscribe' => 'Y', 'subscribeId' => $subscribeData['ID'],
				'userContact' => $subscribeData['USER_CONTACT'], 'productId' => $subscribeData['PRODUCT_ID']));
		$subscribeData['UNSUBSCRIBE_URL_PARAMETERS'] = CHTTP::urlAddParams('',
			array('unSubscribe' => 'Y', 'subscribeId' => $subscribeData['ID'],
				'userContact' => $subscribeData['USER_CONTACT'], 'productId' => $subscribeData['PRODUCT_ID']));

		$dataSendToNotice[$subscribeData['CONTACT_TYPE']][$subscribeData['USER_CONTACT']][$key] = $subscribeData;
	}

	return array($dataSendToNotice, $listNotifiedSubscribeId);
}