コード例 #1
0
 public static function CallBack_AddComment($arFields)
 {
     if (!CModule::IncludeModule('blog')) {
         return false;
     }
     $arResult = array();
     $arLog = CSocNetLog::GetList(array("ID" => "DESC"), array("TMP_ID" => $arFields["LOG_ID"]), false, false, array("ID", "SOURCE_ID", "SITE_ID", "RATING_ENTITY_ID"))->Fetch();
     if ($arLog) {
         $arIdeaPost = CBlogPost::GetById($arLog["SOURCE_ID"]);
         if ($arIdeaPost) {
             $UserIP = CBlogUser::GetUserIP();
             $IdeaCommentId = CBlogComment::Add(array("BLOG_ID" => $arIdeaPost["BLOG_ID"], "POST_ID" => $arIdeaPost["ID"], "AUTHOR_ID" => $arFields["USER_ID"], "POST_TEXT" => $arFields["MESSAGE"], "DATE_CREATE" => ConvertTimeStamp(time() + CTimeZone::GetOffset(), "FULL"), "PARENT_ID" => false, "AUTHOR_IP" => $UserIP[0], "AUTHOR_IP1" => $UserIP[1]));
             $arResult = array("SOURCE_ID" => $IdeaCommentId);
             if ($arLog["RATING_ENTITY_ID"] > 0) {
                 $arResult["RATING_TYPE_ID"] = "BLOG_COMMENT";
                 $arResult["RATING_ENTITY_ID"] = $IdeaCommentId;
             }
             if (intval($IdeaCommentId) == 0) {
                 global $APPLICATION;
                 if ($ex = $APPLICATION->GetException()) {
                     $arResult["ERROR"] = $ex->GetString();
                 }
             } else {
                 //clear cache on succcess
                 BXClearCache(True, "/" . SITE_ID . "/idea/" . $arIdeaPost["BLOG_ID"] . "/first_page/");
                 BXClearCache(True, "/" . SITE_ID . "/idea/" . $arIdeaPost["BLOG_ID"] . "/pages/");
                 BXClearCache(True, "/" . SITE_ID . "/idea/" . $arIdeaPost["BLOG_ID"] . "/comment/" . $arIdeaPost["ID"] . "/");
                 BXClearCache(True, "/" . SITE_ID . "/idea/" . $arIdeaPost["BLOG_ID"] . "/post/" . $arIdeaPost["ID"] . "/");
             }
         }
     }
     return $arResult;
 }
コード例 #2
0
 public function addComment($authorId, array $data)
 {
     $this->loadBlogPostData();
     $commentFields = array("POST_ID" => $this->entityId, "BLOG_ID" => $this->blogPostData['BLOG_ID'], "POST_TEXT" => $data['text'], "DATE_CREATE" => new DateTime(), "PARENT_ID" => false, "AUTHOR_ID" => $authorId, "HAS_PROPS" => 'Y');
     if (!empty($data['fileId'])) {
         $commentFields['UF_BLOG_COMMENT_FILE'] = array($data['fileId']);
     } elseif (!empty($data['versionId'])) {
         $commentFields['UF_BLOG_COMMENT_FH'] = $data['versionId'];
     }
     $comId = \CBlogComment::add($commentFields);
     if (!$comId) {
         return;
     }
     if (method_exists("CBlogComment", "addLiveComment")) {
         /** @noinspection PhpDynamicAsStaticMethodCallInspection */
         \CBlogComment::addLiveComment($comId, array("MODE" => "PULL_MESSAGE"));
     }
     BXClearCache(true, "/blog/comment/" . $this->entityId . "/");
     if (!Loader::includeModule('socialnetwork')) {
         return;
     }
     $query = \CSocNetLog::getList(array("ID" => "DESC"), array("EVENT_ID" => array("blog_post", "blog_post_important"), "SOURCE_ID" => $this->entityId), false, false, array("ID", "TMP_ID"));
     $row = $query->fetch();
     if (!$row) {
         return;
     }
     $fieldsForSocnet = array("ENTITY_TYPE" => SONET_ENTITY_USER, "ENTITY_ID" => $this->blogPostData["AUTHOR_ID"], "EVENT_ID" => "blog_comment", "=LOG_DATE" => Application::getInstance()->getConnection()->getSqlHelper()->getCurrentDateTimeFunction(), "MESSAGE" => "file", "TEXT_MESSAGE" => "file", "URL" => "", "MODULE_ID" => false, "SOURCE_ID" => $comId, "LOG_ID" => $row["ID"], "RATING_TYPE_ID" => "BLOG_COMMENT", "RATING_ENTITY_ID" => $comId, "USER_ID" => $authorId);
     \CSocNetLogComments::add($fieldsForSocnet, false, false, false);
 }
コード例 #3
0
ファイル: BXHelper.php プロジェクト: firestorm23/bxhelper
 public static function Init()
 {
     static::$obCache = new \CPHPCache();
     if (!empty($_GET['clear_cache'])) {
         BXClearCache('/BXHelper/');
     }
 }
コード例 #4
0
ファイル: smile.php プロジェクト: rasuldev/torino
 public static function Update($ID, $arFields)
 {
     global $DB, $CACHE_MANAGER;
     $ID = IntVal($ID);
     if ($ID <= 0) {
         return False;
     }
     if (!CBlogSmile::CheckFields("UPDATE", $arFields)) {
         return false;
     }
     $strUpdate = $DB->PrepareUpdate("b_blog_smile", $arFields);
     $strSql = "UPDATE b_blog_smile SET " . $strUpdate . " WHERE ID = " . $ID;
     $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
     if (is_set($arFields, "LANG")) {
         $DB->Query("DELETE FROM b_blog_smile_lang WHERE SMILE_ID = " . $ID . "");
         for ($i = 0; $i < count($arFields["LANG"]); $i++) {
             $arInsert = $DB->PrepareInsert("b_blog_smile_lang", $arFields["LANG"][$i]);
             $strSql = "INSERT INTO b_blog_smile_lang(SMILE_ID, " . $arInsert[0] . ") " . "VALUES(" . $ID . ", " . $arInsert[1] . ")";
             $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
         }
     }
     $CACHE_MANAGER->Clean("b_blog_smile");
     BXClearCache(true, "/blog/smiles/");
     return $ID;
 }
コード例 #5
0
ファイル: Cache.php プロジェクト: arrilot/bitrix-cacher
 /**
  * Flushes all bitrix cache.
  *
  * @return void
  */
 public static function flushAll()
 {
     $GLOBALS["CACHE_MANAGER"]->cleanAll();
     $GLOBALS["stackCacheManager"]->cleanAll();
     $staticHtmlCache = StaticHtmlCache::getInstance();
     $staticHtmlCache->deleteAll();
     BXClearCache(true);
 }
コード例 #6
0
ファイル: smile.php プロジェクト: DarneoStudio/bitrix
 function Delete($ID)
 {
     global $DB, $CACHE_MANAGER;
     $ID = IntVal($ID);
     $DB->Query("UPDATE b_blog_comment SET ICON_ID = NULL WHERE ICON_ID = " . $ID, True);
     $DB->Query("DELETE FROM b_blog_smile_lang WHERE SMILE_ID = " . $ID, True);
     $DB->Query("DELETE FROM b_blog_smile WHERE ID = " . $ID, True);
     $CACHE_MANAGER->Clean("b_blog_smile");
     BXClearCache(true, "/blog/smiles/");
     return true;
 }
コード例 #7
0
ファイル: step1.php プロジェクト: webgksupport/alpina
 public function __construct($arParams)
 {
     $this->SITE_ID = $arParams["SITE_ID"];
     $this->REWRITE = $arParams["REWRITE"];
     $this->ModuleBlogGroup = '[' . $this->SITE_ID . '] ' . GetMessage("IDEA_BLOG_GROUP_NAME");
     $this->ModuleBlogUrl .= "_" . $this->SITE_ID;
     //NULL CACHE
     BXClearCache(True, '/' . $this->SITE_ID . '/idea/');
     BXClearCache(True, '/' . SITE_ID . '/idea/');
     global $CACHE_MANAGER;
     if (CACHED_b_user_field_enum !== false) {
         $CACHE_MANAGER->CleanDir("b_user_field_enum");
     }
     //Statuses List (for demo)
     $this->arResult["SETTINGS"]["STATUS"] = CIdeaManagment::getInstance()->Idea()->GetStatusList();
     foreach ($this->arResult["SETTINGS"]["STATUS"] as $arStatus) {
         $this->arResult["SETTINGS"]["STATUS_ID"][$arStatus["XML_ID"]] = $arStatus["ID"];
     }
     //Lang List
     $l = CLanguage::GetList($by = "sort", $order = "asc");
     while ($r = $l->Fetch()) {
         $this->arResult["SETTINGS"]["LANG"][] = $r;
     }
     //Sites List
     $oSites = CSite::GetList($b = "", $o = "", array("ACTIVE" => "Y"));
     while ($site = $oSites->Fetch()) {
         $this->arResult["SETTINGS"]["SITE"][$site["LID"]] = array("LANGUAGE_ID" => $site["LANGUAGE_ID"], "ABS_DOC_ROOT" => $site["ABS_DOC_ROOT"], "DIR" => $site["DIR"], "SITE_ID" => $site["LID"], "SERVER_NAME" => $site["SERVER_NAME"], "NAME" => $site["NAME"]);
     }
     if (array_key_exists($this->SITE_ID, $this->arResult["SETTINGS"]["SITE"])) {
         $this->PublicDir = str_replace(array("#SITE_DIR#"), array($this->arResult["SETTINGS"]["SITE"][$this->SITE_ID]["DIR"]), $this->PublicDir);
     }
     $site = CFileMan::__CheckSite($this->SITE_ID);
     $this->DOCUMENT_ROOT = CSite::GetSiteDocRoot($site);
     $this->IO = CBXVirtualIo::GetInstance();
     //SetDefault
     $this->arResult["INSTALLATION"]["IBLOCK_TYPE_INSTALL"] = true;
     $this->arResult["INSTALLATION"]["IBLOCK_INSTALL"] = true;
     $this->arResult["INSTALLATION"]["BLOG_GROUP_INSTALL"] = true;
     $this->arResult["INSTALLATION"]["BLOG_INSTALL"] = true;
     $this->CheckParams();
 }
