/** * {@inheritdoc} */ protected function execute(InputInterface $input, OutputInterface $output) { @set_time_limit(0); @ignore_user_abort(true); define('CHK_EVENT', true); $agentManager = new \CAgent(); $agentManager->CheckAgents(); define('BX_CRONTAB_SUPPORT', true); define('BX_CRONTAB', true); $eventManager = new \CEvent(); $eventManager->CheckEvents(); }
function _OnUserAdd(&$arFields, &$userID) { $GLOBALS["cntUsersImport"]++; unset($arFields["GROUP_ID"]); $arFields["ID"] = $arFields["USER_ID"] = $userID; $arFields["URL_LOGIN"] = urlencode($arFields["LOGIN"]); if (isset($arFields["EXTERNAL_AUTH_ID"]) && strlen($arFields["EXTERNAL_AUTH_ID"]) > 0 && strlen($GLOBALS["eventLdapLangID"]) > 0) { $arFields["BACK_URL"] = "/"; $event = new CEvent(); $event->Send("LDAP_USER_CONFIRM", $GLOBALS["eventLdapLangID"], $arFields); } elseif ($GLOBALS["sendEmail"] == "Y" && $arFields["EMAIL"] != $GLOBALS["defaultUserEmail"] && strlen($GLOBALS["eventLangID"]) > 0) { $event = new CEvent(); $event->Send("USER_INVITE", $GLOBALS["eventLangID"], $arFields); } }
function registerUser($userInfo) { $errors = array(); $result = ''; if (empty($userInfo['name'])) { $errors[] = 'Вы не ввели имя'; } if (empty($userInfo['email'])) { $errors[] = 'Вы не ввели email'; } if (empty($userInfo['phone'])) { $errors[] = 'Вы не ввели телефон'; } if (empty($errors)) { $user = new CUser(); $password = make_password(8); $arFields = array("NAME" => $userInfo['name'], "EMAIL" => $userInfo['email'], "LOGIN" => $userInfo['email'], "ACTIVE" => "Y", "GROUP_ID" => array(6), "PASSWORD" => $password, "CONFIRM_PASSWORD" => $password, "PERSONAL_PHONE" => $userInfo['phone']); $ID = $user->Add($arFields); if (intval($ID) > 0) { $result = "Вы успешно зарегистрированы."; $arEventField = array("NAME" => $userInfo['name'], "EMAIL" => $userInfo['email'], "PASSWORD" => $password); CEvent::SendImmediate("NEW_REG", "s1", $arEventField); unset($_POST['user']); global $USER; global $APPLICATION; $USER->Authorize($ID); LocalRedirect($APPLICATION->GetCurPageParam('', array('user[name]', 'user[email]', 'ELEMENT_CODE', 'code'))); } else { $errors[] = $user->LAST_ERROR; } } return $errors; }
public function __construct($sender, $model, $objectParameter, $status = ViewController::ENTITY_STATUS_AVAILABLE) { parent::__construct($sender); $this->model = $model; $this->objectParameter = $objectParameter; $this->status = $status; }
public function __construct($sender, $idObject, $where, $params = array()) { parent::__construct($sender); $this->idObject = $idObject; $this->where = $where; $this->params = $params; }
public function __construct($sender, $model, $objectParameter) { parent::__construct($sender); $this->visualElement = null; $this->model = $model; $this->objectParameter = $objectParameter; }
function Delivery(&$arFields){ CModule::IncludeModule("iblock"); $arSelect = Array("ID","PROPERTY_iblock","PROPERTY_send","NAME"); $arFilter = Array("IBLOCK_ID"=>38, "ACTIVE"=>"Y"); $res = CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize"=>50), $arSelect); while($ob = $res->GetNextElement()) { $arFields1 = $ob->GetFields(); $delivery[$arFields1["PROPERTY_IBLOCK_VALUE"]]=$arFields1; $id_ac[]=$arFields1["PROPERTY_IBLOCK_VALUE"]; } if (in_array($arFields['IBLOCK_ID'],$id_ac)) { $arSelect = Array("ID","PROPERTY_email","NAME"); $arFilter = Array("IBLOCK_ID"=>34, "ACTIVE"=>"Y","PROPERTY_delivery"=>$arFields['IBLOCK_ID']); $res = CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize"=>50000), $arSelect); while($ob = $res->GetNextElement()) { $arFields1 = $ob->GetFields(); $receivers[]=$arFields1; } foreach ($receivers as $receiver){ $arEventFields = array( "ID" => $arFields["ID"], "EMAIL_TO" => $receiver["PROPERTY_EMAIL_VALUE"], "TITLE" => $arFields["NAME"], ); $ev_id[]=CEvent::Send('DELIVERY', 's1', $arEventFields,"N",$delivery[$arFields['IBLOCK_ID']]["PROPERTY_SEND_VALUE"]); } } }
function sendOnAfterResultStatusChange($WEB_FORM_ID, $RESULT_ID, $NEW_STATUS_ID = false, $CHECK_RIGHTS = 'Y') { $NEW_STATUS_ID = intval($NEW_STATUS_ID); $dbRes = CForm::GetByID($WEB_FORM_ID); if (!($arForm = $dbRes->Fetch())) { return; } CTimeZone::Disable(); $dbRes = CFormResult::GetByID($RESULT_ID); CTimeZone::Enable(); if (!($arResult = $dbRes->Fetch()) || !$arResult['USER_ID']) { return; } $dbRes = CUser::GetByID($arResult['USER_ID']); if (!($arUser = $dbRes->Fetch())) { return; } if (!$NEW_STATUS_ID) { $NEW_STATUS_ID = CFormStatus::GetDefault($WEB_FORM_ID); } $dbRes = CFormStatus::GetByID($NEW_STATUS_ID); if (!($arStatus = $dbRes->Fetch()) || strlen($arStatus['MAIL_EVENT_TYPE']) <= 0) { return; } $arTemplates = CFormStatus::GetMailTemplateArray($NEW_STATUS_ID); if (!is_array($arTemplates) || count($arTemplates) <= 0) { return; } $arEventFields = array("EMAIL_TO" => $arUser['EMAIL'], "RS_FORM_ID" => $arForm["ID"], "RS_FORM_NAME" => $arForm["NAME"], "RS_FORM_VARNAME" => $arForm["SID"], "RS_FORM_SID" => $arForm["SID"], "RS_RESULT_ID" => $arResult["ID"], "RS_DATE_CREATE" => $arResult["DATE_CREATE"], "RS_USER_ID" => $arResult['USER_ID'], "RS_USER_EMAIL" => $arUser['EMAIL'], "RS_USER_NAME" => $arUser["NAME"] . " " . $arUser["LAST_NAME"], "RS_STATUS_ID" => $arStatus["ID"], "RS_STATUS_NAME" => $arStatus["TITLE"]); $dbRes = CEventMessage::GetList($by = "id", $order = "asc", array('ID' => implode('|', $arTemplates), "ACTIVE" => "Y", "EVENT_NAME" => $arStatus["MAIL_EVENT_TYPE"])); while ($arTemplate = $dbRes->Fetch()) { CEvent::Send($arTemplate["EVENT_NAME"], $arTemplate["SITE_ID"], $arEventFields, "Y", $arTemplate["ID"]); } }
/** * Sub-function to collect events within a period * @param Date the starting date of the period * @param Date the ending date of the period * @param array by-ref an array of links to append new items to * @param int the length to truncate entries by * @author Andrew Eddie <*****@*****.**> */ function getEventLinks($startPeriod, $endPeriod, &$links, $strMaxLen) { global $AppUI, $event_filter; $events = CEvent::getEventsForPeriod($startPeriod, $endPeriod, $event_filter); // assemble the links for the events foreach ($events as $row) { $start = new CDate($row['event_start_date']); $end = new CDate($row['event_end_date']); $date = $start; $date->setTime(0, 0, 0); $cwd = explode(',', $GLOBALS['dPconfig']['cal_working_days']); for ($i = 0, $x = $end->dateDiff($start); $i <= $x; $i++) { // the link // optionally do not show events on non-working days if ($row['event_cwd'] && in_array($date->getDayOfWeek(), $cwd) || !$row['event_cwd']) { $link['href'] = '?m=calendar&a=view&event_id=' . $row['event_id']; $link['alt'] = $row['event_description']; $link['text'] = dPshowImage(dPfindImage('event' . $row['event_type'] . '.png', 'calendar'), 16, 16) . htmlspecialchars($row['event_title']); if ($i == 0) { $link['alt'] .= ' [' . $AppUI->_('START') . ']'; } if ($i == $x) { $link['alt'] .= ' [' . $AppUI->_('END') . ']'; } $links[$date->format(FMT_TIMESTAMP_DATE)][] = $link; } $date = $date->getNextDay(); } } }
public function Send() { if(!$this->IsAvailable()) return false; $arNotification = $this->Notify->getNotification(); //No need to send about updates; if($arNotification["ACTION"] == "UPDATE") return 0; $arEmailSubscribe = array(); $arAllSubscribe = $this->GetList(array(), array("ID" => array(self::SUBSCRIBE_ALL, self::SUBSCRIBE_IDEA_COMMENT.$arNotification["POST_ID"])), false, false, array("USER_ID", "USER_EMAIL")); while($r = $arAllSubscribe->Fetch()) if(check_email($r["USER_EMAIL"])) $arEmailSubscribe[$r["USER_ID"]] = $r["USER_EMAIL"]; foreach($arEmailSubscribe as $UserId => $Email) { //Avoid to send notification to author if($UserId == $arNotification["AUTHOR_ID"]) continue; $arNotification["EMIAL_TO"] = $Email; //ADD_IDEA_COMMENT, ADD_IDEA CEvent::Send($arNotification["ACTION"].'_'.$arNotification["TYPE"], SITE_ID, $arNotification); } return count($arEmailSubscribe)>0; }
/** * Constructor * @param mixed|null $sender sender of the event * @param mixed|null $onAction * @param $blbImage * @param $objProduct * @param int $intSequence */ public function __construct($sender, $onAction, $blbImage, $objProduct, $intSequence = 0) { $this->onAction = $onAction; $this->blbImage = $blbImage; $this->objProduct = $objProduct; $this->intSequence = $intSequence; parent::__construct($sender); }
/** * Constructor. * @param mixed $sender sender of the event * @param string $code error code * @param string $message error message * @param string $file error file * @param integer $line error line */ public function __construct($sender, $code, $message, $file, $line) { $this->code = $code; $this->message = $message; $this->file = $file; $this->line = $line; parent::__construct($sender); }
public function __construct($sender, $message, $type, $sticked, $time) { parent::__construct($sender); $this->message = $message; $this->type = $type; $this->sticked = $sticked; $this->time = $time; }
function my_OnAfterIBlockElementAdd(&$arFields) { $elem = CIBlockElement::GetList(array(), array("IBLOCK_ID" => 12, "ID" => $arFields["ID"]), false, false, array("NAME", "PROPERTY_email", "PROPERTY_phone", "PROPERTY_message")); while ($elem_info = $elem->Fetch()) { $mailFields = array("EMAIL_TO" => "*****@*****.**", "AUTHOR" => $elem_info["NAME"], "AUTHOR_EMAIL" => $elem_info["PROPERTY_EMAIL_VALUE"], "AUTHOR_PHONE" => $elem_info["PROPERTY_PHONE_VALUE"], "TEXT" => $elem_info["PROPERTY_MESSAGE_VALUE"]); } CEvent::Send("FEEDBACK_FORM", "s1", $mailFields, "N"); //получим сообщение }
function CheckEvents() { if((defined("DisableEventsCheck") && DisableEventsCheck===true) || (defined("FX_CRONTAB_SUPPORT") && FX_CRONTAB_SUPPORT===true && FX_CRONTAB!==true)) return; global $DB; return CEvent::ExecuteEvents(); }
/** * @param MailPackage $package * @param bool $duplicate * @return int */ public function send(MailPackage $package, $duplicate = false) { $rsSites = \CSite::GetList($by = "sort", $order = "desc", array()); $siteIds = array(); while ($arSite = $rsSites->Fetch()) { $siteIds[] = $arSite['ID']; } return \CEvent::Send($package->getEventName(), $siteIds, $package->getFields(), $duplicate ? 'Y' : 'N', $package->getMessageId()); }
protected function json_request() { if($_REQUEST["json_request_callback_form"] && $_REQUEST["json_request_callback_form"] == "Y"){ global $APPLICATION; $APPLICATION->restartBuffer(); $this->arResult = array(); $this->arResult["error"] = array(); if(!empty($_REQUEST["form"])){ foreach($_REQUEST["form"] as $val){ $this->arResult["form"][$val["name"]]=$val["value"]; if(($val["name"] == "USER_NAME" && strlen($val["value"]) < 2) || ($val["name"] == "USER_PHONE" && strlen($val["value"] < 6))){ $this->arResult["error"][] = array( "name" => $val["name"], "message" => GetMessage("ERROR_".$val["name"]) ); }else{ $this->arResult["field"][$val["name"]] = $val["value"]; } } } if(count($this->arResult["error"]) == 0){ CEvent::Send("SB_CALLBACK_FORM",SITE_ID,$this->arResult["form"]); \Bitrix\Main\Loader::includeModule("softbalance.callback"); $data = array( "CREATED" => new \Bitrix\Main\Type\DateTime(), "NAME" => $this->arResult["field"]["USER_NAME"], "STATUS" => "new", "PHONE" => $this->arResult["field"]["USER_PHONE"], "USER_COMMENT"=> $this->arResult["field"]["USER_COMMENT"], "ADMIN_COMMENT" => "", "SITE_ID" => SITE_ID ); $result = \Softbalance\Callback\CallbackTable::add($data); if($result){ $this->arResult["complete"]=true; $this->arResult["ok"]=GetMessage("ok"); } } echo json_encode($this->arResult); die(); } }
public function execute(Form $form) { $sendData = $form->getData(); if ($this->fieldsUppercase) { $submitArray = array_change_key_case($sendData, CASE_UPPER); } $result = \CEvent::Send($this->emailEvent, SITE_ID, $submitArray); if (!$result && $this->isCritical) { throw new \Exception('CEvent::Send false'); } elseif (!$result && !$this->isCritical) { $form->setErrors(array($this->getErrorMessage('ошибка отправки почты (CEvent::Send)'))); } }
/** * После окончания записи передачи уведомление пользователю * * @param array $arParams * @return boolean */ public static function afterRecord($arParams) { if (!empty($arParams["USER_EMAIL"])) { $arEventFields = array("RECORD_ID" => $arParams["RECORD_ID"], "RECORD_TITLE" => $arParams["RECORD_NAME"], "EMAIL" => $arParams["USER_EMAIL"], "USER_ID" => $arParams["USER_ID"], "USER_NAME" => $arParams["USER_NAME"], "URL" => $arParams["URL"], "PICTURE" => $arParams["PICTURE"]); if (CEvent::Send("RECORD_AFTER", array(SITE_ID), $arEventFields)) { return true; } else { return false; } } else { return true; } }
/** * Created by JetBrains PhpStorm. * User: professor * Date: 28.10.12 * Time: 15:45 * To change this template use File | Settings | File Templates. */ function send() { die; require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php"; CModule::IncludeModule("iblock"); $ob = CIBlockElement::GetList(array("SORT" => "ASC"), array("!PROPERTY_EMAIL_MANAGER" => fale, "IBLOCK_ID" => IB_CLUB_ID), FALSE, FALSE, array("ID", "NAME", "PROPERTY_EMAIL_MANAGER")); while ($row = $ob->Fetch()) { if (trim($row['PROPERTY_EMAIL_MANAGER_VALUE'] != "")) { $arEventFields = array("EMAIL" => $row['PROPERTY_EMAIL_MANAGER_VALUE']); CEvent::Send("RASSYLKA", "s1", $arEventFields); } } return true; }
function fieldencode($s) { if (is_array($s)) { $ret_val = ''; foreach ($s as $v) { $ret_val .= ($ret_val != '' ? ', ' : '') . CEvent::fieldencode($v); } } else { $ret_val = str_replace("%", "%2", $s); $ret_val = str_replace("&", "%1", $ret_val); $ret_val = str_replace("=", "%3", $ret_val); } return $ret_val; }
/** * Billing by all users at 3-30 */ public static function dailyAllUsers() { global $DB; $table = \Hawkart\Megatv\SubscribeTable::getTableName(); $time_update = "03:30:00"; $datetime = new \Bitrix\Main\Type\Datetime(date("Y-m-d " . $time_update), 'Y-m-d H:i:s'); $datetime_next_date = new \Bitrix\Main\Type\Datetime(date('Y-m-d' . $time_update, strtotime('+1 day')), 'Y-m-d H:i:s'); $datetime_from_db = date("d.m.Y " . $time_update); $datetime_to_db = date("d.m.Y " . $time_update, strtotime('+1 day')); /** * Get all users */ $arUsers = array(); $arFilter = array("ACTIVE" => "Y"); $rsUsers = \CUser::GetList($by = "LAST_NAME", $order = "asc", $arFilter); while ($arUser = $rsUsers->GetNext()) { $arUsers[$arUser["ID"]] = $arUser; } /** * Get all priced subscribe for all users */ $arSubscribeUsers = array(); $result = \Hawkart\Megatv\SubscribeTable::getList(array('filter' => array("UF_ACTIVE" => 1, ">UF_CHANNEL_ID" => 0, ">UF_CHANNEL.UF_PRICE_H24" => 0, "<=UF_DATETIME_TO" => $datetime), 'select' => array("ID", "PRICE" => "UF_CHANNEL.UF_PRICE_H24", "UF_USER_ID"))); while ($arSub = $result->fetch()) { $arSubscribeUsers[$arSub["UF_USER_ID"]][] = array("ID" => $arSub["ID"], "PRICE" => $arSub["PRICE"]); } $result = \Hawkart\Megatv\SubscribeTable::getList(array('filter' => array("UF_ACTIVE" => 1, ">UF_SERVICE_ID" => 0, ">UF_SERVICE.UF_PRICE" => 0), 'select' => array("ID", "PRICE" => "UF_SERVICE.UF_PRICE", "UF_USER_ID"))); while ($arSub = $result->fetch()) { $arSubscribeUsers[$arSub["UF_USER_ID"]][] = array("ID" => $arSub["ID"], "PRICE" => $arSub["PRICE"]); } /** * Make transaction for 1 day for all users */ foreach ($arSubscribeUsers as $user_id => $arSubscribes) { $daily_price = 0; foreach ($arSubscribes as $arSubscribe) { $daily_price += $arSubscribe["PRICE"]; } $balance = \CUserEx::getBudget($user_id); if ($balance > 0 && $daily_price > 0) { \CSaleAccountEx::transaction(-1 * $daily_price, $user_id, "Оплата услуг за " . date('d.m.Y')); $strSql = "UPDATE " . $table . " SET UF_DATETIME_TO=curdate() + INTERVAL 1 DAY + INTERVAL 3 HOUR + INTERVAL 30 MINUTE WHERE UF_USER_ID=" . $user_id; $res = $DB->Query($strSql, false, $err_mess . __LINE__); //Send email to user to add money to budget for 3 days if ($balance < $daily_price * 2) { \CEvent::SendImmediate("NOTIFICATION_PAY_AFTER_DAYS", SITE_ID, array("EMAIL_TO" => $arUsers[$user_id]["EMAIL"], "PRICE" => $daily_price * 5)); } } } }
function addOrder($data) { if ($data['product'] > 0 and strlen(trim($data['name'])) > 0 and (strlen(trim($data['phone'])) > 0 or strlen(trim($data['email'])) > 0)) { /** * save form */ $arFields = array('IBLOCK_ID' => (int) $GLOBALS['AQW_ORDER']['IBLOCK_ID'], 'NAME' => GetMessage("AQW_SHOP_NOVYY_ZAKAZ_OT") . date("d.m.Y H:i:s"), 'PROPERTY_VALUES' => array('PRODUCT' => $data['product'], 'COLOR' => $data['color'], 'SIZE' => $data['size'], 'NAME' => $data['name'], 'PHONE' => $data['phone'], 'EMAIL' => $data['email'], 'ORDER_URL' => getenv("REQUEST_URI"))); $iBlock = new CIBlockElement(); $ORDER_ID = $iBlock->Add($arFields); /** * send email */ $arEventFields = array("IBLOCK_TYPE" => $GLOBALS['AQW_ORDER']['IBLOCK_TYPE'], "IBLOCK_ID" => (int) $GLOBALS['AQW_ORDER']['IBLOCK_ID'], "ORDER_ID" => $ORDER_ID, "PRODUCT" => $data['product'], "COLOR" => $data['color'], "SIZE" => $data['size'], "NAME" => $data['name'], "PHONE" => $data['phone'], "EMAIL" => $data['email'], "ORDER_URL" => getenv("REQUEST_URI")); CEvent::Send("NEW_ORDER", SITE_ID, $arEventFields); } }
function ExecuteEvents() { $err_mess = "<br>Class: CEvent<br>File: " . __FILE__ . "<br>Function: CheckEvents<br>Line: "; global $DB, $CACHE_MANAGER; if (defined("BX_FORK_AGENTS_AND_EVENTS_FUNCTION")) { if (CMain::ForkActions(array("CEvent", "ExecuteEvents"))) { return ""; } } $uniq = COption::GetOptionString("main", "server_uniq_id", ""); if (strlen($uniq) <= 0) { $uniq = md5(uniqid(rand(), true)); COption::SetOptionString("main", "server_uniq_id", $uniq); } $bulk = intval(COption::GetOptionString("main", "mail_event_bulk", 5)); if ($bulk <= 0) { $bulk = 5; } $strSql = "SELECT 'x' " . "FROM b_event " . "WHERE SUCCESS_EXEC='N' " . "LIMIT 1"; $db_result_event = $DB->Query($strSql); if ($db_result_event->Fetch()) { $db_lock = $DB->Query("SELECT GET_LOCK('" . $uniq . "_event', 0) as L"); $ar_lock = $db_lock->Fetch(); if ($ar_lock["L"] == "0") { return ""; } } else { if (CACHED_b_event !== false) { $CACHE_MANAGER->Set("events", true); } return ""; } $strSql = "\n\t\t\tSELECT ID, C_FIELDS, EVENT_NAME, MESSAGE_ID, LID, DATE_FORMAT(DATE_INSERT, '%d.%m.%Y %H:%i:%s') as DATE_INSERT, DUPLICATE\n\t\t\tFROM b_event\n\t\t\tWHERE SUCCESS_EXEC='N'\n\t\t\tORDER BY ID\n\t\t\tLIMIT " . $bulk; $rsMails = $DB->Query($strSql); while ($arMail = $rsMails->Fetch()) { $flag = CEvent::HandleEvent($arMail); /* '0' - нет шаблонов (не нужно было ничего отправл¤ть) 'Y' - все отправлены 'F' - все не смогли быть отправлены 'P' - частично отправлены */ $strSql = "\n\t\t\t\tUPDATE b_event SET\n\t\t\t\t\tDATE_EXEC = now(),\n\t\t\t\t\tSUCCESS_EXEC = '{$flag}'\n\t\t\t\tWHERE\n\t\t\t\t\tID = " . $arMail["ID"]; $DB->Query($strSql, false, $err_mess . __LINE__); } $DB->Query("SELECT RELEASE_LOCK('" . $uniq . "_event')"); }
/** * @param string $emailFrom * @param string $emailUser * @param string $text * @param string $title * @return int */ public static function sendMessOnEmail($emailFrom, $emailUser, $title, $text = "") { $nameMessageTemplate = "NEW_NOTICE"; switch ($title) { case "NEW_ANSWER": $titleMessage = "Новый ответ"; $textMessage = "На Ваш вопрос поступил новый ответ"; break; default: $titleMessage = "Приятные пожелания"; $textMessage = "Удачного Вам сегодня Дня!!!"; break; } $arEventFields = array("FROM_EMAIL" => $emailFrom, "EMAIL" => $emailUser, "TITLE" => $titleMessage, "TEXT" => $textMessage); $idTemplateMessage = 70; $result = CEvent::Send($nameMessageTemplate, "s1", $arEventFields, $idTemplateMessage); return $result; }
/** * Sub-function to collect events within a period * @param Date the starting date of the period * @param Date the ending date of the period * @param array by-ref an array of links to append new items to * @param int the length to truncate entries by * @author Andrew Eddie <*****@*****.**> */ function getEventLinks($startPeriod, $endPeriod, &$links, $strMaxLen) { global $event_filter; $events = CEvent::getEventsForPeriod($startPeriod, $endPeriod, $event_filter); // assemble the links for the events foreach ($events as $row) { $start = new CDate($row['event_start_date']); $end = new CDate($row['event_end_date']); $date = $start; $cwd = explode(",", $GLOBALS["dPconfig"]['cal_working_days']); for ($i = 0; $i <= $start->dateDiff($end); $i++) { // the link // optionally do not show events on non-working days if ($row['event_cwd'] && in_array($date->getDayOfWeek(), $cwd) || !$row['event_cwd']) { $url = '?m=calendar&a=view&event_id=' . $row['event_id']; $link['href'] = ''; $link['alt'] = $row['event_description']; $link['text'] = '<table cellspacing="0" cellpadding="0" border="0"><tr>' . '<td><a href=' . $url . '>' . dPshowImage(dPfindImage('event' . $row['event_type'] . '.png', 'calendar'), 16, 16, '') . '</a></td>' . '<td><a href="' . $url . '" title="' . $row['event_description'] . '"><span class="event">' . $row['event_title'] . '</span></a>' . '</td></tr></table>'; $links[$date->format(FMT_TIMESTAMP_DATE)][] = $link; } $date = $date->getNextDay(); } } }
// check tasks access $result = array(); foreach ($tasks as $key => $row) { $obj->load($row['task_id']); $canAccess = $obj->canAccess(); if (!$canAccess) { continue; } $result[$key] = $row; } // execute and return return $result; } } // assemble the links for the events $events = CEvent::getEventsForPeriod($first_time, $last_time, $event_filter, $user_id); $events2 = array(); $tasks = CTask_ex::getAllTasksForPeriod($first_time, $last_time, $company_id); $start_hour = w2PgetConfig('cal_day_start'); $end_hour = w2PgetConfig('cal_day_end'); foreach ($events as $row) { $start = new w2p_Utilities_Date($row['event_start_date']); $end = new w2p_Utilities_Date($row['event_end_date']); $events2[$start->format('%H%M%S')][] = $row; if ($start_hour > $start->format('%H')) { $start_hour = $start->format('%H'); } if ($end_hour < $end->format('%H')) { $end_hour = $end->format('%H'); } }
public static function SendEvent($ID, $mailTemplate = "SONET_NEW_EVENT", $tmp_id = false, $bAgent = false, $bTransport = false) { $ID = IntVal($ID); if ($ID <= 0) return false; if (intval($tmp_id) > 0) $arFilter = array("ID" => $tmp_id); else $arFilter = array("ID" => $ID); $dbLog = CSocNetLog::GetList( array(), $arFilter, false, false, array("ID", "ENTITY_TYPE", "ENTITY_ID", "USER_ID", "USER_NAME", "USER_LAST_NAME", "USER_SECOND_NAME", "USER_LOGIN", "EVENT_ID", "LOG_DATE", "TITLE_TEMPLATE", "TITLE", "MESSAGE", "TEXT_MESSAGE", "URL", "MODULE_ID", "CALLBACK_FUNC", "SITE_ID", "PARAMS", "SOURCE_ID", "GROUP_NAME", "CREATED_BY_NAME", "CREATED_BY_SECOND_NAME", "CREATED_BY_LAST_NAME", "CREATED_BY_LOGIN", "LOG_SOURCE_ID"), array("MIN_ID_JOIN" => true) ); $arLog = $dbLog->Fetch(); if (!$arLog) return $bAgent; if (MakeTimeStamp($arLog["LOG_DATE"]) > (time() + CTimeZone::GetOffset())) { $agent = "CSocNetLog::SendEventAgent(".$ID.", '".$mailTemplate."', ".($tmp_id ? $tmp_id : 'false').");"; $rsAgents = CAgent::GetList(array("ID"=>"DESC"), array("NAME" => $agent)); if(!$rsAgents->Fetch()) { $res = CAgent::AddAgent($agent, "socialnetwork", "N", 0, $arLog["LOG_DATE"], "Y", $arLog["LOG_DATE"]); if(!$res) $GLOBALS["APPLICATION"]->ResetException(); } elseif ($bAgent) { CAgent::RemoveAgent($agent, "socialnetwork"); CAgent::AddAgent($agent, "socialnetwork", "N", 0, $arLog["LOG_DATE"], "Y", $arLog["LOG_DATE"]); return true; } return false; } $arEvent = CSocNetLogTools::FindLogEventByID($arLog["EVENT_ID"], $arLog["ENTITY_TYPE"]); if ( $arEvent && array_key_exists("CLASS_FORMAT", $arEvent) && array_key_exists("METHOD_FORMAT", $arEvent) ) { $dbSiteCurrent = CSite::GetByID(SITE_ID); if ($arSiteCurrent = $dbSiteCurrent->Fetch()) if ($arSiteCurrent["LANGUAGE_ID"] != LANGUAGE_ID) $arLog["MAIL_LANGUAGE_ID"] = $arSiteCurrent["LANGUAGE_ID"]; $arLog["FIELDS_FORMATTED"] = call_user_func(array($arEvent["CLASS_FORMAT"], $arEvent["METHOD_FORMAT"]), $arLog, array(), true); } if ( array_key_exists($arLog["ENTITY_TYPE"], $GLOBALS["arSocNetAllowedSubscribeEntityTypesDesc"]) && array_key_exists("HAS_MY", $GLOBALS["arSocNetAllowedSubscribeEntityTypesDesc"][$arLog["ENTITY_TYPE"]]) && $GLOBALS["arSocNetAllowedSubscribeEntityTypesDesc"][$arLog["ENTITY_TYPE"]]["HAS_MY"] == "Y" && array_key_exists("CLASS_OF", $GLOBALS["arSocNetAllowedSubscribeEntityTypesDesc"][$arLog["ENTITY_TYPE"]]) && array_key_exists("METHOD_OF", $GLOBALS["arSocNetAllowedSubscribeEntityTypesDesc"][$arLog["ENTITY_TYPE"]]) && strlen($GLOBALS["arSocNetAllowedSubscribeEntityTypesDesc"][$arLog["ENTITY_TYPE"]]["CLASS_OF"]) > 0 && strlen($GLOBALS["arSocNetAllowedSubscribeEntityTypesDesc"][$arLog["ENTITY_TYPE"]]["METHOD_OF"]) > 0 && method_exists($GLOBALS["arSocNetAllowedSubscribeEntityTypesDesc"][$arLog["ENTITY_TYPE"]]["CLASS_OF"], $GLOBALS["arSocNetAllowedSubscribeEntityTypesDesc"][$arLog["ENTITY_TYPE"]]["METHOD_OF"]) ) $arOfEntities = call_user_func(array($GLOBALS["arSocNetAllowedSubscribeEntityTypesDesc"][$arLog["ENTITY_TYPE"]]["CLASS_OF"], $GLOBALS["arSocNetAllowedSubscribeEntityTypesDesc"][$arLog["ENTITY_TYPE"]]["METHOD_OF"]), $arLog["ENTITY_ID"]); if ($bTransport) { $arListParams = array( "USE_SUBSCRIBE" => "Y", "ENTITY_TYPE" => $arLog["ENTITY_TYPE"], "ENTITY_ID" => $arLog["ENTITY_ID"], "EVENT_ID" => $arLog["EVENT_ID"], "USER_ID" => $arLog["USER_ID"], "OF_ENTITIES" => $arOfEntities, "TRANSPORT" => array("M", "X") ); $arLogSites = array(); $rsLogSite = CSocNetLog::GetSite($ID); while($arLogSite = $rsLogSite->Fetch()) $arLogSites[] = $arLogSite["LID"]; if (CModule::IncludeModule("extranet")) { $arSites = array(); $dbSite = CSite::GetList($by="sort", $order="desc", array("ACTIVE" => "Y")); while($arSite = $dbSite->Fetch()) $arSites[$arSite["ID"]] = array( "DIR" => (strlen(trim($arSite["DIR"])) > 0 ? $arSite["DIR"] : "/"), "SERVER_NAME" => (strlen(trim($arSite["SERVER_NAME"])) > 0 ? $arSite["SERVER_NAME"] : COption::GetOptionString("main", "server_name", $_SERVER["HTTP_HOST"])) ); $extranet_site_id = CExtranet::GetExtranetSiteID(); $intranet_site_id = CSite::GetDefSite(); $arIntranetUsers = CExtranet::GetIntranetUsers(); } $dbSubscribers = CSocNetLogEvents::GetList( array("TRANSPORT" => "DESC"), array( "USER_ACTIVE" => "Y", "SITE_ID" => array_merge($arLogSites, array(false)) ), false, false, array("USER_ID", "SITE_ID", "ENTITY_TYPE", "ENTITY_ID", "ENTITY_CB", "ENTITY_MY", "USER_NAME", "USER_LAST_NAME", "USER_LOGIN", "USER_LID", "USER_EMAIL", "TRANSPORT"), $arListParams ); $arListParams = array( "USE_SUBSCRIBE" => "Y", "ENTITY_TYPE" => $arLog["ENTITY_TYPE"], "ENTITY_ID" => $arLog["ENTITY_ID"], "EVENT_ID" => $arLog["EVENT_ID"], "USER_ID" => $arLog["USER_ID"], "OF_ENTITIES" => $arOfEntities, "TRANSPORT" => "N" ); $dbUnSubscribers = CSocNetLogEvents::GetList( array("TRANSPORT" => "DESC"), array( "USER_ACTIVE" => "Y", "SITE_ID" => array_merge($arLogSites, array(false)) ), false, false, array("USER_ID", "SITE_ID", "ENTITY_TYPE", "ENTITY_ID", "ENTITY_CB", "ENTITY_MY", "TRANSPORT", "EVENT_ID"), $arListParams ); $arUnSubscribers = array(); while ($arUnSubscriber = $dbUnSubscribers->Fetch()) $arUnSubscribers[] = $arUnSubscriber["USER_ID"]."_".$arUnSubscriber["ENTITY_TYPE"]."_".$arUnSubscriber["ENTITY_ID"]."_".$arUnSubscriber["ENTITY_MY"]."_".$arUnSubscriber["ENTITY_CB"]."_".$arUnSubscriber["EVENT_ID"]; $bHasAccessAll = CSocNetLogRights::CheckForUserAll($arLog["ID"]); $arSentUserID = array("M" => array(), "X" => array()); while ($arSubscriber = $dbSubscribers->Fetch()) { if ( is_array($arIntranetUsers) && !in_array($arSubscriber["USER_ID"], $arIntranetUsers) && !in_array($extranet_site_id, $arLogSites) ) continue; if ( array_key_exists($arSubscriber["TRANSPORT"], $arSentUserID) && in_array($arSubscriber["USER_ID"], $arSentUserID[$arSubscriber["TRANSPORT"]]) ) continue; if ( intval($arSubscriber["ENTITY_ID"]) != 0 && $arSubscriber["EVENT_ID"] == "all" && ( in_array($arSubscriber["USER_ID"]."_".$arSubscriber["ENTITY_TYPE"]."_".$arSubscriber["ENTITY_ID"]."_N_".$arSubscriber["ENTITY_CB"]."_".$arLog["EVENT_ID"], $arUnSubscribers) || in_array($arSubscriber["USER_ID"]."_".$arSubscriber["ENTITY_TYPE"]."_".$arSubscriber["ENTITY_ID"]."_Y_".$arSubscriber["ENTITY_CB"]."_".$arLog["EVENT_ID"], $arUnSubscribers) ) ) continue; elseif ( intval($arSubscriber["ENTITY_ID"]) == 0 && $arSubscriber["ENTITY_CB"] == "N" && $arSubscriber["EVENT_ID"] != "all" && ( in_array($arSubscriber["USER_ID"]."_".$arSubscriber["ENTITY_TYPE"]."_".$arLog["ENTITY_ID"]."_Y_N_all", $arUnSubscribers) || in_array($arSubscriber["USER_ID"]."_".$arSubscriber["ENTITY_TYPE"]."_".$arLog["ENTITY_ID"]."_N_N_all", $arUnSubscribers) || in_array($arSubscriber["USER_ID"]."_".$arSubscriber["ENTITY_TYPE"]."_".$arLog["ENTITY_ID"]."_Y_N_".$arLog["EVENT_ID"], $arUnSubscribers) || in_array($arSubscriber["USER_ID"]."_".$arSubscriber["ENTITY_TYPE"]."_".$arLog["ENTITY_ID"]."_N_N_".$arLog["EVENT_ID"], $arUnSubscribers) ) ) continue; $arSentUserID[$arSubscriber["TRANSPORT"]][] = $arSubscriber["USER_ID"]; if (!$bHasAccessAll) { $bHasAccess = CSocNetLogRights::CheckForUserOnly($arLog["ID"], $arSubscriber["USER_ID"]); if (!$bHasAccess) continue; } if (CModule::IncludeModule("extranet")) { $server_name = $arSites[((!in_array($arSubscriber["USER_ID"], $arIntranetUsers) && $extranet_site_id) ? $extranet_site_id : $intranet_site_id)]["SERVER_NAME"]; $arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["URL_TO_SEND"] = str_replace( array("#SERVER_NAME#", "#GROUPS_PATH#"), array( $server_name, COption::GetOptionString("socialnetwork", "workgroups_page", false, ((!in_array($arSubscriber["USER_ID"], $arIntranetUsers) && $extranet_site_id) ? $extranet_site_id : $intranet_site_id)) ), $arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["URL"] ); $arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["MESSAGE_TO_SEND"] = str_replace( array("#SERVER_NAME#", "#GROUPS_PATH#"), array( $server_name, COption::GetOptionString("socialnetwork", "workgroups_page", false, ((!in_array($arSubscriber["USER_ID"], $arIntranetUsers) && $extranet_site_id) ? $extranet_site_id : $intranet_site_id)) ), $arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["MESSAGE"] ); } else $arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["MESSAGE_TO_SEND"] = $arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["MESSAGE"]; switch ($arSubscriber["TRANSPORT"]) { case "X": if ( array_key_exists("URL_TO_SEND", $arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]) && strlen($arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["URL_TO_SEND"]) > 0 ) $link = GetMessage("SONET_GL_SEND_EVENT_LINK").$arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["URL_TO_SEND"]; elseif ( array_key_exists("URL", $arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]) && strlen($arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["URL"]) > 0 ) $link = GetMessage("SONET_GL_SEND_EVENT_LINK").$arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["URL"]; else $link = ""; $arMessageFields = array( "FROM_USER_ID" => (intval($arLog["USER_ID"]) > 0 ? $arLog["USER_ID"] : 1), "TO_USER_ID" => $arSubscriber["USER_ID"], "MESSAGE" => $arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["TITLE"]." #BR#".$arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["MESSAGE_TO_SEND"].(strlen($link) > 0 ? "#BR# ".$link : ""), "=DATE_CREATE" => $GLOBALS["DB"]->CurrentTimeFunction(), "MESSAGE_TYPE" => SONET_MESSAGE_SYSTEM, "IS_LOG" => "Y" ); CSocNetMessages::Add($arMessageFields); break; case "M": $arFields["SUBSCRIBER_ID"] = $arSubscriber["USER_ID"]; $arFields["SUBSCRIBER_NAME"] = $arSubscriber["USER_NAME"]; $arFields["SUBSCRIBER_LAST_NAME"] = $arSubscriber["USER_LAST_NAME"]; $arFields["SUBSCRIBER_LOGIN"] = $arSubscriber["USER_LOGIN"]; $arFields["SUBSCRIBER_EMAIL"] = $arSubscriber["USER_EMAIL"]; $arFields["EMAIL_TO"] = $arSubscriber["USER_EMAIL"]; $arFields["TITLE"] = str_replace("#BR#", "\n", $arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["TITLE"]); $arFields["MESSAGE"] = str_replace("#BR#", "\n", $arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["MESSAGE_TO_SEND"]); $arFields["ENTITY"] = $arLog["FIELDS_FORMATTED"]["ENTITY"]["FORMATTED"]; $arFields["ENTITY_TYPE"] = $arLog["FIELDS_FORMATTED"]["ENTITY"]["TYPE_MAIL"]; if ( array_key_exists("URL_TO_SEND", $arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]) && strlen($arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["URL_TO_SEND"]) > 0 ) $arFields["URL"] = $arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["URL_TO_SEND"]; elseif ( array_key_exists("URL", $arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]) && strlen($arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["URL"]) > 0 ) $arFields["URL"] = $arLog["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["URL"]; else $arFields["URL"] = $arLog["URL"]; if (CModule::IncludeModule("extranet")) $arUserGroup = CUser::GetUserGroup($arSubscriber["USER_ID"]); foreach ($arLogSites as $site_id_tmp) { if (IsModuleInstalled("extranet")) { if ( ( CExtranet::IsExtranetSite($site_id_tmp) && in_array(CExtranet::GetExtranetUserGroupID(), $arUserGroup) ) || ( !CExtranet::IsExtranetSite($site_id_tmp) && !in_array(CExtranet::GetExtranetUserGroupID(), $arUserGroup) ) ) { $siteID = $site_id_tmp; break; } else continue; } else { $siteID = $site_id_tmp; break; } } if (!$siteID) $siteID = (defined("SITE_ID") ? SITE_ID : $arSubscriber["SITE_ID"]); if (StrLen($siteID) <= 0) $siteID = $arSubscriber["USER_LID"]; if (StrLen($siteID) <= 0) continue; $event = new CEvent; $event->Send($mailTemplate, $siteID, $arFields, "N"); break; default: } } } CSocNetLog::CounterIncrement($arLog["ID"], $arLog["EVENT_ID"], $arOfEntities); return true; }
function Update($ID, $arFields, $bDateUpdate = true) { global $DB, $USER_FIELD_MANAGER, $CACHE_MANAGER; $ID = IntVal($ID); $arFields1 = array(); foreach ($arFields as $key => $value) { if (substr($key, 0, 1) == "=") { $arFields1[substr($key, 1)] = $value; unset($arFields[$key]); } } if (!CSaleOrder::CheckFields("UPDATE", $arFields, $ID)) { return false; } foreach (GetModuleEvents("sale", "OnBeforeOrderUpdate", true) as $arEvent) { if (ExecuteModuleEventEx($arEvent, array($ID, &$arFields)) === false) { return false; } } $strUpdate = $DB->PrepareUpdate("b_sale_order", $arFields); foreach ($arFields1 as $key => $value) { if (strlen($strUpdate) > 0) { $strUpdate .= ", "; } $strUpdate .= $key . "=" . $value . " "; } //get old fields $arOrderOldFields = CSaleOrder::GetByID($ID); $strSql = "UPDATE b_sale_order SET " . "\t" . $strUpdate . " "; if ($bDateUpdate) { $strSql .= ",\tDATE_UPDATE = " . $DB->GetNowFunction() . " "; } $strSql .= "WHERE ID = " . $ID . " "; $res = $DB->Query($strSql, true, "File: " . __FILE__ . "<br>Line: " . __LINE__); if (!$res) { return false; } $USER_FIELD_MANAGER->Update("ORDER", $ID, $arFields); if ($res) { CSaleOrderChange::AddRecordsByFields($ID, $arOrderOldFields, $arFields); } unset($GLOBALS["SALE_ORDER"]["SALE_ORDER_CACHE_" . $ID]); foreach (GetModuleEvents("sale", "OnOrderUpdate", true) as $arEvent) { ExecuteModuleEventEx($arEvent, array($ID, $arFields)); } if (isset($arFields["TRACKING_NUMBER"])) { foreach (GetModuleEvents("sale", "OnTrackingNumberChange", true) as $arEvent) { ExecuteModuleEventEx($arEvent, array($ID, $arFields["TRACKING_NUMBER"])); } if (strlen($arFields["TRACKING_NUMBER"]) > 0 && $arOrderOldFields["TRACKING_NUMBER"] != $arFields["TRACKING_NUMBER"]) { $accountNumber = isset($arFields["ACCOUNT_NUMBER"]) ? $arFields["ACCOUNT_NUMBER"] : $arOrderOldFields["ACCOUNT_NUMBER"]; $userId = isset($arFields["USER_ID"]) ? $arFields["USER_ID"] : $arOrderOldFields["USER_ID"]; $payerName = ""; $payerEMail = ''; $dbUser = CUser::GetByID($userId); if ($arUser = $dbUser->Fetch()) { if (strlen($payerName) <= 0) { $payerName = $arUser["NAME"] . (strlen($arUser["NAME"]) <= 0 || strlen($arUser["LAST_NAME"]) <= 0 ? "" : " ") . $arUser["LAST_NAME"]; } if (strlen($payerEMail) <= 0) { $payerEMail = $arUser["EMAIL"]; } } $arEmailFields = array("ORDER_ID" => $accountNumber, "ORDER_DATE" => Date($DB->DateFormatToPHP(CLang::GetDateFormat("SHORT", $arOrderOldFields["LID"]))), "ORDER_USER" => $payerName, "ORDER_TRACKING_NUMBER" => $arFields["TRACKING_NUMBER"], "BCC" => COption::GetOptionString("sale", "order_email", "order@" . $SERVER_NAME), "EMAIL" => $payerEMail, "SALE_EMAIL" => COption::GetOptionString("sale", "order_email", "order@" . $SERVER_NAME)); $event = new CEvent(); $event->Send("SALE_ORDER_TRACKING_NUMBER", $arOrderOldFields["LID"], $arEmailFields, "N"); } } if (defined("CACHED_b_sale_order") && $bDateUpdate && $arFields["UPDATED_1C"] != "Y") { $CACHE_MANAGER->Read(CACHED_b_sale_order, "sale_orders"); $CACHE_MANAGER->SetImmediate("sale_orders", true); } return $ID; }
public static function notifyMailDomain($type, $sid, $user_id, $cnt = 0) { $user_id = intval($user_id); $cnt = intval($cnt); if (!CModule::includeModule('mail')) { return ''; } $arAdmin = CUser::getList($by, $order, array('ID' => $user_id, 'GROUPS_ID' => 1, 'ACTIVE' => 'Y'), array('FIELDS' => array('ID', 'EMAIL')))->fetch(); if (empty($arAdmin)) { return ''; } if ($cnt == 0) { return 'CIntranetUtils::notifyMailDomain("' . $type . '", "' . $sid . '", ' . $user_id . ', ' . ++$cnt . ');'; } includeModuleLangFile(__FILE__); if (isModuleInstalled('bitrix24')) { $learnmoreLink = getMessage('INTR_MAIL_DOMAIN_LEARNMOREB24_LINK'); $supportLink = getMessage('INTR_MAIL_DOMAIN_SUPPORTB24_LINK'); } else { $learnmoreLink = getMessage('INTR_MAIL_DOMAIN_LEARNMORE_LINK'); $supportLink = getMessage('INTR_MAIL_DOMAIN_SUPPORT_LINK'); } if (in_array($type, array('nocomplete', 'nomailbox'))) { $sid = intval($sid); $service = \Bitrix\Mail\MailServicesTable::getList(array('filter' => array('=ID' => $sid)))->fetch(); if (empty($service) || $service['ACTIVE'] != 'Y' || !in_array($service['SERVICE_TYPE'], array('domain', 'crdomain'))) { return ''; } if ($service['SERVICE_TYPE'] == 'domain') { $result = CMailDomain2::getDomainStatus($service['TOKEN'], $service['SERVER'], $error); $stage = empty($result['stage']) ? null : $result['stage']; } else { $crResponse = CControllerClient::executeEvent('OnMailControllerCheckMemberDomain', array('DOMAIN' => $service['SERVER'])); $stage = empty($crResponse['result']['stage']) ? null : $crResponse['result']['stage']; } if ($type == 'nocomplete') { if (in_array($stage, array('owner-check', 'mx-check'))) { CEvent::send('INTRANET_MAILDOMAIN_NOCOMPLETE', array($service['SITE_ID']), array('EMAIL_TO' => $arAdmin['EMAIL'], 'LEARNMORE_LINK' => $learnmoreLink, 'SUPPORT_LINK' => $supportLink)); if ($cnt == 1) { global $pPERIOD; $pPERIOD = 3600 * 24 * 4; return 'CIntranetUtils::notifyMailDomain("nocomplete", ' . $sid . ', ' . $user_id . ', ' . ++$cnt . ');'; } } } else { if ($stage == 'added') { $dbMailboxes = CMailbox::getList(array(), array('ACTIVE' => 'Y', '!USER_ID' => 0, 'SERVICE_ID' => $sid)); $adminMailbox = false; $userMailboxes = false; while ($arMailbox = $dbMailboxes->fetch()) { if ($arMailbox['USER_ID'] == $user_id) { $adminMailbox = true; } else { $userMailboxes = true; break; } } if (!$userMailboxes) { $eventType = $adminMailbox ? 'INTRANET_MAILDOMAIN_NOMAILBOX2' : 'INTRANET_MAILDOMAIN_NOMAILBOX'; CEvent::send($eventType, array($service['SITE_ID']), array('EMAIL_TO' => $arAdmin['EMAIL'], 'LEARNMORE_LINK' => $learnmoreLink, 'SUPPORT_LINK' => $supportLink)); if ($cnt == 1) { global $pPERIOD; $pPERIOD = 3600 * 24 * 21; return 'CIntranetUtils::notifyMailDomain("nomailbox", ' . $sid . ', ' . $user_id . ', ' . ++$cnt . ');'; } } } } } else { if ($type == 'noreg') { $dbServices = \Bitrix\Mail\MailServicesTable::getList(array('filter' => array('ACTIVE' => 'Y', 'SERVICE_TYPE' => 'crdomain'))); while ($service = $dbServices->fetch()) { if ($service['FLAGS'] & CMail::F_DOMAIN_REG) { return ''; } } $r = CEvent::send('INTRANET_MAILDOMAIN_NOREG', array($sid), array('EMAIL_TO' => $arAdmin['EMAIL'], 'LEARNMORE_LINK' => $learnmoreLink, 'SUPPORT_LINK' => $supportLink)); } } return ''; }