static function FormatEvent($arFields, $arParams, $bMail = false)
{
$user_url = ($arParams["PATH_TO_USER"] <> '' ? $arParams["PATH_TO_USER"] : COption::GetOptionString('intranet', 'path_user', '/company/personal/user/#USER_ID#/', $arFields["SITE_ID"]));
$dbReport = CTimeManReportFull::GetByID($arFields["SOURCE_ID"]);
$arReport = $dbReport->Fetch();
if (!$arReport)
{
return false;
}
$arManagers = CTimeMan::GetUserManagers($arReport["USER_ID"]);
$arManagers[] = $arReport["USER_ID"];
$arManagers = array_unique($arManagers);
$dbManagers = CUser::GetList('ID', 'ASC', array('ID' => implode('|', $arManagers)), array('SELECT' => array('ID', 'LOGIN', 'NAME', 'LAST_NAME', 'SECOND_NAME', 'WORK_POSITION', 'PERSONAL_PHOTO', 'PERSONAL_GENDER')));
$arCurrentUserManagers = array();
while ($manager = $dbManagers->GetNext())
{
$tmpUser = array(
'ID' => $manager['ID'],
'LOGIN' => $manager['LOGIN'],
'NAME' => CUser::FormatName(CSite::GetNameFormat(false), $manager, true, false),
'URL' => str_replace(array('#ID#', '#USER_ID#', '#id#', '#user_id#'), $manager['ID'], $user_url),
'WORK_POSITION' => $manager['WORK_POSITION'],
'PERSONAL_PHOTO' => $manager['PERSONAL_PHOTO'],
'SEX'=>$manager["PERSONAL_GENDER"]
);
if (intval($tmpUser["PERSONAL_PHOTO"]) <= 0)
{
switch($tmpUser["SEX"])
{
case "M":
$suffix = "male";
break;
case "F":
$suffix = "female";
break;
default:
$suffix = "unknown";
}
$tmpUser["PERSONAL_PHOTO"] = COption::GetOptionInt("socialnetwork", "default_user_picture_".$suffix, false, SITE_ID);
}
if ($manager['ID'] == $arReport["USER_ID"])
$arUser = $tmpUser;
if (($manager['ID'] != $arReport["USER_ID"]) || count($arManagers) == 1)
$arCurrentUserManagers[] = $tmpUser;
}
$arResult["EVENT"] = $arFields;
if(!$bMail)
{
if(defined("BX_COMP_MANAGED_CACHE"))
{
$GLOBALS["CACHE_MANAGER"]->RegisterTag("USER_NAME_".intval($arUser["ID"]));
$GLOBALS["CACHE_MANAGER"]->RegisterTag("USER_NAME_".intval($arCurrentUserManagers[0]["ID"]));
}
ob_start();
$GLOBALS['APPLICATION']->IncludeComponent(
'bitrix:timeman.livefeed.workreport',
(($arParams["MOBILE"] ?? '') == "Y" ? 'mobile' : ''),
[
"USER" => $arUser,
"MANAGER" => $arCurrentUserManagers[0],
"MARK" => $arReport["MARK"],
"REPORT_ID" => $arReport["ID"],
"PARAMS" => $arParams
],
null,
['HIDE_ICONS' => 'Y']
);
$html_message = ob_get_contents();
ob_end_clean();
$arResult["EVENT"] = $arFields;
if (($arParams["MOBILE"] ?? '') == "Y")
$arResult["EVENT_FORMATTED"] = Array(
"TITLE_24" => ($arFields["USER_ID"] == $arFields["ENTITY_ID"]
? GetMessage("REPORT_ADD_24".($arUser["SEX"] == "M" ? "_M" : ($arUser["SEX"] == "F" ? "_F" : "")))
: GetMessage("REPORT_CHANGE_24".($arCurrentUserManagers[0]["SEX"] == "M" ? "_M" : ($arCurrentUserManagers[0]["SEX"] == "F" ? "_F" : "")))
)." ".$arFields["TITLE"],
"MESSAGE" => htmlspecialcharsbx($html_message),
"IS_IMPORTANT" => false,
"DESCRIPTION" => (in_array($arReport["MARK"], array("G", "B")) ? array(GetMessage("REPORT_FULL_COMMENT_CONFIRM_MOBILE"), GetMessage("REPORT_FULL_COMMENT_CONFIRM_MOBILE_VALUE_".$arReport["MARK"])) : ($arReport["MARK"] == "N" ? GetMessage("REPORT_FULL_COMMENT_CONFIRM_WO_MARK") : "")),
"DESCRIPTION_STYLE" => (in_array($arReport["MARK"], array("G", "B")) ? ($arReport["MARK"] == "G" ? "green" : "red") : false)
);
else
{
$arResult["EVENT_FORMATTED"] = Array(
"TITLE" => ($arFields["USER_ID"] == $arFields["ENTITY_ID"]
? (($arUser["SEX"] == "F") ? GetMessage("REPORT_ADD_W") : GetMessage("REPORT_ADD"))
: (($arCurrentUserManagers[0]["SEX"] == "F") ? GetMessage("REPORT_CHANGE_W") : GetMessage("REPORT_CHANGE"))
)." ".$arFields["TITLE"]."",
"TITLE_24" => ($arFields["USER_ID"] == $arFields["ENTITY_ID"]
? GetMessage("REPORT_ADD_24".($arUser["SEX"] == "M" ? "_M" : ($arUser["SEX"] == "F" ? "_F" : "")))
: GetMessage("REPORT_CHANGE_24".($arCurrentUserManagers[0]["SEX"] == "M" ? "_M" : ($arCurrentUserManagers[0]["SEX"] == "F" ? "_F" : "")))
)." ".$arFields["TITLE"]."",
"URL" => "javascript:BX.StartSlider(".$arReport["USER_ID"].",".$arFields["SOURCE_ID"].");",
"MESSAGE"=>$html_message,
"SHORT_MESSAGE"=>$html_message,
"IS_IMPORTANT" => false,
"STYLE" => ($arReport["MARK"] == "G" ? "workday-confirm" : ($arReport["MARK"] == "B" ? "workday-rejected" : "workday-edit"))
);
if (($arParams["NEW_TEMPLATE"] ?? null) !== "Y")
{
$arResult["EVENT_FORMATTED"]["IS_MESSAGE_SHORT"] = CSocNetLogTools::FormatEvent_IsMessageShort(
$arFields['MESSAGE']
);
}
$arResult['ENTITY']['FORMATTED']["NAME"] = GetMessage('REPORT_TITLE');
$arResult['ENTITY']['FORMATTED']["URL"] = COption::GetOptionString("timeman","WORK_REPORT_PATH","/timeman/work_report.php");
}
$arResult['AVATAR_SRC'] = CSocNetLog::FormatEvent_CreateAvatar($arFields, $arParams, 'CREATED_BY');
$arFieldsTooltip = array(
'ID' => $arFields['USER_ID'],
'NAME' => $arFields['~CREATED_BY_NAME'],
'LAST_NAME' => $arFields['~CREATED_BY_LAST_NAME'],
'SECOND_NAME' => $arFields['~CREATED_BY_SECOND_NAME'],
'LOGIN' => $arFields['~CREATED_BY_LOGIN'],
);
$arResult['CREATED_BY']['TOOLTIP_FIELDS'] = CSocNetLogTools::FormatEvent_FillTooltip($arFieldsTooltip, $arParams);
}
else
{
$reportURL = COption::GetOptionString("timeman","WORK_REPORT_PATH","/timeman/work_report.php");
if ($reportURL == '')
$reportURL = "/timeman/work_report.php";
$reportURL = CSocNetLogTools::FormatEvent_GetURL(Array("URL"=>$reportURL,"SITE_ID"=>$arFields["SITE_ID"]));
$arResult["ENTITY"]["TYPE_MAIL"] = GetMessage("REPORT_TITLE_FOR_MAIL");
$arResult['EVENT_FORMATTED'] = Array(
"TITLE"=>$arUser["NAME"]." ".(($arUser["SEX"] == "F")?GetMessage("REPORT_ADD_W"):GetMessage("REPORT_ADD"))." ".GetMessage("REPORT_WORK_REPORT"),
"URL"=>$reportURL."#user_id=".$arReport["USER_ID"]."&report=".$arFields["SOURCE_ID"],
"MESSAGE"=> $arFields["TITLE"],
"IS_IMPORTANT"=> false
);
}
return $arResult;
}