コード例 #8
0
 //$Notify->getEmailNotify()->Send();
 //END -> Notifications
 //start custom, use UF binding ::@Idea
 if ($arResult["IDEA_MODERATOR"] && $_REQUEST["BIND_OFFICIAL_ANSWER"] == "Y") {
     // Bind offical answer
     CIdeaManagment::getInstance()->IdeaComment($commentID)->Bind();
 }
 if ($arResult["IDEA_MODERATOR"] && $_REQUEST["BIND_IDEA_STATUS"] != "") {
     CIdeaManagment::getInstance()->Idea($arPost["ID"])->SetStatus($_REQUEST["BIND_IDEA_STATUS"]);
     BXClearCache(True, '/' . SITE_ID . '/idea/statistic_list/');
 }
 /*end*/
 BXClearCache(True, "/" . SITE_ID . "/idea/" . $arBlog["ID"] . "/comment/" . $arOldComment["POST_ID"] . "/");
 BXClearCache(True, "/" . SITE_ID . "/idea/" . $arBlog["ID"] . "/post/" . $arOldComment["POST_ID"] . "/");
 BXClearCache(True, "/" . SITE_ID . "/idea/" . $arBlog["ID"] . "/first_page/");
 BXClearCache(True, "/" . SITE_ID . "/idea/" . $arBlog["ID"] . "/pages/");
 $commentUrl = CComponentEngine::MakePathFromTemplate(htmlspecialcharsBack($arParams["PATH_TO_POST"]), array("blog" => $arBlog["URL"], "post_id" => CBlogPost::GetPostID($arPost["ID"], $arPost["CODE"], $arParams["ALLOW_POST_CODE"]), "user_id" => $arBlog["OWNER_ID"], "group_id" => $arParams["SOCNET_GROUP_ID"]));
 if (strpos($commentUrl, "?") !== false) {
     $commentUrl .= "&";
 } else {
     $commentUrl .= "?";
 }
 if ($_REQUEST["redirect_type"] == 'list') {
     //bx redirect for idea list
     LocalRedirect($APPLICATION->GetCurPageParam());
 } elseif (strlen($arFields["PUBLISH_STATUS"]) > 0 && $arFields["PUBLISH_STATUS"] != BLOG_PUBLISH_STATUS_PUBLISH) {
     $commentAddedUrl = $commentUrl . $arParams["COMMENT_ID_VAR"] . "=" . $commentID . "&hidden_add_comment_id=" . $commentID;
     LocalRedirect($commentAddedUrl);
 } else {
     $commentUrl .= $arParams["COMMENT_ID_VAR"] . "=" . $commentID . "#" . $commentID;
     LocalRedirect($commentUrl);
コード例 #9
0
ファイル: search.php プロジェクト: ASDAFF/bitrix-5
	function OnAfterIndexAdd($ID, $arFields)
	{
		if (isset($arFields["PARAMS"]) && is_array($arFields["PARAMS"]) && array_key_exists("socnet_group", $arFields["PARAMS"]))
		{
			$arSiteID = array_keys($arFields["SITE_ID"]);

			foreach ($arSiteID as $siteID)
				BXClearCache(true, "/".$siteID."/bitrix/search.tags.cloud/");
		}
	}
コード例 #10
0
ファイル: cache.php プロジェクト: k-kalashnikov/geekcon_new
} else {
    if (!$USER->CanDoOperation('cache_control') && !$USER->CanDoOperation('view_other_settings')) {
        $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
    }
    $errorMessage = "";
    $okMessage = "";
    if ($REQUEST_METHOD == "POST" && $clearcache == "Y" && strlen($cachetype) > 0 && check_bitrix_sessid() && $isAdmin) {
        if ($cachetype == "menu") {
            $GLOBALS["CACHE_MANAGER"]->CleanDir("menu");
        } elseif ($cachetype == "managed") {
            $GLOBALS["CACHE_MANAGER"]->CleanAll();
            $GLOBALS["stackCacheManager"]->CleanAll();
        } elseif ($cachetype == "html") {
            CHTMLPagesCache::CleanAll();
        } else {
            BXClearCache($cachetype == "all");
            $GLOBALS["CACHE_MANAGER"]->CleanAll();
            $GLOBALS["stackCacheManager"]->CleanAll();
            CHTMLPagesCache::CleanAll();
        }
        $okMessage .= GetMessage("MAIN_OPTION_CACHE_OK") . ". ";
    }
    if ($REQUEST_METHOD == "POST" && ($cache_on == "Y" || $cache_on == "N") && check_bitrix_sessid() && $isAdmin) {
        if (COption::GetOptionString("main", "component_cache_on", "Y") == "Y") {
            if ($cache_on == "N") {
                COption::SetOptionString("main", "component_cache_on", "N");
                $okMessage .= GetMessage("MAIN_OPTION_CACHE_SUCCESS") . ". ";
            }
        } else {
            if ($cache_on == "Y") {
                COption::SetOptionString("main", "component_cache_on", "Y");
コード例 #11
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");
?>
コード例 #12
0
        if ($ID > 0) {
            $arSmile = empty($arSmile) ? CForumSmile::GetByID($ID) : $arSmile;
            CForumSmile::Update($ID, $arFields);
        } else {
            $ID = CForumSmile::Add($arFields);
        }
        if ($e = $GLOBALS["APPLICATION"]->GetException()) {
            $arError[] = array("id" => "", "text" => $e->getString());
            if (!empty($_FILES["IMAGE"]["tmp_name"]) && isset($sUploadDir)) {
                @unlink($sUploadDir . $fileName);
                unset($arFields["IMAGE"]);
            }
        } else {
            BXClearCache(true, "/" . LANG . "/forum/smilesList/");
            BXClearCache(true, "/" . LANG . "/forum/iconsList/");
            BXClearCache(true, "/" . LANG . "/forum/smiles/");
            if (!empty($arSmile)) {
                $res = CForumSmile::GetByID($ID);
                if ($arSmile["IMAGE"] != $res["IMAGE"]) {
                    @unlink($_SERVER["DOCUMENT_ROOT"] . BX_ROOT . "/images/forum/" . ($arSmile["TYPE"] == "I" ? "icon" : "smile") . "/" . $arSmile["IMAGE"]);
                } elseif ($arSmile["TYPE"] != $res["TYPE"]) {
                    CopyDirFiles($_SERVER["DOCUMENT_ROOT"] . BX_ROOT . "/images/forum/" . ($arSmile["TYPE"] == "I" ? "icon" : "smile") . "/" . $arSmile["IMAGE"], $_SERVER["DOCUMENT_ROOT"] . BX_ROOT . "/images/forum/" . ($res["TYPE"] == "I" ? "icon" : "smile") . "/" . $arSmile["IMAGE"], false, false, true, "");
                }
            }
            LocalRedirect(strlen($save) > 0 ? "forum_smile.php?lang=" . LANG . "&" . GetFilterParams("filter_", false) : "forum_smile_edit.php?lang=" . LANG . "&ID=" . $ID . "&" . GetFilterParams("filter_", false));
        }
    }
    $e = new CAdminException($arError);
    $message = new CAdminMessage($ID > 0 ? GetMessage("ERROR_EDIT_SMILE") : GetMessage("ERROR_ADD_SMILE"), $e);
    $bInitVars = true;
}
コード例 #13
0
ファイル: component.php プロジェクト: Satariall/izurit
         BXClearCache(true, "/bitrix/forum/user/" . $res["RECIPIENT_ID"] . "/");
         $arComponentPath = array("bitrix:forum");
         foreach ($arComponentPath as $path) {
             $componentRelativePath = CComponentEngine::MakeComponentPath($path);
             $arComponentDescription = CComponentUtil::GetComponentDescr($path);
             if (strLen($componentRelativePath) <= 0 || !is_array($arComponentDescription)) {
                 continue;
             } elseif (!array_key_exists("CACHE_PATH", $arComponentDescription)) {
                 continue;
             }
             $path = str_replace("//", "/", $componentRelativePath . "/user" . $res["RECIPIENT_ID"]);
             if ($arComponentDescription["CACHE_PATH"] == "Y") {
                 $path = "/" . SITE_ID . $path;
             }
             if (!empty($path)) {
                 BXClearCache(true, $path);
             }
         }
     }
 }
 if (empty($arError)) {
     if ($action == "save") {
         LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams["~URL_TEMPLATES_PM_READ"], array("FID" => $arParams["FID"], "MID" => $arParams["MID"])));
     } elseif ($action == "send") {
         LocalRedirect(ForumAddPageParams(CComponentEngine::MakePathFromTemplate($arParams["~URL_TEMPLATES_PM_LIST"], array("FID" => "2")), array("result" => "sent")));
     }
 } else {
     $e = new CAdminException(array_reverse($arError));
     $GLOBALS["APPLICATION"]->ThrowException($e);
     $err = $GLOBALS['APPLICATION']->GetException();
     $arResult["ERROR_MESSAGE"] = $err->GetString();
コード例 #14
0
ファイル: group_edit.php プロジェクト: mrdeadmouse/u136006
            if (!CForumGroup::CanUserAddGroup($USER->GetUserGroupArray())) {
                $arError[] = array("code" => "not_right_for_add", "title" => GetMessage("ERROR_ADD_GROUP_NOT_RIGHT"));
            } else {
                $ID = CForumGroup::Add($arFields);
                if (IntVal($ID) <= 0) {
                    $arError[] = array("code" => "not_add", "title" => GetMessage("ERROR_ADD_GROUP"));
                }
            }
        }
    }
    if (!empty($arError) && ($e = $GLOBALS["APPLICATION"]->GetException())) {
        $message = new CAdminMessage($ID > 0 ? GetMessage("ERROR_EDIT_GROUP") : GetMessage("ERROR_ADD_GROUP"), $e);
    }
    $bInitVars = !empty($arError) ? true : false;
    if (strlen($save) > 0 && empty($arError)) {
        BXClearCache(true, "bitrix/forum/group/");
        LocalRedirect("forum_group.php?lang=" . LANG . "&" . GetFilterParams("filter_", false));
    }
}
if ($ID > 0) {
    $db_group = CForumGroup::GetList(array(), array("ID" => $ID));
    $db_group->ExtractFields("str_", False);
}
if ($bInitVars) {
    $DB->InitTableVarsForEdit("b_forum_group", "", "str_");
}
$sDocTitle = $ID > 0 ? str_replace("#ID#", $ID, GetMessage("FORUM_EDIT_RECORD")) : GetMessage("FORUM_NEW_RECORD");
$APPLICATION->SetTitle($sDocTitle);
require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php";
/*********************************************************************/
/********************  BODY  *****************************************/
コード例 #15
0
 function SetSoNetFeaturePermIndexSearch($ID, $arFields)
 {
     $featurePerm = CSocNetFeaturesPerms::GetByID($ID);
     if ($featurePerm["OPERATION_ID"] == "view_post") {
         if (CModule::IncludeModule("socialnetwork")) {
             $feature = CSocNetFeatures::GetByID($featurePerm["FEATURE_ID"]);
             if ($feature["FEATURE"] == "blog" && IntVal($feature["ENTITY_ID"]) > 0) {
                 if ($feature["ACTIVE"] == "Y" && ($feature["ENTITY_TYPE"] == "U" && $arFields["ROLE"] == "A" || $feature["ENTITY_TYPE"] == "G" && $arFields["ROLE"] == "N")) {
                     $arFilter = array("USE_SOCNET" => "Y");
                     if ($feature["ENTITY_TYPE"] == "U") {
                         $arFilter["OWNER_ID"] = $feature["ENTITY_ID"];
                     } else {
                         $arFilter["SOCNET_GROUP_ID"] = $feature["ENTITY_ID"];
                     }
                     $dbBlog = CBlog::GetList(array(), $arFilter, false, array("nTopCount" => 1), array("ID", "SOCNET_GROUP_ID"));
                     if ($arBlog = $dbBlog->Fetch()) {
                         CBlog::AddSocnetRead($arBlog["ID"]);
                     }
                 } else {
                     $arFilter = array("USE_SOCNET" => "Y");
                     if ($feature["ENTITY_TYPE"] == "U") {
                         $arFilter["OWNER_ID"] = $feature["ENTITY_ID"];
                     } else {
                         $arFilter["SOCNET_GROUP_ID"] = $feature["ENTITY_ID"];
                     }
                     $dbBlog = CBlog::GetList(array(), $arFilter, false, array("nTopCount" => 1), array("ID", "SOCNET_GROUP_ID"));
                     if ($arBlog = $dbBlog->Fetch()) {
                         CBlog::DeleteSocnetRead($arBlog["ID"]);
                     }
                 }
                 if ($arBlog && intval($arBlog["SOCNET_GROUP_ID"]) > 0 && CModule::IncludeModule("socialnetwork") && method_exists("CSocNetGroup", "GetSite")) {
                     $arSites = array();
                     $rsGroupSite = CSocNetGroup::GetSite($arBlog["SOCNET_GROUP_ID"]);
                     while ($arGroupSite = $rsGroupSite->Fetch()) {
                         $arSites[] = $arGroupSite["LID"];
                     }
                 } else {
                     $arSites = array(SITE_ID);
                 }
                 foreach ($arSites as $site_id_tmp) {
                     BXClearCache(True, "/" . $site_id_tmp . "/blog/sonet/");
                 }
             }
         }
     }
 }
