function Bytes_Decode($String, $Separator = '') { /****************************************************************************/ $__args_types = array('string'); #----------------------------------------------------------------------------- $__args__ = Func_Get_Args(); eval(FUNCTION_INIT); /****************************************************************************/ $Result = ''; #----------------------------------------------------------------------------- for ($i = 0; $i < StrLen($String); $i++) { $Result .= SPrintF('%02x', Ord($String[$i])) . $Separator; } #----------------------------------------------------------------------------- return $Result; }
public function Query() { $Length = StrLen($this->ServerIP); $Data = Pack('cccca*', HexDec($Length), 0, 0x4, $Length, $this->ServerIP) . Pack('nc', $this->ServerPort, 0x1); Socket_Send($this->Socket, $Data, StrLen($Data), 0); // handshake Socket_Send($this->Socket, "", 2, 0); // status ping $Length = $this->ReadVarInt(); // full packet length if ($Length < 10) { return FALSE; } Socket_Read($this->Socket, 1); // packet type, in server ping it's 0 $Length = $this->ReadVarInt(); // string length $Data = Socket_Read($this->Socket, $Length, PHP_NORMAL_READ); // and finally the json string if ($Data === FALSE) { throw new MinecraftPingException('Server didn\'t return any data'); } $Data = JSON_Decode($Data, true); if (JSON_Last_Error() !== JSON_ERROR_NONE) { if (Function_Exists('json_last_error_msg')) { throw new MinecraftPingException(JSON_Last_Error_Msg()); } else { throw new MinecraftPingException('JSON parsing failed'); } return FALSE; } return $Data; }
private function WriteData($Command, $String = "") { $Data = Pack('VV', $this->RequestId++, $Command) . $String . ""; $Data = Pack('V', StrLen($Data)) . $Data; $Length = StrLen($Data); return $Length === FWrite($this->Socket, $Data, $Length); }
/** * @param int $Length * @throws AuthenticationException */ public function Read($Length = 1400) { // GoldSource RCON has same structure as Query $this->Socket->Read(); if ($this->Buffer->GetByte() !== SourceQuery::S2A_RCON) { return false; } $Buffer = $this->Buffer->Get(); $Trimmed = Trim($Buffer); if ($Trimmed === 'Bad rcon_password.') { throw new AuthenticationException($Trimmed, AuthenticationException::BAD_PASSWORD); } else { if ($Trimmed === 'You have been banned from this server.') { throw new AuthenticationException($Trimmed, AuthenticationException::BANNED); } } $ReadMore = false; // There is no indentifier of the end, so we just need to continue reading // TODO: Needs to be looked again, it causes timeouts do { $this->Socket->Read(); $ReadMore = $this->Buffer->Remaining() > 0 && $this->Buffer->GetByte() === SourceQuery::S2A_RCON; if ($ReadMore) { $Packet = $this->Buffer->Get(); $Buffer .= SubStr($Packet, 0, -2); // Let's assume if this packet is not long enough, there are no more after this one $ReadMore = StrLen($Packet) > 1000; // use 1300? } } while ($ReadMore); $this->Buffer->Set(Trim($Buffer)); }
/** * @param int $idUserFrom * @param int $idUserTo * @param string $title * @param string $type * @param string $idQuestion * @param string $textMessage * @return int */ public static function sendMes($idUserFrom = 1, $idUserTo = 1, $title, $idQuestion, $textMessage = "", $type = "P") { $res = false; $senderUserID = $idUserFrom; $targetUserID = $idUserTo; $arFieldsMes = array("FROM_USER_ID" => $senderUserID, "TO_USER_ID" => $targetUserID, "TITLE" => $title, "MESSAGE" => $idQuestion, "DATE_CREATE" => date("d.m.Y H:i:s", time() - DIFFERENT_WITH_MOSCOW_TIME), "DATE_VIEW" => false, "MESSAGE_TYPE" => $type, "FROM_DELETED" => "N", "TO_DELETED" => "N", "SEND_MAIL" => "Y"); if (CModule::IncludeModule("socialnetwork")) { $res = CSocNetMessages::Add($arFieldsMes); if ($res) { if (CModule::IncludeModule("iblock")) { if (CModule::IncludeModule('payments')) { $userInfo = new CLawPayment(); $InfoUserFrom = $userInfo->userInfo($idUserFrom); $InfoUserTo = $userInfo->userInfo($idUserTo); $emailFrom = $InfoUserFrom["EMAIL"]; $emailUser = $InfoUserTo["EMAIL"]; SendMessage::sendMessOnEmail($emailFrom, $emailUser, $title, $textMessage); } } } else { $errorMessage = ""; if ($err = $GLOBALS["APPLICATION"]->GetException()) { $errorMessage = $err->GetString(); } if (StrLen($errorMessage) <= 0) { $errorMessage = GetMessage("SONET_UR_ERROR_CREATE_MESSAGE"); } $GLOBALS["APPLICATION"]->ThrowException($errorMessage, "ERROR_CREATE_MESSAGE"); } } return $res; }
function newai_list_one() { global $db, $common_html, $tablename_one, $tablename_two, $link; global $html_etc_one, $html_etc_two, $columns_one, $columns_two; global $tablename, $SYTEM_CONFIG_TABLE; global $SUNSHINE_USER_NAME_VAR, $SUNSHINE_USER_ID_VAR, $_SESSION; $USER_NAME = $_SESSION[$SUNSHINE_USER_NAME_VAR]; print "<SCRIPT language=JavaScript>\n\tfunction clickMenu(url){\n\tparent.main_body.location=url;\n\t}\n\t</SCRIPT>\n\t"; $one_array = explode(':', $tablename_one); //print_R($one_array); $link_array = explode(':', $link); //print_R($link_array); $columns = returntablecolumn($tablename); $columns_one = returntablecolumn($one_array[0]); $html_etc_one = returnsystemlang($one_array[0], $SYTEM_CONFIG_TABLE); switch ($db->databaseType) { case 'mysql': switch ($one_array[3]) { case 'name': $sql_one = "select " . $columns_one[(string) $one_array[1]] . "," . $columns_one[(string) $one_array[2]] . " from " . $one_array[0] . " where " . $columns_one[(string) $one_array[4]] . "='" . $USER_NAME . "'"; break; case 'id': $sql_one = "select " . $columns_one[(string) $one_array[1]] . "," . $columns_one[(string) $one_array[2]] . " from " . $one_array[0] . ""; break; default: $sql_one = "select " . $columns_one[(string) $one_array[1]] . "," . $columns_one[(string) $one_array[2]] . " from " . $one_array[0] . ""; break; } break; case 'mssql': switch ($one_array[3]) { case 'name': $sql_one = "select [" . $columns_one[(string) $one_array[1]] . "],[" . $columns_one[(string) $one_array[2]] . "] from [" . $one_array[0] . "] where [" . $columns_one[(string) $one_array[4]] . "]='" . $USER_NAME . "'"; break; case 'id': $sql_one = "select [" . $columns_one[(string) $one_array[1]] . "],[" . $columns_one[(string) $one_array[2]] . "] from [" . $one_array[0] . "]"; break; default: $sql_one = "select [" . $columns_one[(string) $one_array[1]] . "],[" . $columns_one[(string) $one_array[2]] . "] from [" . $one_array[0] . "]"; break; } break; } //print $sql_one; $rs_one = $db->CacheExecute(150, $sql_one); if ($rs_one->RecordCount() == 0) { print_infor($common_html['common_html']['norecord'], 'trip'); exit; } while (!$rs_one->EOF) { if (StrLen($link_array[3]) > 2) { $LinkIndexName = (string) $link_array[3]; } else { $LinkIndexName = $columns[(string) $link_array[3]]; } $url = $link_array[0] . "?" . $link_array[1] . "=" . $link_array[2] . "&" . $LinkIndexName . "=" . $rs_one->fields[(string) $columns_one[(string) $one_array[1]]]; print "\n\t<TABLE class=small cellSpacing=1 cellPadding=0 width='100%' align=center bgColor=#000000 border=0>\n\t<TBODY>\n\t<TR class=TableContent title='' style='CURSOR: hand'\t onclick=clickMenu('{$url}')>\n\t<TD noWrap align=middle><table class=small cellPadding=3 align=center width=100% border=0 onmouseover=bgColor='#ffffff' onmouseout=bgColor='#d3e5fa'>\n\t<Tr><td align=middle><B>" . $rs_one->fields[(string) $columns_one[(string) $one_array[2]]] . "</B></TD></TR>\n\t</table></TD></TR>\n\t</TBODY></TABLE>\n"; $rs_one->MoveNext(); } }
/** * @param int $Length * @throws AuthenticationException * @return bool */ public function Read($Length = 1400) { // GoldSource RCON has same structure as Query $Buffer = $this->Socket->Read(); $StringBuffer = ''; $ReadMore = false; // There is no indentifier of the end, so we just need to continue reading do { $ReadMore = $Buffer->Remaining() > 0; if ($ReadMore) { if ($Buffer->GetByte() !== SourceQuery::S2A_RCON) { throw new InvalidPacketException('Invalid rcon response.', InvalidPacketException::PACKET_HEADER_MISMATCH); } $Packet = $Buffer->Get(); $StringBuffer .= $Packet; //$StringBuffer .= SubStr( $Packet, 0, -2 ); // Let's assume if this packet is not long enough, there are no more after this one $ReadMore = StrLen($Packet) > 1000; // use 1300? if ($ReadMore) { $Buffer = $this->Socket->Read(); } } } while ($ReadMore); $Trimmed = trim($StringBuffer); if ($Trimmed === 'Bad rcon_password.') { throw new AuthenticationException($Trimmed, AuthenticationException::BAD_PASSWORD); } else { if ($Trimmed === 'You have been banned from this server.') { throw new AuthenticationException($Trimmed, AuthenticationException::BANNED); } } $Buffer->Set($Trimmed); return $Buffer; }
function CheckFields($ACTION, &$arFields, $ID = 0) { if ((is_set($arFields, "SITE_ID") || $ACTION == "ADD") && StrLen($arFields["SITE_ID"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SCGAT1_NO_SITE"), "EMPTY_SITE_ID"); return false; } if (is_set($arFields, "RATE1")) { $arFields["RATE1"] = str_replace(",", ".", $arFields["RATE1"]); $arFields["RATE1"] = DoubleVal($arFields["RATE1"]); } if (is_set($arFields, "RATE2")) { $arFields["RATE2"] = str_replace(",", ".", $arFields["RATE2"]); $arFields["RATE2"] = DoubleVal($arFields["RATE2"]); } if (is_set($arFields, "RATE3")) { $arFields["RATE3"] = str_replace(",", ".", $arFields["RATE3"]); $arFields["RATE3"] = DoubleVal($arFields["RATE3"]); } if (is_set($arFields, "RATE4")) { $arFields["RATE4"] = str_replace(",", ".", $arFields["RATE4"]); $arFields["RATE4"] = DoubleVal($arFields["RATE4"]); } if (is_set($arFields, "RATE5")) { $arFields["RATE5"] = str_replace(",", ".", $arFields["RATE5"]); $arFields["RATE5"] = DoubleVal($arFields["RATE5"]); } return True; }
function AutoloadClassDefined($className) { $className = Trim($className); if (StrLen($className) <= 0) { return False; } $className = strtolower($className); return array_key_exists($className, $GLOBALS["arBitrixModuleClasses"]); }
private function WriteData($Command, $String = "") { // Pack the packet together $Data = Pack('VV', $this->RequestId++, $Command) . $String . ""; // Prepend packet length $Data = Pack('V', StrLen($Data)) . $Data; $Length = StrLen($Data); return $Length === FWrite($this->Socket, $Data, $Length); }
public function Sherlock($Buffer, $Length) { $Data = FRead($this->Socket, $Length); if (StrLen($Data) < 4) { return false; } $Buffer->Set($Data); return $Buffer->GetLong() === -2; }
function SonetDebugTmp($var, $name = "") { $fff = fopen($_SERVER["DOCUMENT_ROOT"] . "/~test.tmp", "a"); if (is_array($var)) { fwrite($fff, (StrLen($name) > 0 ? $name . ":\n" : "") . print_r($var, true) . "\n\n"); } else { fwrite($fff, (StrLen($name) > 0 ? $name . "=" : "") . $var . "\n\n"); } fclose($fff); }
public function generate_pass($maxlength = 10) { $chars = "qazxswedcvfrtgbnhyujmkiolp1234567890QAZXSWEDCVFRTGBNHYUJMKIOLP"; $size = StrLen($chars) - 1; $pass = ''; while ($maxlength--) { $pass .= $chars[rand(0, $size)]; } return $pass; }
function _generated() { $chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!?@#$%&*[]{}();:,<>~+=-_/|\\'; // набор символов $max = 4; $size = StrLen($chars) - 1; $hash = null; while ($max--) { $hash .= $chars[rand(0, $size)]; } return $hash; }
/** * Генерация случайного пароля */ public function generatePassword($maxChars) { $chars = "qazxswedcvfrtgbnhyujmkiolp1234567890QAZXSWEDCVFRTGBNHYUJMKIOLP"; // Определяем количество символов в $chars $size = StrLen($chars) - 1; // Определяем пустую переменную, в которую и будем записывать символы. $password = null; // Создаём пароль. while ($maxChars--) { $password .= $chars[rand(0, $size)]; } return $password; }
function FLAP_Explode($String) { /****************************************************************************/ $__args_types = array('string'); #----------------------------------------------------------------------------- $__args__ = Func_Get_Args(); eval(FUNCTION_INIT); /****************************************************************************/ if (StrLen($String) < 6) { return FALSE; } #----------------------------------------------------------------------------- return array('Chanel' => Bytes_Get($String, 01), 'Number' => Bytes_Get($String, 02, 02), 'Data' => SubStr($String, 06)); }
function SaXoro($s, $key) { $n = 0; for ($f = 0; $f < strlen($s); $f++) { if ($s[$f] != $key[$n]) { $s[$f] = Chr(ord($s[$f]) ^ ord($key[$n])); } $n = $n + 1; if ($n >= StrLen($key)) { $n = 0; } } return $s; }
static function RequireAutoloadClass($className) { $className = Trim($className); if (StrLen($className) <= 0) return False; $className = strtolower($className); if (array_key_exists($className, $GLOBALS["arBitrixModuleClasses"])) { require_once($_SERVER["DOCUMENT_ROOT"].((StrLen($GLOBALS["arBitrixModuleClasses"][$className]["module"]) > 0) ? BX_ROOT."/modules/".$GLOBALS["arBitrixModuleClasses"][$className]["module"]."/" : "").$GLOBALS["arBitrixModuleClasses"][$className]["file"]); return True; } return False; }
function PassGen($max = 10) { // Символы, которые будут использоваться в пароле. $chars = "qazxswedcvfrtgbnhyujmkip23456789QAZXSWEDCVFRTGBNHYUJMKLP"; // Количество символов в пароле. // Определяем количество символов в $chars $size = StrLen($chars) - 1; // Определяем пустую переменную, в которую и будем записывать символы. $password = null; // Создаём пароль. while ($max--) { $password .= $chars[rand(0, $size)]; } // Выводим созданный пароль. return $password; }
function _generated() { // Символы, которые будут использоваться в хеше $chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!?@#$%&*[]{}();:,<>~+=-_/|\\'; // набор символов // Количество символов в хеше. $max = 4; // Определяем количество символов в $chars $size = StrLen($chars) - 1; // Определяем пустую переменную, в которую и будем записывать символы. $hash = null; // Создаём пароль. while ($max--) { $hash .= $chars[rand(0, $size)]; } return $hash; }
function TVL_Explode($String, &$Array = array()) { /****************************************************************************/ $__args_types = array('string', 'array'); #----------------------------------------------------------------------------- $__args__ = Func_Get_Args(); eval(FUNCTION_INIT); /****************************************************************************/ $Length = HexDec(Bytes_Get($String, 02, WORD)); #----------------------------------------------------------------------------- $Array[Bytes_Get($String, 00, WORD)] = SubStr($String, 04, $Length); #----------------------------------------------------------------------------- if (StrLen($String = SubStr($String, 04 + $Length)) > 0) { TVL_Explode($String, $Array); } #----------------------------------------------------------------------------- return $Array; }
function Update($ID, $arFields) { global $DB; $ID = intval($ID); if ($ID <= 0) { return false; } if (!CCatalogProductGroups::CheckFields("UPDATE", $arFields, $ID)) { return False; } $strUpdate = $DB->PrepareUpdate("b_catalog_product2group", $arFields); $strUpdate = Trim($strUpdate); if (StrLen($strUpdate) > 0) { $strSql = "UPDATE b_catalog_product2group SET " . $strUpdate . " WHERE ID = " . $ID . " "; $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); } return $ID; }
public static function CheckFields($ACTION, &$arFields, $ID = 0) { if (defined("SALE_DEBUG") && SALE_DEBUG) { CSaleHelper::WriteToLog("CSaleStoreBarcode checking fields", array("ACTION" => $ACTION, "arFields" => $arFields), "SSBA1"); } if ((is_set($arFields, "BASKET_ID") || $ACTION == "ADD") && StrLen($arFields["BASKET_ID"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SSB_EMPTY_BASKET_ID"), "BARCODE_ADD_EMPTY_BASKET_ID"); return false; } if ((is_set($arFields, "BASKET_ID") || $ACTION == "ADD") && StrLen($arFields["BASKET_ID"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SSB_EMPTY_STORE_ID"), "BARCODE_ADD_EMPTY_STORE_ID"); return false; } if ((is_set($arFields, "QUANTITY") || $ACTION == "ADD") && StrLen($arFields["QUANTITY"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SSB_EMPTY_QUANTITY"), "BARCODE_ADD_EMPTY_QUANTITY"); return false; } return true; }
InitFilter(array("filter_date_from", "filter_date_to")); } $filter_date_from = $_REQUEST["filter_date_from"]; $filter_date_to = $_REQUEST["filter_date_to"]; if (StrLen($filter_date_from) <= 0 && StrLen($filter_date_to) <= 0) { $filter_date_from = date($DB->DateFormatToPHP(CSite::GetDateFormat("SHORT")), mktime(0, 0, 0, date("m") - 3, 1, date("Y"))); $filter_date_to = date($DB->DateFormatToPHP(CSite::GetDateFormat("SHORT")), mktime(0, 0, 0, date("m"), date("d") + 1, date("Y"))); } $arResult["FILTER"] = array("filter_date_from" => $filter_date_from, "filter_date_to" => $filter_date_to); $arResult["CURRENT_PAGE_PARAM"] = $APPLICATION->GetCurPageParam("", array("filter_date_from", "filter_date_to")); $arResult["CURRENT_PAGE"] = $APPLICATION->GetCurPage(); $arFilter = array("=AFFILIATE_ID" => $arAffiliate["ID"], "=ALLOW_DELIVERY" => "Y", "=CANCELED" => "N", "=LID" => SITE_ID); if (StrLen($filter_date_from) > 0) { $arFilter[">=DATE_ALLOW_DELIVERY"] = Trim($filter_date_from); } if (StrLen($filter_date_to) > 0) { $arFilter["<=DATE_ALLOW_DELIVERY"] = Trim($filter_date_to); } $dbItemsList = \Bitrix\Sale\Internals\OrderTable::getList(array('filter' => $arFilter, 'select' => array("BASKET_NAME" => 'BASKET.NAME', "BASKET_PRODUCT_ID" => 'BASKET.PRODUCT_ID', "BASKET_MODULE" => 'BASKET.MODULE', "BASKET_PRICE" => 'BASKET.PRICE', "BASKET_CURRENCY" => 'BASKET.CURRENCY', "BASKET_DISCOUNT_PRICE" => 'BASKET.DISCOUNT_PRICE', 'BASKET_QUANTITY' => 'SUM_BASKET_QUANTITY'), 'runtime' => array(new \Bitrix\Main\Entity\ExpressionField('SUM_BASKET_QUANTITY', 'SUM(%s)', array('BASKET.QUANTITY'))), 'order' => array("BASKET.MODULE" => "ASC", "BASKET.NAME" => "ASC", "BASKET.PRODUCT_ID" => "ASC"), 'group' => array("BASKET.MODULE", "BASKET.PRODUCT_ID", "BASKET.NAME", "BASKET.PRICE", "BASKET.CURRENCY", "BASKET.DISCOUNT_PRICE"))); $arResult["ROWS"] = False; if ($arItemsList = $dbItemsList->Fetch()) { $affiliateCurrency = CSaleLang::GetLangCurrency(SITE_ID); $currentBasketModule = $arItemsList["BASKET_MODULE"]; $currentBasketProductID = $arItemsList["BASKET_PRODUCT_ID"]; $currentBasketName = $arItemsList["BASKET_NAME"]; $currentQuantity = 0; $currentSum = 0; $totalQuantity = 0; $totalSum = 0; $arResult["ROWS"] = array(); do {
</td> <td class="invite-list-message"><div class="invite-active-block"><?php echo htmlspecialcharsback($arRequest["MESSAGE"]); ?> <br /><i><?php echo $arRequest["DATE_CREATE"]; ?> </i></div></td> </tr><?php $ind++; } ?> </table> <div class="invite-list-nav"><?php if (StrLen($arResult["RequestsOut"]["NAV_STRING"]) > 0) { echo $arResult["RequestsOut"]["NAV_STRING"]; ?> <br /><br /><?php } ?> </div><?php } else { ?> <span class="sonet-group-requests-info"><?php echo GetMessage("SONET_URE_T_NO_REQUESTS_OUT"); ?> <br /><?php echo GetMessage("SONET_URE_T_NO_REQUESTS_OUT_DESCR"); ?> </span><?php
function ShowTab($divName) { if (!$this->bInited) return False; foreach ($this->arEngines as $key => $value) { if (SubStr($divName, 0, StrLen($key."_")) == $key."_") { if (array_key_exists("ShowTab", $value)) call_user_func_array($value["ShowTab"], array(SubStr($divName, StrLen($key."_")), $this->arArgs, $this->bVarsFromForm)); } } return null; }
function __SLEGetLogRecord($logID, $arParams, $arCurrentUserSubscribe, $current_page_date) { static $isExtranetInstalled, $isExtranetSite, $isExtranetUser, $arUserIdVisible, $arAvailableExtranetUserID, $isExtranetAdmin, $bCurrentUserIsAdmin, $arSocNetFeaturesSettings; if (!$isExtranetInstalled) { $isExtranetInstalled = CModule::IncludeModule("extranet") ? "Y" : "N"; $isExtranetSite = $isExtranetInstalled == "Y" && CExtranet::IsExtranetSite() ? "Y" : "N"; $isExtranetUser = $isExtranetInstalled == "Y" && !CExtranet::IsIntranetUser() ? "Y" : "N"; $isExtranetAdmin = $isExtranetInstalled == "Y" && CExtranet::IsExtranetAdmin() ? "Y" : "N"; $bCurrentUserIsAdmin = CSocNetUser::IsCurrentUserModuleAdmin(); $arSocNetFeaturesSettings = CSocNetAllowed::GetAllowedFeatures(); if ($isExtranetUser == "Y") { $arUserIdVisible = CExtranet::GetMyGroupsUsersSimple(SITE_ID); } elseif ($isExtranetInstalled == "Y" && $isExtranetUser != "Y") { if ($isExtranetAdmin == "Y" && $bCurrentUserIsAdmin) { $arAvailableExtranetUserID = CExtranet::GetMyGroupsUsers(SITE_ID); } else { $arAvailableExtranetUserID = CExtranet::GetMyGroupsUsersSimple(CExtranet::GetExtranetSiteID()); } } } $cache_time = 31536000; $arEvent = array(); $cache = new CPHPCache(); $arCacheID = array(); $arKeys = array("AVATAR_SIZE", "DESTINATION_LIMIT", "CHECK_PERMISSIONS_DEST", "NAME_TEMPLATE", "NAME_TEMPLATE_WO_NOBR", "SHOW_LOGIN", "DATE_TIME_FORMAT", "PATH_TO_USER", "PATH_TO_GROUP", "PATH_TO_CONPANY_DEPARTMENT"); foreach ($arKeys as $param_key) { if (array_key_exists($param_key, $arParams)) { $arCacheID[$param_key] = $arParams[$param_key]; } else { $arCacheID[$param_key] = false; } } $cache_id = "log_post_" . $logID . "_" . md5(serialize($arCacheID)) . "_" . SITE_TEMPLATE_ID . "_" . SITE_ID . "_" . LANGUAGE_ID . "_" . FORMAT_DATETIME . "_" . CTimeZone::GetOffset(); $cache_path = "/sonet/log/" . intval(intval($logID) / 1000) . "/" . $logID . "/entry/"; if (is_object($cache) && $cache->InitCache($cache_time, $cache_id, $cache_path)) { $arCacheVars = $cache->GetVars(); $arEvent["FIELDS_FORMATTED"] = $arCacheVars["FIELDS_FORMATTED"]; if (array_key_exists("CACHED_CSS_PATH", $arEvent["FIELDS_FORMATTED"])) { if (!is_array($arEvent["FIELDS_FORMATTED"]["CACHED_CSS_PATH"]) && strlen($arEvent["FIELDS_FORMATTED"]["CACHED_CSS_PATH"]) > 0) { $GLOBALS['APPLICATION']->SetAdditionalCSS($arEvent["FIELDS_FORMATTED"]["CACHED_CSS_PATH"]); } elseif (is_array($arEvent["FIELDS_FORMATTED"]["CACHED_CSS_PATH"])) { foreach ($arEvent["FIELDS_FORMATTED"]["CACHED_CSS_PATH"] as $css_path) { $GLOBALS['APPLICATION']->SetAdditionalCSS($css_path); } } } if (array_key_exists("CACHED_JS_PATH", $arEvent["FIELDS_FORMATTED"])) { if (!is_array($arEvent["FIELDS_FORMATTED"]["CACHED_JS_PATH"]) && $arEvent["FIELDS_FORMATTED"]["CACHED_JS_PATH"] !== '') { $GLOBALS['APPLICATION']->AddHeadScript($arEvent["FIELDS_FORMATTED"]["CACHED_JS_PATH"]); } elseif (is_array($arEvent["FIELDS_FORMATTED"]["CACHED_JS_PATH"])) { foreach ($arEvent["FIELDS_FORMATTED"]["CACHED_JS_PATH"] as $js_path) { $GLOBALS['APPLICATION']->AddHeadScript($js_path); } } } } else { if (is_object($cache)) { $cache->StartDataCache($cache_time, $cache_id, $cache_path); } $arFilter = array("ID" => $logID); $arListParams = array("CHECK_RIGHTS" => "N", "USE_FOLLOW" => "N", "USE_SUBSCRIBE" => "N"); $arSelect = array("ID", "TMP_ID", "ENTITY_TYPE", "ENTITY_ID", "USER_ID", "EVENT_ID", "LOG_DATE", "LOG_UPDATE", "TITLE_TEMPLATE", "TITLE", "MESSAGE", "TEXT_MESSAGE", "URL", "MODULE_ID", "CALLBACK_FUNC", "EXTERNAL_ID", "SITE_ID", "PARAMS", "COMMENTS_COUNT", "ENABLE_COMMENTS", "SOURCE_ID", "GROUP_NAME", "GROUP_OWNER_ID", "GROUP_INITIATE_PERMS", "GROUP_VISIBLE", "GROUP_OPENED", "GROUP_IMAGE_ID", "USER_NAME", "USER_LAST_NAME", "USER_SECOND_NAME", "USER_LOGIN", "USER_PERSONAL_PHOTO", "USER_PERSONAL_GENDER", "CREATED_BY_NAME", "CREATED_BY_LAST_NAME", "CREATED_BY_SECOND_NAME", "CREATED_BY_LOGIN", "CREATED_BY_PERSONAL_PHOTO", "CREATED_BY_PERSONAL_GENDER", "RATING_TYPE_ID", "RATING_ENTITY_ID", "SOURCE_TYPE"); $dbEvent = CSocNetLog::GetList(array(), $arFilter, false, false, $arSelect, $arListParams); if ($arEvent = $dbEvent->GetNext()) { if (defined("BX_COMP_MANAGED_CACHE")) { $GLOBALS["CACHE_MANAGER"]->StartTagCache($cache_path); $GLOBALS["CACHE_MANAGER"]->RegisterTag("USER_NAME_" . intval($arEvent["USER_ID"])); $GLOBALS["CACHE_MANAGER"]->RegisterTag("SONET_LOG_" . intval($arEvent["ID"])); if ($arEvent["ENTITY_TYPE"] == SONET_ENTITY_GROUP) { $GLOBALS["CACHE_MANAGER"]->RegisterTag("sonet_group_" . $arEvent["ENTITY_ID"]); } } $arEvent["EVENT_ID_FULLSET"] = CSocNetLogTools::FindFullSetEventIDByEventID($arEvent["EVENT_ID"]); if ($arEvent["ENTITY_TYPE"] == SONET_ENTITY_GROUP) { static $arSiteWorkgroupsPage; if (!$arSiteWorkgroupsPage && (IsModuleInstalled("extranet") || is_set($arEvent["URL"]) && strpos($arEvent["URL"], "#GROUPS_PATH#") !== false)) { $rsSite = CSite::GetList($by = "sort", $order = "desc", array("ACTIVE" => "Y")); while ($arSite = $rsSite->Fetch()) { $arSiteWorkgroupsPage[$arSite["ID"]] = COption::GetOptionString("socialnetwork", "workgroups_page", $arSite["DIR"] . "workgroups/", $arSite["ID"]); } } if (is_set($arEvent["URL"]) && isset($arSiteWorkgroupsPage[SITE_ID])) { $arEvent["URL"] = str_replace("#GROUPS_PATH#", $arSiteWorkgroupsPage[SITE_ID], $arEvent["URL"]); } } $arEventTmp = CSocNetLogTools::FindLogEventByID($arEvent["EVENT_ID"]); if ($arEventTmp && isset($arEventTmp["CLASS_FORMAT"]) && isset($arEventTmp["METHOD_FORMAT"])) { $arEvent["UF"] = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFields("SONET_LOG", $arEvent["ID"], LANGUAGE_ID); $arEvent["FIELDS_FORMATTED"] = call_user_func(array($arEventTmp["CLASS_FORMAT"], $arEventTmp["METHOD_FORMAT"]), $arEvent, $arParams); if (is_array($arEvent["FIELDS_FORMATTED"])) { if (isset($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]) && is_array($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]) && isset($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["MESSAGE"])) { if (in_array($arEvent["EVENT_ID"], array('calendar'))) { $arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["MESSAGE"] = htmlspecialcharsback($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["MESSAGE"]); } else { $arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["MESSAGE"] = CSocNetTextParser::closetags(htmlspecialcharsback($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["MESSAGE"])); } } if (isset($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]) && is_array($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"])) { $arFields2Cache = array("URL", "STYLE", "DESTINATION", "DESTINATION_MORE", "TITLE_24", "TITLE_24_2", "TITLE_24_2_STYLE", "IS_IMPORTANT", "MESSAGE", "FOOTER_MESSAGE", "MESSAGE_TITLE_24", "DATETIME_FORMATTED", "LOG_DATE_FORMAT", "MENU", "COMMENT_URL"); foreach ($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"] as $field => $value) { if (!in_array($field, $arFields2Cache)) { unset($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"][$field]); } } } if (isset($arEvent["FIELDS_FORMATTED"]["EVENT"]) && is_array($arEvent["FIELDS_FORMATTED"]["EVENT"])) { $arFields2Cache = array("ID", "URL", "USER_ID", "ENTITY_TYPE", "ENTITY_ID", "EVENT_ID", "EVENT_ID_FULLSET", "TITLE", "MESSAGE", "SOURCE_ID", "PARAMS", "RATING_TYPE_ID", "RATING_ENTITY_ID"); foreach ($arEvent["FIELDS_FORMATTED"]["EVENT"] as $field => $value) { if (!in_array($field, $arFields2Cache)) { unset($arEvent["FIELDS_FORMATTED"]["EVENT"][$field]); } } } if (isset($arEvent["FIELDS_FORMATTED"]["CREATED_BY"]) && is_array($arEvent["FIELDS_FORMATTED"]["CREATED_BY"])) { $arFields2Cache = array("TOOLTIP_FIELDS", "FORMATTED", "URL", "IS_EXTRANET"); foreach ($arEvent["FIELDS_FORMATTED"]["CREATED_BY"] as $field => $value) { if (!in_array($field, $arFields2Cache)) { unset($arEvent["FIELDS_FORMATTED"]["CREATED_BY"][$field]); } } if (isset($arEvent["FIELDS_FORMATTED"]["CREATED_BY"]["TOOLTIP_FIELDS"]) && is_array($arEvent["FIELDS_FORMATTED"]["CREATED_BY"]["TOOLTIP_FIELDS"])) { $arFields2Cache = array("ID", "PATH_TO_SONET_USER_PROFILE", "NAME", "LAST_NAME", "SECOND_NAME", "LOGIN", "EMAIL"); foreach ($arEvent["FIELDS_FORMATTED"]["CREATED_BY"]["TOOLTIP_FIELDS"] as $field => $value) { if (!in_array($field, $arFields2Cache)) { unset($arEvent["FIELDS_FORMATTED"]["CREATED_BY"]["TOOLTIP_FIELDS"][$field]); } } } } if (isset($arEvent["FIELDS_FORMATTED"]["ENTITY"]) && is_array($arEvent["FIELDS_FORMATTED"]["ENTITY"])) { $arFields2Cache = array("TOOLTIP_FIELDS", "FORMATTED", "URL"); foreach ($arEvent["FIELDS_FORMATTED"]["ENTITY"] as $field => $value) { if (!in_array($field, $arFields2Cache)) { unset($arEvent["FIELDS_FORMATTED"]["ENTITY"][$field]); } } if (isset($arEvent["FIELDS_FORMATTED"]["ENTITY"]["TOOLTIP_FIELDS"]) && is_array($arEvent["FIELDS_FORMATTED"]["ENTITY"]["TOOLTIP_FIELDS"])) { $arFields2Cache = array("ID", "PATH_TO_SONET_USER_PROFILE", "NAME", "LAST_NAME", "SECOND_NAME", "LOGIN", "EMAIL"); foreach ($arEvent["FIELDS_FORMATTED"]["ENTITY"]["TOOLTIP_FIELDS"] as $field => $value) { if (!in_array($field, $arFields2Cache)) { unset($arEvent["FIELDS_FORMATTED"]["ENTITY"]["TOOLTIP_FIELDS"][$field]); } } } } $arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["UF"] = $arEvent["UF"]; } else { $bEmpty = true; } } if (!$bEmpty) { $dateFormated = FormatDate($GLOBALS["DB"]->DateFormatToPHP(FORMAT_DATE), MakeTimeStamp(isset($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]) && isset($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["LOG_DATE_FORMAT"]) ? $arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["LOG_DATE_FORMAT"] : (array_key_exists("LOG_DATE_FORMAT", $arEvent) ? $arEvent["LOG_DATE_FORMAT"] : $arEvent["LOG_DATE"]))); $timeFormated = FormatDateFromDB(isset($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]) && isset($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["LOG_DATE_FORMAT"]) ? $arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["LOG_DATE_FORMAT"] : (array_key_exists("LOG_DATE_FORMAT", $arEvent) ? $arEvent["LOG_DATE_FORMAT"] : $arEvent["LOG_DATE"]), stripos($arParams["DATE_TIME_FORMAT"], 'a') || ($arParams["DATE_TIME_FORMAT"] == 'FULL' && IsAmPmMode()) !== false ? strpos(FORMAT_DATETIME, 'TT') !== false ? 'H:MI TT' : 'H:MI T' : 'HH:MI'); $dateTimeFormated = FormatDate(!empty($arParams["DATE_TIME_FORMAT"]) ? $arParams["DATE_TIME_FORMAT"] == "FULL" ? $GLOBALS["DB"]->DateFormatToPHP(str_replace(":SS", "", FORMAT_DATETIME)) : $arParams["DATE_TIME_FORMAT"] : $GLOBALS["DB"]->DateFormatToPHP(FORMAT_DATETIME), MakeTimeStamp(isset($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]) && isset($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["LOG_DATE_FORMAT"]) ? $arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["LOG_DATE_FORMAT"] : (array_key_exists("LOG_DATE_FORMAT", $arEvent) ? $arEvent["LOG_DATE_FORMAT"] : $arEvent["LOG_DATE"]))); if (strcasecmp(LANGUAGE_ID, 'EN') !== 0 && strcasecmp(LANGUAGE_ID, 'DE') !== 0) { $dateTimeFormated = ToLower($dateTimeFormated); $dateFormated = ToLower($dateFormated); $timeFormated = ToLower($timeFormated); } // strip current year if (!empty($arParams['DATE_TIME_FORMAT']) && ($arParams['DATE_TIME_FORMAT'] == 'j F Y G:i' || $arParams['DATE_TIME_FORMAT'] == 'j F Y g:i a')) { $dateTimeFormated = ltrim($dateTimeFormated, '0'); $curYear = date('Y'); $dateTimeFormated = str_replace(array('-' . $curYear, '/' . $curYear, ' ' . $curYear, '.' . $curYear), '', $dateTimeFormated); } $arEvent["MESSAGE_FORMAT"] = htmlspecialcharsback($arEvent["MESSAGE"]); if (StrLen($arEvent["CALLBACK_FUNC"]) > 0) { if (StrLen($arEvent["MODULE_ID"]) > 0) { CModule::IncludeModule($arEvent["MODULE_ID"]); } $arEvent["MESSAGE_FORMAT"] = call_user_func($arEvent["CALLBACK_FUNC"], $arEvent); } $arEvent["FIELDS_FORMATTED"]["LOG_TIME_FORMAT"] = $timeFormated; $arEvent["FIELDS_FORMATTED"]["LOG_UPDATE_TS"] = MakeTimeStamp($arEvent["LOG_UPDATE"]); $arEvent["FIELDS_FORMATTED"]["LOG_DATE_TS"] = MakeTimeStamp($arEvent["LOG_DATE"]); $arEvent["FIELDS_FORMATTED"]["LOG_DATE_DAY"] = ConvertTimeStamp(MakeTimeStamp($arEvent["LOG_DATE"]), "SHORT"); $arEvent["FIELDS_FORMATTED"]["LOG_UPDATE_DAY"] = ConvertTimeStamp(MakeTimeStamp($arEvent["LOG_UPDATE"]), "SHORT"); $arEvent["FIELDS_FORMATTED"]["COMMENTS_COUNT"] = $arEvent["COMMENTS_COUNT"]; $arEvent["FIELDS_FORMATTED"]["TMP_ID"] = $arEvent["TMP_ID"]; $arEvent["FIELDS_FORMATTED"]["DATETIME_FORMATTED"] = $dateTimeFormated; $arCommentEvent = CSocNetLogTools::FindLogCommentEventByLogEventID($arEvent["EVENT_ID"]); if (!array_key_exists("HAS_COMMENTS", $arEvent["FIELDS_FORMATTED"]) || $arEvent["FIELDS_FORMATTED"]["HAS_COMMENTS"] != "N") { $arEvent["FIELDS_FORMATTED"]["HAS_COMMENTS"] = $arCommentEvent && (!array_key_exists("ENABLE_COMMENTS", $arEvent) || $arEvent["ENABLE_COMMENTS"] != "N") ? "Y" : "N"; } } } if (is_object($cache)) { $arCacheData = array("FIELDS_FORMATTED" => $arEvent["FIELDS_FORMATTED"]); $cache->EndDataCache($arCacheData); if (defined("BX_COMP_MANAGED_CACHE")) { $GLOBALS["CACHE_MANAGER"]->EndTagCache(); } } } if ($bEmpty) { return false; } $feature = CSocNetLogTools::FindFeatureByEventID($arEvent["FIELDS_FORMATTED"]["EVENT"]["EVENT_ID"]); if ($feature && (!array_key_exists($feature, $arSocNetFeaturesSettings) || array_key_exists("allowed", $arSocNetFeaturesSettings[$feature]) && is_array($arSocNetFeaturesSettings[$feature]["allowed"]) && !in_array($arEvent["FIELDS_FORMATTED"]["EVENT"]["ENTITY_TYPE"], $arSocNetFeaturesSettings[$feature]["allowed"]))) { return false; } if (!array_key_exists("COMMENTS_PARAMS", $arEvent["FIELDS_FORMATTED"])) { $arForumMetaData = CSocNetLogTools::GetForumCommentMetaData($arEvent["FIELDS_FORMATTED"]["EVENT"]["EVENT_ID"]); if ($arForumMetaData && $arEvent["FIELDS_FORMATTED"]["EVENT"]["SOURCE_ID"] > 0) { $arEvent["FIELDS_FORMATTED"]["COMMENTS_PARAMS"] = array("ENTITY_TYPE" => $arForumMetaData[1], "ENTITY_XML_ID" => $arForumMetaData[0] . "_" . $arEvent["FIELDS_FORMATTED"]["EVENT"]["SOURCE_ID"], "NOTIFY_TAGS" => $arForumMetaData[2]); } else { $arEvent["FIELDS_FORMATTED"]["COMMENTS_PARAMS"] = array("ENTITY_TYPE" => substr(strtoupper($arEvent["FIELDS_FORMATTED"]["EVENT"]["EVENT_ID"]) . "_" . $arEvent["FIELDS_FORMATTED"]["EVENT"]["ID"], 0, 2), "ENTITY_XML_ID" => strtoupper($arEvent["FIELDS_FORMATTED"]["EVENT"]["EVENT_ID"]) . "_" . $arEvent["FIELDS_FORMATTED"]["EVENT"]["ID"], "NOTIFY_TAGS" => ""); } } foreach (GetModuleEvents("socialnetwork", "OnSonetLogEntryMenuCreate", true) as $arModuleEvent) { if (!array_key_exists("FIELDS_FORMATTED", $arEvent)) { $arEvent["FIELDS_FORMATTED"] = array(); } if (!array_key_exists("MENU", $arEvent["FIELDS_FORMATTED"])) { $arEvent["FIELDS_FORMATTED"]["MENU"] = array(); } $arMenuItems = ExecuteModuleEventEx($arModuleEvent, array($arEvent)); if (!empty($arMenuItems)) { $arEvent["FIELDS_FORMATTED"]["MENU"] = array_merge($arEvent["FIELDS_FORMATTED"]["MENU"], $arMenuItems); } } if (is_array($arCurrentUserSubscribe)) { $arEvent["FIELDS_FORMATTED"]["TRANSPORT"] = __SLEGetTransport($arEvent, $arCurrentUserSubscribe); } $arCommentEvent = CSocNetLogTools::FindLogCommentEventByLogEventID($arEvent["FIELDS_FORMATTED"]["EVENT"]["EVENT_ID"]); if (!$GLOBALS["USER"]->IsAuthorized()) { $arEvent["FIELDS_FORMATTED"]["CAN_ADD_COMMENTS"] = "N"; } elseif ($arCommentEvent && array_key_exists("OPERATION_ADD", $arCommentEvent) && $arCommentEvent["OPERATION_ADD"] == "log_rights") { $arEvent["FIELDS_FORMATTED"]["CAN_ADD_COMMENTS"] = CSocNetLogRights::CheckForUser($arEvent["FIELDS_FORMATTED"]["EVENT"]["ID"], $GLOBALS["USER"]->GetID()) ? "Y" : "N"; } else { $array_key = $arEvent["FIELDS_FORMATTED"]["EVENT"]["ENTITY_TYPE"] . "_" . $arEvent["FIELDS_FORMATTED"]["EVENT"]["ENTITY_ID"] . "_" . $arEvent["FIELDS_FORMATTED"]["EVENT"]["EVENT_ID"]; if (array_key_exists($array_key, $GLOBALS["CurUserCanAddComments"])) { $arEvent["FIELDS_FORMATTED"]["CAN_ADD_COMMENTS"] = $GLOBALS["CurUserCanAddComments"][$array_key] == "Y" && $arEvent["FIELDS_FORMATTED"]["HAS_COMMENTS"] == "Y" ? "Y" : "N"; } else { if ($feature && $arCommentEvent && array_key_exists("OPERATION_ADD", $arCommentEvent) && strlen($arCommentEvent["OPERATION_ADD"]) > 0) { $GLOBALS["CurUserCanAddComments"][$array_key] = CSocNetFeaturesPerms::CanPerformOperation($GLOBALS["USER"]->GetID(), $arEvent["FIELDS_FORMATTED"]["EVENT"]["ENTITY_TYPE"], $arEvent["FIELDS_FORMATTED"]["EVENT"]["ENTITY_ID"], $feature == "microblog" ? "blog" : $feature, $arCommentEvent["OPERATION_ADD"], $bCurrentUserIsAdmin) ? "Y" : "N"; } else { $GLOBALS["CurUserCanAddComments"][$array_key] = "Y"; } $arEvent["FIELDS_FORMATTED"]["CAN_ADD_COMMENTS"] = $GLOBALS["CurUserCanAddComments"][$array_key] == "Y" && $arEvent["FIELDS_FORMATTED"]["HAS_COMMENTS"] == "Y" ? "Y" : "N"; } } $arEvent["FIELDS_FORMATTED"]["FAVORITES"] = $arParams["EVENT"]["FAVORITES"]; if ($arParams["USE_FOLLOW"] == "Y") { $arEvent["FIELDS_FORMATTED"]["EVENT"]["FOLLOW"] = $arParams["EVENT"]["FOLLOW"]; $arEvent["FIELDS_FORMATTED"]["EVENT"]["DATE_FOLLOW_X1"] = $arParams["EVENT"]["DATE_FOLLOW_X1"]; $arEvent["FIELDS_FORMATTED"]["EVENT"]["DATE_FOLLOW"] = $arParams["EVENT"]["DATE_FOLLOW"]; } if ($arParams["CHECK_PERMISSIONS_DEST"] == "N" && !$bCurrentUserIsAdmin && is_object($GLOBALS["USER"]) && is_array($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]) && (array_key_exists("DESTINATION", $arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]) && is_array($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["DESTINATION"]) || array_key_exists("DESTINATION_CODE", $arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]) && is_array($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["DESTINATION_CODE"]))) { $arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["DESTINATION_HIDDEN"] = 0; $arGroupID = CSocNetLogTools::GetAvailableGroups(); if (array_key_exists("DESTINATION", $arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]) && is_array($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["DESTINATION"])) { foreach ($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["DESTINATION"] as $key => $arDestination) { if (array_key_exists("TYPE", $arDestination) && array_key_exists("ID", $arDestination) && ($arDestination["TYPE"] == "SG" && !in_array(intval($arDestination["ID"]), $arGroupID) || in_array($arDestination["TYPE"], array("CRMCOMPANY", "CRMLEAD", "CRMCONTACT", "CRMDEAL")) && CModule::IncludeModule("crm") && !CCrmAuthorizationHelper::CheckReadPermission(CCrmLiveFeedEntity::ResolveEntityTypeID($arDestination["TYPE"]), $arDestination["ID"]) || in_array($arDestination["TYPE"], array("DR", "D")) && $isExtranetUser == "Y" || $arDestination["TYPE"] == "U" && isset($arUserIdVisible) && is_array($arUserIdVisible) && !in_array(intval($arDestination["ID"]), $arUserIdVisible) || $arDestination["TYPE"] == "U" && isset($arDestination["IS_EXTRANET"]) && $arDestination["IS_EXTRANET"] == "Y" && isset($arAvailableExtranetUserID) && is_array($arAvailableExtranetUserID) && !in_array(intval($arDestination["ID"]), $arAvailableExtranetUserID))) { unset($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["DESTINATION"][$key]); $arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["DESTINATION_HIDDEN"]++; } } if (intval($arParams["DESTINATION_LIMIT_SHOW"]) > 0 && count($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["DESTINATION"]) > $arParams["DESTINATION_LIMIT_SHOW"]) { $arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["DESTINATION_MORE"] = count($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["DESTINATION"]) - $arParams["DESTINATION_LIMIT_SHOW"]; $arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["DESTINATION"] = array_slice($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["DESTINATION"], 0, $arParams["DESTINATION_LIMIT_SHOW"]); } } elseif (array_key_exists("DESTINATION_CODE", $arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]) && is_array($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["DESTINATION_CODE"])) { foreach ($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["DESTINATION_CODE"] as $key => $right_tmp) { if (preg_match('/^SG(\\d+)$/', $right_tmp, $matches) && !in_array(intval($matches[1]), $arGroupID)) { unset($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["DESTINATION_CODE"][$key]); $arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["DESTINATION_HIDDEN"]++; } } } } if ($arParams["SHOW_RATING"] == "Y" && strlen($arEvent["FIELDS_FORMATTED"]["EVENT"]["RATING_TYPE_ID"]) > 0 && intval($arEvent["FIELDS_FORMATTED"]["EVENT"]["RATING_ENTITY_ID"]) > 0) { $arEvent["FIELDS_FORMATTED"]["RATING"] = CRatings::GetRatingVoteResult($arEvent["FIELDS_FORMATTED"]["EVENT"]["RATING_TYPE_ID"], $arEvent["FIELDS_FORMATTED"]["EVENT"]["RATING_ENTITY_ID"]); } return $arEvent["FIELDS_FORMATTED"]; }
function GetMessagesForChat($currentUserID, $userID, $date = false, $arNavStartParams = false, $replyMessId = false) { global $DB; $currentUserID = IntVal($currentUserID); if ($currentUserID <= 0) { return false; } $userID = IntVal($userID); if ($date !== false) { $date = Trim($date); if (StrLen($date) <= 0) { return false; } if (!preg_match("#\\d\\d\\d\\d-\\d\\d-\\d\\d \\d\\d:\\d\\d:\\d\\d#i", $date)) { return false; } } $replyMessId = intval($replyMessId); //time zone $diff = false; if (CTimeZone::Enabled()) { $diff = CTimeZone::GetOffset(); } if ($diff !== false && $diff != 0) { $sDateFmt = "DATE_FORMAT(DATE_ADD(DATE_CREATE, INTERVAL " . $diff . " SECOND), '%Y-%m-%d %H:%i:%s') as DATE_CREATE_FMT, "; } else { $sDateFmt = "DATE_FORMAT(DATE_CREATE, '%Y-%m-%d %H:%i:%s') as DATE_CREATE_FMT, "; } $strSql = "SELECT 'IN' as WHO, ID, FROM_USER_ID as USER_ID, TITLE, MESSAGE, DATE_VIEW as DATE_VIEW, DATE_CREATE, " . "\t" . $sDateFmt . "\t" . $DB->DateToCharFunction("DATE_CREATE", "FULL") . " as DATE_CREATE_FORMAT " . "FROM b_sonet_messages " . "WHERE TO_USER_ID = " . $currentUserID . " " . ($userID > 0 ? "\tAND FROM_USER_ID = " . $userID . " " : "") . "\tAND TO_DELETED = 'N' " . "\tAND (IS_LOG IS NULL OR NOT IS_LOG = 'Y') " . ($date !== false && $replyMessId <= 0 ? " AND MESSAGE_TYPE = 'P' AND DATE_CREATE > '" . $DB->ForSql($date) . "' " : "") . ($replyMessId > 0 ? " AND MESSAGE_TYPE = 'P' AND ID >= '" . $replyMessId . "' " : "") . "UNION ALL " . "SELECT 'OUT' as WHO, ID, TO_USER_ID as USER_ID, TITLE, MESSAGE, DATE_CREATE as DATE_VIEW, DATE_CREATE, " . "\t" . $sDateFmt . "\t" . $DB->DateToCharFunction("DATE_CREATE", "FULL") . " as DATE_CREATE_FORMAT " . "FROM b_sonet_messages " . "WHERE FROM_USER_ID = " . $currentUserID . " " . ($userID > 0 ? "\tAND TO_USER_ID = " . $userID . " " : "") . "\tAND FROM_DELETED = 'N' " . "\tAND (IS_LOG IS NULL OR NOT IS_LOG = 'Y') " . ($date !== false && $replyMessId <= 0 ? " AND MESSAGE_TYPE = 'P' AND DATE_CREATE > '" . $DB->ForSql($date) . "' " : "") . ($replyMessId > 0 ? " AND MESSAGE_TYPE = 'P' AND ID >= '" . $replyMessId . "' " : "") . "ORDER BY DATE_CREATE " . ($date !== false ? "ASC" : "DESC") . " "; if (is_array($arNavStartParams) && IntVal($arNavStartParams["nTopCount"]) <= 0) { $strSql_tmp = "SELECT COUNT(M.ID) as CNT " . "FROM b_sonet_messages M " . "WHERE (M.TO_USER_ID = " . $currentUserID . " " . ($userID > 0 ? "\tAND M.FROM_USER_ID = " . $userID . " " : "") . "\tAND M.TO_DELETED = 'N' " . "\tOR " . "\tM.FROM_USER_ID = " . $currentUserID . " " . ($userID > 0 ? "\tAND M.TO_USER_ID = " . $userID . " " : "") . "\tAND M.FROM_DELETED = 'N') " . "\tAND (IS_LOG IS NULL OR NOT IS_LOG = 'Y') " . ($date !== false || $replyMessId > 0 ? " AND M.MESSAGE_TYPE = 'P' " : ""); $dbRes = $DB->Query($strSql_tmp, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); $cnt = 0; if ($arRes = $dbRes->Fetch()) { $cnt = $arRes["CNT"]; } $dbRes = new CDBResult(); $dbRes->NavQuery($strSql, $cnt, $arNavStartParams); } else { if (is_array($arNavStartParams) && IntVal($arNavStartParams["nTopCount"]) > 0) { $strSql .= "LIMIT " . IntVal($arNavStartParams["nTopCount"]); } $dbRes = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); } return $dbRes; }
public static function InitGroupsTmp($message, $titleTemplate1, $titleTemplate2, $arParams, $bRSS = false) { $arGroupsID = explode(",", $message); $message = ""; $title = ""; $bFirst = true; $count = 0; foreach ($arGroupsID as $groupID) { list($titleTmp, $messageTmp) = CSocNetLog::InitGroupTmp($groupID, $arParams, $bRSS); if (StrLen($titleTmp) > 0) { if (!$bFirst) $title .= ", "; $title .= $titleTmp; $count++; } if (StrLen($messageTmp) > 0) { if (!$bFirst) $message .= " "; $message .= $messageTmp; } $bFirst = false; } return array(Str_Replace("#TITLE#", $title, (($count > 1) ? $titleTemplate2 : $titleTemplate1)), $message); }
} $arGroupsId[$ind] = IntVal($idTmp); } else { if ($e = $GLOBALS["APPLICATION"]->GetException()) { $errorMessage .= $e->GetString(); } } } } } if (StrLen($errorMessage) <= 0) { foreach ($arGroupsId as $ind => $val) { CSocNetUserToGroup::Add(array("USER_ID" => 1, "GROUP_ID" => $val, "ROLE" => "A", "=DATE_CREATE" => $GLOBALS["DB"]->CurrentTimeFunction(), "=DATE_UPDATE" => $GLOBALS["DB"]->CurrentTimeFunction(), "INITIATED_BY_TYPE" => SONET_INITIATED_BY_USER, "INITIATED_BY_USER_ID" => 1, "MESSAGE" => false)); } } if (StrLen($errorMessage) <= 0) { // set EUV vor news $dbResult = CSocNetEventUserView::GetList(array("ENTITY_ID" => "ASC"), array("ENTITY_TYPE" => "N")); $arResult = $dbResult->Fetch(); if (!$arResult) { CSocNetEventUserView::Add(array("ENTITY_TYPE" => "N", "ENTITY_ID" => 0, "EVENT_ID" => "news", "USER_ID" => 0, "USER_ANONYMOUS" => "N")); CSocNetEventUserView::Add(array("ENTITY_TYPE" => "N", "ENTITY_ID" => 0, "EVENT_ID" => "news_comment", "USER_ID" => 0, "USER_ANONYMOUS" => "N")); } $blogGroupID = 0; if (CModule::IncludeModule("blog")) { $dbRes = CBlogGroup::GetList(array("ID" => "DESC"), array("SITE_ID" => WIZARD_SITE_ID)); if ($arRes = $dbRes->Fetch()) { $blogGroupID = $arRes["ID"]; } } $forumID = 0;