- Модуль: 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);
}