Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
		function __blogcleartagsimportant($options, $cache_id, $cache_path)
		{
			$obCache = new CPHPCache;
			if ($cache_id != "")
				$obCache->Clean($cache_id, $cache_path);
			else
				$obCache->CleanDir($cache_path);
		}
Ejemplo n.º 3
0
 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;
 }
Ejemplo n.º 4
0
	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;
	}
Ejemplo n.º 5
0
 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;
 }
Ejemplo n.º 6
0
	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;
	}
Ejemplo n.º 7
0
 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;
 }
Ejemplo n.º 8
0
 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;
 }
Ejemplo n.º 9
0
	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;
	}
Ejemplo n.º 10
0
 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;
 }
Ejemplo n.º 11
0
 private static function removeManifestById($manifestId)
 {
     $cache = new \CPHPCache();
     $cachePath = self::getCachePath($manifestId);
     return $cache->CleanDir($cachePath);
 }
Ejemplo n.º 12
0
 public static function clean($cache_path)
 {
     global $CACHE_MANAGER;
     $obCache = new CPHPCache();
     $obCache->CleanDir($cache_path . "/");
 }
Ejemplo n.º 13
0
 /**
  * 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));
     }
 }
Ejemplo n.º 14
0
	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;
	}
Ejemplo n.º 15
0
 function ClearCache()
 {
     global $CACHE_MANAGER;
     $cache = new CPHPCache();
     $cache->CleanDir("stickers/");
     $CACHE_MANAGER->CleanDir("fileman_stickers_count");
 }
Ejemplo n.º 16
0
 /**
  * Clear service cache
  * @return boolean
  */
 public static function Update()
 {
     $obCache = new CPHPCache();
     $obCache->CleanDir('/' . self::$cacheKey . '/');
     return true;
 }
Ejemplo n.º 17
0
 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);
 }
Ejemplo n.º 18
0
 /**
  * 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);
         }
     }
 }
Ejemplo n.º 19
0
 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);
             }
         }
     }
 }
Ejemplo n.º 20
0
 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;
 }
Ejemplo n.º 21
0
 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;
 }
Ejemplo n.º 22
0
 /**
  * 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);
         }
     }
 }
Ejemplo n.º 23
0
	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;
	}
Ejemplo n.º 24
0
 function CleanAll()
 {
     $this->cache = array();
     $objCache = new CPHPCache();
     $objCache->CleanDir(false, "stack_cache");
 }
Ejemplo n.º 25
0
 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);
             }
         }
     }
 }
Ejemplo n.º 26
0
 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);
     }
 }
Ejemplo n.º 27
0
 /**
  * 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;
 }
Ejemplo n.º 28
0
$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");
?>
Ejemplo n.º 29
0
	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);
 }