• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/subscribe.php
  • Класс: BitrixCatalogSubscribeTable
  • Вызов: SubscribeTable::getSubscriptionsData
static function getSubscriptionsData()
{
	global $DB;

	$filter = array(
		'=NEED_SENDING' => 'Y',
		'!=PRODUCT.SUBSCRIBE' => 'N',
		array(
			'LOGIC' => 'OR',
			array('=DATE_TO' => false),
			array('>DATE_TO' => date($DB->dateFormatToPHP(CLang::getDateFormat('FULL')), time()))
		)
	);

	/* Compatibility with the sale subscribe option */
	$notifyOption = Option::get('sale', 'subscribe_prod');
	$notify = array();
	if($notifyOption <> '')
		$notify = unserialize($notifyOption, ['allowed_classes' => false]);
	if(is_array($notify))
	{
		$listSiteId = array();
		foreach($notify as $siteId => $data)
		{
			if($data['use'] != 'Y')
				$listSiteId[] = $siteId;
		}
		if($listSiteId)
			$filter['!=SITE_ID'] = $listSiteId;
	}

	$listSubscribe = static::getList(array(
		'select'=>array(
			'ID',
			'USER_CONTACT',
			'CONTACT_TYPE',
			'DATE_TO',
			'PRODUCT_NAME' => 'IBLOCK_ELEMENT.NAME',
			'DETAIL_PAGE_URL' => 'IBLOCK_ELEMENT.IBLOCK.DETAIL_PAGE_URL',
			'IBLOCK_ID' => 'IBLOCK_ELEMENT.IBLOCK_ID',
			'TYPE' => 'PRODUCT.TYPE',
			'ITEM_ID',
			'SITE_ID',
			'LANDING_SITE_ID',
			'USER_NAME' => 'USER.NAME',
			'USER_LAST_NAME' => 'USER.LAST_NAME',
		),
		'filter' => $filter,
		'limit' => static::LIMIT_SEND,
	))->fetchAll();

	$totalCount = static::getList(array(
		'select' => array('CNT'),
		'filter' => $filter,
		'runtime' => array(new EntityExpressionField('CNT', 'COUNT(*)'))
	))->fetch();

	return array($listSubscribe, $totalCount);
}