public static function SetRecent($entityId, $messageId, $isChat = false, $userId = false) { $entityId = intval($entityId); $messageId = intval($messageId); if ($entityId <= 0 || $messageId <= 0) { return false; } $userId = intval($userId); if ($userId <= 0) { $userId = $GLOBALS['USER']->GetID(); } if (!$isChat && $userId == $entityId) { return false; } global $DB; $strSQL = "\n\t\t\tINSERT INTO b_im_recent (USER_ID, ITEM_TYPE, ITEM_ID, ITEM_MID)\n\t\t\tVALUES (" . $userId . ", '" . ($isChat ? IM_MESSAGE_GROUP : IM_MESSAGE_PRIVATE) . "', " . $entityId . ", " . $messageId . ")\n\t\t\tON DUPLICATE KEY UPDATE ITEM_MID = " . $messageId; $DB->Query($strSQL, false, "FILE: " . __FILE__ . "<br> LINE: " . __LINE__); $obCache = new CPHPCache(); $obCache->CleanDir('/bx/im/rec' . CIMMessenger::GetCachePath($userId)); if ($isChat) { CIMMessenger::SpeedFileDelete($userId, IM_SPEED_GROUP); } else { CIMMessenger::SpeedFileDelete($userId, IM_SPEED_MESSAGE); } return true; }
function __blogcleartagsimportant($options, $cache_id, $cache_path) { $obCache = new CPHPCache; if ($cache_id != "") $obCache->Clean($cache_id, $cache_path); else $obCache->CleanDir($cache_path); }
public static function SetRecent($arParams) { $itemId = intval($arParams['ENTITY_ID']); $messageId = intval($arParams['MESSAGE_ID']); if ($itemId <= 0) { return false; } $userId = intval($arParams['USER_ID']); if ($userId <= 0) { $userId = (int) $GLOBALS['USER']->GetID(); } $chatType = IM_MESSAGE_PRIVATE; if (isset($arParams['CHAT_TYPE']) && in_array($arParams['CHAT_TYPE'], array(IM_MESSAGE_OPEN, IM_MESSAGE_CHAT))) { $chatType = $arParams['CHAT_TYPE']; } else { if (isset($arParams['CHAT_ID'])) { $orm = IM\ChatTable::getById($arParams['CHAT_ID']); if ($chatData = $orm->fetch()) { $chatType = $chatData['TYPE']; } } } $isChat = in_array($chatType, array(IM_MESSAGE_OPEN, IM_MESSAGE_CHAT)); if (!$isChat && $userId == $itemId) { return false; } global $DB; $strSQL = "\n\t\t\tINSERT INTO b_im_recent (USER_ID, ITEM_TYPE, ITEM_ID, ITEM_MID)\n\t\t\tVALUES (" . $userId . ", '" . $chatType . "', " . $itemId . ", " . $messageId . ")\n\t\t\tON DUPLICATE KEY UPDATE ITEM_MID = " . $messageId . "\n\t\t"; $DB->Query($strSQL, false, "FILE: " . __FILE__ . "<br> LINE: " . __LINE__); $obCache = new CPHPCache(); $obCache->CleanDir('/bx/imc/recent' . CIMMessenger::GetCachePath($userId)); if ($isChat) { CIMMessenger::SpeedFileDelete($userId, IM_SPEED_GROUP); } else { CIMMessenger::SpeedFileDelete($userId, IM_SPEED_MESSAGE); } return true; }
function Add($arFields, $bSetSource = false, $bSendEvent = true, $bSetLogUpDate = true) { global $DB; $arFields1 = array(); foreach ($arFields as $key => $value) { if (substr($key, 0, 1) == "=") { $arFields1[substr($key, 1)] = $value; unset($arFields[$key]); } } if ( $bSetSource && strlen($arFields["EVENT_ID"]) > 0) { $arCommentEvent = CSocNetLogTools::FindLogCommentEventByID($arFields["EVENT_ID"]); if ( !$arCommentEvent || !array_key_exists("ADD_CALLBACK", $arCommentEvent) || !is_callable($arCommentEvent["ADD_CALLBACK"]) ) { $bSetSource = false; } } $db_events = GetModuleEvents("socialnetwork", "OnBeforeSocNetLogCommentAdd"); while ($arEvent = $db_events->Fetch()) { if (ExecuteModuleEventEx($arEvent, array(&$arFields))===false) { return false; } } if ($bSetSource) { $arSource = CSocNetLogComments::SetSource($arFields); if ( $arSource["NO_SOURCE"] == "Y" || intval($arSource["SOURCE_ID"]) > 0 ) { if ($arSource["NO_SOURCE"] == "Y") $bSetSource = false; else $arFields["SOURCE_ID"] = $arSource["SOURCE_ID"]; if ( array_key_exists("RATING_ENTITY_ID", $arSource) && array_key_exists("RATING_TYPE_ID", $arSource) && intval($arSource["RATING_ENTITY_ID"]) > 0 && strlen($arSource["RATING_TYPE_ID"]) > 0 ) { $arFields["RATING_TYPE_ID"] = $arSource["RATING_TYPE_ID"]; $arFields["RATING_ENTITY_ID"] = $arSource["RATING_ENTITY_ID"]; } if (isset($arSource["MESSAGE"]) && strlen($arSource["MESSAGE"]) > 0) $arFields["MESSAGE"] = $arSource["MESSAGE"]; if (isset($arSource["TEXT_MESSAGE"]) && strlen($arSource["TEXT_MESSAGE"]) > 0) $arFields["TEXT_MESSAGE"] = $arSource["TEXT_MESSAGE"]; if (isset($arSource["URL"]) && strlen($arSource["URL"]) > 0) $arFields["URL"] = $arSource["URL"]; if ( isset($arSource["UF"]) && isset($arSource["UF"]["FILE"]) ) { if (!is_array($arSource["UF"]["FILE"])) $arSource["UF"]["FILE"] = array($arSource["UF"]["FILE"]); $arFields["UF_SONET_COM_FILE"] = $arSource["UF"]["FILE"]; } if ( isset($arSource["UF"]) && isset($arSource["UF"]["DOC"]) ) { if (!is_array($arSource["UF"]["DOC"])) $arSource["UF"]["DOC"] = array($arSource["UF"]["DOC"]); $arFields["UF_SONET_COM_DOC"] = $arSource["UF"]["DOC"]; } } else { $strMessage = ( array_key_exists("ERROR", $arSource) && strlen($arSource["ERROR"]) > 0 ? $arSource["ERROR"] : ( array_key_exists("NOTES", $arSource) && strlen($arSource["NOTES"]) > 0 ? $arSource["NOTES"] : "" ) ); } } if (!CSocNetLogComments::CheckFields("ADD", $arFields)) { if ($e = $GLOBALS["APPLICATION"]->GetException()) { $errorMessage = $e->GetString(); } if (strlen($errorMessage) <= 0) { $errorMessage = GetMessage("SONET_GLC_ERROR_CHECKFIELDS_FAILED"); } return array( "ID" => false, "MESSAGE" => $errorMessage ); return false; } if ( !$bSetSource || ( is_array($arSource) && array_key_exists("SOURCE_ID", $arFields) && intval($arFields["SOURCE_ID"]) > 0 ) ) { $arInsert = $DB->PrepareInsert("b_sonet_log_comment", $arFields); foreach ($arFields1 as $key => $value) { if (strlen($arInsert[0]) > 0) $arInsert[0] .= ", "; $arInsert[0] .= $key; if (strlen($arInsert[1]) > 0) $arInsert[1] .= ", "; $arInsert[1] .= $value; } $ID = false; if (strlen($arInsert[0]) > 0) { $strSql = "INSERT INTO b_sonet_log_comment(".$arInsert[0].") ". "VALUES(".$arInsert[1].")"; $DB->Query($strSql, False, "File: ".__FILE__."<br>Line: ".__LINE__); $ID = IntVal($DB->LastID()); if ($ID > 0) { if ( !array_key_exists("RATING_TYPE_ID", $arFields) || empty($arFields["RATING_TYPE_ID"]) ) CSocNetLogComments::Update($ID, array( "RATING_TYPE_ID" => "LOG_COMMENT", "RATING_ENTITY_ID" => $ID )); CSocNetLogFollow::Set( $arFields["USER_ID"], "L".$arFields["LOG_ID"], "Y", ConvertTimeStamp(time() + CTimeZone::GetOffset(), "FULL") ); $rsLog = CSocNetLog::GetList( array(), array("ID" => $arFields["LOG_ID"]), false, false, array("ID", "USER_ID") ); if ( ($arLog = $rsLog->Fetch()) && (intval($arLog["USER_ID"]) > 0) ) { $default_follow = CSocNetLogFollow::GetDefaultValue($arLog["USER_ID"]); if ($default_follow != "Y") { $rsLogFollow = CSocNetLogFollow::GetList( array( "USER_ID" => $arLog["USER_ID"], "CODE" => "L".$arFields["LOG_ID"] ), array("TYPE") ); $arLogFollow = $rsLogFollow->Fetch(); if (!$arLogFollow) CSocNetLogFollow::Set($arLog["USER_ID"], "L".$arFields["LOG_ID"], "Y"); } } if ($bSendEvent) { CSocNetLogComments::SendEvent($ID, "SONET_NEW_EVENT"); } CSocNetLogComments::UpdateLogData($arFields["LOG_ID"], $bSetLogUpDate); $db_events = GetModuleEvents("socialnetwork", "OnAfterSocNetLogCommentAdd"); while ($arEvent = $db_events->Fetch()) { ExecuteModuleEventEx($arEvent, array($ID, $arFields)); } $GLOBALS["USER_FIELD_MANAGER"]->Update("SONET_COMMENT", $ID, $arFields); if(defined("BX_COMP_MANAGED_CACHE")) { $GLOBALS["CACHE_MANAGER"]->ClearByTag("SONET_LOG_".$arFields["LOG_ID"]); } else { $cache = new CPHPCache; $cache->CleanDir("/sonet/log/".$arFields["LOG_ID"]."/comments/"); } CSocNetLogComments::SendMentionNotification(array_merge($arFields, array("ID" => $ID))); } } CSocNetLogTools::SetCacheLastLogID("comment", $ID); return $ID; } elseif ($bSetSource && strlen($strMessage) > 0) return array( "ID" => false, "MESSAGE" => $strMessage ); else return false; }
function Update($ID, $arFields) { global $DB; if (!CSocNetGroup::__ValidateID($ID)) { return false; } $ID = IntVal($ID); $arFields1 = array(); foreach ($arFields as $key => $value) { if (substr($key, 0, 1) == "=") { $arFields1[substr($key, 1)] = $value; unset($arFields[$key]); } } if (!CSocNetFeaturesPerms::CheckFields("UPDATE", $arFields, $ID)) { return false; } $db_events = GetModuleEvents("socialnetwork", "OnBeforeSocNetFeaturesPermsUpdate"); while ($arEvent = $db_events->Fetch()) { if (ExecuteModuleEventEx($arEvent, array($ID, $arFields)) === false) { return false; } } $strUpdate = $DB->PrepareUpdate("b_sonet_features2perms", $arFields); foreach ($arFields1 as $key => $value) { if (strlen($strUpdate) > 0) { $strUpdate .= ", "; } $strUpdate .= $key . "=" . $value . " "; } if (strlen($strUpdate) > 0) { $strSql = "UPDATE b_sonet_features2perms SET " . "\t" . $strUpdate . " " . "WHERE ID = " . $ID . " "; $DB->Query($strSql, False, "File: " . __FILE__ . "<br>Line: " . __LINE__); $events = GetModuleEvents("socialnetwork", "OnSocNetFeaturesPermsUpdate"); while ($arEvent = $events->Fetch()) { ExecuteModuleEventEx($arEvent, array($ID, $arFields)); } if (defined("BX_COMP_MANAGED_CACHE")) { $GLOBALS["CACHE_MANAGER"]->ClearByTag("sonet_features2perms_" . $ID); } else { $dbGroupFeaturePerm = CSocNetFeaturesPerms::GetList(array(), array("ID" => $ID), false, false, array("FEATURE_ENTITY_TYPE", "FEATURE_ENTITY_ID")); if ($arGroupFeaturePerm = $dbGroupFeaturePerm->Fetch()) { $cache = new CPHPCache(); $cache->CleanDir("/sonet/features_perms/" . $arGroupFeaturePerm["FEATURE_ENTITY_TYPE"] . "_" . $arGroupFeaturePerm["FEATURE_ENTITY_ID"] . "/"); } } } else { $ID = False; } return $ID; }
function UnInstallDB($arParams = array()) { global $DB, $APPLICATION; CAgent::RemoveModuleAgents('calendar'); $errors = null; if ((true == array_key_exists("savedata", $arParams)) && ($arParams["savedata"] != 'Y')) { $GLOBALS["USER_FIELD_MANAGER"]->OnEntityDelete("CALENDAR_EVENT"); $errors = $DB->RunSQLBatch($_SERVER["DOCUMENT_ROOT"].'/bitrix/modules/'.$this->MODULE_ID.'/install/db/'.strtolower($DB->type).'/uninstall.sql'); if (!empty($errors)) { $APPLICATION->ThrowException(implode("", $errors)); return false; } $this->UnInstallTasks(); } UnRegisterModuleDependences("pull", "OnGetDependentModule", "calendar", "CCalendarPullSchema", "OnGetDependentModule"); UnRegisterModuleDependences("im", "OnGetNotifySchema", "calendar", "CCalendarNotifySchema", "OnGetNotifySchema"); UnRegisterModuleDependences("im", "OnBeforeConfirmNotify", "calendar", "CCalendar", "HandleImCallback"); UnRegisterModuleDependences('intranet', 'OnPlannerInit', 'calendar', 'CCalendarEventHandlers', 'OnPlannerInit'); UnRegisterModuleDependences('intranet', 'OnPlannerAction', 'calendar', 'CCalendarEventHandlers', 'OnPlannerAction'); UnRegisterModuleDependences('rest', 'OnRestServiceBuildDescription', 'calendar', 'CCalendarRestService', 'OnRestServiceBuildDescription'); UnRegisterModuleDependences('socialnetwork', 'OnFillSocNetFeaturesList', 'calendar', 'CCalendarLiveFeed', 'AddEvent'); UnRegisterModuleDependences('socialnetwork', 'OnSonetLogEntryMenuCreate', 'calendar', 'CCalendarLiveFeed', 'OnSonetLogEntryMenuCreate'); UnRegisterModuleDependences('socialnetwork', 'OnAfterSonetLogEntryAddComment', 'calendar', 'CCalendarLiveFeed', 'OnAfterSonetLogEntryAddComment'); UnRegisterModuleDependences('socialnetwork', 'OnForumCommentIMNotify', 'calendar', 'CCalendarLiveFeed', 'OnForumCommentIMNotify'); UnRegisterModuleDependences('socialnetwork', 'onAfterCommentAddAfter', 'calendar', 'CCalendarLiveFeed', 'onAfterCommentAddAfter'); UnRegisterModuleDependences('socialnetwork', 'onAfterCommentUpdateAfter', 'calendar', 'CCalendarLiveFeed', 'onAfterCommentUpdateAfter'); UnRegisterModuleDependences('search', 'BeforeIndex', 'calendar', 'CCalendarLiveFeed', 'FixForumCommentURL'); UnRegisterModule("calendar"); // Clear cache $arPath = array( 'access_tasks', 'type_list', 'section_list', 'attendees_list', 'event_list' ); $cache = new CPHPCache; foreach($arPath as $path) if ($path != '') $cache->CleanDir("calendar/".$path); // Remove tasks from LiveFeed if ( IsModuleInstalled('socialnetwork') && CModule::IncludeModule('socialnetwork') ) { $dbRes = CSocNetLog::GetList( array(), array("EVENT_ID" => "calendar"), false, false, array("ID") ); if ($dbRes) { while ($arRes = $dbRes->Fetch()) CSocNetLog::Delete($arRes["ID"]); } } // Remove tasks from IM if (IsModuleInstalled('im') && CModule::IncludeModule('im')) { if (method_exists('CIMNotify', 'DeleteByModule')) CIMNotify::DeleteByModule('calendar'); } return true; }
public static function Delete($id) { $message = self::CheckPossibilityUpdateMessage($id); if (!$message) { return false; } $date = FormatDate("FULL", $message['DATE_CREATE'] + CTimeZone::GetOffset()); IM\MessageTable::update($message['ID'], array("MESSAGE" => GetMessage('IM_MESSAGE_DELETED'), "MESSAGE_OUT" => GetMessage('IM_MESSAGE_DELETED_OUT', array('#DATE#' => $date)))); CIMMessageParam::Set($message['ID'], array('IS_DELETED' => 'Y')); $arFields = $message; $arFields['MESSAGE'] = GetMessage('IM_MESSAGE_DELETED_OUT', array('#DATE#' => $date)); $arFields['DATE_MODIFY'] = time() + CTimeZone::GetOffset(); $relations = CIMMessenger::GetRelationById($message['ID']); $arPullMessage = array('id' => $arFields['ID'], 'type' => $arFields['MESSAGE_TYPE'] == IM_MESSAGE_PRIVATE ? 'private' : 'chat', 'date' => $arFields['DATE_MODIFY'], 'text' => GetMessage('IM_MESSAGE_DELETED')); if ($message['MESSAGE_TYPE'] == IM_MESSAGE_PRIVATE) { $arFields['FROM_USER_ID'] = $arFields['AUTHOR_ID']; foreach ($relations as $rel) { if ($rel['USER_ID'] != $arFields['AUTHOR_ID']) { $arFields['TO_USER_ID'] = $rel['USER_ID']; } } $arPullMessage['fromUserId'] = $arFields['FROM_USER_ID']; $arPullMessage['toUserId'] = $arFields['TO_USER_ID']; } else { $arPullMessage['chatId'] = $arFields['CHAT_ID']; $arPullMessage['senderId'] = $arFields['AUTHOR_ID']; } foreach ($relations as $rel) { CPullStack::AddByUser($rel['USER_ID'], array('module_id' => 'im', 'command' => 'messageDelete', 'params' => $arPullMessage)); $obCache = new CPHPCache(); $obCache->CleanDir('/bx/imc/recent' . self::GetCachePath($rel['USER_ID'])); } foreach (GetModuleEvents("im", "OnAfterMessagesDelete", true) as $arEvent) { ExecuteModuleEventEx($arEvent, array(intval($id), $arFields)); } return true; }
function Delete($ID) { global $DB; $ID = IntVal($ID); if ($ID <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_GL_WRONG_PARAMETER_ID"), "ERROR_NO_ID"); return false; } $db_events = GetModuleEvents("socialnetwork", "OnBeforeSocNetLogDelete"); while ($arEvent = $db_events->Fetch()) { if (ExecuteModuleEventEx($arEvent, array($ID)) === false) { return false; } } $DB->Query("DELETE LC FROM b_sonet_log_comment LC INNER JOIN (SELECT L.TMP_ID FROM b_sonet_log L WHERE L.ID = " . $ID . ") L1 ON LC.LOG_ID = L1.TMP_ID", true); $DB->Query("DELETE FROM b_sonet_log_right WHERE LOG_ID = " . $ID, true); $DB->Query("DELETE FROM b_sonet_log_site WHERE LOG_ID = " . $ID, true); $DB->Query("DELETE FROM b_sonet_log_favorites WHERE LOG_ID = " . $ID, true); $bSuccess = $DB->Query("DELETE FROM b_sonet_log WHERE ID = " . $ID, true); if ($bSuccess) { $GLOBALS["USER_FIELD_MANAGER"]->Delete("SONET_LOG", $ID); $db_events = GetModuleEvents("socialnetwork", "OnSocNetLogDelete"); while ($arEvent = $db_events->Fetch()) { ExecuteModuleEventEx($arEvent, array($ID)); } if (defined("BX_COMP_MANAGED_CACHE")) { $GLOBALS["CACHE_MANAGER"]->ClearByTag("SONET_LOG_" . $ID); } $cache = new CPHPCache(); $cache->CleanDir("/sonet/log/" . intval($ID / 1000) . "/" . $ID . "/comments/"); } return $bSuccess; }
public static function DeleteRecent($entityId, $isChat = false, $userId = false) { if (is_array($entityId)) { foreach ($entityId as $key => $value) $entityId[$key] = intval($value); $sqlEntityId = 'ITEM_ID IN ('.implode(',', $entityId).')'; } else if (intval($entityId) > 0) { $sqlEntityId = 'ITEM_ID = '.intval($entityId); } else return false; if (intval($userId) <= 0) $userId = $GLOBALS['USER']->GetID(); global $DB; $strSQL = "DELETE FROM b_im_recent WHERE USER_ID = ".$userId." AND ITEM_TYPE = '".($isChat? IM_MESSAGE_GROUP: IM_MESSAGE_PRIVATE)."' AND ".$sqlEntityId; $DB->Query($strSQL, false, "FILE: ".__FILE__."<br> LINE: ".__LINE__); $obCache = new CPHPCache(); $obCache->CleanDir('/bx/imc/rec'.CIMMessenger::GetCachePath($userId)); return true; }
public static function Delete($ID, $bSetSource = false) { global $DB; $ID = IntVal($ID); if ($ID <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_GLC_WRONG_PARAMETER_ID"), "ERROR_NO_ID"); return false; } $bSuccess = false; if ($arComment = CSocNetLogComments::GetByID($ID)) { if ($bSetSource) { if (strlen($arComment["EVENT_ID"]) > 0) { $arCommentEvent = CSocNetLogTools::FindLogCommentEventByID($arComment["EVENT_ID"]); if (!$arCommentEvent || !array_key_exists("DELETE_CALLBACK", $arCommentEvent) || !is_callable($arCommentEvent["DELETE_CALLBACK"])) { $bSetSource = false; } } } $bSuccess = true; if ($bSetSource) { $arSource = CSocNetLogComments::SetSource($arComment, "DELETE"); } if (!$bSetSource || is_array($arSource) && (!isset($arSource["ERROR"]) || empty($arSource["ERROR"]))) { if ($bSuccess) { $bSuccess = $DB->Query("DELETE FROM b_sonet_log_comment WHERE ID = " . $ID . "", true); } if ($bSuccess) { $GLOBALS["USER_FIELD_MANAGER"]->Delete("SONET_COMMENT", $ID); $db_events = GetModuleEvents("socialnetwork", "OnSocNetLogCommentDelete"); while ($arEvent = $db_events->Fetch()) { ExecuteModuleEventEx($arEvent, array($ID)); } if (intval($arComment["LOG_ID"]) > 0) { CSocNetLogComments::UpdateLogData($arComment["LOG_ID"], false, true); $cache = new CPHPCache(); $cache->CleanDir("/sonet/log/" . intval(intval($arComment["LOG_ID"]) / 1000) . "/" . $arComment["LOG_ID"] . "/comments/"); } } } elseif (is_array($arSource) && isset($arSource["ERROR"]) && is_string($arSource["ERROR"]) && !empty($arSource["ERROR"])) { $GLOBALS["APPLICATION"]->ThrowException($arSource["ERROR"], "ERROR_DELETE_SOURCE"); $bSuccess = false; } } return $bSuccess; }
private static function removeManifestById($manifestId) { $cache = new \CPHPCache(); $cachePath = self::getCachePath($manifestId); return $cache->CleanDir($cachePath); }
public static function clean($cache_path) { global $CACHE_MANAGER; $obCache = new CPHPCache(); $obCache->CleanDir($cache_path . "/"); }
/** * Method will be invoked after an database record updated. * * @param array $oldRecord All fields before update. * @param array $newRecord All fields after update. * * @return void */ public function afterUpdateTrigger(array $oldRecord, array $newRecord) { if (!\Bitrix\Main\Loader::includeModule('pull')) { return; } $arFields = \CIMMessenger::GetById($newRecord['ID'], array('WITH_FILES' => 'Y')); if (!$arFields) { return; } $arFields['DATE_MODIFY'] = time() + \CTimeZone::GetOffset(); $CCTP = new \CTextParser(); $CCTP->MaxStringLen = 200; $CCTP->allow = array("HTML" => "N", "ANCHOR" => "Y", "BIU" => "Y", "IMG" => "N", "QUOTE" => "N", "CODE" => "N", "FONT" => "N", "LIST" => "N", "SMILES" => "Y", "NL2BR" => "Y", "VIDEO" => "N", "TABLE" => "N", "CUT_ANCHOR" => "N", "ALIGN" => "N"); $pullMessage = $CCTP->convertText(htmlspecialcharsbx($arFields['MESSAGE'])); $relations = \CIMChat::GetRelationById($arFields['CHAT_ID']); $arPullMessage = array('id' => $arFields['ID'], 'type' => $arFields['MESSAGE_TYPE'] == IM_MESSAGE_PRIVATE ? 'private' : 'chat', 'text' => $pullMessage, 'date' => $arFields['DATE_MODIFY']); if ($arFields['MESSAGE_TYPE'] == IM_MESSAGE_PRIVATE) { $arFields['FROM_USER_ID'] = $arFields['AUTHOR_ID']; foreach ($relations as $rel) { if ($rel['USER_ID'] != $arFields['AUTHOR_ID']) { $arFields['TO_USER_ID'] = $rel['USER_ID']; } } $arPullMessage['fromUserId'] = $arFields['FROM_USER_ID']; $arPullMessage['toUserId'] = $arFields['TO_USER_ID']; } else { $arPullMessage['chatId'] = $arFields['CHAT_ID']; $arPullMessage['senderId'] = $arFields['AUTHOR_ID']; } \CPullStack::AddByUsers(array_keys($relations), $p = array('module_id' => 'im', 'command' => $arFields['PARAMS']['IS_DELETED'] === 'Y' ? 'messageDelete' : 'messageUpdate', 'params' => $arPullMessage)); foreach ($relations as $rel) { $obCache = new \CPHPCache(); $obCache->CleanDir('/bx/imc/recent' . \CIMMessenger::GetCachePath($rel['USER_ID'])); } if ($newRecord['MESSAGE_TYPE'] == IM_MESSAGE_OPEN) { \CPullWatch::AddToStack('IM_PUBLIC_' . $arFields['CHAT_ID'], array('module_id' => 'im', 'command' => $arFields['PARAMS']['IS_DELETED'] === 'Y' ? 'messageDelete' : 'messageUpdate', 'params' => $arPullMessage)); } foreach (\GetModuleEvents("im", "OnAfterMessagesUpdate", true) as $arEvent) { \ExecuteModuleEventEx($arEvent, array(intval($newRecord['ID']), $arFields)); } }
function UnInstallDB($arParams = array()) { global $DB, $APPLICATION; CAgent::RemoveModuleAgents('calendar'); $errors = null; if ((true == array_key_exists("savedata", $arParams)) && ($arParams["savedata"] != 'Y')) { $GLOBALS["USER_FIELD_MANAGER"]->OnEntityDelete("CALENDAR_EVENT"); $errors = $DB->RunSQLBatch($_SERVER["DOCUMENT_ROOT"].'/bitrix/modules/'.$this->MODULE_ID.'/install/db/'.strtolower($DB->type).'/uninstall.sql'); if (!empty($errors)) { $APPLICATION->ThrowException(implode("", $errors)); return false; } $this->UnInstallTasks(); } UnRegisterModuleDependences("pull", "OnGetDependentModule", "calendar", "CCalendarPullSchema", "OnGetDependentModule"); UnRegisterModuleDependences("im", "OnGetNotifySchema", "calendar", "CCalendarNotifySchema", "OnGetNotifySchema"); UnRegisterModuleDependences("im", "OnBeforeConfirmNotify", "calendar", "CCalendar", "HandleImCallback"); UnRegisterModuleDependences('intranet', 'OnPlannerInit', 'calendar', 'CCalendarEventHandlers', 'OnPlannerInit'); UnRegisterModuleDependences('intranet', 'OnPlannerAction', 'calendar', 'CCalendarEventHandlers', 'OnPlannerAction'); UnRegisterModuleDependences('rest', 'OnRestServiceBuildDescription', 'calendar', 'CCalendarRestService', 'OnRestServiceBuildDescription'); UnRegisterModule("calendar"); // Clear cache $arPath = array( 'access_tasks', 'type_list', 'section_list', 'attendees_list', 'event_list' ); $cache = new CPHPCache; foreach($arPath as $path) if ($path != '') $cache->CleanDir("calendar/".$path); return true; }
function ClearCache() { global $CACHE_MANAGER; $cache = new CPHPCache(); $cache->CleanDir("stickers/"); $CACHE_MANAGER->CleanDir("fileman_stickers_count"); }
/** * Clear service cache * @return boolean */ public static function Update() { $obCache = new CPHPCache(); $obCache->CleanDir('/' . self::$cacheKey . '/'); return true; }
public static function CallBack_DeleteComment($arFields) { if (!CModule::IncludeModule("blog")) { return false; } if (!isset($arFields["SOURCE_ID"]) || intval($arFields["SOURCE_ID"]) <= 0) { return false; } $messageId = intval($arFields["SOURCE_ID"]); if (($arBlogComment = CBlogComment::GetByID($messageId)) && CBlogComment::Delete($messageId)) { $strOKMessage = GetMessage("IDEA_SONET_DELETE_COMMENT_SOURCE_SUCCESS"); $cache = new CPHPCache(); $cache->CleanDir(SITE_ID . "/idea/" . $arBlogComment["BLOG_ID"] . "/comment/" . $arBlogComment["POST_ID"] . "/"); BXClearCache(True, "/" . SITE_ID . "/idea/" . $arBlogComment["BLOG_ID"] . "/first_page/"); BXClearCache(True, "/" . SITE_ID . "/idea/" . $arBlogComment["BLOG_ID"] . "/pages/"); BXClearCache(True, "/" . SITE_ID . "/idea/" . $arBlogComment["BLOG_ID"] . "/comment/" . $arBlogComment["POST_ID"] . "/"); BXClearCache(True, "/" . SITE_ID . "/idea/" . $arBlogComment["BLOG_ID"] . "/post/" . $arBlogComment["POST_ID"] . "/"); } else { $strErrorMessage = GetMessage("IDEA_SONET_DELETE_COMMENT_SOURCE_ERROR"); } return array("ERROR" => $strErrorMessage, "NOTES" => $strOKMessage); }
/** * Function clears entire component cache. * * <p>Note: parameters must exactly match to startResultCache call.</p> * @param string $componentName * @param string $siteId * @return void * */ public static final function clearComponentCache($componentName, $siteId = "") { /** @global CCacheManager $CACHE_MANAGER */ global $CACHE_MANAGER; $componentRelativePath = CComponentEngine::MakeComponentPath($componentName); if ($componentRelativePath != "") { $componentDescription = CComponentUtil::GetComponentDescr($componentName); if (isset($componentDescription) && is_array($componentDescription)) { if (isset($componentDescription["CACHE_PATH"]) && $componentDescription["CACHE_PATH"] == "Y") { if ($siteId == "") { $rsSite = CSite::GetList($by = "sort", $order = "asc"); while ($site = $rsSite->Fetch()) { $componentCachePath = "/" . $site["ID"] . $componentRelativePath; $obCache = new CPHPCache(); $obCache->CleanDir($componentCachePath, "cache"); BXClearCache(true, $componentCachePath); } } else { $componentCachePath = "/" . $siteId . $componentRelativePath; $obCache = new CPHPCache(); $obCache->CleanDir($componentCachePath, "cache"); BXClearCache(true, $componentCachePath); } } } if (defined("BX_COMP_MANAGED_CACHE")) { $CACHE_MANAGER->ClearByTag($componentName); } } }
public static function ClearCache($arPath = false) { global $CACHE_MANAGER; $CACHE_MANAGER->ClearByTag("CALENDAR_EVENT_LIST"); if ($arPath === false) { $arPath = array('access_tasks', 'type_list', 'section_list', 'attendees_list', 'event_list'); } elseif (!is_array($arPath)) { $arPath = array($arPath); } if (is_array($arPath) && count($arPath) > 0) { $cache = new CPHPCache(); foreach ($arPath as $path) { if ($path != '') { $cache->CleanDir(CCalendar::CachePath() . $path); } } } }
public static function OnUserDelete($ID) { $ID = intval($ID); if ($ID <= 0) { return false; } global $DB; $arChat = array(); $strSQL = "\n\t\t\tSELECT R.CHAT_ID\n\t\t\tFROM b_im_chat C, b_im_relation R\n\t\t\tWHERE R.USER_ID = " . $ID . " and R.MESSAGE_TYPE IN ('" . IM_MESSAGE_PRIVATE . "', '" . IM_MESSAGE_SYSTEM . "') and R.CHAT_ID = C.ID\n\t\t"; $dbRes = $DB->Query($strSQL, true, "File: " . __FILE__ . "<br>Line: " . __LINE__); while ($arRes = $dbRes->Fetch()) { $arChat[$arRes['CHAT_ID']] = $arRes['CHAT_ID']; } if (count($arChat) > 0) { $strSQL = "DELETE FROM b_im_chat WHERE ID IN (" . implode(',', $arChat) . ")"; $DB->Query($strSQL, true, "File: " . __FILE__ . "<br>Line: " . __LINE__); } $strSQL = "DELETE FROM b_im_message WHERE AUTHOR_ID = " . $ID; $DB->Query($strSQL, true, "File: " . __FILE__ . "<br>Line: " . __LINE__); $strSQL = "DELETE FROM b_im_relation WHERE USER_ID =" . $ID; $DB->Query($strSQL, true, "File: " . __FILE__ . "<br>Line: " . __LINE__); $strSQL = "DELETE FROM b_im_recent WHERE USER_ID = " . $ID; $DB->Query($strSQL, true, "File: " . __FILE__ . "<br>Line: " . __LINE__); $strSQL = "DELETE FROM b_im_recent WHERE ITEM_TYPE = 'P' and ITEM_ID = " . $ID; $DB->Query($strSQL, true, "File: " . __FILE__ . "<br>Line: " . __LINE__); $strSQL = "DELETE FROM b_im_status WHERE USER_ID = " . $ID; $DB->Query($strSQL, true, "File: " . __FILE__ . "<br>Line: " . __LINE__); $obCache = new CPHPCache(); $obCache->CleanDir('/bx/imc/recent'); return true; }
function HideAllChatMessage($chatId) { global $DB; $chatId = intval($chatId); $limitById = ''; $ar = \CIMChat::GetRelationById($chatId, $this->user_id); if ($ar && $ar['START_ID'] > 0) { $limitById = 'AND M.ID >= ' . intval($ar['START_ID']); } $strSql = "\n\t\t\tSELECT\n\t\t\t\tMAX(M.ID)+1 MAX_ID,\n\t\t\t\tR1.ID R1_ID\n\t\t\tFROM b_im_relation R1\n\t\t\tINNER JOIN b_im_message M ON M.CHAT_ID = R1.CHAT_ID\n\t\t\tWHERE\n\t\t\t\tR1.USER_ID = " . $this->user_id . "\n\t\t\tAND R1.MESSAGE_TYPE <> '" . IM_MESSAGE_PRIVATE . "'\n\t\t\tAND R1.CHAT_ID = " . $chatId . "\n\t\t\t\t" . $limitById . "\n\t\t\tGROUP BY M.CHAT_ID, R1.ID\n\t\t"; $dbRes = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); if ($arRes = $dbRes->Fetch()) { $strSql = "UPDATE b_im_relation SET START_ID = " . intval($arRes['MAX_ID']) . ", LAST_ID = " . (intval($arRes['MAX_ID']) - 1) . " WHERE ID = " . intval($arRes['R1_ID']); $dbRes = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); $obCache = new CPHPCache(); $obCache->CleanDir('/bx/imc/recent' . CIMMessenger::GetCachePath($this->user_id)); } return true; }
/** * Function clears entire component cache. * * <p>Note: parameters must exactly match to startResultCache call.</p> * @param string $componentName * @param string $siteId * @return void * */ public static final function clearComponentCache($componentName, $siteId = "") { /** @global CCacheManager $CACHE_MANAGER */ global $CACHE_MANAGER; $componentRelativePath = CComponentEngine::MakeComponentPath($componentName); if ($componentRelativePath != "") { $obCache = new CPHPCache(); $obCache->CleanDir($componentRelativePath, "cache"); BXClearCache(true, $componentRelativePath); if ($siteId == "") { $rsSite = \Bitrix\Main\SiteTable::getList(array('order' => array('SORT' => 'ASC'))); while ($site = $rsSite->fetch()) { $componentCachePath = "/" . $site["LID"] . $componentRelativePath; $obCache = new CPHPCache(); $obCache->CleanDir($componentCachePath, "cache"); BXClearCache(true, $componentCachePath); } } else { $componentCachePath = "/" . $siteId . $componentRelativePath; $obCache = new CPHPCache(); $obCache->CleanDir($componentCachePath, "cache"); BXClearCache(true, $componentCachePath); } if (defined("BX_COMP_MANAGED_CACHE")) { $CACHE_MANAGER->ClearByTag($componentName); } } }
public static function Delete($id) { $message = self::CheckPossibilityUpdateMessage($id); if (!$message) return false; global $DB; $date = FormatDate("FULL", $message['DATE_CREATE']+CTimeZone::GetOffset()); $strSql = " UPDATE b_im_message SET MESSAGE = '".GetMessage('IM_MESSAGE_DELETED')."', MESSAGE_OUT = '".GetMessage('IM_MESSAGE_DELETED_OUT', Array('#DATE#' => $date))."' WHERE ID = ".$message['ID']; $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__); CIMMessageParam::Set($message['ID'], Array('IS_DELETED' => 'Y')); $arFields = $message; $arFields['MESSAGE'] = GetMessage('IM_MESSAGE_DELETED_OUT', Array('#DATE#' => $date)); $arFields['DATE_MODIFY'] = time()+CTimeZone::GetOffset(); $relations = CIMMessenger::GetRelationById($message['ID']); $arPullMessage = Array( 'id' => $arFields['ID'], 'type' => $arFields['MESSAGE_TYPE'] == IM_MESSAGE_PRIVATE? 'private': 'group', 'date' => $arFields['DATE_MODIFY'], 'text' => GetMessage('IM_MESSAGE_DELETED'), ); if ($message['MESSAGE_TYPE'] == IM_MESSAGE_PRIVATE) { $arFields['FROM_USER_ID'] = $arFields['AUTHOR_ID']; foreach ($relations as $rel) { if ($rel['USER_ID'] != $arFields['AUTHOR_ID']) $arFields['TO_USER_ID'] = $rel['USER_ID']; } $arPullMessage['fromUserId'] = $arFields['FROM_USER_ID']; $arPullMessage['toUserId'] = $arFields['TO_USER_ID']; } else { $arPullMessage['chatId'] = $arFields['CHAT_ID']; $arPullMessage['senderId'] = $arFields['AUTHOR_ID']; } foreach ($relations as $rel) { CPullStack::AddByUser($rel['USER_ID'], Array( 'module_id' => 'im', 'command' => 'messageDelete', 'params' => $arPullMessage )); $obCache = new CPHPCache(); $obCache->CleanDir('/bx/imc/recent'.self::GetCachePath($rel['USER_ID'])); } foreach(GetModuleEvents("im", "OnAfterMessagesDelete", true) as $arEvent) ExecuteModuleEventEx($arEvent, array(intval($id), $arFields)); return true; }
function CleanAll() { $this->cache = array(); $objCache = new CPHPCache(); $objCache->CleanDir(false, "stack_cache"); }
public static function ClearCache($arPath = false) { if ($arPath === false) { $arPath = array('types'); } elseif (!is_array($arPath)) { $arPath = array($arPath); } if (is_array($arPath) && count($arPath) > 0) { $cache = new CPHPCache(); foreach ($arPath as $path) { if ($path != '') { $cache->CleanDir(self::$cachePath . $path); } } } }
function HandleSuperpose($arCommonIDs = array(), $bCleanCache = false) { if (!class_exists('CUserOptions')) { return false; } $arIds = $this->GetDisplayedSPCalendars(); $this->arSPCalShow = array(); $bCache = $this->bCache; $cachePath = $this->cachePath . 'sp_handle/' . $this->curUserId % 1000 . "/"; if ($bCleanCache && $bCache) { $cache = new CPHPCache(); $cache->CleanDir($cachePath); $bCache = false; } if ($bCache) { $cache = new CPHPCache(); $cacheId = serialize(array($this->curUserId, $GLOBALS['USER']->GetUserGroupArray())); if ($cache->InitCache($this->cacheTime, $cacheId, $cachePath)) { $res = $cache->GetVars(); $this->arSPCal = $res['arSPCal']; $this->bSuperpose = $res['bSuperpose']; } } if (!$bCache || empty($res['arSPCal'])) { $this->arSPCal = array(); // *** For social network *** if (class_exists('CSocNetUserToGroup') && ($GLOBALS['USER']->IsAuthorized() || !$this->bCurUser)) { //Groups calendars if ($this->superposeGroupsCals) { $this->GetGroupsSPCalendars(); } //Users calendars $arUserIds = $this->superposeUsersCals ? $this->GetTrackingUsers() : array(); // Add current user if ($this->superposeCurUserCals && !in_array($this->userId, $arUserIds)) { $arUserIds[] = $this->userId; } if (count($arUserIds) > 0) { $arFeatures = CSocNetFeatures::IsActiveFeature(SONET_ENTITY_USER, $arUserIds, "calendar"); $arView = CSocNetFeaturesPerms::CanPerformOperation($this->userId, SONET_ENTITY_USER, $arUserIds, "calendar", 'view'); for ($i = 0, $l = count($arUserIds); $i < $l; $i++) { $userId = intVal($arUserIds[$i]); if ($userId <= 0) { continue; } if ($arFeatures[$userId] && $arView[$userId]) { $this->GetUserSPCalendars($userId, $this->userId == $userId); } } } } // Common calendars if (is_array($arCommonIDs) && count($arCommonIDs) > 0) { $this->GetCommonSPCalendars($arCommonIDs); } if ($bCache) { $cache->StartDataCache($this->cacheTime, $cacheId, $cachePath); $cache->EndDataCache(array("arSPCal" => $this->arSPCal, "bSuperpose" => $this->bSuperpose)); } } if (count($this->arSPCal) > 0) { $this->arSPCalShow = $this->CheckDisplayedSPCalendars($arIds, $this->arSPCal); } }
/** * This function is for internal use only. It's not a part of public API. * * @access private */ public static final function GetCourseToLessonMap($bRefreshCache = false) { static $arMap = array(); $bCacheHit = false; static $ttl = 1800; // seconds static $cacheId = 'fixed_cache_id'; static $cachePath = '/learning/coursetolessonmap/'; $oCache = new CPHPCache(); // Try to load from cache only if cache isn't dirty if (!$bRefreshCache) { if ($oCache->InitCache($ttl, $cacheId, $cachePath)) { $arCached = $oCache->GetVars(); if (isset($arCached['arMap']) && is_array($arCached['arMap'])) { $arMap = $arCached['arMap']; $bCacheHit = true; } } } // Reload map from DB on cache miss or when cache is dirty if (!$bCacheHit || $bRefreshCache) { $oCache->CleanDir($cachePath); $arMap = self::GetCourseToLessonMap_LoadFromDB(); $oCache->InitCache($ttl, $cacheId, $cachePath); $oCache->StartDataCache($ttl, $cacheId, $cachePath); $oCache->EndDataCache(array('arMap' => $arMap)); } return $arMap; }
$sites = CSite::GetByID($_GET["site_id"]); if(!($site = $sites->Fetch())) die("Incorrect site_id."); $aComponents = explode(",", $_GET["component_name"]); foreach($aComponents as $component_name) { $componentRelativePath = CComponentEngine::MakeComponentPath($component_name); if (strlen($componentRelativePath) > 0) { $arComponentDescription = CComponentUtil::GetComponentDescr($component_name); if (isset($arComponentDescription) && is_array($arComponentDescription)) { if (array_key_exists("CACHE_PATH", $arComponentDescription)) { if($arComponentDescription["CACHE_PATH"] == "Y") $arComponentDescription["CACHE_PATH"] = "/".$site["ID"].$componentRelativePath; if(strlen($arComponentDescription["CACHE_PATH"]) > 0) { $obCache = new CPHPCache; $obCache->CleanDir($arComponentDescription["CACHE_PATH"], "cache"); BXClearCache(true, $arComponentDescription["CACHE_PATH"]); } } } if(defined("BX_COMP_MANAGED_CACHE")) $CACHE_MANAGER->ClearByTag($component_name); } } require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin_js.php"); ?>
function DoInstall() { global $DOCUMENT_ROOT, $APPLICATION, $step, $obModule, $errors; $errors = array(); // Необходим интернет магазин и каталог if (!IsModuleInstalled('sale') || !IsModuleInstalled('catalog')) { array_push($errors, "CARROTQUEST_DEPENDENCES_ERROR"); $APPLICATION->IncludeAdminFile(GetMessage("CARROTQUEST_INSTALL_TITLE"), $_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/".$this->MODULE_ID."/install/step2.php"); return; }; $step = IntVal($step); $obModule = $this; // 1 шаг установки if($step < 2) { $APPLICATION->IncludeAdminFile(GetMessage("CARROTQUEST_INSTALL_TITLE"), $_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/".$this->MODULE_ID."/install/step1.php"); } elseif($step == 2) // Второй шаг установки { // Проверяем ключи на валидность if (empty($errors)) { if (!array_key_exists('ApiKey', $_REQUEST) || strlen($_REQUEST['ApiKey']) != 32) array_push($errors, "CARROTQUEST_KEY_ERROR"); elseif (!array_key_exists('ApiSecret', $_REQUEST) || strlen($_REQUEST['ApiSecret']) != 64) array_push($errors, "CARROTQUEST_KEY_ERROR"); }; // Почему-то при uninstall параметры не удаляются целиком... COption::RemoveOption($this->MODULE_ID); if (empty($errors)) { // Пишем параметры модуля COption::SetOptionString($this->MODULE_ID, "cqApiKey", $_REQUEST['ApiKey']); COption::SetOptionString($this->MODULE_ID, "cqApiSecret", $_REQUEST['ApiSecret']); $APPLICATION->IncludeAdminFile(GetMessage("CARROTQUEST_INSTALL_TITLE"), $_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/".$this->MODULE_ID."/install/step2.php"); } else $APPLICATION->IncludeAdminFile(GetMessage("CARROTQUEST_INSTALL_TITLE"), $_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/".$this->MODULE_ID."/install/step3.php"); } elseif($step == 3) // Третий шаг установки { if(empty($errors) && $this->InstallFiles()) { $this->InstallDB(); $this->InstallEvents(); }; if (!empty($errors) || $_REQUEST['SendEmail']) { $GLOBALS["carrotquest_errors"] = $errors; // Стереть ключи RemoveOption($this->MODULE_ID); } else { // Чистим кэш сайта, иначе js объект carrotqust появится не сразу $phpCache = new CPHPCache(); $phpCache->CleanDir(); RegisterModule($this->MODULE_ID); }; $APPLICATION->IncludeAdminFile(GetMessage("CARROTQUEST_INSTALL_TITLE"), $_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/".$this->MODULE_ID."/install/step3.php"); } }
public static function Purge() { $oCache = new CPHPCache(); $oCache->CleanDir(self::CACHE_PATH); }