コード例 #16
0
ファイル: webdav.php プロジェクト: k-kalashnikov/geekcon_new
define("WEBDAV_SETTINGS_LIMIT_INCLUDE", "Y");
$file = trim(preg_replace("'[\\\\/]+'", "/", dirname(__FILE__) . "/webdav_settings.php"));
require_once $file;
/************** Path ***********************************************/
$sBaseUrl = $APPLICATION->GetCurDir();
$arParsedUrl = parse_url($_SERVER['REQUEST_URI']);
$page = $arParsedUrl ? $arParsedUrl['path'] : $_SERVER['REQUEST_URI'];
/************** Initial object *************************************/
$arParams["DOCUMENT_TYPE"] = array("webdav", "CIBlockDocumentWebdavSocnet", "iblock_" . $arParams["IBLOCK_ID"] . "_" . $object . "_" . intVal($object == "user" ? $arResult["VARIABLES"]["user_id"] : $arResult["VARIABLES"]["group_id"]));
$arBizProcParameters = array("object" => $object, "owner" => $object == "user" ? $arResult["VARIABLES"]["user_id"] : $arResult["GROUP"]["OWNER_ID"], "moderator" => strtolower($object == "user" ? SONET_RELATIONS_TYPE_NONE : SONET_ROLES_MODERATOR), "path" => $object == "user" ? $arResult["PATH_TO_USER_FILES_WEBDAV_BIZPROC_VIEW"] : $arResult["PATH_TO_GROUP_FILES_WEBDAV_BIZPROC_VIEW"], "document_type" => $ob->wfParams['DOCUMENT_TYPE'][2]);
$user_id_str = intVal($arResult["VARIABLES"]["user_id"]) > 0 ? $arResult["VARIABLES"]["user_id"] : $GLOBALS["USER"]->GetId();
$arBizProcParameters["path"] = str_replace(array("#user_id#", "#group_id#", "#element_id#"), array($user_id_str, $arResult["VARIABLES"]["group_id"], "{=Document:ID}"), $arBizProcParameters["path"]);
/************** Root Section ***************************************/
$arParams["ROOT_SECTION_ID"] = __wd_get_root_section($arParams["IBLOCK_ID"], $object, $object == 'user' ? $arResult["VARIABLES"]["user_id"] : $arResult["VARIABLES"]["group_id"]);
if ($arParams["ROOT_SECTION_ID"] === true) {
    BXClearCache(true, $ob->CACHE_PATH);
    LocalRedirect($APPLICATION->GetCurPageParam("", array("create_lib", "sessid")));
}
if ($object == "user") {
    CIBlockWebdavSocnet::CreateSharedFolder($arParams["IBLOCK_ID"], $arParams["ROOT_SECTION_ID"], $arResult["VARIABLES"]["user_id"]);
}
$arParams["OBJECT"] = $ob = new CWebDavIblock($arParams['IBLOCK_ID'], $arResult['BASE_URL'], $arParams + array("SHORT_PATH_TEMPLATE" => "/" . ($object == "user" ? $arDefaultUrlTemplates404["user_files_short"] : $arDefaultUrlTemplates404["group_files_short"]), "ATTRIBUTES" => $object == "user" ? array('user_id' => $arResult["VARIABLES"]["user_id"]) : array('group_id' => $arResult["VARIABLES"]["group_id"])));
if (!empty($ob->arError)) {
    $e = new CAdminException($ob->arError);
    $GLOBALS["APPLICATION"]->ThrowException($e);
    $res = $GLOBALS["APPLICATION"]->GetException();
    if ($res) {
        ShowError($res->GetString());
        return false;
    }
} elseif ($ob->permission <= "D") {
コード例 #17
0
ファイル: component.php プロジェクト: DarneoStudio/bitrix
 /**
  * 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);
         }
     }
 }
コード例 #18
0
ファイル: component.php プロジェクト: webgksupport/alpina
 if (!empty($arBlogUrl) && $arBlogUrl["URL"] == $arBlog["URL"]) {
     if ($arPost["ENABLE_TRACKBACK"] == "Y") {
         if ($arResult["PostPerm"] > BLOG_PERMS_DENY) {
             if (check_bitrix_sessid() && IntVal($_GET["delete_trackback_id"]) > 0 && CBlogPost::CanUserDeletePost(IntVal($arPost["ID"]), IntVal($USER->GetID()))) {
                 CBlogTrackback::Delete(IntVal($_GET["delete_trackback_id"]));
                 if (intval($arBlog["SOCNET_GROUP_ID"]) > 0 && CModule::IncludeModule("socialnetwork") && method_exists("CSocNetGroup", "GetSite")) {
                     $arSites = array();
                     $rsGroupSite = CSocNetGroup::GetSite($arBlog["SOCNET_GROUP_ID"]);
                     while ($arGroupSite = $rsGroupSite->Fetch()) {
                         $arSites[] = $arGroupSite["LID"];
                     }
                 } else {
                     $arSites = array(SITE_ID);
                 }
                 foreach ($arSites as $site_id_tmp) {
                     BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/trackback/" . $arPost["ID"] . "/");
                 }
             }
             $cache = new CPHPCache();
             $cache_id = "blog_trackback_" . serialize($arParams) . "_" . $arResult["PostPerm"];
             if (($tzOffset = CTimeZone::GetOffset()) != 0) {
                 $cache_id .= "_" . $tzOffset;
             }
             $cache_path = "/" . SITE_ID . "/blog/" . $arBlog["URL"] . "/trackback/" . $arPost["ID"] . "/";
             if ($arParams["CACHE_TIME"] > 0 && $cache->InitCache($arParams["CACHE_TIME"], $cache_id, $cache_path)) {
                 $Vars = $cache->GetVars();
                 foreach ($Vars["arResult"] as $k => $v) {
                     $arResult[$k] = $v;
                 }
                 CBitrixComponentTemplate::ApplyCachedData($Vars["templateCachedData"]);
                 $cache->Output();
コード例 #19
0
ファイル: component.php プロジェクト: vim84/b-markt
             if (strlen($link) > 0) {
                 if ($type == "U" && IntVal($id) > 0) {
                     $arNewRightsName[] = "[user="******"]" . htmlspecialcharsback($name) . "[/user]";
                 } else {
                     $arNewRightsName[] = "[url=" . $link . "]" . htmlspecialcharsback($name) . "[/url]";
                 }
             } else {
                 $arNewRightsName[] = htmlspecialcharsback($name);
             }
         }
     }
 }
 $UserIP = CBlogUser::GetUserIP();
 $arComFields = array("POST_ID" => $arParams["ID"], "BLOG_ID" => $arPost["BLOG_ID"], "POST_TEXT" => (count($arNewRightsName) > 1 ? GetMessage("B_B_SHARE") : GetMessage("B_B_SHARE_1")) . implode(", ", $arNewRightsName), "DATE_CREATE" => ConvertTimeStamp(time() + $arResult["TZ_OFFSET"], "FULL"), "AUTHOR_IP" => $UserIP[0], "AUTHOR_IP1" => $UserIP[1], "PARENT_ID" => false, "AUTHOR_ID" => $user_id, "SHARE_DEST" => implode(",", $arNewRights));
 if ($comId = CBlogComment::Add($arComFields)) {
     BXClearCache(true, "/blog/comment/" . $arParams["ID"] . "/");
     if (method_exists("CBlogComment", "AddLiveComment")) {
         CBlogComment::AddLiveComment($comId, CComponentEngine::MakePathFromTemplate(htmlspecialcharsBack($arParams["PATH_TO_POST"]), array("post_id" => $arParams["ID"], "user_id" => $arPost["AUTHOR_ID"])) . "?commentId=" . $comId);
     }
     if ($arPost["AUTHOR_ID"] != $user_id) {
         $arFieldsIM = array("TYPE" => "SHARE", "TITLE" => $arPost["TITLE"], "URL" => CComponentEngine::MakePathFromTemplate(htmlspecialcharsBack($arParams["PATH_TO_POST"]), array("post_id" => $arParams["ID"], "user_id" => $arPost["AUTHOR_ID"])), "ID" => $arParams["ID"], "FROM_USER_ID" => $user_id, "TO_USER_ID" => array($arPost["AUTHOR_ID"]));
         CBlogPost::NotifyIm($arFieldsIM);
     }
     if (!empty($arUsers2Notify)) {
         $arFieldsIM = array("TYPE" => "SHARE2USERS", "TITLE" => $arPost["TITLE"], "URL" => CComponentEngine::MakePathFromTemplate(htmlspecialcharsBack($arParams["PATH_TO_POST"]), array("post_id" => $arParams["ID"], "user_id" => $arPost["AUTHOR_ID"])), "ID" => $arParams["ID"], "FROM_USER_ID" => $user_id, "TO_USER_ID" => $arUsers2Notify);
         CBlogPost::NotifyIm($arFieldsIM);
     }
 }
 /* update socnet log rights*/
 $dbRes = CSocNetLog::GetList(array("ID" => "DESC"), array("EVENT_ID" => array("blog_post", "blog_post_important"), "SOURCE_ID" => $arPost["ID"]), false, false, array("ID", "ENTITY_TYPE", "ENTITY_ID"));
 if ($arRes = $dbRes->Fetch()) {
コード例 #20
0
                 if ($id = CBlogCategory::Add(array("BLOG_ID" => $arBlog["ID"], "NAME" => $v))) {
                     $arCategory[] = $id;
                 }
             }
         }
         $arResult["ELEMENT"]["DETAIL_PICTURE"] = CFile::GetFileArray($arResult["ELEMENT"]["DETAIL_PICTURE"]);
         $arResult["ELEMENT"]["REAL_PICTURE"] = CFile::GetFileArray($arResult["ELEMENT"]["PROPERTIES"]["REAL_PICTURE"]["VALUE"]);
         $arFields = array("TITLE" => $arResult["ELEMENT"]["NAME"], "DETAIL_TEXT" => "[IMG]http://" . $_SERVER['HTTP_HOST'] . $arResult["ELEMENT"]["DETAIL_PICTURE"]["SRC"] . "[/IMG]\n" . "[URL=http://" . $_SERVER['HTTP_HOST'] . $arResult["ELEMENT"]["~DETAIL_PAGE_URL"] . "]" . $arResult["ELEMENT"]["NAME"] . "[/URL]\n" . (!empty($arResult["ELEMENT"]["TAGS"]) ? $arResult["ELEMENT"]["TAGS"] . "\n" : "") . $arResult["ELEMENT"]["~DETAIL_TEXT"] . "\n" . "[URL=http://" . $_SERVER['HTTP_HOST'] . $arResult["ELEMENT"]["REAL_PICTURE"]["SRC"] . "]" . GetMessage("P_ORIGINAL") . "[/URL]", "CATEGORY_ID" => implode(",", $arCategory), "PUBLISH_STATUS" => "P", "PERMS_POST" => array(), "PERMS_COMMENT" => array(), "=DATE_CREATE" => $DB->GetNowFunction(), "=DATE_PUBLISH" => $DB->GetNowFunction(), "AUTHOR_ID" => !empty($arResult["ELEMENT"]["CREATED_BY"]) ? $arResult["ELEMENT"]["CREATED_BY"] : 1, "BLOG_ID" => $arBlog["ID"], "ENABLE_TRACKBACK" => "N");
         $newID = CBlogPost::Add($arFields);
         if ($newID > 0) {
             foreach ($arCategory as $key) {
                 CBlogPostCategory::Add(array("BLOG_ID" => $arBlog["ID"], "POST_ID" => $newID, "CATEGORY_ID" => $key));
             }
             BXClearCache(True, "/" . SITE_ID . "/blog/" . $arBlog["URL"]);
             BXClearCache(True, "/" . SITE_ID . "/blog/last_messages/");
             BXClearCache(True, "/" . SITE_ID . "/blog/groups/" . $arBlog["GROUP_ID"] . "/");
             $iCommentID = $newID;
             CIBlockElement::SetPropertyValues($arResult["ELEMENT"]["ID"], $arParams["IBLOCK_ID"], $iCommentID, "BLOG_POST_ID");
         }
     }
     $arResult["COMMENT_ID"] = $iCommentID;
     if ($arParams["CACHE_TIME"] > 0) {
         $cache->StartDataCache($arParams["CACHE_TIME"], $cache_id, $cache_path);
         $cache->EndDataCache(array("COMMENT_ID" => $arResult["COMMENT_ID"], "ELEMENT" => $arResult["ELEMENT"]));
     }
 }
 /*************************************************************************
 					/Caching
 	*************************************************************************/
 if (class_exists('CSocNetPhotoCommentEvent')) {
     $obPhotoCommentEventHandler = new CSocNetPhotoCommentEvent();
コード例 #21
0
ファイル: blog_post.php プロジェクト: akniyev/arteva.ru
	function Update($ID, $arFields, $bSearchIndex = true)
	{
		global $DB;

		$ID = IntVal($ID);
		if(strlen($arFields["PATH"]) > 0)
			$arFields["PATH"] = str_replace("#post_id#", $ID, $arFields["PATH"]);

		$arFields1 = array();
		foreach ($arFields as $key => $value)
		{
			if (substr($key, 0, 1) == "=")
			{
				$arFields1[substr($key, 1)] = $value;
				unset($arFields[$key]);
			}
		}

		if (!CBlogPost::CheckFields("UPDATE", $arFields, $ID))
			return false;
		elseif(!$GLOBALS["USER_FIELD_MANAGER"]->CheckFields("BLOG_POST", $ID, $arFields))
			return false;

		foreach(GetModuleEvents("blog", "OnBeforePostUpdate", true) as $arEvent)
		{
			if (ExecuteModuleEventEx($arEvent, Array($ID, &$arFields))===false)
				return false;
		}

		$arOldPost = CBlogPost::GetByID($ID);

		if(is_array($arFields["ATTACH_IMG"]))
		{
			if (
				!array_key_exists("MODULE_ID", $arFields["ATTACH_IMG"])
				|| strlen($arFields["ATTACH_IMG"]["MODULE_ID"]) <= 0
			)
				$arFields["ATTACH_IMG"]["MODULE_ID"] = "blog";

			$prefix = "blog";
			if(strlen($arFields["URL"]) > 0)
				$prefix .= "/".$arFields["URL"];
			CFile::SaveForDB($arFields, "ATTACH_IMG", $prefix);
		}

		$strUpdate = $DB->PrepareUpdate("b_blog_post", $arFields);

		foreach ($arFields1 as $key => $value)
		{
			if (strlen($strUpdate) > 0)
				$strUpdate .= ", ";
			$strUpdate .= $key."=".$value." ";
		}

		if (strlen($strUpdate) > 0)
		{
			$oldPostPerms = CBlogUserGroup::GetGroupPerms(1, $arOldPost["BLOG_ID"], $ID, BLOG_PERMS_POST);

			$strSql =
				"UPDATE b_blog_post SET ".
				"	".$strUpdate." ".
				"WHERE ID = ".$ID." ";
			$DB->Query($strSql, False, "File: ".__FILE__."<br>Line: ".__LINE__);

			unset($GLOBALS["BLOG_POST"]["BLOG_POST_CACHE_".$ID]);

			foreach(GetModuleEvents("blog", "OnBeforePostUserFieldUpdate", true) as $arEvent)
				ExecuteModuleEventEx($arEvent, Array("BLOG_POST", $ID, $arFields));

			$GLOBALS["USER_FIELD_MANAGER"]->Update("BLOG_POST", $ID, $arFields);
		}
		else
		{
			$ID = False;
		}

		if ($ID)
		{
			$arNewPost = CBlogPost::GetByID($ID);
			if($arNewPost["PUBLISH_STATUS"] != $arOldPost["PUBLISH_STATUS"]  || $arNewPost["BLOG_ID"] != $arOldPost["BLOG_ID"])
				CBlog::SetStat($arNewPost["BLOG_ID"]);

			if ($arNewPost["BLOG_ID"] != $arOldPost["BLOG_ID"])
				CBlog::SetStat($arOldPost["BLOG_ID"]);

			if (is_set($arFields, "PERMS_POST"))
				CBlogPost::SetPostPerms($ID, $arFields["PERMS_POST"], BLOG_PERMS_POST);
			if (is_set($arFields, "PERMS_COMMENT"))
				CBlogPost::SetPostPerms($ID, $arFields["PERMS_COMMENT"], BLOG_PERMS_COMMENT);

			if(array_key_exists("SOCNET_RIGHTS", $arFields))
			{
				$arFields["SC_PERM_OLD"] = CBlogPost::GetSocNetPermsCode($ID);
				$arFields["SC_PERM"] = CBlogPost::UpdateSocNetPerms($ID, $arFields["SOCNET_RIGHTS"], $arNewPost);
			}

			foreach(GetModuleEvents("blog", "OnPostUpdate", true) as $arEvent)
				ExecuteModuleEventEx($arEvent, Array($ID, &$arFields));

			if ($bSearchIndex && CModule::IncludeModule("search"))
			{
				$newPostPerms = CBlogUserGroup::GetGroupPerms(1, $arNewPost["BLOG_ID"], $ID, BLOG_PERMS_POST);
				$arBlog = CBlog::GetByID($arNewPost["BLOG_ID"]);

				if (
					$arOldPost["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_PUBLISH &&
					$oldPostPerms >= BLOG_PERMS_READ
					&& (
						$arNewPost["PUBLISH_STATUS"] != BLOG_PUBLISH_STATUS_PUBLISH ||
						$newPostPerms < BLOG_PERMS_READ
						)
					|| $arBlog["SEARCH_INDEX"] != "Y"
					)
				{
					CSearch::Index("blog", "P".$ID,
						array(
							"TITLE" => "",
							"BODY" => ""
						)
					);
					CSearch::DeleteIndex("blog", false, "COMMENT", $arBlog["ID"]."|".$ID);
				}
				elseif (
					$arNewPost["DATE_PUBLISHED"] == "Y"
					&& $arNewPost["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_PUBLISH
					&& $newPostPerms >= BLOG_PERMS_READ
					&& $arBlog["SEARCH_INDEX"] == "Y"
					)
				{
					$tag = "";
					$arGroup = CBlogGroup::GetByID($arBlog["GROUP_ID"]);
					if(strlen($arFields["PATH"]) > 0)
					{
						$arPostSite = array($arGroup["SITE_ID"] => $arFields["PATH"]);
					}
					elseif(strlen($arNewPost["PATH"]) > 0)
					{
						$arNewPost["PATH"] = (
							strlen($arNewPost["CODE"]) > 0 
								? str_replace("#post_id#", $arNewPost["CODE"], $arNewPost["PATH"]) 
								: str_replace("#post_id#", $ID, $arNewPost["PATH"])
						);
						$arPostSite = array($arGroup["SITE_ID"] => $arNewPost["PATH"]);
					}
					else
					{
						$arPostSite = array(
							$arGroup["SITE_ID"] => CBlogPost::PreparePath(
									$arBlog["URL"],
									$arNewPost["ID"],
									$arGroup["SITE_ID"],
									false,
									$arBlog["OWNER_ID"],
									$arBlog["SOCNET_GROUP_ID"]
								)
						);
					}

					if (
						$arBlog["USE_SOCNET"] == "Y" 
						&& CModule::IncludeModule("extranet")
					)
					{
						$arPostSiteExt = CExtranet::GetSitesByLogDestinations($arFields["SC_PERM"]);
						foreach($arPostSiteExt as $lid)
						{
							if (!array_key_exists($lid, $arPostSite))
							{
								$arPostSite[$lid] = str_replace(
									array("#user_id#", "#post_id#"), 
									array($arBlog["OWNER_ID"], $arNewPost["ID"]), 
									COption::GetOptionString("socialnetwork", "userblogpost_page", false, $lid)
								);
							}
						}
					}

					if(strlen($arNewPost["CATEGORY_ID"])>0)
					{
						$arC = explode(",", $arNewPost["CATEGORY_ID"]);
						$arTag = Array();
						foreach($arC as $v)
						{
							$arCategory = CBlogCategory::GetByID($v);
							$arTag[] = $arCategory["NAME"];
						}
						$tag =  implode(",", $arTag);
					}

					$searchContent = blogTextParser::killAllTags($arNewPost["DETAIL_TEXT"]);
					$searchContent .= "\r\n" . $GLOBALS["USER_FIELD_MANAGER"]->OnSearchIndex("BLOG_POST", $arNewPost["ID"]);

					$authorName = "";
					if(IntVal($arNewPost["AUTHOR_ID"]) > 0)
					{
						$dbUser = CUser::GetByID($arNewPost["AUTHOR_ID"]);
						if($arUser = $dbUser->Fetch())
						{
							$arTmpUser = array(
									"NAME" => $arUser["NAME"],
									"LAST_NAME" => $arUser["LAST_NAME"],
									"SECOND_NAME" => $arUser["SECOND_NAME"],
									"LOGIN" => $arUser["LOGIN"],
								);
							$authorName = CUser::FormatName(CSite::GetNameFormat(), $arTmpUser, false, false);
							if(strlen($authorName) > 0)
								$searchContent .= "\r\n".$authorName;
						}
					}

					$arSearchIndex = array(
						"SITE_ID" => $arPostSite,
						"LAST_MODIFIED" => $arNewPost["DATE_PUBLISH"],
						"PARAM1" => "POST",
						"PARAM2" => $arNewPost["BLOG_ID"],
						"PARAM3" => $arNewPost["ID"],
						"PERMISSIONS" => array(2),
						"TITLE" => $arNewPost["TITLE"],
						"BODY" => $searchContent,
						"TAGS" => $tag,
						"USER_ID" => $arNewPost["AUTHOR_ID"],
						"ENTITY_TYPE_ID" => "BLOG_POST",
						"ENTITY_ID" => $arNewPost["ID"],
					);

					$bIndexComment = false;
					if($arBlog["USE_SOCNET"] == "Y")
					{
						if(!empty($arFields["SC_PERM"]))
						{
							$arSearchIndex["PERMISSIONS"] = $arFields["SC_PERM"];
							if($arFields["SC_PERM"] != $arFields["SC_PERM_OLD"])
								$bIndexComment = true;
						}
						else
							$arSearchIndex["PERMISSIONS"] = CBlogPost::GetSocnetPermsCode($ID);

						if(!in_array("U".$arNewPost["AUTHOR_ID"], $arSearchIndex["PERMISSIONS"]))
							$arSearchIndex["PERMISSIONS"][] = "U".$arNewPost["AUTHOR_ID"];

						if(is_array($arSearchIndex["PERMISSIONS"]))
						{
							$sgId = array();
							foreach($arSearchIndex["PERMISSIONS"] as $perm)
							{
								if(strpos($perm, "SG") !== false)
								{
									$sgIdTmp = str_replace("SG", "", substr($perm, 0, strpos($perm, "_")));
									if(!in_array($sgIdTmp, $sgId) && IntVal($sgIdTmp) > 0)
										$sgId[] = $sgIdTmp;
								}
							}

							if(!empty($sgId))
							{
								$arSearchIndex["PARAMS"] = array(
									"socnet_group" => $sgId,
									"entity" => "socnet_group",
								);
							}
						}

						// get mentions and grats
						$arMentionedUserID = CBlogPost::GetMentionedUserID($arNewPost);
						if (!empty($arMentionedUserID))
						{
							if (!isset($arSearchIndex["PARAMS"]))
							{
								$arSearchIndex["PARAMS"] = array();
							}
							$arSearchIndex["PARAMS"]["mentioned_user_id"] = $arMentionedUserID;
						}
					}

					CSearch::Index("blog", "P".$ID, $arSearchIndex, True);

					if(($arOldPost["PUBLISH_STATUS"] != BLOG_PUBLISH_STATUS_PUBLISH && $arNewPost["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_PUBLISH) || $bIndexComment) //index comments
					{
						$arParamsComment = Array(
							"BLOG_ID" => $arBlog["ID"],
							"POST_ID" => $ID,
							"SITE_ID" => $arGroup["SITE_ID"],
							"PATH" => $arPostSite[$arGroup["SITE_ID"]]."?commentId=#comment_id###comment_id#",
							"BLOG_URL" => $arBlog["URL"],
							"OWNER_ID" => $arBlog["OWNER_ID"],
							"SOCNET_GROUP_ID" => $arBlog["SOCNET_GROUP_ID"],
							"USE_SOCNET" => $arBlog["USE_SOCNET"],
						);

						CBlogComment::_IndexPostComments($arParamsComment);
					}
				}
			}
		}

		BXClearCache(true, '/blog/socnet_post/gen/'.$ID);

		return $ID;
	}
コード例 #22
0
ファイル: component.php プロジェクト: Satariall/izurit
                if (empty($arResultNFCache["ERROR_MESSAGE"])) {
                    if (intval($_GET["hide_id"]) > 0 || intval($_GET["show_id"]) > 0) {
                        $Notify = CIdeaManagment::getInstance()->Notification(array("ID" => $postId));
                        if (intval($_GET["hide_id"]) > 0) {
                            $Notify->getSonetNotify()->HideMessage();
                        } else {
                            $Notify->getSonetNotify()->ShowMessage();
                        }
                    }
                    BXClearCache(True, "/" . SITE_ID . "/idea/" . $arResult["BLOG"]["ID"] . "/first_page/");
                    BXClearCache(True, "/" . SITE_ID . "/idea/" . $arResult["BLOG"]["ID"] . "/pages/");
                    BXClearCache(True, "/" . SITE_ID . "/idea/" . $arResult["BLOG"]["ID"] . "/post/" . $postId . "/");
                    BXClearCache(True, '/' . SITE_ID . '/idea/statistic_list/');
                    BXClearCache(True, '/' . SITE_ID . '/idea/tags/');
                    //RSS
                    BXClearCache(True, "/" . SITE_ID . "/idea/" . $arResult["BLOG"]["ID"] . "/rss_list");
                    LocalRedirect($APPLICATION->GetCurPageParam("success=Y", array("sessid", "success")));
                }
            }
        }
    }
}
/********************************************************************
				/Actions
********************************************************************/
/********************************************************************
				Data
********************************************************************/
if ($CACHE_TIME > 0 && $cache->InitCache($CACHE_TIME, $cache_id, $cache_path)) {
    $Vars = $cache->GetVars();
    foreach ($Vars["arResult"] as $k => $v) {
コード例 #23
0
ファイル: blog.php プロジェクト: k-kalashnikov/geekcon_new
                if (!CBlog::Delete($ID)) {
                    $DB->Rollback();
                    if ($ex = $APPLICATION->GetException()) {
                        $lAdmin->AddGroupError($ex->GetString(), $ID);
                    } else {
                        $lAdmin->AddGroupError(GetMessage("BLB_DELETE_ERROR"), $ID);
                    }
                }
                $DB->Commit();
                if (!empty($arBlogOld)) {
                    BXClearCache(True, "/" . $arBlogOld["GROUP_SITE_ID"] . "/blog/");
                    BXClearCache(True, "/" . SITE_ID . "/blog/last_messages/");
                    BXClearCache(True, "/" . SITE_ID . "/blog/commented_posts/");
                    BXClearCache(True, "/" . SITE_ID . "/blog/popular_posts/");
                    BXClearCache(True, "/" . SITE_ID . "/blog/last_comments/");
                    BXClearCache(True, "/" . SITE_ID . "/blog/popular_blogs/");
                }
                break;
        }
    }
}
$arHeaders = array(array("id" => "ID", "content" => "ID", "sort" => "ID", "default" => true), array("id" => "NAME", "content" => GetMessage("BLB_NAME"), "sort" => "NAME", "default" => true), array("id" => "DATE_CREATE", "content" => GetMessage('BLB_DATE_CREATE'), "sort" => "DATE_CREATE", "default" => true), array("id" => "DATE_UPDATE", "content" => GetMessage('BLB_DATE_UPDATE'), "sort" => "DATE_UPDATE", "default" => true), array("id" => "ACTIVE", "content" => GetMessage('BLB_ACTIVE'), "sort" => "ACTIVE", "default" => true), array("id" => "OWNER_INFO", "content" => GetMessage('BLB_OWNER_ID'), "sort" => "", "default" => true), array("id" => "SOCNET_GROUP_ID", "content" => GetMessage('BLB_SOCNET_GROUP_ID'), "sort" => "SOCNET_GROUP_ID"), array("id" => "URL", "content" => GetMessage('BLB_URL'), "sort" => "URL", "default" => true), array("id" => "GROUP_ID", "content" => GetMessage('BLB_GROUP_ID'), "sort" => "GROUP_ID", "default" => true), array("id" => "USE_SOCNET", "content" => GetMessage('BLB_USE_SOCNET'), "sort" => "USE_SOCNET", "default" => false));
$USER_FIELD_MANAGER->AdminListAddHeaders("BLOG_BLOG", $arHeaders);
$lAdmin->AddHeaders($arHeaders);
$arVisibleColumns = $lAdmin->GetVisibleHeaderColumns();
$arSelectedFields = array("ID", "NAME", "DATE_CREATE", "DATE_UPDATE", "ACTIVE", "OWNER_ID", "URL", "REAL_URL", "GROUP_ID", "OWNER_LOGIN", "OWNER_NAME", "OWNER_LAST_NAME", "OWNER_EMAIL", "GROUP_NAME", "GROUP_SITE_ID", "SOCNET_GROUP_ID", "USE_SOCNET");
foreach ($arVisibleColumns as $val) {
    if (!in_array($val, $arSelectedFields)) {
        $arSelectedFields[] = $val;
    }
}
コード例 #24
0
ファイル: forumimporter.php プロジェクト: ASDAFF/mp
	public static function clearCache()
	{
		if ($rsCacheDir = opendir($_SERVER['DOCUMENT_ROOT'] . '/bitrix/cache'))
		{
			while (false !== ($entry = readdir($rsCacheDir)))
			{
				BXClearCache(true, "/$entry/prmedia");
			}

			closedir($rsCacheDir);
		}
	}
コード例 #25
0
ファイル: component.php プロジェクト: Satariall/izurit
         if (CBlogPost::Update($arParams["ID"], array("PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_READY))) {
             BXClearCache(True, "/" . SITE_ID . "/blog/" . $arBlog["URL"] . "/first_page/");
             BXClearCache(True, "/" . SITE_ID . "/blog/" . $arBlog["URL"] . "/pages/");
             BXClearCache(True, "/" . SITE_ID . "/blog/" . $arBlog["URL"] . "/calendar/");
             BXClearCache(True, "/" . SITE_ID . "/blog/" . $arBlog["URL"] . "/post/" . $arParams["ID"] . "/");
             BXClearCache(True, "/" . SITE_ID . "/blog/last_messages/");
             BXClearCache(True, "/" . SITE_ID . "/blog/commented_posts/");
             BXClearCache(True, "/" . SITE_ID . "/blog/popular_posts/");
             BXClearCache(True, "/" . SITE_ID . "/blog/last_comments/");
             BXClearCache(True, "/" . SITE_ID . "/blog/groups/" . $arBlog["GROUP_ID"] . "/");
             BXClearCache(True, "/" . SITE_ID . "/blog/" . $arBlog["URL"] . "/trackback/" . $arParams["ID"] . "/");
             BXClearCache(True, "/" . SITE_ID . "/blog/" . $arBlog["URL"] . "/rss_out/");
             BXClearCache(True, "/" . SITE_ID . "/blog/" . $arBlog["URL"] . "/rss_all/");
             BXClearCache(True, "/" . SITE_ID . "/blog/rss_sonet/");
             BXClearCache(True, "/" . SITE_ID . "/blog/rss_all/");
             BXClearCache(True, "/" . SITE_ID . "/blog/last_messages_list_extranet/");
             $url = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("blog" => $arBlog["URL"], "user_id" => $arBlog["OWNER_ID"], "group_id" => $arBlog["SOCNET_GROUP_ID"]));
             if (strpos($url, "?") === false) {
                 $url .= "?";
             } else {
                 $url .= "&";
             }
             $url .= "hide_id=" . $arParams["ID"] . "&success=Y";
             LocalRedirect($url);
         } else {
             $arResult["ERROR_MESSAGE"] .= GetMessage("BLOG_BLOG_BLOG_MES_HIDE_ERROR") . '<br />';
         }
     } else {
         $arResult["ERROR_MESSAGE"] .= GetMessage("BLOG_BLOG_BLOG_MES_HIDE_NO_RIGHTS") . '<br />';
     }
 }
