/** * Constructor. * * @param array $params * * @throws SkipHandlerException */ public function __construct($params) { $this->event = $params[0]; $eventParams = $this->event->getParameters(); $this->id = $eventParams['id']['ID']; $this->fields = HighloadBlockTable::getById($this->id)->fetch(); }
/** * Constructor. * * @param array $params * * @throws SkipHandlerException */ public function __construct($params) { $this->event = $params[0]; $eventParams = $this->event->getParameters(); $this->fields = $eventParams['fields']; $this->id = $eventParams['id']['ID']; if (!$this->fieldsHaveBeenChanged()) { throw new SkipHandlerException(); } }
/** * @param Entity\Event $event * @return Entity\EventResult * @throws \Bitrix\Main\ArgumentException */ public static function onDelete(Entity\Event $event) { $result = new Entity\EventResult(); $data = $event->getParameters(); $arId = array(); if (array_key_exists('ID', $data['primary'])) { $arId[] = $data['primary']['ID']; } else { $arFilter = array(); foreach ($data['primary'] as $primKey => $primVal) { $arFilter[$primKey] = $primVal; } $tableDataList = static::getList(array('select' => array('ID'), 'filter' => $arFilter)); while ($tableData = $tableDataList->fetch()) { $arId[] = $tableData['ID']; } } foreach ($arId as $primaryId) { $primary = array('POSTING_ID' => $primaryId); PostingReadTable::delete($primary); PostingClickTable::delete($primary); PostingUnsubTable::delete($primary); PostingRecipientTable::delete($primary); } return $result; }
/** * @param Entity\Event $event * @return Entity\EventResult */ public static function onAfterDelete(Entity\Event $event) { $result = new Entity\EventResult(); $data = $event->getParameters(); $primary = array('GROUP_ID' => $data['primary']['ID']); GroupConnectorTable::delete($primary); return $result; }
/** * @param Entity\Event $event * @return Entity\EventResult */ public static function onAfterDelete(Entity\Event $event) { $result = new Entity\EventResult(); $data = $event->getParameters(); $primary = array('MAILING_ID' => $data['primary']['ID']); MailingGroupTable::delete($primary); MailingChainTable::delete($primary); MailingSubscriptionTable::delete($primary); PostingTable::delete($primary); return $result; }
/** * @param Entity\Event $event * @return Entity\EventResult */ public static function onDelete(Entity\Event $event) { $result = new Entity\EventResult(); $data = $event->getParameters(); $itemDb = static::getByPrimary($data['primary']); while ($item = $itemDb->fetch()) { if (!is_array($item['ENDPOINT'])) { $item['ENDPOINT'] = null; } static::actualizeHandlers($item['MAILING_CHAIN_ID'], null, $item['ENDPOINT']); } return $result; }
/** * Handler of before delete event * @param Entity\Event $event * @return Entity\EventResult */ public static function onBeforeDelete(Entity\Event $event) { $result = new Entity\EventResult(); $data = $event->getParameters(); $chainListDb = MailingChainTable::getList(array('select' => array('ID', 'SUBJECT', 'MAILING_ID', 'MAILING_NAME' => 'MAILING.NAME'), '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 Entity\EntityError($message)); } return $result; }
/** * @param Entity\Event $event * @return Entity\EventResult */ public static function onDelete(Entity\Event $event) { $result = new Entity\EventResult(); $data = $event->getParameters(); $deleteIdList = array(); if (!empty($data['primary'])) { $itemDb = static::getList(array('select' => array('ID'), 'filter' => $data['primary'])); while ($item = $itemDb->fetch()) { $deleteIdList[] = $item['ID']; } } foreach ($deleteIdList as $chainId) { MailingAttachmentTable::delete(array('CHAIN_ID' => $chainId)); MailingTriggerTable::delete(array('MAILING_CHAIN_ID' => $chainId)); PostingTable::delete(array('MAILING_CHAIN_ID' => $chainId)); } return $result; }
/** * @param Entity\Event $event * @return Entity\EventResult */ public static function onAfterUpdate(Entity\Event $event) { $result = new Entity\EventResult(); $data = $event->getParameters(); if (array_key_exists('STATUS', $data['fields']) || array_key_exists('AUTO_SEND_TIME', $data['fields'])) { if (array_key_exists('STATUS', $data['fields']) && $data['fields']['STATUS'] == PostingTable::STATUS_NEW) { static::initPosting($data['primary']['ID']); } MailingManager::actualizeAgent(null, $data['primary']['ID']); } return $result; }
/** * Handler of after add event * * @param Entity\Event $event * @return Entity\EventResult */ public static function onAfterAdd(Entity\Event $event) { $result = new Entity\EventResult(); $data = $event->getParameters(); $data = $data['fields']; // update unsub flag of recipient PostingRecipientTable::update(array('ID' => $data['RECIPIENT_ID']), array('IS_UNSUB' => 'Y')); // update unsub counter of posting $resultDb = static::getList(array('filter' => array('RECIPIENT_ID' => $data['RECIPIENT_ID']))); if ($resultDb->getSelectedRowsCount() == 1) { PostingTable::update(array('ID' => $data['POSTING_ID']), array('COUNT_UNSUB' => new \Bitrix\Main\DB\SqlExpression('?# + 1', 'COUNT_UNSUB'))); } return $result; }
/** * @param Entity\Event $event * @return Entity\EventResult */ public static function onAfterDelete(Entity\Event $event) { $result = new Entity\EventResult(); $data = $event->getParameters(); $primary = array('LIST_ID' => $data['primary']['ID']); ContactListTable::delete($primary); return $result; }
/** * @param Entity\Event $event * @return Entity\EventResult */ public static function onBeforeAdd(Entity\Event $event) { $result = new Entity\EventResult(); $data = $event->getParameters(); if (array_key_exists('MESSAGE', $data['fields'])) { $data['fields']['MESSAGE_PHP'] = static::replaceTemplateToPhp($data['fields']['MESSAGE']); $result->modifyFields($data['fields']); } return $result; }