本文整理汇总了PHP中CEvent::HandleEvent方法的典型用法代码示例。如果您正苦于以下问题:PHP CEvent::HandleEvent方法的具体用法?PHP CEvent::HandleEvent怎么用?PHP CEvent::HandleEvent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CEvent
的用法示例。
在下文中一共展示了CEvent::HandleEvent方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: SendImmediate
function SendImmediate($event, $lid, $arFields, $Duplicate = "Y", $message_id = "")
{
$flds = "";
if (is_array($arFields)) {
foreach ($arFields as $key => $value) {
if ($flds) {
$flds .= "&";
}
$flds .= CEvent::fieldencode($key) . "=" . CEvent::fieldencode($value);
}
}
$arLocalFields = array("EVENT_NAME" => $event, "C_FIELDS" => $flds, "LID" => is_array($lid) ? implode(",", $lid) : $lid, "DUPLICATE" => $Duplicate != "N" ? "Y" : "N", "MESSAGE_ID" => intval($message_id) > 0 ? intval($message_id) : "", "DATE_INSERT" => GetTime(time(), "FULL"), "ID" => "0");
return CEvent::HandleEvent($arLocalFields);
}
示例2: ExecuteEvents
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')");
}
示例3: SendImmediate
/**
* <p>Отправляет сообщение немедленно. В отличие от <a href="http://dev.1c-bitrix.ru/api_help/main/reference/cevent/send.php">CEvent::Send</a> не возвращает идентификатор созданного сообщения. При отправке сообщения данным методом запись в таблицу <b>b_event</b> не производится.</p>
*
*
*
*
* @param $even $t Идентификатор типа почтового события.
*
*
*
* @param $li $d Идентификатор сайта, либо массив идентификаторов сайта.
*
*
*
* @param $arField $s Массив полей типа почтового события идентификатор которого
* задается в параметре <i>event_type</i>. Массив имеет следующий формат:
* array("поле"=>"значение" [, ...]).
*
*
*
* @param $Duplicat $e = "Y" Отправить ли копию письма на адрес указанный в настройках
* главного модуля в поле "<b>E-Mail адрес или список адресов через
* запятую на который будут дублироваться все исходящие
* сообщения</b>". <br> Необязательный. По умолчанию "Y".
*
*
*
* @param $message_i $d = "" Идентификатор почтового шаблона по которому будет отправлено
* письмо. <br> Если данный параметр не задан, либо равен "", то письма
* будут отправлены по всем шаблонам привязанным к типу почтового
* события, идентификатор которого задается в параметре <i>event_type</i>, а
* также привязанных к сайту(ам) идентификатор которого указан в
* параметре <i>site</i>. <br> Необязательный. По умолчанию - "".
*
*
*
* @return mixed
*
*
* <h4>Example</h4>
* <pre>
* <br><br>
* </pre>
*
*
*
* <h4>See Also</h4>
* <a name="examples"></a>
*
*
* @static
* @link http://dev.1c-bitrix.ru/api_help/main/reference/cevent/sendimmediate.php
* @author Bitrix
*/
public static function SendImmediate($event, $lid, $arFields, $Duplicate = "Y", $message_id = "")
{
foreach (GetModuleEvents("main", "OnBeforeEventAdd", true) as $arEvent) {
if (ExecuteModuleEventEx($arEvent, array(&$event, &$lid, &$arFields, &$message_id)) === false) {
return false;
}
}
$flds = "";
if (is_array($arFields)) {
foreach ($arFields as $key => $value) {
if ($flds) {
$flds .= "&";
}
$flds .= CEvent::fieldencode($key) . "=" . CEvent::fieldencode($value);
}
}
$arLocalFields = array("EVENT_NAME" => $event, "C_FIELDS" => $flds, "LID" => is_array($lid) ? implode(",", $lid) : $lid, "DUPLICATE" => $Duplicate != "N" ? "Y" : "N", "MESSAGE_ID" => intval($message_id) > 0 ? intval($message_id) : "", "DATE_INSERT" => GetTime(time(), "FULL"), "ID" => "0");
return CEvent::HandleEvent($arLocalFields);
}