38 WHERE FORUM_ID = '.intval($FID).($SOCNET_GROUP_ID>0?
' AND SOCNET_GROUP_ID = '.intval($SOCNET_GROUP_ID):
'').
'
39 ORDER BY EMAIL_GROUP '.(
$DB->type ==
'ORACLE'?
' NULLS LAST':
'');
41 $dbr =
$DB->Query($strSql);
48 $strSql =
'SELECT fe.*, f.MODERATION
49 FROM b_forum_email fe INNER JOIN b_forum f ON fe.FORUM_ID=f.ID
50 WHERE fe.MAIL_FILTER_ID = '.intval($MAIL_FILTER_ID);
51 $dbr =
$DB->Query($strSql);
74 $strSql =
"DELETE FROM b_forum_email WHERE ID=".$ID;
80 $GLOBALS[
"APPLICATION"]->ThrowException(
"Empty field MAIL_FILTER_ID",
"ERROR");
86 $GLOBALS[
"APPLICATION"]->ThrowException(
"Empty field EMAIL",
"ERROR");
90 $strUpdate =
$DB->PrepareUpdate(
"b_forum_email",
$arFields);
93 "UPDATE b_forum_email SET ".
101 if(intval(
$arFields[
"MAIL_FILTER_ID"])<=0)
103 $GLOBALS[
"APPLICATION"]->ThrowException(
"Empty field MAIL_FILTER_ID",
"ERROR");
109 $GLOBALS[
"APPLICATION"]->ThrowException(
"Empty field EMAIL",
"ERROR");
122 "ID" =>
"forumsocnet",
124 "ACTION_INTERFACE" =>
$_SERVER[
"DOCUMENT_ROOT"].
"/bitrix/modules/forum/mail/action.php",
126 "CONDITION_FUNC" => Array(
"CForumEMail",
"SocnetEMailMessageCheck"),
127 "ACTION_FUNC" => Array(
"CForumEMail",
"SocnetEMailMessageAdd")
138 static $parser =
null;
158 $arFieldsForSocnet =
array(
161 "EVENT_ID" =>
"forum",
162 "=LOG_DATE" => (!!$arMessageFields[
"DATE_CREATE"] ? $arMessageFields[
"DATE_CREATE"] :
$GLOBALS[
"DB"]->CurrentTimeFunction()),
163 "LOG_UPDATE" => (!!$arMessageFields[
"POST_DATE"] ? $arMessageFields[
"POST_DATE"] :
null),
164 "TITLE_TEMPLATE" => str_replace(
166 $arMessageFields[
"AUTHOR_NAME"],
167 CForumEmail::GetLangMessage(
"FORUM_MAIL_SOCNET_TITLE_TOPIC",
$arParams[
"LANG"])),
168 "TITLE" => $arMessageFields[
"TITLE"],
169 "MESSAGE" => $parser->convert($arMessageFields[
"POST_MESSAGE"], $arAllow),
170 "TEXT_MESSAGE" => $parser->convert4mail($arMessageFields[
"POST_MESSAGE"]),
171 "URL" => CComponentEngine::MakePathFromTemplate(
$arParams[
"URL_TEMPLATES_MESSAGE"],
173 "UID" => $arMessageFields[
"AUTHOR_ID"],
174 "FID" => $arMessageFields[
"FORUM_ID"],
175 "TID" => $arMessageFields[
"TOPIC_ID"],
176 "TITLE_SEO" => $arMessageFields[
"TOPIC_ID"],
177 "MID" => $arMessageFields[
"ID"]
180 "PARAMS" => serialize(
182 "PATH_TO_MESSAGE" => CComponentEngine::MakePathFromTemplate(
183 $arParams[
"URL_TEMPLATES_MESSAGE"],
array(
"TID" => $arMessageFields[
"TOPIC_ID"])))),
184 "MODULE_ID" =>
false,
185 "CALLBACK_FUNC" =>
false,
186 "SOURCE_ID" => $arMessageFields[
"ID"],
187 "RATING_TYPE_ID" =>
"FORUM_TOPIC",
188 "RATING_ENTITY_ID" => $arMessageFields[
"TOPIC_ID"]
191 if ($arMessageFields[
"AUTHOR_ID"] > 0)
192 $arFieldsForSocnet[
"USER_ID"] = $arMessageFields[
"AUTHOR_ID"];
197 $ufFileID[] =
$res[
"FILE_ID"];
198 $ufDocID =
$GLOBALS[
"USER_FIELD_MANAGER"]->GetUserFieldValue(
"FORUM_MESSAGE",
"UF_FORUM_MESSAGE_DOC", $arMessageFields[
"ID"], LANGUAGE_ID);
203 if (!empty($ufFileID))
204 $arFieldsForSocnet[
"UF_SONET_LOG_FILE"] = $ufFileID;
206 $arFieldsForSocnet[
"UF_SONET_LOG_DOC"] = $ufDocID;
210 if (intval($logID) > 0)
218 if ($logID > 0 &&
$action ==
"ADD_COMMENT")
220 if (!empty($ufFileID))
221 $arFieldsForSocnet[
"UF_SONET_COM_FILE"] = $ufFileID;
223 $arFieldsForSocnet[
"UF_SONET_COM_DOC"] = $ufDocID;
225 $arFieldsForSocnet[
"LOG_ID"] = $logID;
226 $arFieldsForSocnet[
"RATING_TYPE_ID"] =
"FORUM_POST";
227 $arFieldsForSocnet[
"RATING_ENTITY_ID"] = $arMessageFields[
"ID"];
238 $arEmails = CMailUtil::ExtractAllMailAddresses($arMessageFields[
"FIELD_TO"].
",".$arMessageFields[
"FIELD_CC"].
",".$arMessageFields[
"FIELD_BCC"]);
239 $dbMbx = CMailBox::GetById($arMessageFields[
"MAIL_FILTER"][
"MAILBOX_ID"]);
240 $arMbx = $dbMbx->Fetch();
244 if(
$arRes[
"EMAIL_FORUM_ACTIVE"]==
"Y")
252 if(
$arRes[
"SUBJECT_SUF"]!=
'' && mb_strpos($arMessageFields[
"SUBJECT"],
$arRes[
"SUBJECT_SUF"]) ===
false)
255 $arMessageFields[
"FORUM_EMAIL_FILTER"] =
$arRes;
265 if(!is_array($arMessageFields[
"FORUM_EMAIL_FILTER"]))
268 if(!CModule::IncludeModule(
"socialnetwork"))
271 $arParams = $arMessageFields[
"FORUM_EMAIL_FILTER"];
273 if(!CSocNetGroup::GetByID(
$arParams[
"SOCNET_GROUP_ID"]))
280 $message_email = ($arMessageFields[
"FIELD_REPLY_TO"] <>
'') ? $arMessageFields[
"FIELD_REPLY_TO"] : $arMessageFields[
"FIELD_FROM"];
283 $res = CUser::GetList(
"LAST_LOGIN",
"DESC", Array(
"ACTIVE" =>
"Y",
"EMAIL"=>$message_email_addr));
285 $AUTHOR_USER_ID = $arUser[
"ID"];
288 $AUTHOR_USER_ID =
false;
294 "MAILBOX_ID"=>$arMessageFields[
"MAILBOX_ID"],
295 "MESSAGE_ID"=>$arMessageFields[
"ID"],
296 "FILTER_ID"=>
$arParams[
"MAIL_FILTER_ID"],
297 "LOG_TYPE"=>
"FILTER_ERROR",
298 "MESSAGE"=>
GetMessage(
"FORUM_MAIL_ERROR1").
": ".$message_email_addr
318 "MAILBOX_ID"=>$arMessageFields[
"MAILBOX_ID"],
319 "MESSAGE_ID"=>$arMessageFields[
"ID"],
320 "FILTER_ID"=>
$arParams[
"MAIL_FILTER_ID"],
321 "LOG_TYPE"=>
"FILTER_ERROR",
322 "MESSAGE"=>
GetMessage(
"FORUM_MAIL_ERROR2").
" ".$arUser[
"LOGIN"].
" [".$AUTHOR_USER_ID.
"] (".$message_email_addr.
")"
330 $body = $arMessageFields[
"BODY"];
332 $p = mb_strpos($body,
"\r\nFrom:");
335 $body = mb_substr($body, 0,
$p).
"\r\n[CUT]".mb_substr($body,
$p).
"[/CUT]";
339 $subject = $arMessageFields[
"SUBJECT"];
340 if (!isset($subject))
345 $subject = trim(preg_replace(
'#^\s*((RE[0-9\[\]]*:\s*)|(FW:\s*))+(.*)$#i',
'\4', $subject));
347 $subject =
GetMessage(
"FORUM_MAIL_EMPTY_TOPIC_TITLE").
" ".rand();
351 $FORUM_ID = intval(
$arParams[
"FORUM_ID"]);
352 $SOCNET_GROUP_ID = intval(
$arParams[
"SOCNET_GROUP_ID"]);
355 if($arMessageFields[
"IN_REPLY_TO"]!=
'')
357 $dbTopic =
$DB->Query(
"SELECT FT.ID FROM b_forum_topic FT INNER JOIN b_forum_message FM ON FM.TOPIC_ID=FT.ID WHERE FM.XML_ID='".
$DB->ForSQL($arMessageFields[
"IN_REPLY_TO"], 255).
"' AND FT.FORUM_ID=".$FORUM_ID.
" AND FT.SOCNET_GROUP_ID=".$SOCNET_GROUP_ID);
358 if($arTopic = $dbTopic->Fetch())
359 $TOPIC_ID = $arTopic[
"ID"];
362 if(
$arParams[
"USE_SUBJECT"] ==
"Y" && $TOPIC_ID<=0)
364 $dbTopic =
$DB->Query(
"SELECT ID FROM b_forum_topic WHERE TITLE='".
$DB->ForSQL($subject, 255).
"' AND FORUM_ID=".$FORUM_ID.
" AND SOCNET_GROUP_ID=".$SOCNET_GROUP_ID);
365 if($arTopic = $dbTopic->Fetch())
366 $TOPIC_ID = $arTopic[
"ID"];
369 if($AUTHOR_USER_ID>0)
371 if($TOPIC_ID<0 && $PERMISSION <=
"I")
375 "MAILBOX_ID"=>$arMessageFields[
"MAILBOX_ID"],
376 "MESSAGE_ID"=>$arMessageFields[
"ID"],
377 "FILTER_ID"=>
$arParams[
"MAIL_FILTER_ID"],
378 "LOG_TYPE"=>
"FILTER_ERROR",
379 "MESSAGE"=>
GetMessage(
"FORUM_MAIL_ERROR3").
" ".$arUser[
"LOGIN"].
" [".$AUTHOR_USER_ID.
"] (".$message_email_addr.
")"
388 $bSHOW_NAME = (
$res[
"SHOW_NAME"]==
"Y");
391 $AUTHOR_NAME = $arUser[
"NAME"].($arUser[
"NAME"] ==
'' || $arUser[
"LAST_NAME"] ==
''?
"":
" ").$arUser[
"LAST_NAME"];
393 if (Trim($AUTHOR_NAME) ==
'')
394 $AUTHOR_NAME = $arUser[
"LOGIN"];
398 $AUTHOR_NAME = $arMessageFields[
"FIELD_FROM"];
399 $arFields[
"AUTHOR_EMAIL"] = $arMessageFields[
"FIELD_FROM"];
412 $arTopicFields = Array(
414 "FORUM_ID" => $FORUM_ID,
415 "USER_START_ID" => $AUTHOR_USER_ID,
416 "OWNER_ID" => $AUTHOR_USER_ID,
417 "SOCNET_GROUP_ID" => $SOCNET_GROUP_ID,
420 $arTopicFields[
"XML_ID"] = $arMessageFields[
"MSG_ID"];
421 $arTopicFields[
"APPROVED"] =
$arFields[
'APPROVED'];
423 $arTopicFields[
"USER_START_NAME"] = $AUTHOR_NAME;
424 $arTopicFields[
"LAST_POSTER_NAME"] = $AUTHOR_NAME;
427 if(intval($TOPIC_ID)<=0)
431 "MAILBOX_ID"=>$arMessageFields[
"MAILBOX_ID"],
432 "MESSAGE_ID"=>$arMessageFields[
"ID"],
433 "FILTER_ID"=>
$arParams[
"MAIL_FILTER_ID"],
434 "LOG_TYPE"=>
"FILTER_ERROR",
450 while ($arAttach = $rsAttach->Fetch())
452 if ($arAttach[
'FILE_ID'])
454 $filename = CTempFile::GetFileName(md5(uniqid(
"")).
".tmp");
456 if(file_put_contents(
$filename, $arAttach[
"FILE_DATA"]) !==
false)
459 "name" => $arAttach[
"FILE_NAME"],
460 "type" => $arAttach[
"CONTENT_TYPE"],
463 "MODULE_ID" =>
"forum",
474 $oError =
$GLOBALS[
"APPLICATION"]->GetException();
476 "MAILBOX_ID" => $arMessageFields[
"MAILBOX_ID"],
477 "MESSAGE_ID" => $arMessageFields[
"ID"],
478 "FILTER_ID" =>
$arParams[
"MAIL_FILTER_ID"],
479 "LOG_TYPE" =>
"FILTER_ERROR",
480 "MESSAGE" =>
GetMessage(
"FORUM_MAIL_ERROR6").
" (".$arAttach[
"FILE_NAME"].
"): ".($oError && $oError->GetString() ? $oError->GetString() :
""),
486 if(
count($arFILES)>0)
490 $arFields[
"AUTHOR_ID"] = $AUTHOR_USER_ID;
493 $arFields[
"XML_ID"] = $arMessageFields[
"MSG_ID"];
496 if (!empty($arMessageFields[
"FIELD_FROM"]))
497 $arRes[] =
"From: ".$arMessageFields[
"FIELD_FROM"];
498 if (!empty($arMessageFields[
"FIELD_TO"]))
499 $arRes[] =
"To: ".$arMessageFields[
"FIELD_TO"];
500 if (!empty($arMessageFields[
"FIELD_CC"]))
501 $arRes[] =
"Cc: ".$arMessageFields[
"FIELD_CC"];
502 if (!empty($arMessageFields[
"FIELD_BCC"]))
503 $arRes[] =
"Bcc: ".$arMessageFields[
"FIELD_BCC"];
504 $arRes[] =
"Subject: ".$arMessageFields[
"SUBJECT"];
505 $arRes[] =
"Date: ".$arMessageFields[
"FIELD_DATE"];
509 preg_match_all(
'#Received:\s+from\s+(.*)by.*#i', $arMessageFields[
"HEADER"], $regs);
510 if(is_array($regs) && is_array($regs[1]))
535 if (intval($MESSAGE_ID)<=0)
546 "MAILBOX_ID"=>$arMessageFields[
"MAILBOX_ID"],
547 "MESSAGE_ID"=>$arMessageFields[
"ID"],
548 "FILTER_ID"=>
$arParams[
"MAIL_FILTER_ID"],
549 "LOG_TYPE"=>
"FILTER_ERROR",
559 "MAILBOX_ID"=>$arMessageFields[
"MAILBOX_ID"],
560 "MESSAGE_ID"=>$arMessageFields[
"ID"],
561 "FILTER_ID"=>
$arParams[
"MAIL_FILTER_ID"],
562 "LOG_TYPE"=>
"FILTER_COMPLETE",
563 "MESSAGE"=>
GetMessage(
"FORUM_MAIL_OK").
" ".$MESSAGE_ID.
" (TID#".$TOPIC_ID.
")"
569 $dbSite = CSite::GetById($arMessageFields[
"LID"]);
570 if($arSite = $dbSite->Fetch())
571 $lang = $arSite[
'LANGUAGE_ID'];
573 $lang = $LANGUAGE_ID;
576 "ENTITY_ID" => $SOCNET_GROUP_ID,
577 "URL_TEMPLATES_MESSAGE" =>
$arParams[
"URL_TEMPLATES_MESSAGE"],
581 $arMessageFields =
array(
582 "FORUM_ID" => $FORUM_ID,
583 "TOPIC_ID" => $TOPIC_ID,
585 "AUTHOR_NAME" => $AUTHOR_NAME,
586 "AUTHOR_ID" => $AUTHOR_USER_ID,
588 "POST_MESSAGE" => $body,
601 array(
"ID" =>
"ASC"),
602 array(
"TOPIC_ID" => $TOPIC_ID)
604 if ($arForumMessage = $dbForumMessage->Fetch())
607 array(
"ID" =>
"DESC"),
609 "EVENT_ID" =>
"forum",
610 "SOURCE_ID" => $arForumMessage[
"ID"]
614 array(
"ID",
"TMP_ID")
617 $log_id =
$arRes[
"TMP_ID"];
621 array(
"ID" =>
"ASC"),
622 array(
"TOPIC_ID" => $arForumMessage[
"TOPIC_ID"]),
626 if ($arFirstMessage = $dbFirstMessage->Fetch())
629 $arFirstMessage[
"POST_MESSAGE"] = (COption::GetOptionString(
"forum",
"FILTER",
"Y") ==
"Y" ? $arFirstMessage[
"POST_MESSAGE_FILTER"] : $arFirstMessage[
"POST_MESSAGE"]);
630 $arFirstMessage[
"TITLE"] = $arTopic[
"TITLE"];
637 if (intval($log_id) > 0)
654 if(file_exists(
$_SERVER[
'DOCUMENT_ROOT'].
'/bitrix/modules/forum/lang/'.
$lang.
'/mail/mail.php'))
655 include(
$_SERVER[
'DOCUMENT_ROOT'].
'/bitrix/modules/forum/lang/'.
$lang.
'/mail/mail.php');
658 include(
$_SERVER[
'DOCUMENT_ROOT'].
'/bitrix/modules/forum/lang/en/mail/mail.php');
static SendMailMessage($MID, $arFields=array(), $strLang=false, $mailTemplate=false)
static GetByID($ID, $arAddParams=array())
static GetByUSER_ID($USER_ID)
static ExtractMailAddress($email)
static SendEvent( $ID, $mailTemplate="SONET_NEW_EVENT", $tmpId=0, $bAgent=false)
static CounterIncrement( $entityId, $eventId='', $entitiesList=false, $type=CSocNetLogCounter::TYPE_LOG_ENTRY, $forAllAccess=false, $userIdToPushList=[])
static SocnetEMailMessageCheck(&$arMessageFields, $ACTION_VARS)
static SocnetEMailMessageAdd($arMessageFields, $ACTION_VARS)
static GetMailFilters($MAIL_FILTER_ID)
static GetLangMessage($ID, $lang)
static GetForumFilters($FID, $SOCNET_GROUP_ID=false)
static SocnetPrepareVars()
static SocnetLogMessageAdd($arParams, $arMessageFields, $action="")
static OnGetSocNetFilterList()
static GetList($arOrder=Array("ID"=>"ASC"), $arFilter=Array(), $iNum=0, $arAddParams=array())
static GetList($arOrder=Array("ID"=>"ASC"), $arFilter=Array(), $bCount=false, $iNum=0, $arAddParams=array())
static Add($arFields, $strUploadDir=false, $arParams=array())
static getContents($attachment)
static GetList($arOrder=Array(), $arFilter=Array())
static AddMessage($arFields)
static Add($arFields, $bSendEvent=true)
static GetList($arOrder=Array("ID"=> "DESC"), $arFilter=Array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array(), $arParams=array())
static Update($ID, $arFields)
static SetForSonet($logID, $entity_type, $entity_id, $feature, $operation, $bNew=false)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
$_SERVER["DOCUMENT_ROOT"]
if(!defined('SITE_ID')) $lang
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
GetMessage($name, $aReplace=null)
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']
$GLOBALS['_____370096793']