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