global $DB;
use Bitrix\Main\Localization\Loc;
$messages = Loc::loadLanguageFile(__FILE__);
if(!empty($messages))
{
$listEventType = "'CATALOG_PRODUCT_SUBSCRIBE_LIST_CONFIRM', 'CATALOG_PRODUCT_SUBSCRIBE_NOTIFY',
'CATALOG_PRODUCT_SUBSCRIBE_NOTIFY_REPEATED'";
$rs = $DB->query('SELECT count(*) CNT FROM b_event_type WHERE EVENT_NAME IN ('.$listEventType.')',
false, 'File: '.__FILE__.'
Line: '.__LINE__);
$ar = $rs->fetch();
if($ar['CNT'] <= 0)
{
$templateTotal = '
';
$unsubscribeTemplate = '
#FOOTER_UNSUBSCRIBE#';
$eventType = new CEventType;
$eventMessage = new CEventMessage;
$listEventName = array('CATALOG_PRODUCT_SUBSCRIBE_LIST_CONFIRM', 'CATALOG_PRODUCT_SUBSCRIBE_NOTIFY',
'CATALOG_PRODUCT_SUBSCRIBE_NOTIFY_REPEATED');
$listEventMayUnsubscribe = array('CATALOG_PRODUCT_SUBSCRIBE_NOTIFY', 'CATALOG_PRODUCT_SUBSCRIBE_NOTIFY_REPEATED');
$languageIterator = Bitrix\Main\Localization\LanguageTable::getList(array(
'select' => array('ID'),
'filter' => array('=ACTIVE' => 'Y')
));
while ($lang = $languageIterator->fetch())
{
$sites = array();
$siteIterator = Bitrix\Main\SiteTable::getList(array(
'select' => array('LID'),
'filter' => array('LANGUAGE_ID' => $lang['ID'])
));
while ($site = $siteIterator->fetch())
$sites[] = $site['LID'];
foreach($listEventName as $eventName)
{
if(in_array($eventName, $listEventMayUnsubscribe))
$template = str_replace("#UNSUBSCRIBE#", $unsubscribeTemplate, $templateTotal);
else
$template = str_replace("#UNSUBSCRIBE#", '', $templateTotal);
$message = str_replace(
array(
'#TITLE#',
'#SUB_TITLE#',
'#TEXT#',
'#FOOTER_BR#',
'#FOOTER_SHOP#',
'#FOOTER_UNSUBSCRIBE#',
),
array(
$messages[$eventName.'_HTML_TITLE'],
$messages[$eventName.'_HTML_SUB_TITLE'],
$messages[$eventName.'_HTML_TEXT'],
$messages['SMAIL_FOOTER_BR'],
$messages['SMAIL_FOOTER_SHOP'],
$messages['SMAIL_UNSUBSCRIBE'],
),
$template);
$eventType->add(array(
'LID' => $lang['ID'],
'EVENT_NAME' => $eventName,
'NAME' => $messages[$eventName.'_NAME'],
'DESCRIPTION' => $messages[$eventName.'_DESC'],
));
if(!empty($sites))
{
$eventMessage->add(array(
'ACTIVE' => 'Y',
'EVENT_NAME' => $eventName,
'LID' => $sites,
'EMAIL_FROM' => '#DEFAULT_EMAIL_FROM#',
'EMAIL_TO' => '#EMAIL_TO#',
'BCC' => '#BCC#',
'SUBJECT' => $messages[$eventName.'_SUBJECT'],
'MESSAGE' => $message,
'BODY_TYPE' => 'html',
));
}
}
}
}
}