示例#1
0
 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;
     }
 }
示例#2
0
 /**
  * @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;
 }
示例#3
0
 /**
  * @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;
 }
示例#4
0
             for ($j = 0; $j < $valCount; $j++) {
                 if (strlen(trim(${$name}[$j])) > 0) {
                     $val .= ($val != "" ? "," : "") . trim(${$name}[$j]);
                 }
             }
         } 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 {