• Модуль: sender
  • Путь к файлу: ~/bitrix/modules/sender/lib/template.php
  • Класс: BitrixSenderTemplateTable
  • Вызов: TemplateTable::onBeforeDelete
static function onBeforeDelete(ORMEvent $event)
{
	$result = new ORMEventResult;
	$data = $event->getParameters();
	$chainListDb = MailingChainTable::getList(array(
		'select' => array('ID', 'SUBJECT', 'MAILING_ID', 'MAILING_NAME' => 'TITLE'),
		'filter' => array('TEMPLATE_TYPE' => 'USER', 'TEMPLATE_ID' => $data['primary']['ID']),
		'order' => array('MAILING_NAME' => 'ASC', 'ID')
	));

	if($chainListDb->getSelectedRowsCount() > 0)
	{
		$template = static::getRowById($data['primary']['ID']);
		$messageList = array();
		while($chain = $chainListDb->fetch())
		{
			$messageList[$chain['MAILING_NAME']] = '[' . $chain['ID'] . '] ' . htmlspecialcharsbx($chain['SUBJECT']) . "n";
		}

		$message = Loc::getMessage('SENDER_ENTITY_TEMPLATE_DELETE_ERROR_TEMPLATE', array('#NAME#' => $template['NAME'])) . "n";
		foreach($messageList as $mailingName => $messageItem)
		{
			$message .= Loc::getMessage('SENDER_ENTITY_TEMPLATE_DELETE_ERROR_MAILING', array('#NAME#' => $mailingName)) . "n" . $messageItem . "n";
		}

		$result->addError(new ORMEntityError($message));
	}

	if (!$result->getErrors())
	{
		BitrixSenderFileTable::syncFiles($data['primary']['ID'], 1, '');
	}
	return $result;
}