function InstallDB($arParams = array()) { global $DB, $DBType, $APPLICATION; $this->errors = false; // Database tables creation if (!$DB->Query("SELECT 'x' FROM b_sender_contact WHERE 1=0", true)) { $this->errors = $DB->RunSQLBatch($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/sender/install/db/" . $DBType . "/install.sql"); } if ($this->errors !== false) { $APPLICATION->ThrowException(implode("<br>", $this->errors)); return false; } else { RegisterModule("sender"); CModule::IncludeModule("sender"); // read and click notifications RegisterModuleDependences("main", "OnMailEventMailRead", "sender", "bitrix\\sender\\postingmanager", "onMailEventMailRead"); RegisterModuleDependences("main", "OnMailEventMailClick", "sender", "bitrix\\sender\\postingmanager", "onMailEventMailClick"); // unsubscription notifications RegisterModuleDependences("main", "OnMailEventSubscriptionDisable", "sender", "Bitrix\\Sender\\Subscription", "onMailEventSubscriptionDisable"); RegisterModuleDependences("main", "OnMailEventSubscriptionEnable", "sender", "Bitrix\\Sender\\Subscription", "onMailEventSubscriptionEnable"); RegisterModuleDependences("main", "OnMailEventSubscriptionList", "sender", "Bitrix\\Sender\\Subscription", "onMailEventSubscriptionList"); // connectors of module sender RegisterModuleDependences("sender", "OnConnectorList", "sender", "bitrix\\sender\\connectormanager", "onConnectorListContact"); RegisterModuleDependences("sender", "OnConnectorList", "sender", "bitrix\\sender\\connectormanager", "onConnectorListRecipient"); // mail templates and blocks RegisterModuleDependences("sender", "OnPresetTemplateList", "sender", "Bitrix\\Sender\\Preset\\TemplateBase", "onPresetTemplateList"); RegisterModuleDependences("sender", "OnPresetTemplateList", "sender", "Bitrix\\Sender\\TemplateTable", "onPresetTemplateList"); RegisterModuleDependences("sender", "OnPresetMailBlockList", "sender", "Bitrix\\Sender\\Preset\\MailBlockBase", "OnPresetMailBlockList"); CTimeZone::Disable(); \Bitrix\Sender\MailingManager::actualizeAgent(); CAgent::AddAgent(\Bitrix\Sender\MailingManager::getAgentNamePeriod(), "sender", "N", COption::GetOptionString("sender", "reiterate_interval")); CTimeZone::Enable(); return true; } }
/** * @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('ACTIVE', $data['fields'])) { MailingManager::actualizeAgent($data['primary']['ID']); } if (array_key_exists('ACTIVE', $data['fields']) || array_key_exists('TRIGGER_FIELDS', $data['fields'])) { static::updateChainTrigger($data['primary']['ID']); } if (!empty($data['fields']['EMAIL_FROM'])) { $chainListDb = MailingChainTable::getList(array('select' => array('ID'), 'filter' => array('=MAILING_ID' => $data['primary']['ID'], '=IS_TRIGGER' => 'Y', '=MAILING.IS_TRIGGER' => 'Y'))); while ($chain = $chainListDb->fetch()) { MailingChainTable::update(array('ID' => $chain['ID']), array('EMAIL_FROM' => $data['fields']['EMAIL_FROM'])); } } 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'] == static::STATUS_NEW) { static::initPosting($data['primary']['ID']); } MailingManager::actualizeAgent(null, $data['primary']['ID']); } if (isset($data['fields']['PARENT_ID'])) { TriggerManager::actualizeHandlerForChild(); } return $result; }
} } else { switch ($arMailingChain["STATUS"]) { case MailingChainTable::STATUS_NEW: $messageDetails = '<br><p>' . GetMessage("MAILING_ADM_SENDING_NOTE_LINE1") . '<br>' . GetMessage("MAILING_ADM_SENDING_NOTE_LINE2") . '</p>'; $message = array("MESSAGE" => GetMessage("MAILING_ADM_SENDING_SEND"), "BUTTONS" => array(array("ID" => "btn_stop", "VALUE" => GetMessage("MAILING_ADM_BTN_STOP"), "ONCLICK" => "Stop()"), array("ID" => "btn_cont", "VALUE" => GetMessage("MAILING_ADM_BTN_CONT"), "ONCLICK" => "Cont()"))); MailingChainTable::initPosting($mailingChainId); MailingChainTable::update($mailingChainPrimary, array('STATUS' => MailingChainTable::STATUS_SEND)); $actionJsList = true; $actionJsMoveProgress = true; break; case MailingChainTable::STATUS_SEND: \Bitrix\Main\Application::getInstance()->getConnection()->startTransaction(); \Bitrix\Sender\MailingManager::chainSend($mailingChainId); \Bitrix\Main\Application::getInstance()->getConnection()->commitTransaction(); $sendErrors = \Bitrix\Sender\MailingManager::getErrors(); if (empty($sendErrors)) { $messageDetails = '<br><p>' . GetMessage("MAILING_ADM_SENDING_NOTE_LINE1") . '<br>' . GetMessage("MAILING_ADM_SENDING_NOTE_LINE2") . '</p>'; $message = array("MESSAGE" => GetMessage("MAILING_ADM_SENDING_SEND"), "BUTTONS" => array(array("ID" => "btn_stop", "VALUE" => GetMessage("MAILING_ADM_BTN_STOP"), "ONCLICK" => "Stop()"), array("ID" => "btn_cont", "VALUE" => GetMessage("MAILING_ADM_BTN_CONT"), "ONCLICK" => "Cont()"))); $actionJsMoveProgress = true; } else { $message = $sendErrors->getMessage(); } break; case MailingChainTable::STATUS_PAUSE: $message = array("MESSAGE" => GetMessage("MAILING_ADM_SENDING_PAUSE"), "BUTTONS" => array(array("ID" => "btn_stop", "VALUE" => GetMessage("MAILING_ADM_BTN_STOP"), "ONCLICK" => "Stop()"), array("ID" => "btn_cont", "VALUE" => GetMessage("MAILING_ADM_BTN_CONT"), "ONCLICK" => "Cont()"))); $actionJs = 'list'; break; case MailingChainTable::STATUS_END: $message = array("MESSAGE" => GetMessage("MAILING_ADM_SENDING_RESULT_OK")); $actionJsList = true;
} } } else { $val = ${$name}; } if ($arOption[2][0] == "checkbox" && $val != "Y") { $val = "N"; } COption::SetOptionString($module_id, $name, $val); } } CModule::IncludeModule('sender'); \Bitrix\Sender\MailingManager::actualizeAgent(); CAgent::RemoveAgent(\Bitrix\Sender\MailingManager::getAgentNamePeriod(), "sender"); if (COption::GetOptionString("sender", "reiterate_method") !== "cron") { CAgent::AddAgent(\Bitrix\Sender\MailingManager::getAgentNamePeriod(), "sender", "N", COption::GetOptionString("sender", "reiterate_interval")); } $Update = $Update . $Apply; ob_start(); require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/admin/group_rights.php"; ob_end_clean(); if (strlen($_REQUEST["back_url_settings"]) > 0) { if (strlen($Apply) > 0 || strlen($RestoreDefaults) > 0) { LocalRedirect($APPLICATION->GetCurPage() . "?mid=" . urlencode($module_id) . "&lang=" . urlencode(LANGUAGE_ID) . "&back_url_settings=" . urlencode($_REQUEST["back_url_settings"]) . "&" . $tabControl->ActiveTabParam()); } else { LocalRedirect($_REQUEST["back_url_settings"]); } } else { LocalRedirect($APPLICATION->GetCurPage() . "?mid=" . urlencode($module_id) . "&lang=" . urlencode(LANGUAGE_ID) . "&" . $tabControl->ActiveTabParam()); } }
<?php $_SERVER["DOCUMENT_ROOT"] = realpath(dirname(__FILE__) . "/../../../.."); $DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"]; define("NO_KEEP_STATISTIC", true); define("NOT_CHECK_PERMISSIONS", true); define("BX_CRONTAB", true); define('BX_NO_ACCELERATOR_RESET', true); require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php"; @set_time_limit(0); @ignore_user_abort(true); CEvent::CheckEvents(); if (CModule::IncludeModule('sender')) { \Bitrix\Sender\MailingManager::checkPeriod(false); \Bitrix\Sender\MailingManager::checkSend(); } require $_SERVER['DOCUMENT_ROOT'] . "/bitrix/modules/main/tools/backup.php";