コード例 #26
0
 public static function PostIntoBuzzAsBlog($userTwit, $arSiteId = array(), $userLogin = '')
 {
     global $DB;
     if (!CModule::IncludeModule("blog")) {
         return;
     }
     $arParams = array();
     if (IsModuleInstalled('bitrix24') && defined('BX24_HOST_NAME') && $userLogin != '') {
         if ($arUserTwit = unserialize(base64_decode($userTwit))) {
             $userTwit = $arUserTwit;
         }
         if ($arSiteIdCheck = unserialize(base64_decode($arSiteId))) {
             $arSiteId = $arSiteIdCheck;
         }
         $dbUser = CUser::GetByLogin($userLogin);
         if ($arUser = $dbUser->Fetch()) {
             $arParams["USER_ID"] = $arUser["ID"];
         }
     } else {
         $arParams["USER_ID"] = $userTwit['kp_user_id'];
     }
     if (isset($arSiteId[$userTwit['kp_user_id']])) {
         $siteId = $arSiteId[$userTwit['kp_user_id']];
     }
     if (strlen($siteId) <= 0) {
         $siteId = SITE_ID;
     }
     if (isset($userTwit['text'])) {
         $arParams["GROUP_ID"] = COption::GetOptionString("socialnetwork", "userbloggroup_id", false, $siteId);
         $arParams["PATH_TO_BLOG"] = COption::GetOptionString("socialnetwork", "userblogpost_page", false, $siteId);
         $arParams["PATH_TO_SMILE"] = COption::GetOptionString("socialnetwork", "smile_page", false, $siteId);
         $arParams["NAME_TEMPLATE"] = COption::GetOptionString("main", "TOOLTIP_NAME_TEMPLATE", false, $siteId);
         $arParams["SHOW_LOGIN"] = '******';
         $arParams["PATH_TO_POST"] = $arParams["PATH_TO_BLOG"];
         $arFilterblg = array("ACTIVE" => "Y", "USE_SOCNET" => "Y", "GROUP_ID" => $arParams["GROUP_ID"], "GROUP_SITE_ID" => $siteId, "OWNER_ID" => $arParams["USER_ID"]);
         $groupId = is_array($arParams["GROUP_ID"]) ? IntVal($arParams["GROUP_ID"][0]) : IntVal($arParams["GROUP_ID"]);
         if (isset($GLOBALS["BLOG_POST"]["BLOG_P_" . $groupId . "_" . $arParams["USER_ID"]]) && !empty($GLOBALS["BLOG_POST"]["BLOG_P_" . $groupId . "_" . $arParams["USER_ID"]])) {
             $arBlog = $GLOBALS["BLOG_POST"]["BLOG_P_" . $groupId . "_" . $arParams["USER_ID"]];
         } else {
             $dbBl = CBlog::GetList(array(), $arFilterblg);
             $arBlog = $dbBl->Fetch();
             if (!$arBlog && IsModuleInstalled("intranet")) {
                 $arBlog = CBlog::GetByOwnerID($arParams["USER_ID"]);
             }
             $GLOBALS["BLOG_POST"]["BLOG_P_" . $groupId . "_" . $arParams["USER_ID"]] = $arBlog;
         }
         $arResult["Blog"] = $arBlog;
         if (empty($arBlog)) {
             if (!empty($arParams["GROUP_ID"])) {
                 $arFields = array("=DATE_UPDATE" => $DB->CurrentTimeFunction(), "GROUP_ID" => is_array($arParams["GROUP_ID"]) ? IntVal($arParams["GROUP_ID"][0]) : IntVal($arParams["GROUP_ID"]), "ACTIVE" => "Y", "ENABLE_COMMENTS" => "Y", "ENABLE_IMG_VERIF" => "Y", "EMAIL_NOTIFY" => "Y", "ENABLE_RSS" => "Y", "ALLOW_HTML" => "N", "ENABLE_TRACKBACK" => "N", "SEARCH_INDEX" => "Y", "USE_SOCNET" => "Y", "=DATE_CREATE" => $DB->CurrentTimeFunction(), "PERMS_POST" => array(1 => "I", 2 => "I"), "PERMS_COMMENT" => array(1 => "P", 2 => "P"));
                 $bRights = false;
                 $rsUser = CUser::GetByID($arParams["USER_ID"]);
                 $arUser = $rsUser->Fetch();
                 if (strlen($arUser["NAME"] . "" . $arUser["LAST_NAME"]) <= 0) {
                     $arFields["NAME"] = GetMessage("BLG_NAME") . " " . $arUser["LOGIN"];
                 } else {
                     $arFields["NAME"] = GetMessage("BLG_NAME") . " " . $arUser["NAME"] . " " . $arUser["LAST_NAME"];
                 }
                 $arFields["URL"] = str_replace(" ", "_", $arUser["LOGIN"]) . "-blog-" . SITE_ID;
                 $arFields["OWNER_ID"] = $arParams["USER_ID"];
                 $urlCheck = preg_replace("/[^a-zA-Z0-9_-]/is", "", $arFields["URL"]);
                 if ($urlCheck != $arFields["URL"]) {
                     $arFields["URL"] = "u" . $arParams["USER_ID"] . "-blog-" . SITE_ID;
                 }
                 if (CBlog::GetByUrl($arFields["URL"])) {
                     $uind = 0;
                     do {
                         $uind++;
                         $arFields["URL"] = $arFields["URL"] . $uind;
                     } while (CBlog::GetByUrl($arFields["URL"]));
                 }
                 $featureOperationPerms = CSocNetFeaturesPerms::GetOperationPerm(SONET_ENTITY_USER, $arFields["OWNER_ID"], "blog", "view_post");
                 if ($featureOperationPerms == SONET_RELATIONS_TYPE_ALL) {
                     $bRights = true;
                 }
                 $arFields["PATH"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("blog" => $arFields["URL"], "user_id" => $arFields["OWNER_ID"], "group_id" => $arFields["SOCNET_GROUP_ID"]));
                 $blogID = CBlog::Add($arFields);
                 if ($bRights) {
                     CBlog::AddSocnetRead($blogID);
                 }
                 $arBlog = CBlog::GetByID($blogID, $arParams["GROUP_ID"]);
             }
         }
         //	$DATE_PUBLISH = "";
         //	if(strlen($_POST["DATE_PUBLISH_DEF"]) > 0)
         //		$DATE_PUBLISH = $_POST["DATE_PUBLISH_DEF"];
         //	elseif (strlen($_POST["DATE_PUBLISH"])<=0)
         $DATE_PUBLISH = ConvertTimeStamp(time() + CTimeZone::GetOffset(), "FULL");
         //	else
         //		$DATE_PUBLISH = $_POST["DATE_PUBLISH"];
         $arFields = array("DETAIL_TEXT" => $userTwit['text'], "DETAIL_TEXT_TYPE" => "text", "DATE_PUBLISH" => $DATE_PUBLISH, "PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_PUBLISH, "PATH" => CComponentEngine::MakePathFromTemplate(htmlspecialcharsBack($arParams["PATH_TO_POST"]), array("post_id" => "#post_id#", "user_id" => $arBlog["OWNER_ID"])), "URL" => $arBlog["URL"], "SOURCE_TYPE" => "twitter");
         $arFields["PERMS_POST"] = array();
         $arFields["PERMS_COMMENT"] = array();
         $arFields["MICRO"] = "N";
         if (strlen($arFields["TITLE"]) <= 0) {
             $arFields["MICRO"] = "Y";
             $arFields["TITLE"] = trim(blogTextParser::killAllTags($arFields["DETAIL_TEXT"]));
             if (strlen($arFields["TITLE"]) <= 0) {
                 $arFields["TITLE"] = GetMessage("BLOG_EMPTY_TITLE_PLACEHOLDER");
             }
         }
         $arFields["SOCNET_RIGHTS"] = array();
         if (!empty($userTwit['user_perms'])) {
             $bOne = true;
             foreach ($userTwit['user_perms'] as $v => $k) {
                 if (strlen($v) > 0 && is_array($k) && !empty($k)) {
                     foreach ($k as $vv) {
                         if (strlen($vv) > 0) {
                             $arFields["SOCNET_RIGHTS"][] = $vv;
                             if ($v != "SG") {
                                 $bOne = false;
                             }
                         }
                     }
                 }
             }
             if ($bOne && !empty($userTwit['user_perms']["SG"])) {
                 $bOnesg = false;
                 $bFirst = true;
                 $oGrId = 0;
                 foreach ($userTwit['user_perms']["SG"] as $v) {
                     if (strlen($v) > 0) {
                         if ($bFirst) {
                             $bOnesg = true;
                             $bFirst = false;
                             $v = str_replace("SG", "", $v);
                             $oGrId = IntVal($v);
                         } else {
                             $bOnesg = false;
                         }
                     }
                 }
                 if ($bOnesg) {
                     if (!CSocNetFeaturesPerms::CanPerformOperation($arParams["USER_ID"], SONET_ENTITY_GROUP, $oGrId, "blog", "write_post") && !CSocNetFeaturesPerms::CanPerformOperation($arParams["USER_ID"], SONET_ENTITY_GROUP, $oGrId, "blog", "moderate_post") && !CSocNetFeaturesPerms::CanPerformOperation($arParams["USER_ID"], SONET_ENTITY_GROUP, $oGrId, "blog", "full_post")) {
                         $arFields["PUBLISH_STATUS"] = BLOG_PUBLISH_STATUS_READY;
                     }
                 }
             }
         }
         $bError = false;
         /*	if (CModule::IncludeModule('extranet') && !CExtranet::IsIntranetUser())
         			{
         				if(empty($arFields["SOCNET_RIGHTS"]) || in_array("UA", $arFields["SOCNET_RIGHTS"]))
         				{
         					$bError = true;
         					$arResult["ERROR_MESSAGE"] = GetMessage("BLOG_BPE_EXTRANET_ERROR");
         				}
         			}*/
         if (!$bError) {
             preg_match_all("/\\[user\\s*=\\s*([^\\]]*)\\](.+?)\\[\\/user\\]/ies" . BX_UTF_PCRE_MODIFIER, $userTwit['text'], $arMention);
             $arFields["=DATE_CREATE"] = $DB->GetNowFunction();
             $arFields["AUTHOR_ID"] = $arParams["USER_ID"];
             $arFields["BLOG_ID"] = $arBlog["ID"];
             $newID = CBlogPost::Add($arFields);
             $socnetRightsOld = array("U" => array());
             $bAdd = true;
             $bNeedMail = false;
             if ($newID) {
                 $arFields["ID"] = $newID;
                 $arParamsNotify = array("bSoNet" => true, "UserID" => $arParams["USER_ID"], "allowVideo" => $arResult["allowVideo"], "PATH_TO_SMILE" => $arParams["PATH_TO_SMILE"], "PATH_TO_POST" => $arParams["PATH_TO_POST"], "SOCNET_GROUP_ID" => $arParams["GROUP_ID"], "user_id" => $arParams["USER_ID"], "NAME_TEMPLATE" => $arParams["NAME_TEMPLATE"], "SHOW_LOGIN" => $arParams["SHOW_LOGIN"]);
                 CBlogPost::Notify($arFields, $arBlog, $arParamsNotify);
             }
         }
         if ($newID > 0 && strlen($arResult["ERROR_MESSAGE"]) <= 0 && $arFields["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_PUBLISH) {
             BXClearCache(true, "/" . SITE_ID . "/blog/last_messages_list/");
             $arFieldsIM = array("TYPE" => "POST", "TITLE" => $arFields["TITLE"], "URL" => CComponentEngine::MakePathFromTemplate(htmlspecialcharsBack($arParams["PATH_TO_POST"]), array("post_id" => $newID, "user_id" => $arBlog["OWNER_ID"])), "ID" => $newID, "FROM_USER_ID" => $arParams["USER_ID"], "TO_USER_ID" => array(), "TO_SOCNET_RIGHTS" => $arFields["SOCNET_RIGHTS"], "TO_SOCNET_RIGHTS_OLD" => $socnetRightsOld["U"]);
             if (!empty($arMentionOld)) {
                 $arFieldsIM["MENTION_ID_OLD"] = $arMentionOld[1];
             }
             if (!empty($arMention)) {
                 $arFieldsIM["MENTION_ID"] = $arMention[1];
             }
             CBlogPost::NotifyIm($arFieldsIM);
             $arParams["ID"] = $newID;
             if (!empty($_POST["SPERM"]["SG"])) {
                 foreach ($_POST["SPERM"]["SG"] as $v) {
                     $group_id_tmp = substr($v, 2);
                     if (IntVal($group_id_tmp) > 0) {
                         CSocNetGroup::SetLastActivity(IntVal($group_id_tmp));
                     }
                 }
             }
         }
     }
 }
コード例 #27
0
ファイル: component.php プロジェクト: Satariall/izurit
             if (strlen($link) > 0) {
                 if ($type == "U" && IntVal($id) > 0) {
                     $arNewRightsName[] = "[user="******"]" . htmlspecialcharsback($name) . "[/user]";
                 } else {
                     $arNewRightsName[] = "[url=" . $link . "]" . htmlspecialcharsback($name) . "[/url]";
                 }
             } else {
                 $arNewRightsName[] = htmlspecialcharsback($name);
             }
         }
     }
 }
 $UserIP = CBlogUser::GetUserIP();
 $arComFields = array("POST_ID" => $arParams["ID"], "BLOG_ID" => $arPost["BLOG_ID"], "POST_TEXT" => (count($arNewRightsName) > 1 ? GetMessage("B_B_SHARE") : GetMessage("B_B_SHARE_1")) . implode(", ", $arNewRightsName), "DATE_CREATE" => ConvertTimeStamp(time() + $arResult["TZ_OFFSET"], "FULL"), "AUTHOR_IP" => $UserIP[0], "AUTHOR_IP1" => $UserIP[1], "PARENT_ID" => false, "AUTHOR_ID" => $user_id, "SHARE_DEST" => implode(",", $arNewRights));
 if ($comId = CBlogComment::Add($arComFields)) {
     BXClearCache(true, "/blog/comment/" . intval($arParams["ID"] / 100) . "/" . $arParams["ID"] . "/");
     if (is_callable("CBlogComment::AddLiveComment")) {
         CBlogComment::addLiveComment($comId, "", array());
     }
     if ($arPost["AUTHOR_ID"] != $user_id) {
         $arFieldsIM = array("TYPE" => "SHARE", "TITLE" => htmlspecialcharsback($arPost["TITLE"]), "URL" => CComponentEngine::MakePathFromTemplate(htmlspecialcharsBack($arParams["PATH_TO_POST"]), array("post_id" => $arParams["ID"], "user_id" => $arPost["AUTHOR_ID"])), "ID" => $arParams["ID"], "FROM_USER_ID" => $user_id, "TO_USER_ID" => array($arPost["AUTHOR_ID"]));
         CBlogPost::NotifyIm($arFieldsIM);
     }
     if (!empty($arUsers2Notify)) {
         $arFieldsIM = array("TYPE" => "SHARE2USERS", "TITLE" => htmlspecialcharsback($arPost["TITLE"]), "URL" => CComponentEngine::MakePathFromTemplate(htmlspecialcharsBack($arParams["PATH_TO_POST"]), array("post_id" => $arParams["ID"], "user_id" => $arPost["AUTHOR_ID"])), "ID" => $arParams["ID"], "FROM_USER_ID" => $user_id, "TO_USER_ID" => $arUsers2Notify);
         CBlogPost::NotifyIm($arFieldsIM);
     }
 }
 /* update socnet log rights*/
 $dbRes = CSocNetLog::GetList(array("ID" => "DESC"), array("EVENT_ID" => array("blog_post", "blog_post_important"), "SOURCE_ID" => $arPost["ID"]), false, false, array("ID", "ENTITY_TYPE", "ENTITY_ID"));
 if ($arRes = $dbRes->Fetch()) {
コード例 #28
0
ファイル: cache.php プロジェクト: mrdeadmouse/u136006
function BXClearCache($full = false, $initdir = "")
{
    if ($full !== true && $full !== false && $initdir === "" && is_string($full)) {
        $initdir = $full;
        $full = true;
    }
    $res = true;
    if ($full === true) {
        $obCache = new CPHPCache();
        $obCache->CleanDir($initdir, "cache");
    }
    $path = $_SERVER["DOCUMENT_ROOT"] . BX_PERSONAL_ROOT . "/cache" . $initdir;
    if (is_dir($path) && ($handle = opendir($path))) {
        while (($file = readdir($handle)) !== false) {
            if ($file == "." || $file == "..") {
                continue;
            }
            if (is_dir($path . "/" . $file)) {
                if (!BXClearCache($full, $initdir . "/" . $file)) {
                    $res = false;
                } else {
                    @chmod($path . "/" . $file, BX_DIR_PERMISSIONS);
                    //We suppress error handle here because there may be valid cache files in this dir
                    @rmdir($path . "/" . $file);
                }
            } elseif ($full) {
                @chmod($path . "/" . $file, BX_FILE_PERMISSIONS);
                if (!unlink($path . "/" . $file)) {
                    $res = false;
                }
            } elseif (substr($file, -5) == ".html") {
                if (CPageCache::IsCacheExpired($path . "/" . $file)) {
                    @chmod($path . "/" . $file, BX_FILE_PERMISSIONS);
                    if (!unlink($path . "/" . $file)) {
                        $res = false;
                    }
                }
            } elseif (substr($file, -4) == ".php") {
                if (CPHPCache::IsCacheExpired($path . "/" . $file)) {
                    @chmod($path . "/" . $file, BX_FILE_PERMISSIONS);
                    if (!unlink($path . "/" . $file)) {
                        $res = false;
                    }
                }
            } else {
                //We should skip unknown file
                //it will be deleted with full cache cleanup
            }
        }
        closedir($handle);
    }
    return $res;
}
コード例 #29
0
    function DeletePost($params)
    {
        global $USER;
        $postId = IntVal(CBlogMetaWeblog::DecodeParams($params[1]["#"]["value"][0]["#"]));
        $user = CBlogMetaWeblog::DecodeParams($params[2]["#"]["value"][0]["#"]);
        $password = CBlogMetaWeblog::DecodeParams($params[3]["#"]["value"][0]["#"]);
        if (CBlogMetaWeblog::Authorize($user, $password)) {
            $result = '';
            $userId = $USER->GetID();
            if (IntVal($postId) > 0) {
                $dbPost = CBlogPost::GetList(array(), array("AUTHOR_ID" => $userId, "ID" => $postId), false, array("nTopCount" => 1), array("ID", "BLOG_ID", "AUTHOR_ID"));
                if ($arPost = $dbPost->Fetch()) {
                    CBlogPost::Delete($postId);
                    $arBlog = CBlog::GetByID($arPost["BLOG_ID"]);
                    if (intval($arBlog["SOCNET_GROUP_ID"]) > 0 && CModule::IncludeModule("socialnetwork") && method_exists("CSocNetGroup", "GetSite")) {
                        $arSites = array();
                        $rsGroupSite = CSocNetGroup::GetSite($arBlog["SOCNET_GROUP_ID"]);
                        while ($arGroupSite = $rsGroupSite->Fetch()) {
                            $arSites[] = $arGroupSite["LID"];
                        }
                    } else {
                        $arSites = array(SITE_ID);
                    }
                    foreach ($arSites as $site_id_tmp) {
                        BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/first_page/");
                        BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/pages/");
                        BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/calendar/");
                        BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/post/" . $postId . "/");
                        BXClearCache(True, "/" . $site_id_tmp . "/blog/last_messages/");
                        BXClearCache(True, "/" . $site_id_tmp . "/blog/commented_posts/");
                        BXClearCache(True, "/" . $site_id_tmp . "/blog/popular_posts/");
                        BXClearCache(True, "/" . $site_id_tmp . "/blog/last_comments/");
                        BXClearCache(True, "/" . $site_id_tmp . "/blog/groups/" . $arResult["BLOG"]["GROUP_ID"] . "/");
                        BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/trackback/" . $postId . "/");
                        BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/rss_out/");
                        BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/rss_all/");
                        BXClearCache(True, "/" . $site_id_tmp . "/blog/rss_sonet/");
                        BXClearCache(True, "/" . $site_id_tmp . "/blog/rss_all/");
                    }
                }
            }
            return '<params>
						<param>
							<value>
								<boolean>1</boolean>
							</value>
						</param>
					</params>';
        } else {
            return '<fault>
				<value>
					<struct>
						<member>
							<name>faultCode</name>
							<value><int>3</int></value>
							</member>
						<member>
							<name>faultString</name>
							<value><string>' . $arAuthResult["MESSAGE"] . '</string></value>
							</member>
						</struct>
					</value>
				</fault>';
        }
    }
コード例 #30
0
 }
 if ($newID > 0) {
     $DB->Query("UPDATE b_blog_image SET POST_ID='{$newID}' WHERE BLOG_ID={$BLOG_ID} AND POST_ID=0", true);
     if (strlen($TRACKBACK) > 0) {
         $arPingUrls = explode("\n", $TRACKBACK);
         CBlogTrackback::SendPing($newID, $arPingUrls);
     }
     BXClearCache(True, "/" . SITE_ID . "/blog/" . $arBlog['URL'] . "/first_page/");
     BXClearCache(True, "/" . SITE_ID . "/blog/" . $arBlog['URL'] . "/calendar/");
     BXClearCache(True, "/" . SITE_ID . "/blog/last_messages/");
     BXClearCache(True, "/" . SITE_ID . "/blog/groups/" . $arBlog['GROUP_ID'] . "/");
     BXClearCache(True, "/" . SITE_ID . "/blog/" . $arBlog['URL'] . "/trackback/" . $ID . "/");
     BXClearCache(True, "/" . SITE_ID . "/blog/" . $arBlog['URL'] . "/comment/" . $ID . "/");
     BXClearCache(True, "/" . SITE_ID . "/blog/" . $arBlog['URL'] . "/rss_out/");
     if ($ID > 0) {
         BXClearCache(True, "/" . SITE_ID . "/blog/" . $arBlog['URL'] . "/post/" . $ID . "/");
     }
     if ($is404) {
         if (strlen($_POST['save']) > 0) {
             LocalRedirect($sBlogPath . "/" . $arBlog['URL']);
         } else {
             LocalRedirect($sBlogPath . "/" . $arBlog['URL'] . "/post_edit.php?ID={$newID}");
         }
     } else {
         if (strlen($_POST['save']) > 0) {
             LocalRedirect($sBlogPath . "/blog.php?blog=" . $arBlog['URL']);
         } else {
             LocalRedirect($sBlogPath . "/post_edit.php?blog=" . $arBlog['URL'] . "&post_id={$newID}");
         }
     }
 } else {