if (CModule::IncludeModule("socialnetwork") && $arParams["USE_SOCNET"] == "Y") { unset($arFilter[">PERMS"]); $arSelectFields[] = "SOCNET_BLOG_READ"; $arFilter["USE_SOCNET"] = "Y"; } if ($arParams["SHOW_BLOG_WITHOUT_POSTS"] != "Y") { $arFilter[">LAST_POST_ID"] = 0; } $dbBlog = CBlog::GetList($SORT, $arFilter, false, array("nPageSize" => $arParams["BLOG_COUNT"], "bShowAll" => false), $arSelectFields); $arResult["NAV_STRING"] = $dbBlog->GetPageNavString(GetMessage("B_B_GR_TITLE"), $arParams["NAV_TEMPLATE"], false, $component); $arResult["BLOG"] = array(); while ($arBlog = $dbBlog->GetNext()) { $arBlog["urlToPost"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_POST"], array("blog" => $arBlog["URL"], "post_id" => $arBlog["LAST_POST_ID"], "user_id" => $arBlog["OWNER_ID"])); $arBlog["urlToBlog"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("blog" => $arBlog["URL"], "user_id" => $arBlog["OWNER_ID"])); $arBlog["urlToAuthor"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $arBlog["OWNER_ID"])); $arBlog["AuthorName"] = CBlogUser::GetUserName($arBlog["BLOG_USER_ALIAS"], $arBlog["OWNER_NAME"], $arBlog["OWNER_LAST_NAME"], $arBlog["OWNER_LOGIN"]); $arBlog["BLOG_USER_AVATAR_ARRAY"] = CFile::GetFileArray($arBlog["BLOG_USER_AVATAR"]); if ($arBlog["BLOG_USER_AVATAR_ARRAY"] !== false) { $arBlog["Avatar_resized"] = CFile::ResizeImageGet($arBlog["BLOG_USER_AVATAR_ARRAY"], array("width" => 100, "height" => 100), BX_RESIZE_IMAGE_EXACT, false); $arBlog["BLOG_USER_AVATAR_IMG"] = CFile::ShowImage($arBlog["Avatar_resized"]["src"], 100, 100, 'align="right"'); } $arBlog["LAST_POST_DATE_FORMATED"] = FormatDate($arParams["DATE_TIME_FORMAT"], MakeTimeStamp($arBlog["LAST_POST_DATE"], CSite::GetDateFormat("FULL"))); $arResult["BLOG"][] = $arBlog; } if ($arParams["CACHE_TIME"] > 0) { $cache->EndDataCache(array("templateCachedData" => $this->GetTemplateCachedData(), "arResult" => $arResult)); } } } else { $arResult["FATAL_ERROR"] = GetMessage("B_B_GR_NO_GROUP"); CHTTP::SetStatus("404 Not Found");
} if ($ID > 0) { // Проверяем: новая запись или изменение старой $newID = CBlogPost::Update($ID, $arFields); } else { $arFields['=DATE_CREATE'] = $DB->GetNowFunction(); $arFields['AUTHOR_ID'] = $USER_ID; $arFields['BLOG_ID'] = $BLOG_ID; $newID = CBlogPost::Add($arFields); if ($newID && $arBlog['EMAIL_NOTIFY'] == 'Y' && $USER_ID != $arBlog['OWNER_ID']) { $BlogUser = CBlogUser::GetByID($USER_ID, BLOG_BY_USER_ID); $res = CUser::GetByID($arBlog['OWNER_ID']); $arOwner = $res->Fetch(); $dbUser = CUser::GetByID($USER_ID); $arUser = $dbUser->Fetch(); $AuthorName = CBlogUser::GetUserName($BlogUser["ALIAS"], $arUser["NAME"], $arUser["LAST_NAME"], $arUser["LOGIN"]); CEvent::Send("NEW_BLOG_MESSAGE", SITE_ID, array("BLOG_ID" => $BLOG_ID, "BLOG_NAME" => $arBlog['NAME'], "BLOG_URL" => $arBlog['URL'], "MESSAGE_TITLE" => $_POST['POST_TITLE'], "MESSAGE_TEXT" => $_POST['POST_MESSAGE'], "MESSAGE_DATE" => $DATE_PUBLISH, "MESSAGE_PATH" => "http://" . (COption::GetOptionString("main", "server_name") . $sBlogPath . "/" . ($is404 ? $arBlog['URL'] . "/" . $newID . ".php" : "post.php?blog=" . $arBlog['URL'] . "&post_id=" . $newID)), "AUTHOR" => $AuthorName, "EMAIL_FROM" => COption::GetOptionString("main", "email_from", "*****@*****.**"), "EMAIL_TO" => $arOwner['EMAIL'])); } } 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 . "/");
public static function UpdateLog($commentID, $arBlogUser, $arUser, $arComment, $arPost, $arParams) { if (!CModule::IncludeModule('socialnetwork')) return; $AuthorName = CBlogUser::GetUserName($arBlogUser["~ALIAS"], $arUser["~NAME"], $arUser["~LAST_NAME"], $arUser["~LOGIN"], $arUser["~SECOND_NAME"]); $parserBlog = new blogTextParser(false, $arParams["PATH_TO_SMILE"]); $arAllow = array("HTML" => "N", "ANCHOR" => "N", "BIU" => "N", "IMG" => "N", "QUOTE" => "N", "CODE" => "N", "FONT" => "N", "LIST" => "N", "SMILES" => "N", "NL2BR" => "N", "VIDEO" => "N"); $text4message = $parserBlog->convert($arComment["POST_TEXT"], false, $arParams["IMAGES"], $arAllow, array("isSonetLog"=>true)); $text4mail = $parserBlog->convert4mail($arComment["POST_TEXT"], $arParams["IMAGES"]); $arSoFields = Array( "TITLE_TEMPLATE" => htmlspecialcharsback($AuthorName)." ".GetMessage("BLG_SONET_COMMENT_TITLE"), "TITLE" => $arPost['~TITLE'], "MESSAGE" => $text4message, "TEXT_MESSAGE" => $text4mail ); $dbRes = CSocNetLogComments::GetList( array("ID" => "DESC"), array( "EVENT_ID" => array("blog_comment", "blog_comment_micro"), "SOURCE_ID" => $commentID ), false, false, array("ID") ); while ($arRes = $dbRes->Fetch()) CSocNetLogComments::Update($arRes["ID"], $arSoFields); }
$arResult["IDS"] = $ids; if (!empty($arImgPosts)) { $dbImage = CBlogImage::GetList(array("ID" => "ASC"), array("POST_ID" => $arImgPosts, "IS_COMMENT" => "N")); while ($arImage = $dbImage->Fetch()) { if (empty($arResult[$arImage["POST_ID"]]["IMG"])) { if ($file = CFile::ResizeImageGet($arImage["FILE_ID"], array("width" => $arParams["PREVIEW_WIDTH"], "height" => $arParams["PREVIEW_HEIGHT"]))) { $arResult[$arImage["POST_ID"]]["IMG"] = CFile::ShowImage($file["src"], false, false, 'align="left" hspace="2" vspace="2"'); } } } } if (!empty($arUsrTmp)) { $dbUser = CUser::GetList($b = "ID", $o = "DESC", array("ID" => implode(' | ', $arUsrTmp)), array("FIELDS" => array("ID", "LOGIN", "NAME", "LAST_NAME", "SECOND_NAME", "PERSONAL_PHOTO"))); while ($arUser = $dbUser->GetNext()) { $urlToAuthor = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $arUser["ID"])); $AuthorName = CBlogUser::GetUserName($arUsrTmpAlias[$arUser["ID"]], $arUser["NAME"], $arUser["LAST_NAME"], $arUser["LOGIN"], $arUser["SECOND_NAME"]); foreach ($arUsrTmpPostId[$arUser["ID"]] as $postId) { $arResult[$postId]["arUser"] = $arUser; $arResult[$postId]["urlToAuthor"] = $urlToAuthor; $arResult[$postId]["AuthorName"] = $AuthorName; $arResult[$postId]["~AUTHOR_LOGIN"] = $arUser["~LOGIN"]; $arResult[$postId]["~AUTHOR_SECOND_NAME"] = $arUser["~SECOND_NAME"]; $arResult[$postId]["~AUTHOR_LAST_NAME"] = $arUser["~LAST_NAME"]; $arResult[$postId]["~AUTHOR_NAME"] = $arUser["~NAME"]; } } } } if ($arParams["CACHE_TIME"] > 0) { $cache->EndDataCache(array("templateCachedData" => $this->GetTemplateCachedData(), "arResult" => $arResult)); }
function OnSearchReindex($NS = array(), $oCallback = NULL, $callback_method = "") { global $DB; $arResult = array(); //CBlogSearch::Trace('OnSearchReindex', 'NS', $NS); if ($NS["MODULE"] == "blog" && strlen($NS["ID"]) > 0) { $category = substr($NS["ID"], 0, 1); $id = intval(substr($NS["ID"], 1)); } else { $category = 'B'; //start with blogs $id = 0; //very first id } //CBlogSearch::Trace('OnSearchReindex', 'category+id', array("CATEGORY"=>$category,"ID"=>$id)); //Reindex blogs if ($category == 'B') { $strSql = "\n\t\t\t\tSELECT\n\t\t\t\t\tb.ID\n\t\t\t\t\t,bg.SITE_ID\n\t\t\t\t\t,b.REAL_URL\n\t\t\t\t\t,b.URL\n\t\t\t\t\t," . $DB->DateToCharFunction("b.DATE_UPDATE") . " as DATE_UPDATE\n\t\t\t\t\t,b.NAME\n\t\t\t\t\t,b.DESCRIPTION\n\t\t\t\t\t,b.OWNER_ID\n\t\t\t\t\t,b.SOCNET_GROUP_ID\n\t\t\t\t\t,b.USE_SOCNET\n\t\t\t\t\t,b.SEARCH_INDEX\n\t\t\t\tFROM\n\t\t\t\t\tb_blog b\n\t\t\t\t\tINNER JOIN b_blog_group bg ON (b.GROUP_ID = bg.ID)\n\t\t\t\tWHERE\n\t\t\t\t\tb.ACTIVE = 'Y'\n\t\t\t\t\tAND b.SEARCH_INDEX = 'Y'\n\t\t\t\t\t" . ($NS["SITE_ID"] != "" ? "AND bg.SITE_ID='" . $DB->ForSQL($NS["SITE_ID"]) . "'" : "") . "\n\t\t\t\t\tAND b.ID > " . $id . "\n\t\t\t\tORDER BY\n\t\t\t\t\tb.ID\n\t\t\t"; //CBlogSearch::Trace('OnSearchReindex', 'strSql', $strSql); $rs = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); while ($ar = $rs->Fetch()) { if ($ar["USE_SOCNET"] == "Y") { $Result = array("ID" => "B" . $ar["ID"], "BODY" => "", "TITLE" => ""); } else { //CBlogSearch::Trace('OnSearchReindex', 'ar', $ar); $arSite = array($ar["SITE_ID"] => CBlog::PreparePath($ar["URL"], $ar["SITE_ID"], false, $ar["OWNER_ID"], $ar["SOCNET_GROUP_ID"])); //CBlogSearch::Trace('OnSearchReindex', 'arSite', $arSite); $Result = array("ID" => "B" . $ar["ID"], "LAST_MODIFIED" => $ar["DATE_UPDATE"], "TITLE" => $ar["NAME"], "BODY" => blogTextParser::killAllTags($ar["DESCRIPTION"]), "SITE_ID" => $arSite, "PARAM1" => "BLOG", "PARAM2" => $ar["OWNER_ID"], "PERMISSIONS" => array(2)); //CBlogSearch::Trace('OnSearchReindex', 'Result', $Result); } if ($oCallback) { $res = call_user_func(array($oCallback, $callback_method), $Result); if (!$res) { return $Result["ID"]; } } else { $arResult[] = $Result; } } //all blogs indexed so let's start index posts $category = 'P'; $id = 0; } if ($category == 'P') { $arUser2Blog = array(); if (COption::GetOptionString("blog", "socNetNewPerms", "N") == "N") { $dbB = CBlog::GetList(array(), array("USE_SOCNET" => "Y", "!OWNER_ID" => false), false, false, array("ID", "OWNER_ID", "USE_SOCNET", "GROUP_ID")); while ($arB = $dbB->Fetch()) { $arUser2Blog[$arB["OWNER_ID"]][$arB["GROUP_ID"]] = $arB["ID"]; } } $bSonet = false; if (IsModuleInstalled("socialnetwork")) { $bSonet = true; } $parserBlog = new blogTextParser(false, "/bitrix/images/blog/smile/"); $strSql = "\n\t\t\t\tSELECT\n\t\t\t\t\tbp.ID\n\t\t\t\t\t,bg.SITE_ID\n\t\t\t\t\t,b.REAL_URL\n\t\t\t\t\t,b.URL\n\t\t\t\t\t," . $DB->DateToCharFunction("bp.DATE_PUBLISH") . " as DATE_PUBLISH\n\t\t\t\t\t,bp.TITLE\n\t\t\t\t\t,bp.DETAIL_TEXT\n\t\t\t\t\t,bp.BLOG_ID\n\t\t\t\t\t,b.OWNER_ID\n\t\t\t\t\t,bp.CATEGORY_ID\n\t\t\t\t\t,b.SOCNET_GROUP_ID\n\t\t\t\t\t,b.USE_SOCNET\n\t\t\t\t\t,b.SEARCH_INDEX\n\t\t\t\t\t,b.GROUP_ID\n\t\t\t\t\t,bp.PATH\n\t\t\t\t\t,bp.MICRO\n\t\t\t\t\t,bp.PUBLISH_STATUS\n\t\t\t\t\t,bp.AUTHOR_ID " . ($bSonet ? ", BSL.ID as SLID" : "") . " FROM\n\t\t\t\t\tb_blog_post bp\n\t\t\t\t\tINNER JOIN b_blog b ON (bp.BLOG_ID = b.ID)\n\t\t\t\t\tINNER JOIN b_blog_group bg ON (b.GROUP_ID = bg.ID) " . ($bSonet ? "LEFT JOIN b_sonet_log BSL ON (BSL.EVENT_ID in ('blog_post', 'blog_post_micro') AND BSL.SOURCE_ID = bp.ID) " : "") . " WHERE\n\t\t\t\t\tbp.DATE_PUBLISH <= " . $DB->CurrentTimeFunction() . "\n\t\t\t\t\tAND b.ACTIVE = 'Y'\n\t\t\t\t\t" . ($NS["SITE_ID"] != "" ? "AND bg.SITE_ID='" . $DB->ForSQL($NS["SITE_ID"]) . "'" : "") . "\n\t\t\t\t\tAND bp.ID > " . $id . "\n\t\t\t\t\t\n\t\t\t\tORDER BY\n\t\t\t\t\tbp.ID\n\t\t\t"; /* AND bp.PUBLISH_STATUS = '".$DB->ForSQL(BLOG_PUBLISH_STATUS_PUBLISH)."'*/ //AND b.SEARCH_INDEX = 'Y' //CBlogSearch::Trace('OnSearchReindex', 'strSql', $strSql); $rs = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); while ($ar = $rs->Fetch()) { //Check permissions $tag = ""; if ($ar["USE_SOCNET"] != "Y") { $PostPerms = CBlogUserGroup::GetGroupPerms(1, $ar["BLOG_ID"], $ar["ID"], BLOG_PERMS_POST); if ($PostPerms < BLOG_PERMS_READ) { continue; } } //CBlogSearch::Trace('OnSearchReindex', 'ar', $ar); if (strlen($ar["PATH"]) > 0) { $arSite = array($ar["SITE_ID"] => str_replace("#post_id#", $ar["ID"], $ar["PATH"])); } else { $arSite = array($ar["SITE_ID"] => CBlogPost::PreparePath($ar["URL"], $ar["ID"], $ar["SITE_ID"], false, $ar["OWNER_ID"], $ar["SOCNET_GROUP_ID"])); } if (strlen($ar["CATEGORY_ID"]) > 0) { $arC = explode(",", $ar["CATEGORY_ID"]); $tag = ""; $arTag = array(); foreach ($arC as $v) { $arCategory = CBlogCategory::GetByID($v); $arTag[] = $arCategory["NAME"]; } $tag = implode(",", $arTag); } //CBlogSearch::Trace('OnSearchReindex', 'arSite', $arSite); $Result = array("ID" => "P" . $ar["ID"], "LAST_MODIFIED" => $ar["DATE_PUBLISH"], "TITLE" => blogTextParser::killAllTags($ar["TITLE"]), "BODY" => blogTextParser::killAllTags($ar["DETAIL_TEXT"]), "SITE_ID" => $arSite, "PARAM1" => "POST", "PARAM2" => $ar["BLOG_ID"], "PERMISSIONS" => array(2), "TAGS" => $tag, "USER_ID" => $ar["AUTHOR_ID"], "ENTITY_TYPE_ID" => "BLOG_POST", "ENTITY_ID" => $ar["ID"]); if ($ar["USE_SOCNET"] == "Y" && CModule::IncludeModule("socialnetwork")) { $arF = array(); if (COption::GetOptionString("blog", "socNetNewPerms", "N") == "N") { if (IntVal($ar["SOCNET_GROUP_ID"]) > 0) { $newBlogId = 0; if (IntVal($arUser2Blog[$ar["AUTHOR_ID"]][$ar["GROUP_ID"]]) > 0) { $newBlogId = IntVal($arUser2Blog[$ar["AUTHOR_ID"]][$ar["GROUP_ID"]]); } else { $arFields = array("=DATE_UPDATE" => $DB->CurrentTimeFunction(), "GROUP_ID" => $ar["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($ar["AUTHOR_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-" . $ar["SITE_ID"]; $arFields["OWNER_ID"] = $ar["AUTHOR_ID"]; $urlCheck = preg_replace("/[^a-zA-Z0-9_-]/is", "", $arFields["URL"]); if ($urlCheck != $arFields["URL"]) { $arFields["URL"] = "u" . $arUser["ID"] . "-blog-" . $ar["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, $ar["AUTHOR_ID"], "blog", "view_post"); if ($featureOperationPerms == SONET_RELATIONS_TYPE_ALL) { $bRights = true; } $blogID = CBlog::Add($arFields); if ($bRights) { CBlog::AddSocnetRead($blogID); } $newBlogId = $blogID; $arUser2Blog[$arFields["OWNER_ID"]][$arFields["GROUP_ID"]] = $newBlogId; } if (intVal($newBlogId) > 0) { $arF = array("BLOG_ID" => $newBlogId, "SOCNET_RIGHTS" => array("SG" . $ar["SOCNET_GROUP_ID"])); } if (IntVal($ar["SLID"]) > 0) { CSocNetLog::Delete($ar["SLID"]); $ar["SLID"] = 0; } $arSites = array(); $rsGroupSite = CSocNetGroup::GetSite($ar["SOCNET_GROUP_ID"]); while ($arGroupSite = $rsGroupSite->Fetch()) { $arSites[] = $arGroupSite["LID"]; } } else { $newBlogId = 0; if ($ar["OWNER_ID"] != $ar["AUTHOR_ID"]) { if (IntVal($arUser2Blog[$ar["AUTHOR_ID"]][$ar["GROUP_ID"]]) > 0) { $newBlogId = IntVal($arUser2Blog[$ar["AUTHOR_ID"]][$ar["GROUP_ID"]]); } else { $arFields = array("=DATE_UPDATE" => $DB->CurrentTimeFunction(), "GROUP_ID" => $ar["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($ar["AUTHOR_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-" . $ar["SITE_ID"]; $arFields["OWNER_ID"] = $ar["AUTHOR_ID"]; $urlCheck = preg_replace("/[^a-zA-Z0-9_-]/is", "", $arFields["URL"]); if ($urlCheck != $arFields["URL"]) { $arFields["URL"] = "u" . $arUser["ID"] . "-blog-" . $ar["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, $ar["AUTHOR_ID"], "blog", "view_post"); if ($featureOperationPerms == SONET_RELATIONS_TYPE_ALL) { $bRights = true; } $blogID = CBlog::Add($arFields); if ($bRights) { CBlog::AddSocnetRead($blogID); } $newBlogId = $blogID; $arUser2Blog[$arFields["OWNER_ID"]][$arFields["GROUP_ID"]] = $newBlogId; } if (IntVal($ar["SLID"]) > 0) { CSocNetLog::Delete($ar["SLID"]); $ar["SLID"] = 0; } } $arF = array("SOCNET_RIGHTS" => array()); if (intVal($newBlogId) > 0) { $arF["BLOG_ID"] = $newBlogId; } $arSites = array($ar["SITE_ID"]); } if (!empty($arF)) { if (IntVal($arF["BLOG_ID"]) > 0) { $Result["PARAM2"] = $ar["BLOG_ID"]; $sqlR = "UPDATE b_blog_post SET BLOG_ID=" . IntVal($arF["BLOG_ID"]) . " WHERE ID=" . IntVal($ar["ID"]); $DB->Query($sqlR, False, "File: " . __FILE__ . "<br>Line: " . __LINE__); $sqlR = "UPDATE b_blog_post_category SET BLOG_ID=" . IntVal($arF["BLOG_ID"]) . " WHERE POST_ID=" . IntVal($ar["ID"]); $DB->Query($sqlR, False, "File: " . __FILE__ . "<br>Line: " . __LINE__); $sqlR = "UPDATE b_blog_image SET BLOG_ID=" . IntVal($arF["BLOG_ID"]) . " WHERE POST_ID=" . IntVal($ar["ID"]); $DB->Query($sqlR, False, "File: " . __FILE__ . "<br>Line: " . __LINE__); $sqlR = "UPDATE b_blog_comment SET BLOG_ID=" . IntVal($arF["BLOG_ID"]) . " WHERE POST_ID=" . IntVal($ar["ID"]); $DB->Query($sqlR, False, "File: " . __FILE__ . "<br>Line: " . __LINE__); } $sqlR = "SELECT * FROM b_blog_socnet_rights where POST_ID=" . IntVal($ar["ID"]); $dbBB = $DB->Query($sqlR); if (!$dbBB->Fetch()) { $arF["SC_PERM"] = CBlogPost::UpdateSocNetPerms($ar["ID"], $arF["SOCNET_RIGHTS"], array("AUTHOR_ID" => $ar["AUTHOR_ID"])); } if (IntVal($arF["BLOG_ID"]) > 0 && $ar["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_PUBLISH) { $dbComment = CBlogComment::GetList(array(), array("POST_ID" => $ar["ID"]), false, false, array("ID", "POST_ID", "BLOG_ID", "PATH")); if ($arComment = $dbComment->Fetch()) { $arParamsComment = array("BLOG_ID" => $arF["BLOG_ID"], "POST_ID" => $ar["ID"], "SITE_ID" => $ar["SITE_ID"], "PATH" => $arPostSite[$arGroup["SITE_ID"]] . "?commentId=#comment_id###comment_id#", "USE_SOCNET" => "Y"); CBlogComment::_IndexPostComments($arParamsComment); } } } } if ($ar["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_PUBLISH) { if (empty($arF["SC_PERM"])) { $arF["SC_PERM"] = CBlogPost::GetSocNetPermsCode($ar["ID"]); } $Result["PERMISSIONS"] = $arF["SC_PERM"]; if (IntVal($ar["SLID"]) <= 0) { $arAllow = array("HTML" => "N", "ANCHOR" => "N", "BIU" => "N", "IMG" => "N", "QUOTE" => "N", "CODE" => "N", "FONT" => "N", "TABLE" => "N", "LIST" => "N", "SMILES" => "N", "NL2BR" => "N", "VIDEO" => "N"); $text4message = $parserBlog->convert($ar["DETAIL_TEXT"], false, array(), $arAllow, array("isSonetLog" => true)); $arSoFields = array("EVENT_ID" => "blog_post", "=LOG_DATE" => $DB->CharToDateFunction($ar["DATE_PUBLISH"], "FULL", SITE_ID), "LOG_UPDATE" => $DB->CharToDateFunction($ar["DATE_PUBLISH"], "FULL", SITE_ID), "TITLE_TEMPLATE" => "#USER_NAME# add post", "TITLE" => $ar["TITLE"], "MESSAGE" => $text4message, "MODULE_ID" => "blog", "CALLBACK_FUNC" => false, "SOURCE_ID" => $ar["ID"], "ENABLE_COMMENTS" => "N", "ENTITY_TYPE" => SONET_ENTITY_USER, "ENTITY_ID" => $ar["AUTHOR_ID"], "USER_ID" => $ar["AUTHOR_ID"], "URL" => $arSite[$ar["SITE_ID"]], "SITE_ID" => $arSites); $logID = CSocNetLog::Add($arSoFields, false); if (intval($logID) > 0) { $socnetPerms = $arF["SC_PERM"]; if (!in_array("U" . $ar["AUTHOR_ID"], $socnetPerms)) { $socnetPerms[] = "U" . $ar["AUTHOR_ID"]; } $socnetPerms[] = "SA"; // socnet admin CSocNetLog::Update($logID, array("TMP_ID" => $logID, "=LOG_UPDATE" => $arSoFields["LOG_UPDATE"])); CSocNetLogRights::DeleteByLogID($logID); CSocNetLogRights::Add($logID, $socnetPerms); } } else { $socnetPerms = $arF["SC_PERM"]; if (!in_array("U" . $ar["AUTHOR_ID"], $socnetPerms)) { $socnetPerms[] = "U" . $ar["AUTHOR_ID"]; } $socnetPerms[] = "SA"; // socnet admin CSocNetLogRights::DeleteByLogID($ar["SLID"]); CSocNetLogRights::Add($ar["SLID"], $socnetPerms); } } } if ($ar["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_PUBLISH && $ar["SEARCH_INDEX"] == "Y") { //CBlogSearch::Trace('OnSearchReindex', 'Result', $Result); if ($oCallback) { $res = call_user_func(array($oCallback, $callback_method), $Result); if (!$res) { return $Result["ID"]; } } else { $arResult[] = $Result; } } } //all blog posts indexed so let's start index users $category = 'C'; $id = 0; COption::SetOptionString("blog", "socNetNewPerms", "Y"); } if ($category == 'C') { $strSql = "\n\t\t\t\tSELECT\n\t\t\t\t\tbc.ID\n\t\t\t\t\t,bg.SITE_ID\n\t\t\t\t\t,bp.ID as POST_ID\n\t\t\t\t\t,b.URL\n\t\t\t\t\t,bp.TITLE as POST_TITLE\n\t\t\t\t\t,b.OWNER_ID\n\t\t\t\t\t,b.SOCNET_GROUP_ID\n\t\t\t\t\t,bc.TITLE\n\t\t\t\t\t,bc.POST_TEXT\n\t\t\t\t\t,bc.POST_ID\n\t\t\t\t\t,bc.BLOG_ID\n\t\t\t\t\t,b.USE_SOCNET\n\t\t\t\t\t,b.SEARCH_INDEX\n\t\t\t\t\t,bc.PATH\n\t\t\t\t\t," . $DB->DateToCharFunction("bc.DATE_CREATE") . " as DATE_CREATE\n\t\t\t\t\t,bc.AUTHOR_ID\n\t\t\t\tFROM\n\t\t\t\t\tb_blog_comment bc\n\t\t\t\t\tINNER JOIN b_blog_post bp ON (bp.ID = bc.POST_ID)\n\t\t\t\t\tINNER JOIN b_blog b ON (bc.BLOG_ID = b.ID)\n\t\t\t\t\tINNER JOIN b_blog_group bg ON (b.GROUP_ID = bg.ID)\n\t\t\t\tWHERE\n\t\t\t\t\tbc.ID > " . $id . " \n\t\t\t\t\t" . ($NS["SITE_ID"] != "" ? " AND bg.SITE_ID='" . $DB->ForSQL($NS["SITE_ID"]) . "'" : "") . "\n\t\t\t\t\tAND b.SEARCH_INDEX = 'Y'\n\t\t\t\tORDER BY\n\t\t\t\t\tbc.ID\n\t\t\t"; //CBlogSearch::Trace('OnSearchReindex', 'strSql', $strSql); $rs = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); while ($ar = $rs->Fetch()) { //Check permissions $tag = ""; $PostPerms = CBlogUserGroup::GetGroupPerms(1, $ar["BLOG_ID"], $ar["POST_ID"], BLOG_PERMS_POST); if ($PostPerms < BLOG_PERMS_READ) { continue; } //CBlogSearch::Trace('OnSearchReindex', 'ar', $ar); if (strlen($ar["PATH"]) > 0) { $arSite = array($ar["SITE_ID"] => str_replace("#comment_id#", $ar["ID"], $ar["PATH"])); } else { $arSite = array($ar["SITE_ID"] => CBlogPost::PreparePath($ar["URL"], $ar["POST_ID"], $ar["SITE_ID"], false, $ar["OWNER_ID"], $ar["SOCNET_GROUP_ID"])); } $Result = array("ID" => "C" . $ar["ID"], "SITE_ID" => $arSite, "LAST_MODIFIED" => $ar["DATE_CREATE"], "PARAM1" => "COMMENT", "PARAM2" => $ar["BLOG_ID"] . "|" . $ar["POST_ID"], "PERMISSIONS" => array(2), "TITLE" => $ar["TITLE"], "BODY" => blogTextParser::killAllTags($ar["POST_TEXT"]), "INDEX_TITLE" => false, "USER_ID" => IntVal($ar["AUTHOR_ID"]) > 0 ? $ar["AUTHOR_ID"] : false, "ENTITY_TYPE_ID" => "BLOG_COMMENT", "ENTITY_ID" => $ar["ID"]); if ($ar["USE_SOCNET"] == "Y") { $arSp = CBlogComment::GetSocNetCommentPerms($ar["POST_ID"]); if (is_array($arSp)) { $Result["PERMISSIONS"] = $arSp; } } if (strlen($ar["TITLE"]) <= 0) { $Result["TITLE"] = substr($Result["BODY"], 0, 100); } if ($oCallback) { $res = call_user_func(array($oCallback, $callback_method), $Result); if (!$res) { return $Result["ID"]; } } else { $arResult[] = $Result; } } //all blog posts indexed so let's start index users $category = 'U'; $id = 0; } if ($category == 'U') { $strSql = "\n\t\t\t\tSELECT\n\t\t\t\t\tbu.ID\n\t\t\t\t\t,bg.SITE_ID\n\t\t\t\t\t," . $DB->DateToCharFunction("bu.LAST_VISIT") . " as LAST_VISIT\n\t\t\t\t\t," . $DB->DateToCharFunction("u.DATE_REGISTER") . " as DATE_REGISTER\n\t\t\t\t\t,bu.ALIAS\n\t\t\t\t\t,bu.DESCRIPTION\n\t\t\t\t\t,bu.INTERESTS\n\t\t\t\t\t,u.NAME\n\t\t\t\t\t,u.LAST_NAME\n\t\t\t\t\t,u.LOGIN\n\t\t\t\t\t,bu.USER_ID\n\t\t\t\t\t,b.OWNER_ID\n\t\t\t\t\t,b.USE_SOCNET\n\t\t\t\t\t,b.SEARCH_INDEX\n\t\t\t\tFROM\n\t\t\t\t\tb_blog_user bu\n\t\t\t\t\tINNER JOIN b_user u ON (u.ID = bu.USER_ID)\n\t\t\t\t\tINNER JOIN b_blog b ON (u.ID = b.OWNER_ID)\n\t\t\t\t\tINNER JOIN b_blog_group bg ON (b.GROUP_ID = bg.ID)\n\t\t\t\tWHERE\n\t\t\t\t\tb.ACTIVE = 'Y'\n\t\t\t\t\t" . ($NS["SITE_ID"] != "" ? "AND bg.SITE_ID='" . $DB->ForSQL($NS["SITE_ID"]) . "'" : "") . "\n\t\t\t\t\tAND bu.ID > " . $id . "\n\t\t\t\t\tAND b.SEARCH_INDEX = 'Y'\n\t\t\t\tORDER BY\n\t\t\t\t\tbu.ID\n\t\t\t"; //CBlogSearch::Trace('OnSearchReindex', 'strSql', $strSql); $rs = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); while ($ar = $rs->Fetch()) { if ($ar["USE_SOCNET"] == "Y") { $Result = array("ID" => "U" . $ar["ID"], "BODY" => "", "TITLE" => ""); } else { //CBlogSearch::Trace('OnSearchReindex', 'ar', $ar); $arSite = array($ar["SITE_ID"] => CBlogUser::PreparePath($ar["USER_ID"], $ar["SITE_ID"])); //CBlogSearch::Trace('OnSearchReindex', 'arSite', $arSite); $Result = array("ID" => "U" . $ar["ID"], "LAST_MODIFIED" => $ar["LAST_VISIT"], "TITLE" => CBlogUser::GetUserName($ar["ALIAS"], $ar["NAME"], $ar["LAST_NAME"], $ar["LOGIN"]), "BODY" => blogTextParser::killAllTags($ar["DESCRIPTION"] . " " . $ar["INTERESTS"]), "SITE_ID" => $arSite, "PARAM1" => "USER", "PARAM2" => $ar["ID"], "PERMISSIONS" => array(2)); if (strlen($Result["LAST_MODIFIED"]) <= 0) { $Result["LAST_MODIFIED"] = $ar["DATE_REGISTER"]; } } //CBlogSearch::Trace('OnSearchReindex', 'Result', $Result); if ($oCallback) { $res = call_user_func(array($oCallback, $callback_method), $Result); if (!$res) { return $Result["ID"]; } } else { $arResult[] = $Result; } } } if ($oCallback) { return false; } return $arResult; }
CSocNetLog::Update($logID, array("TMP_ID" => $logID)); CSocNetLogRights::DeleteByLogID($logID); CSocNetLogRights::Add($logID, $socnetPerms); } } foreach ($categoryID as $v) { CBlogPostCategory::Add(array("BLOG_ID" => $blogID, "POST_ID" => $postID, "CATEGORY_ID" => $v)); } $arBlogCommentFields = array("TITLE" => GetMessage("BLOG_DEMO_COMMENT_TITLE"), "POST_TEXT" => GetMessage("BLOG_DEMO_COMMENT_BODY"), "BLOG_ID" => $blogID, "POST_ID" => $postID, "PARENT_ID" => 0, "AUTHOR_ID" => 1, "DATE_CREATE" => ConvertTimeStamp(false, "FULL"), "AUTHOR_IP" => "192.168.0.108"); $commmentId = CBlogComment::Add($arBlogCommentFields); if (CModule::IncludeModule("socialnetwork")) { $arAllow = array("HTML" => "N", "ANCHOR" => "N", "BIU" => "N", "IMG" => "N", "QUOTE" => "N", "CODE" => "N", "FONT" => "N", "LIST" => "N", "SMILES" => "N", "NL2BR" => "N", "VIDEO" => "N"); $text4message = $parserBlog->convert($arBlogCommentFields["POST_TEXT"], false, array(), $arAllow); $text4mail = $parserBlog->convert4mail($arBlogCommentFields["POST_TEXT"]); $arBlogUser = CBlogUser::GetByID(1, BLOG_BY_USER_ID); $arBlogUser = CBlogTools::htmlspecialcharsExArray($arBlogUser); $AuthorName = CBlogUser::GetUserName($arBlogUser["~ALIAS"], $arUser["~NAME"], $arUser["~LAST_NAME"], $arUser["~LOGIN"]); $commentUrl = CComponentEngine::MakePathFromTemplate(WIZARD_SITE_DIR . "company/personal/user/#user_id#/blog/#post_id#/", array("post_id" => $postID, "user_id" => 1)); if (strpos($commentUrl, "?") !== false) { $commentUrl .= "&"; } else { $commentUrl .= "?"; } $commentUrl .= "commentId=" . $commmentId . "#" . $commmentId; $arSoFields = array("ENTITY_TYPE" => "U", "ENTITY_ID" => 1, "EVENT_ID" => "blog_comment", "=LOG_DATE" => $GLOBALS["DB"]->CurrentTimeFunction(), "MESSAGE" => $text4message, "TEXT_MESSAGE" => $text4mail, "URL" => $commentUrl, "MODULE_ID" => false, "SOURCE_ID" => $commmentId, "USER_ID" => 1, "LOG_ID" => $logID, "RATING_TYPE_ID" => "BLOG_COMMENT", "RATING_ENTITY_ID" => intval($commmentId)); CSocNetLogComments::Add($arSoFields); } //CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH."/community/index.php", Array("SONET_GROUP_ID" => $SocNetGroupID)); CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/company/personal.php", array("BLOG_GROUP_ID" => $SocNetGroupID)); CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/index_b24.php", array("BLOG_GROUP_ID" => $SocNetGroupID)); CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/workgroups/index.php", array("BLOG_GROUP_ID" => $SocNetGroupID));
function Update($ID, $arFields) { global $DB; $ID = IntVal($ID); $arFields1 = array(); foreach ($arFields as $key => $value) { if (substr($key, 0, 1) == "=") { $arFields1[substr($key, 1)] = $value; unset($arFields[$key]); } } if (!CBlogUser::CheckFields("UPDATE", $arFields, $ID)) { return false; } $strUpdate = $DB->PrepareUpdate("b_blog_user", $arFields, "blog/avatar"); foreach ($arFields1 as $key => $value) { if (strlen($strUpdate) > 0) { $strUpdate .= ", "; } $strUpdate .= $key . "=" . $value . " "; } if (strlen($strUpdate) > 0) { $arUser = CBlogUser::GetByID($ID, BLOG_BY_BLOG_USER_ID); $strSql = "UPDATE b_blog_user SET " . "\t" . $strUpdate . " " . "WHERE ID = " . $ID . " "; $DB->Query($strSql, False, "File: " . __FILE__ . "<br>Line: " . __LINE__); unset($GLOBALS["BLOG_USER_CACHE_" . $ID]); unset($GLOBALS["BLOG_USER1_CACHE_" . $arUser["USER_ID"]]); } else { $ID = false; } if ($ID && !(count($arFields1) == 1 && strlen($arFields1["LAST_VISIT"]) > 0)) { if (CModule::IncludeModule("search")) { $arBlogUser = CBlogUser::GetByID($ID); $dbUser = CUser::GetByID($arBlogUser["USER_ID"]); $arUser = $dbUser->Fetch(); $arBlog = CBlog::GetByOwnerID($arBlogUser["USER_ID"]); if ($arBlog) { $arGroup = CBlogGroup::GetByID($arBlog["GROUP_ID"]); $arPostSite = array($arGroup["SITE_ID"] => CBlogUser::PreparePath($arBlogUser["USER_ID"], $arGroup["SITE_ID"])); } else { $arPostSite = array(SITE_ID => CBlogUser::PreparePath($arBlogUser["USER_ID"], SITE_ID)); } if (strlen($arBlogUser["LAST_VISIT"]) <= 0) { $arBlogUser["LAST_VISIT"] = ConvertTimeStamp(false, "FULL", false); } $arSearchIndex = array("SITE_ID" => $arPostSite, "LAST_MODIFIED" => $arBlogUser["LAST_VISIT"], "PARAM1" => "USER", "PARAM2" => $arBlogUser["USER_ID"], "PERMISSIONS" => array(2), "TITLE" => CBlogUser::GetUserName($arBlogUser["ALIAS"], $arUser["NAME"], $arUser["LAST_NAME"], $arUser["LOGIN"]), "BODY" => blogTextParser::killAllTags($arBlogUser["INTERESTS"] . " " . $arBlogUser["DESCRIPTION"])); CSearch::Index("blog", "U" . $ID, $arSearchIndex); } } return $ID; }
function Delete($ID) { global $DB; $ID = IntVal($ID); $bSuccess = True; $arUser = CBlogUser::GetByID($ID, BLOG_BY_USER_ID); if ($arUser) { $dbResult = CBlog::GetList(array(), array("OWNER_ID" => $arUser["USER_ID"]), false, false, array("ID")); if ($dbResult->Fetch()) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GU_ERROR_OWNER"), "ERROR_OWNER"); $bSuccess = False; } if ($bSuccess) { $dbResult = CBlogPost::GetList(array(), array("AUTHOR_ID" => $arUser["USER_ID"]), false, false, array("ID")); if ($arResult = $dbResult->Fetch()) { if (!CBlogPost::Delete($arResult["ID"])) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GU_ERROR_AUTHOR"), "ERROR_AUTHOR"); $bSuccess = False; } } } if ($bSuccess) { $dbGloUser = CUser::GetByID($arUser["USER_ID"]); $arGloUser = $dbGloUser->Fetch(); $DB->Query("UPDATE b_blog_comment SET " . "\tAUTHOR_NAME = '" . $DB->ForSql(CBlogUser::GetUserName($arUser["ALIAS"], $arGloUser["NAME"], $arGloUser["LAST_NAME"], $arGloUser["LOGIN"], $arGloUser["SECOND_NAME"])) . "', " . "\tAUTHOR_ID = null " . "WHERE AUTHOR_ID = " . $arUser["USER_ID"] . "", true); $DB->Query("DELETE FROM b_blog_user2user_group WHERE USER_ID = " . $arUser["USER_ID"] . "", true); } if ($bSuccess) { $strSql = "SELECT F.ID " . "FROM b_blog_user FU, b_file F " . "WHERE FU.ID = " . $arUser["ID"] . " " . "\tAND FU.AVATAR = F.ID "; $z = $DB->Query($strSql, false, "FILE: " . __FILE__ . " LINE:" . __LINE__); while ($zr = $z->Fetch()) { CFile::Delete($zr["ID"]); } if (CModule::IncludeModule("search")) { CSearch::Index("blog", "U" . $arUser["ID"], array("TITLE" => "", "BODY" => "")); } unset($GLOBALS["BLOG_USER"]["BLOG_USER_CACHE_" . $arUser["ID"]]); unset($GLOBALS["BLOG_USER"]["BLOG_USER1_CACHE_" . $arUser["USER_ID"]]); unset($GLOBALS["BLOG_USER"]["BLOG_USER2GROUP_CACHE_" . $arUser["ID"]]); unset($GLOBALS["BLOG_USER"]["BLOG_USER2GROUP1_CACHE_" . $arUser["USER_ID"]]); return $DB->Query("DELETE FROM b_blog_user WHERE ID = " . $arUser["ID"] . "", true); } if (!$bSuccess) { return false; } } return True; }
$arOrderBy = array("USER_LAST_NAME" => "ASC", "USER_NAME" => "ASC"); } $dbUsers = CBlogCandidate::GetList($arOrderBy, array("BLOG_ID" => $arBlog["ID"]), false, false, array("ID", "USER_ID", "BLOG_USER_ALIAS", "USER_LOGIN", "USER_NAME", "USER_LAST_NAME")); $arResult["Candidate"] = array(); while ($arUsers = $dbUsers->GetNext()) { $arUsers["urlToUser"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $arUsers["USER_ID"])); $arUsers["NameFormated"] = CBlogUser::GetUserName($arUsers["BLOG_USER_ALIAS"], $arUsers["USER_NAME"], $arUsers["USER_LAST_NAME"], $arUsers["USER_LOGIN"]); $arUsers["urlToEdit"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER_SETTINGS_EDIT"], array("user_id" => $arUsers["USER_ID"], "blog" => $arBlog["URL"])); $arUsers["urlToDelete"] = htmlspecialcharsex($APPLICATION->GetCurPageParam("del_id=" . $arUsers["USER_ID"] . '&' . bitrix_sessid_get(), array("del_id", "sessid"))); $arResult["Candidate"][] = $arUsers; } $dbUsers = CBlogUser::GetList($arOrderBy, array("GROUP_BLOG_ID" => $arBlog["ID"]), array("ID", "USER_ID", "ALIAS", "USER_LOGIN", "USER_NAME", "USER_LAST_NAME")); $arResult["Users"] = array(); while ($arUsers = $dbUsers->GetNext()) { $arUsers["urlToUser"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $arUsers["USER_ID"])); $arUsers["NameFormated"] = CBlogUser::GetUserName($arUsers["BLOG_USER_ALIAS"], $arUsers["USER_NAME"], $arUsers["USER_LAST_NAME"], $arUsers["USER_LOGIN"]); $arUsers["urlToEdit"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER_SETTINGS_EDIT"], array("user_id" => $arUsers["USER_ID"], "blog" => $arBlog["URL"])); $arUsers["urlToDelete"] = htmlspecialcharsex($APPLICATION->GetCurPageParam("del_id=" . $arUsers["USER_ID"] . '&' . bitrix_sessid_get(), array("del_id", "sessid"))); $dbUserGroups = CBlogUserGroup::GetList(array(), array("USER2GROUP_USER_ID" => $arUsers["USER_ID"], "BLOG_ID" => $arBlog["ID"]), false, false, array("ID", "NAME")); $bNeedComa = False; while ($arUserGroups = $dbUserGroups->GetNext()) { if ($bNeedComa) { $arUsers["groupsFormated"] .= ", "; } $arUsers["groups"][] = $arUserGroups; $arUsers["groupsFormated"] .= $arUserGroups["NAME"]; $bNeedComa = True; } $arResult["Users"][] = $arUsers; } } else {
if (strlen($GLOBALS["cancel"]) > 0) { LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER_SETTINGS"], array("blog" => $arBlog["URL"]))); } if (empty($arBlogUser)) { CBlogUser::Add(array("USER_ID" => $arUser["ID"], "=LAST_VISIT" => $DB->GetNowFunction(), "=DATE_REG" => $DB->GetNowFunction(), "ALLOW_POST" => "Y")); } CBlogUser::AddToUserGroup($arUser["ID"], $arBlog["ID"], $GLOBALS["add2groups"], "", BLOG_BY_USER_ID, BLOG_CHANGE); $dbCandidate = CBlogCandidate::GetList(array(), array("BLOG_ID" => $arBlog["ID"], "USER_ID" => $arUser["ID"])); if ($arCandidate = $dbCandidate->Fetch()) { CBlogCandidate::Delete($arCandidate["ID"]); } LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER_SETTINGS"], array("blog" => $arBlog["URL"]))); } $arResult["ERROR_MESSAGE"] = $errorMessage; $arResult["OK_MESSAGE"] = $okMessage; $arResult["userName"] = CBlogUser::GetUserName($arBlogUser["ALIAS"], $arUser["NAME"], $arUser["LAST_NAME"], $arUser["LOGIN"]); $arResult["urlToUser"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $arUser["ID"])); $arResult["arUserGroups"] = CBlogUser::GetUserGroups($arUser["ID"], $arBlog["ID"], "Y", BLOG_BY_USER_ID); $dbBlogGroups = CBlogUserGroup::GetList(array("NAME" => "ASC"), array("BLOG_ID" => $arBlog["ID"]), false, false, array("ID", "NAME")); while ($arBlogGroups = $dbBlogGroups->GetNext()) { $arResult["Groups"][] = $arBlogGroups; } } else { $arResult["FATAL_ERROR"] = GetMessage("B_B_US_NO_RIGHT"); } } else { $arResult["FATAL_ERROR"] = GetMessage("B_B_US_NO_BLOG"); } } else { $arResult["FATAL_ERROR"] = GetMessage("B_B_US_NO_BLOG"); }
public function GetRSS($BlogCode, $type = "rss2.0", $numPosts = 10, $siteID = SITE_ID, $arPathTemplates = array(), $arFilterExt = array()) { if (!$this->IsAvailable()) { return false; } global $USER; //Post CNT $numPosts = IntVal($numPosts); //RSS type $type = ToLower(preg_replace("/[^a-zA-Z0-9.]/is", "", $type)); if (!in_array($type, array("rss2.0", "atom.03", "rss.92"))) { $type = "rss.92"; } //Prepare Extended filter if (!is_array($arFilterExt)) { $arFilterExt = array(); } $arSettings = array("BLOG_CODE" => $BlogCode, "NOW" => date("r"), "NOW_ISO" => date("Y-m-d\\TH:i:s") . substr(date("O"), 0, 3) . ":" . substr(date("O"), -2, 2), "SERVER_NAME" => "", "CHARSET" => "", "LANGUAGE" => "", "RSS" => "", "RSS_TYPE" => $type, "CURRENT_USER_ID" => $USER->IsAuthorized() ? $USER->GetID() : 0, "CATEGORIES" => CIdeaManagment::getInstance()->Idea()->GetCategoryList()); //Get Settings if possible if ($arSite = CSite::GetList($s = "sort", $o = "asc", array("LID" => SITE_ID))->Fetch()) { $arSettings["SERVER_NAME"] = $arSite["SERVER_NAME"]; $arSettings["CHARSET"] = $arSite["CHARSET"]; $arSettings["LANGUAGE"] = $arSite["LANGUAGE_ID"]; } //Get Server Name if (strlen($arSettings["SERVER_NAME"]) == 0) { if (defined("SITE_SERVER_NAME") && strlen(SITE_SERVER_NAME) > 0) { $arSettings["SERVER_NAME"] = SITE_SERVER_NAME; } else { $arSettings["SERVER_NAME"] = COption::GetOptionString("main", "server_name", ""); } } //Get Site Charset if (strlen($arSettings["CHARSET"]) == 0) { if (defined("SITE_CHARSET") && strlen(SITE_CHARSET) > 0) { $arSettings["CHARSET"] = SITE_CHARSET; } else { $arSettings["CHARSET"] = "windows-1251"; } } $arSettings["BLOG_URL"] = "http://" . $arSettings["SERVER_NAME"]; if (!empty($arPathTemplates) && strlen($arPathTemplates["INDEX"]) > 0) { $arSettings["BLOG_URL"] .= $arPathTemplates["INDEX"]; } if (!empty($arPathTemplates) && strlen($arPathTemplates["CUSTOM_TITLE"]) > 0) { $arSettings["BLOG_NAME"] = htmlspecialcharsbx($arPathTemplates["CUSTOM_TITLE"]); } else { $arSettings["BLOG_NAME"] = "\"" . htmlspecialcharsbx($arSite["NAME"]) . "\" (" . $arSettings["SERVER_NAME"] . ")"; } //Prepare Head Type part if ($arSettings["RSS_TYPE"] == "rss.92") { $arSettings["RSS"] .= "<" . "?xml version=\"1.0\" encoding=\"" . $arSettings["CHARSET"] . "\"?" . ">\n\n"; $arSettings["RSS"] .= "<rss version=\".92\">\n"; $arSettings["RSS"] .= " <channel>\n"; $arSettings["RSS"] .= "\t<title>" . $arSettings["BLOG_NAME"] . "</title>\n"; $arSettings["RSS"] .= "\t<link>" . $arSettings["BLOG_URL"] . "</link>\n"; $arSettings["RSS"] .= "\t<guid>" . $arSettings["BLOG_URL"] . "</guid>\n"; $arSettings["RSS"] .= "\t<language>" . $arSettings["LANGUAGE"] . "</language>\n"; $arSettings["RSS"] .= "\t<docs>http://backend.userland.com/rss092</docs>\n"; $arSettings["RSS"] .= "\n"; } elseif ($arSettings["RSS_TYPE"] == "rss2.0") { $arSettings["RSS"] .= "<" . "?xml version=\"1.0\" encoding=\"" . $arSettings["CHARSET"] . "\"?" . ">\n\n"; $arSettings["RSS"] .= "<rss version=\"2.0\">\n"; $arSettings["RSS"] .= " <channel>\n"; $arSettings["RSS"] .= "\t<title>" . $arSettings["BLOG_NAME"] . "</title>\n"; $arSettings["RSS"] .= "\t<description>" . $arSettings["BLOG_NAME"] . "</description>\n"; $arSettings["RSS"] .= "\t<link>" . $arSettings["BLOG_URL"] . "</link>\n"; $arSettings["RSS"] .= "\t<language>" . $arSettings["LANGUAGE"] . "</language>\n"; $arSettings["RSS"] .= "\t<docs>http://backend.userland.com/rss2</docs>\n"; $arSettings["RSS"] .= "\t<pubDate>" . $arSettings["NOW"] . "</pubDate>\n"; $arSettings["RSS"] .= "\n"; } elseif ($arSettings["RSS_TYPE"] == "atom.03") { $atomID = "tag:" . htmlspecialcharsbx($arSettings["SERVER_NAME"]) . "," . date("Y-m-d"); $arSettings["RSS"] .= "<" . "?xml version=\"1.0\" encoding=\"" . $arSettings["CHARSET"] . "\"?" . ">\n\n"; $arSettings["RSS"] .= "<feed version=\"0.3\" xmlns=\"http://purl.org/atom/ns#\" xml:lang=\"" . $arSettings["LANGUAGE"] . "\">\n"; $arSettings["RSS"] .= " <title>" . $arSettings["BLOG_NAME"] . "</title>\n"; $arSettings["RSS"] .= " <tagline>" . $arSettings["BLOG_URL"] . "</tagline>\n"; $arSettings["RSS"] .= " <id>" . $atomID . "</id>\n"; $arSettings["RSS"] .= " <link rel=\"alternate\" type=\"text/html\" href=\"" . $arSettings["BLOG_URL"] . "\" />\n"; $arSettings["RSS"] .= " <copyright>Copyright (c) " . $arSettings["SERVER_NAME"] . "</copyright>\n"; $arSettings["RSS"] .= " <modified>" . $arSettings["NOW_ISO"] . "</modified>\n"; $arSettings["RSS"] .= "\n"; } $arParserParams = array("imageWidth" => $arPathTemplates["IMAGE_MAX_WIDTH"], "imageHeight" => $arPathTemplates["IMAGE_MAX_HEIGHT"]); //Text Parser $parser = new blogTextParser(); //SELECT $arSelFields = array("ID", "TITLE", "DETAIL_TEXT", "DATE_PUBLISH", "AUTHOR_ID", "BLOG_USER_ALIAS", "BLOG_ID", "DETAIL_TEXT_TYPE", "BLOG_URL", "BLOG_OWNER_ID", "BLOG_SOCNET_GROUP_ID", "BLOG_GROUP_SITE_ID", "CODE", self::UFCategroryCodeField); //WHERE $arFilter = array("<=DATE_PUBLISH" => ConvertTimeStamp(false, "FULL", false), "PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_PUBLISH, "BLOG_ENABLE_RSS" => "Y", "MICRO" => "N"); if (intval($arSettings["BLOG_CODE"]) === $arSettings["BLOG_CODE"]) { $arFilter["BLOG_ID"] = $arSettings["BLOG_CODE"]; } else { $arFilter["BLOG_URL"] = $arSettings["BLOG_CODE"]; } //Extend standart filter $arFilter = array_merge($arFilter, $arFilterExt); CTimeZone::Disable(); $dbPosts = CBlogPost::GetList(array("DATE_PUBLISH" => "DESC"), $arFilter, false, array("nTopCount" => $numPosts), $arSelFields); CTimeZone::Enable(); while ($arPost = $dbPosts->Fetch()) { //Can read if (CBlogPost::GetBlogUserPostPerms($arPost["ID"], $arSettings["CURRENT_USER_ID"]) < BLOG_PERMS_READ) { continue; } $arAuthorUser = $USER->GetByID($arPost["AUTHOR_ID"])->Fetch(); $author = CBlogUser::GetUserName($arPost["BLOG_USER_ALIAS"], $arAuthorUser["NAME"], $arAuthorUser["LAST_NAME"], $arAuthorUser["LOGIN"], $arAuthorUser["SECOND_NAME"]); $title = str_replace(array("&", "<", ">", "\""), array("&", "<", ">", """), $author . ": " . $arPost["TITLE"]); //Idea Images $arImages = array(); $res = CBlogImage::GetList(array("ID" => "ASC"), array("POST_ID" => $arPost["ID"], "BLOG_ID" => $arPost["BLOG_ID"], "IS_COMMENT" => "N")); while ($arImage = $res->Fetch()) { $arImages[$arImage['ID']] = $arImage['FILE_ID']; } $arDate = ParseDateTime($arPost["DATE_PUBLISH"], CSite::GetDateFormat("FULL", $arPost["BLOG_GROUP_SITE_ID"])); $date = date("r", mktime($arDate["HH"], $arDate["MI"], $arDate["SS"], $arDate["MM"], $arDate["DD"], $arDate["YYYY"])); if (!empty($arPathTemplates)) { $url = htmlspecialcharsbx("http://" . $arSettings["SERVER_NAME"] . CComponentEngine::MakePathFromTemplate($arPathTemplates["BLOG_POST"], array("blog" => $arPost["BLOG_URL"], "post_id" => CBlogPost::GetPostID($arPost["ID"], $arPost["CODE"], $arPathTemplates["ALLOW_POST_CODE"]), "user_id" => $arPost["BLOG_OWNER_ID"], "group_id" => $arPost["BLOG_SOCNET_GROUP_ID"]))); } else { $url = htmlspecialcharsbx("http://" . $arSettings["SERVER_NAME"] . CBlogPost::PreparePath(htmlspecialcharsbx($arPost["BLOG_URL"]), $arPost["ID"], $arPost["BLOG_GROUP_SITE_ID"])); } $category = ""; if (isset($arPost[self::UFCategroryCodeField]) && is_array($arSettings["CATEGORIES"][ToUpper($arPost[self::UFCategroryCodeField])])) { $category = htmlspecialcharsbx($arSettings["CATEGORIES"][ToUpper($arPost[self::UFCategroryCodeField])]["NAME"]); } if (strlen($arPathTemplates["USER"]) > 0) { $authorURL = htmlspecialcharsbx("http://" . $arSettings["SERVER_NAME"] . CComponentEngine::MakePathFromTemplate($arPathTemplates["USER"], array("user_id" => $arPost["AUTHOR_ID"], "group_id" => $arPost["BLOG_SOCNET_GROUP_ID"]))); } else { $authorURL = htmlspecialcharsbx("http://" . $arSettings["SERVER_NAME"] . CBlogUser::PreparePath($arPost["AUTHOR_ID"], $arPost["BLOG_GROUP_SITE_ID"])); } if ($arPost["DETAIL_TEXT_TYPE"] == "html") { $IdeaText = $parser->convert_to_rss($arPost["DETAIL_TEXT"], $arImages, array("HTML" => "Y", "ANCHOR" => "Y", "IMG" => "Y", "SMILES" => "Y", "NL2BR" => "N", "QUOTE" => "Y", "CODE" => "Y"), true, $arParserParams); } else { $IdeaText = $parser->convert_to_rss($arPost["DETAIL_TEXT"], $arImages, false, true, $arParserParams); } $IdeaText .= "<br /><a href=\"" . $url . "\">" . GetMessage("BLG_GB_RSS_DETAIL") . "</a>"; $IdeaText = "<![CDATA[" . $IdeaText . "]]>"; if ($arSettings["RSS_TYPE"] == "rss.92") { $arSettings["RSS"] .= "\t<item>\n"; $arSettings["RSS"] .= "\t <title>" . $title . "</title>\n"; $arSettings["RSS"] .= "\t <description>" . $IdeaText . "</description>\n"; $arSettings["RSS"] .= "\t <link>" . $url . "</link>\n"; $arSettings["RSS"] .= "\t</item>\n"; $arSettings["RSS"] .= "\n"; } elseif ($arSettings["RSS_TYPE"] == "rss2.0") { $arSettings["RSS"] .= "\t<item>\n"; $arSettings["RSS"] .= "\t <title>" . $title . "</title>\n"; $arSettings["RSS"] .= "\t <description>" . $IdeaText . "</description>\n"; $arSettings["RSS"] .= "\t <link>" . $url . "</link>\n"; $arSettings["RSS"] .= "\t <guid>" . $url . "</guid>\n"; $arSettings["RSS"] .= "\t <pubDate>" . $date . "</pubDate>\n"; if (strlen($category) > 0) { $arSettings["RSS"] .= "\t <category>" . $category . "</category>\n"; } $arSettings["RSS"] .= "\t</item>\n"; $arSettings["RSS"] .= "\n"; } elseif ($arSettings["RSS_TYPE"] == "atom.03") { $atomID = "tag:" . htmlspecialcharsbx($arSettings["SERVER_NAME"]) . ":" . $arBlog["URL"] . "/" . $arPost["ID"]; $timeISO = mktime($arDate["HH"], $arDate["MI"], $arDate["SS"], $arDate["MM"], $arDate["DD"], $arDate["YYYY"]); $dateISO = date("Y-m-d\\TH:i:s", $timeISO) . substr(date("O", $timeISO), 0, 3) . ":" . substr(date("O", $timeISO), -2, 2); $titleRel = htmlspecialcharsbx($arPost["TITLE"]); $arSettings["RSS"] .= "<entry>\n"; $arSettings["RSS"] .= " <title type=\"text/html\">" . $title . "</title>\n"; $arSettings["RSS"] .= " <link rel=\"alternate\" type=\"text/html\" href=\"" . $url . "\"/>\n"; $arSettings["RSS"] .= " <issued>" . $dateISO . "</issued>\n"; $arSettings["RSS"] .= " <modified>" . $arSettings["NOW_ISO"] . "</modified>\n"; $arSettings["RSS"] .= " <id>" . $atomID . "</id>\n"; $arSettings["RSS"] .= " <content type=\"text/html\" mode=\"escaped\" xml:lang=\"" . $arSettings["LANGUAGE"] . "\" xml:base=\"" . $arSettings["BLOG_URL"] . "\">\n"; $arSettings["RSS"] .= $IdeaText . "\n"; $arSettings["RSS"] .= " </content>\n"; $arSettings["RSS"] .= " <link rel=\"related\" type=\"text/html\" href=\"" . $url . "\" title=\"" . $titleRel . "\"/>\n"; $arSettings["RSS"] .= " <author>\n"; $arSettings["RSS"] .= "\t<name>" . htmlspecialcharsbx($author) . "</name>\n"; $arSettings["RSS"] .= "\t<url>" . $authorURL . "</url>\n"; $arSettings["RSS"] .= " </author>\n"; $arSettings["RSS"] .= "</entry>\n"; $arSettings["RSS"] .= "\n"; } } if ($arSettings["RSS_TYPE"] == "rss.92") { $arSettings["RSS"] .= " </channel>\n</rss>"; } elseif ($arSettings["RSS_TYPE"] == "rss2.0") { $arSettings["RSS"] .= " </channel>\n</rss>"; } elseif ($arSettings["RSS_TYPE"] == "atom.03") { $arSettings["RSS"] .= "\n\n</feed>"; } return $arSettings["RSS"]; }
$arComment["ShowIP"] = $arResult["ShowIP"]; if (empty($resComments[IntVal($arComment["PARENT_ID"])])) { $resComments[IntVal($arComment["PARENT_ID"])] = array(); if (strlen($arResult["firstLevel"]) <= 0) { $arResult["firstLevel"] = IntVal($arComment["PARENT_ID"]); } } if (IntVal($arComment["AUTHOR_ID"]) > 0) { if (empty($arResult["USER_CACHE"][$arComment["AUTHOR_ID"]])) { $arUsrTmp = array(); $arUsrTmp["urlToAuthor"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $arComment["AUTHOR_ID"])); $arUsrTmp["BlogUser"] = CBlogUser::GetByID($arComment["AUTHOR_ID"], BLOG_BY_USER_ID); $arUsrTmp["BlogUser"] = CBlogTools::htmlspecialcharsExArray($arUsrTmp["BlogUser"]); $dbUser = CUser::GetByID($arComment["AUTHOR_ID"]); $arUsrTmp["arUser"] = $dbUser->GetNext(); $arUsrTmp["AuthorName"] = CBlogUser::GetUserName($arUsrTmp["BlogUser"]["ALIAS"], $arUsrTmp["arUser"]["NAME"], $arUsrTmp["arUser"]["LAST_NAME"], $arUsrTmp["arUser"]["LOGIN"], $arUsrTmp["arUser"]["SECOND_NAME"]); if (IntVal($arUsrTmp["BlogUser"]["AVATAR"]) > 0) { $arUsrTmp["AVATAR_file"] = CFile::ResizeImageGet($arUsrTmp["BlogUser"]["AVATAR"], array("width" => 30, "height" => 30), BX_RESIZE_IMAGE_EXACT, false); } elseif ($arResult["bSoNet"] && IntVal($arUsrTmp["arUser"]["PERSONAL_PHOTO"]) > 0) { $arUsrTmp["AVATAR_file"] = CFile::ResizeImageGet($arUsrTmp["arUser"]["PERSONAL_PHOTO"], array("width" => 30, "height" => 30), BX_RESIZE_IMAGE_EXACT, false); } if ($arUsrTmp["AVATAR_file"] !== false) { $arUsrTmp["AVATAR_img"] = CFile::ShowImage($arUsrTmp["AVATAR_file"]["src"], 30, 30, "border=0 align='right'"); } $arUsrTmp["Blog"] = CBlog::GetByOwnerID(IntVal($arComment["AUTHOR_ID"]), $arParams["GROUP_ID"]); if ($arUsrTmp["AUTHOR_ID"] == $arUsrTmp["AUTHOR_ID"]) { $arUsrTmp["AuthorIsPostAuthor"] = "Y"; } $arResult["USER_CACHE"][$arComment["AUTHOR_ID"]] = $arUsrTmp; } $arComment["urlToAuthor"] = $arResult["USER_CACHE"][$arComment["AUTHOR_ID"]]["urlToAuthor"];
if ($arResult["allowVideo"] != "Y") { $arAllow["VIDEO"] = "N"; } $arResult["postPreview"]["textFormated"] = $p->convert($arResult["postPreview"]["~DETAIL_TEXT"], false, $arImages, $arAllow, $arParserParams); } else { $arAllow = array("HTML" => "N", "ANCHOR" => "Y", "BIU" => "Y", "IMG" => "Y", "QUOTE" => "Y", "CODE" => "Y", "FONT" => "Y", "LIST" => "Y", "SMILES" => "Y", "NL2BR" => "N", "VIDEO" => "Y"); if ($arResult["allowVideo"] != "Y") { $arAllow["VIDEO"] = "N"; } $arResult["postPreview"]["textFormated"] = $p->convert($arResult["postPreview"]["DETAIL_TEXT"], false, $arImages, $arAllow, $arParserParams); } $arResult["postPreview"]["BlogUser"] = CBlogUser::GetByID($arResult["UserID"], BLOG_BY_USER_ID); $arResult["postPreview"]["BlogUser"] = CBlogTools::htmlspecialcharsExArray($arResult["postPreview"]["BlogUser"]); $dbUser = CUser::GetByID($arResult["UserID"]); $arResult["postPreview"]["arUser"] = $dbUser->GetNext(); $arResult["postPreview"]["AuthorName"] = CBlogUser::GetUserName($arResult["postPreview"]["BlogUser"]["ALIAS"], $arResult["postPreview"]["arUser"]["NAME"], $arResult["postPreview"]["arUser"]["LAST_NAME"], $arResult["postPreview"]["arUser"]["LOGIN"]); $arResult["postPreview"]["BlogUser"]["AVATAR_file"] = CFile::GetFileArray($arResult["postPreview"]["BlogUser"]["AVATAR"]); if ($arResult["postPreview"]["BlogUser"]["AVATAR_file"] !== false) { $arResult["postPreview"]["BlogUser"]["Avatar_resized"] = CFile::ResizeImageGet($arResult["postPreview"]["BlogUser"]["AVATAR_file"], array("width" => 100, "height" => 100), BX_RESIZE_IMAGE_EXACT, false); $arResult["postPreview"]["BlogUser"]["AVATAR_img"] = CFile::ShowImage($arResult["postPreview"]["BlogUser"]["Avatar_resized"]["src"], 100, 100, "border=0 align='right'"); } if (strlen($arResult["PostToShow"]["CategoryText"]) > 0) { $arCatTmp = explode(",", $arResult["PostToShow"]["CategoryText"]); if (is_array($arCatTmp)) { foreach ($arCatTmp as $v) { $arResult["postPreview"]["Category"][] = array("NAME" => htmlspecialcharsbx(trim($v))); } } } elseif (strlen($arResult["postPreview"]["CATEGORY_ID"]) > 0) { foreach ($arResult["postPreview"]["CATEGORY_ID"] as $v) { if (strlen($v) > 0) {
function BuildRSSAll($GroupId = 0, $type = "RSS .92", $numPosts = 10, $siteID = SITE_ID, $postTemplate = "", $userTemplate = "", $arAvBlog = array(), $arPathTemplates = array(), $arGroupID = array(), $bUserSocNet = "N") { $GroupId = IntVal($GroupId); $numPosts = IntVal($numPosts); $user_id = IntVal($GLOBALS["USER"]->GetID()); $type = strtolower(preg_replace("/[^a-zA-Z0-9.]/is", "", $type)); if ($type != "rss2.0" && $type != "atom.03") { $type = "rss.92"; } $rssText = False; $groupIdArray = array(); $arGroup = array(); if ($GroupId > 0) { if (!empty($arGroupID) && in_array($GroupId, $arGroupID) || empty($arGroupID)) { $arGroup = CBlogGroup::GetByID($GroupId); } } $now = date("r"); $nowISO = date("Y-m-d\\TH:i:s") . substr(date("O"), 0, 3) . ":" . substr(date("O"), -2, 2); $serverName = ""; $charset = ""; $language = ""; $dbSite = CSite::GetList($b = "sort", $o = "asc", array("LID" => SITE_ID)); if ($arSite = $dbSite->Fetch()) { $serverName = $arSite["SERVER_NAME"]; $charset = $arSite["CHARSET"]; $language = $arSite["LANGUAGE_ID"]; } if (strlen($serverName) <= 0) { if (defined("SITE_SERVER_NAME") && strlen(SITE_SERVER_NAME) > 0) { $serverName = SITE_SERVER_NAME; } else { $serverName = COption::GetOptionString("main", "server_name", ""); } } if (strlen($charset) <= 0) { if (defined("SITE_CHARSET") && strlen(SITE_CHARSET) > 0) { $charset = SITE_CHARSET; } else { $charset = "windows-1251"; } } $blogURL = "http://" . $serverName; if ($GroupId > 0) { $blogName = GetMessage("BLG_RSS_ALL_GROUP_TITLE") . " \"" . htmlspecialcharsbx($arGroup["NAME"]) . "\" (" . $serverName . ")"; } else { $blogName = GetMessage("BLG_RSS_ALL_TITLE") . " \"" . htmlspecialcharsbx($arSite["NAME"]) . "\" (" . $serverName . ")"; } $rssText = ""; if ($type == "rss.92") { $rssText .= "<" . "?xml version=\"1.0\" encoding=\"" . $charset . "\"?" . ">\n\n"; $rssText .= "<rss version=\".92\">\n"; $rssText .= " <channel>\n"; $rssText .= "\t<title>" . $blogName . "</title>\n"; $rssText .= "\t<link>" . $blogURL . "</link>\n"; $rssText .= "\t<guid>" . $blogURL . "</guid>\n"; $rssText .= "\t<language>" . $language . "</language>\n"; $rssText .= "\t<docs>http://backend.userland.com/rss092</docs>\n"; $rssText .= "\n"; } elseif ($type == "rss2.0") { $rssText .= "<" . "?xml version=\"1.0\" encoding=\"" . $charset . "\"?" . ">\n\n"; $rssText .= "<rss version=\"2.0\">\n"; $rssText .= " <channel>\n"; $rssText .= "\t<title>" . $blogName . "</title>\n"; $rssText .= "\t<description>" . $blogName . "</description>\n"; $rssText .= "\t<link>" . $blogURL . "</link>\n"; $rssText .= "\t<language>" . $language . "</language>\n"; $rssText .= "\t<docs>http://backend.userland.com/rss2</docs>\n"; $rssText .= "\t<pubDate>" . $now . "</pubDate>\n"; $rssText .= "\n"; } elseif ($type == "atom.03") { $atomID = "tag:" . htmlspecialcharsbx($serverName) . "," . date("Y-m-d"); $rssText .= "<" . "?xml version=\"1.0\" encoding=\"" . $charset . "\"?" . ">\n\n"; $rssText .= "<feed version=\"0.3\" xmlns=\"http://purl.org/atom/ns#\" xml:lang=\"" . $language . "\">\n"; $rssText .= " <title>" . $blogName . "</title>\n"; $rssText .= " <tagline>" . $blogURL . "</tagline>\n"; $rssText .= " <id>" . $atomID . "</id>\n"; $rssText .= " <link rel=\"alternate\" type=\"text/html\" href=\"" . $blogURL . "\" />\n"; $rssText .= " <copyright>Copyright (c) " . $blogURL . "</copyright>\n"; $rssText .= " <modified>" . $nowISO . "</modified>\n"; $rssText .= "\n"; } $parser = new blogTextParser(); $arParserParams = array("imageWidth" => $arPathTemplates["IMAGE_MAX_WIDTH"], "imageHeight" => $arPathTemplates["IMAGE_MAX_HEIGHT"]); $arFilter = array("<=DATE_PUBLISH" => ConvertTimeStamp(false, "FULL", false), "PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_PUBLISH, "BLOG_ENABLE_RSS" => "Y", "MICRO" => "N"); $arSelFields = array("ID", "TITLE", "DETAIL_TEXT", "DATE_PUBLISH", "AUTHOR_ID", "BLOG_USER_ALIAS", "BLOG_ID", "DETAIL_TEXT_TYPE", "BLOG_URL", "BLOG_OWNER_ID", "BLOG_SOCNET_GROUP_ID", "BLOG_GROUP_SITE_ID", "CODE", "PATH"); if (!empty($arGroup)) { $arFilter["BLOG_GROUP_ID"] = $arGroup["ID"]; } elseif (count($arGroupID) > 0) { $arFilter["BLOG_GROUP_ID"] = $arGroupID; } if (count($arAvBlog) > 0) { $arFilter["BLOG_ID"] = $arAvBlog; } if ($siteID !== false) { $arFilter["BLOG_GROUP_SITE_ID"] = $siteID; } if ($bUserSocNet == "Y") { $arFilter["BLOG_USE_SOCNET"] = "Y"; $arFilter["FOR_USER"] = $user_id; unset($arFilter["MICRO"]); } CTimeZone::Disable(); $dbPosts = CBlogPost::GetList(array("DATE_PUBLISH" => "DESC"), $arFilter, false, array("nTopCount" => $numPosts), $arSelFields); CTimeZone::Enable(); while ($arPost = $dbPosts->Fetch()) { $perms = CBlogPost::GetBlogUserPostPerms($arPost["ID"], $GLOBALS["USER"]->IsAuthorized() ? $GLOBALS["USER"]->GetID() : 0); if ($perms < BLOG_PERMS_READ) { continue; } $dbUser = CUser::GetByID($arPost["AUTHOR_ID"]); $arUser = $dbUser->Fetch(); $author = CBlogUser::GetUserName($arPost["BLOG_USER_ALIAS"], $arUser["NAME"], $arUser["LAST_NAME"], $arUser["LOGIN"], $arUser["SECOND_NAME"]); $title = str_replace(array("&", "<", ">", "\""), array("&", "<", ">", """), $author . ": " . $arPost["TITLE"]); $arImages = array(); $res = CBlogImage::GetList(array("ID" => "ASC"), array("POST_ID" => $arPost["ID"], "BLOG_ID" => $arPost["BLOG_ID"], "IS_COMMENT" => "N")); while ($arImage = $res->Fetch()) { $arImages[$arImage['ID']] = $arImage['FILE_ID']; } $arDate = ParseDateTime($arPost["DATE_PUBLISH"], CSite::GetDateFormat("FULL", $arPost["BLOG_GROUP_SITE_ID"])); $date = date("r", mktime($arDate["HH"], $arDate["MI"], $arDate["SS"], $arDate["MM"], $arDate["DD"], $arDate["YYYY"])); if (strlen($arPost["PATH"]) > 0) { $url = htmlspecialcharsbx("http://" . $serverName . str_replace("#post_id#", CBlogPost::GetPostID($arPost["ID"], $arPost["CODE"], $arParams["ALLOW_POST_CODE"]), $arPost["PATH"])); } elseif (!empty($arPathTemplates)) { if (IntVal($arPost["BLOG_SOCNET_GROUP_ID"]) > 0 && strlen($arPathTemplates["GROUP_BLOG_POST"]) > 0) { $url = htmlspecialcharsbx("http://" . $serverName . CComponentEngine::MakePathFromTemplate($arPathTemplates["GROUP_BLOG_POST"], array("blog" => $arPost["BLOG_URL"], "post_id" => CBlogPost::GetPostID($arPost["ID"], $arPost["CODE"], $arPathTemplates["ALLOW_POST_CODE"]), "user_id" => $arPost["BLOG_OWNER_ID"], "group_id" => $arPost["BLOG_SOCNET_GROUP_ID"]))); } else { $url = htmlspecialcharsbx("http://" . $serverName . CComponentEngine::MakePathFromTemplate($arPathTemplates["BLOG_POST"], array("blog" => $arPost["BLOG_URL"], "post_id" => CBlogPost::GetPostID($arPost["ID"], $arPost["CODE"], $arPathTemplates["ALLOW_POST_CODE"]), "user_id" => $arPost["BLOG_OWNER_ID"], "group_id" => $arPost["BLOG_SOCNET_GROUP_ID"]))); } } elseif (strLen($postTemplate) > 0) { $url = htmlspecialcharsbx("http://" . $serverName . CComponentEngine::MakePathFromTemplate($postTemplate, array("blog" => $arPost["BLOG_URL"], "post_id" => $arPost["ID"], "user_id" => $arPost["BLOG_OWNER_ID"], "group_id" => $arPost["BLOG_SOCNET_GROUP_ID"]))); } else { $url = htmlspecialcharsbx("http://" . $serverName . CBlogPost::PreparePath(htmlspecialcharsbx($arPost["BLOG_URL"]), $arPost["ID"], $arPost["BLOG_GROUP_SITE_ID"])); } $category = htmlspecialcharsbx($arPost["CATEGORY_NAME"]); if (strlen($arPathTemplates["USER"]) > 0) { $authorURL = htmlspecialcharsbx("http://" . $serverName . CComponentEngine::MakePathFromTemplate($arPathTemplates["USER"], array("user_id" => $arPost["AUTHOR_ID"], "group_id" => $arPost["BLOG_SOCNET_GROUP_ID"]))); } elseif (strLen($userTemplate) > 0) { $authorURL = htmlspecialcharsbx("http://" . $serverName . CComponentEngine::MakePathFromTemplate($userTemplate, array("user_id" => $arPost["AUTHOR_ID"], "group_id" => $arPost["BLOG_SOCNET_GROUP_ID"]))); } else { $authorURL = htmlspecialcharsbx("http://" . $serverName . CBlogUser::PreparePath($arPost["AUTHOR_ID"], $arPost["BLOG_GROUP_SITE_ID"])); } if ($arPost["DETAIL_TEXT_TYPE"] == "html") { $text = $parser->convert_to_rss($arPost["DETAIL_TEXT"], $arImages, array("HTML" => "Y", "ANCHOR" => "Y", "IMG" => "Y", "SMILES" => "Y", "NL2BR" => "N", "QUOTE" => "Y", "CODE" => "Y"), true, $arParserParams); } else { $text = $parser->convert_to_rss($arPost["DETAIL_TEXT"], $arImages, false, true, $arParserParams); } if ($bUserSocNet != "Y") { $text .= "<br /><a href=\"" . $url . "\">" . GetMessage("BLG_GB_RSS_DETAIL") . "</a>"; } $text = "<![CDATA[" . $text . "]]>"; if ($type == "rss.92") { $rssText .= " <item>\n"; $rssText .= " <title>" . $title . "</title>\n"; $rssText .= " <description>" . $text . "</description>\n"; $rssText .= " <link>" . $url . "</link>\n"; $rssText .= " </item>\n"; $rssText .= "\n"; } elseif ($type == "rss2.0") { $rssText .= " <item>\n"; $rssText .= " <title>" . $title . "</title>\n"; $rssText .= " <description>" . $text . "</description>\n"; $rssText .= " <link>" . $url . "</link>\n"; $rssText .= " <guid>" . $url . "</guid>\n"; $rssText .= " <pubDate>" . $date . "</pubDate>\n"; if (strlen($category) > 0) { $rssText .= " <category>" . $category . "</category>\n"; } $rssText .= " </item>\n"; $rssText .= "\n"; } elseif ($type == "atom.03") { $atomID = "tag:" . htmlspecialcharsbx($serverName) . ":" . $arBlog["URL"] . "/" . $arPost["ID"]; $timeISO = mktime($arDate["HH"], $arDate["MI"], $arDate["SS"], $arDate["MM"], $arDate["DD"], $arDate["YYYY"]); $dateISO = date("Y-m-d\\TH:i:s", $timeISO) . substr(date("O", $timeISO), 0, 3) . ":" . substr(date("O", $timeISO), -2, 2); $titleRel = htmlspecialcharsbx($arPost["TITLE"]); $rssText .= "<entry>\n"; $rssText .= " <title type=\"text/html\">" . $title . "</title>\n"; $rssText .= " <link rel=\"alternate\" type=\"text/html\" href=\"" . $url . "\"/>\n"; $rssText .= " <issued>" . $dateISO . "</issued>\n"; $rssText .= " <modified>" . $nowISO . "</modified>\n"; $rssText .= " <id>" . $atomID . "</id>\n"; $rssText .= " <content type=\"text/html\" mode=\"escaped\" xml:lang=\"" . $language . "\" xml:base=\"" . $blogURL . "\">\n"; $rssText .= $text . "\n"; $rssText .= " </content>\n"; $rssText .= " <link rel=\"related\" type=\"text/html\" href=\"" . $url . "\" title=\"" . $titleRel . "\"/>\n"; $rssText .= " <author>\n"; $rssText .= " <name>" . htmlspecialcharsbx($author) . "</name>\n"; $rssText .= " <url>" . $authorURL . "</url>\n"; $rssText .= " </author>\n"; $rssText .= "</entry>\n"; $rssText .= "\n"; } } if ($type == "rss.92") { $rssText .= " </channel>\n</rss>"; } elseif ($type == "rss2.0") { $rssText .= " </channel>\n</rss>"; } elseif ($type == "atom.03") { $rssText .= "\n\n</feed>"; } return $rssText; }
} $arPostField["EDIT_FORM_LABEL"] = strLen($arPostField["EDIT_FORM_LABEL"]) > 0 ? $arPostField["EDIT_FORM_LABEL"] : $arPostField["FIELD_NAME"]; $arPostField["EDIT_FORM_LABEL"] = htmlspecialcharsEx($arPostField["EDIT_FORM_LABEL"]); $arPostField["~EDIT_FORM_LABEL"] = $arPostField["EDIT_FORM_LABEL"]; $arPost["POST_PROPERTIES"]["DATA"][$FIELD_NAME] = $arPostField; } } if (!empty($arPost["POST_PROPERTIES"]["DATA"])) { $arPost["POST_PROPERTIES"]["SHOW"] = "Y"; } } $arPost["BlogUser"] = CBlogUser::GetByID($arPost["AUTHOR_ID"], BLOG_BY_USER_ID); $arPost["BlogUser"] = CBlogTools::htmlspecialcharsExArray($arPost["BlogUser"]); $dbUser = CUser::GetByID($arPost["AUTHOR_ID"]); $arPost["arUser"] = $dbUser->GetNext(); $arPost["AuthorName"] = CBlogUser::GetUserName($arPost["BlogUser"]["ALIAS"], $arPost["arUser"]["NAME"], $arPost["arUser"]["LAST_NAME"], $arPost["arUser"]["LOGIN"]); if (preg_match("/(\\[CUT\\])/i", $arPost["DETAIL_TEXT"]) || preg_match("/(<CUT>)/i", $arPost["DETAIL_TEXT"])) { $arPost["CUT"] = "Y"; } if (strlen($arPost["CATEGORY_ID"]) > 0) { $arCategory = explode(",", $arPost["CATEGORY_ID"]); foreach ($arCategory as $v) { if (IntVal($v) > 0) { $arCatTmp = CBlogTools::htmlspecialcharsExArray(CBlogCategory::GetByID($v)); $arCatTmp["urlToCategory"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG_CATEGORY"], array("blog" => $arBlog["URL"], "category_id" => $v)); $arPost["Category"][] = $arCatTmp; } } } $arPost["DATE_PUBLISH_FORMATED"] = FormatDate($arParams["DATE_TIME_FORMAT"], MakeTimeStamp($arPost["DATE_PUBLISH"], CSite::GetDateFormat("FULL"))); $arResult["FRIENDS_POSTS"][] = array("POST" => $arPost, "BLOG" => $arBlog);
CSocNetLogComponent::saveRawFilesToUF($_POST["attachedFilesRaw"], IsModuleInstalled("webdav") || IsModuleInstalled("disk") ? "UF_BLOG_COMMENT_FILE" : "UF_BLOG_COMMENT_DOC", $arFields); } if ($commentID = CBlogComment::Update($commentID, $arFields)) { BXClearCache(true, "/blog/comment/" . intval($arParams["ID"] / 100) . "/" . $arParams["ID"] . "/"); $images = array(); $res = CBlogImage::GetList(array(), array("POST_ID" => $arPost["ID"], "BLOG_ID" => $arBlog["ID"], "COMMENT_ID" => $commentID, "IS_COMMENT" => "Y")); while ($aImg = $res->Fetch()) { $images[$aImg["ID"]] = $aImg["FILE_ID"]; } $arParamsUpdateLog = array("PATH_TO_SMILE" => $arParams["PATH_TO_SMILE"], "IMAGES" => $images); if (IntVal($user_id) > 0) { $arResult["BlogUser"] = CBlogUser::GetByID($user_id, BLOG_BY_USER_ID); $arResult["BlogUser"] = CBlogTools::htmlspecialcharsExArray($arResult["BlogUser"]); $dbUser = CUser::GetByID($user_id); $arResult["arUser"] = $dbUser->GetNext(); $arResult["User"]["NAME"] = CBlogUser::GetUserName($arResult["BlogUser"]["ALIAS"], $arResult["arUser"]["NAME"], $arResult["arUser"]["LAST_NAME"], $arResult["arUser"]["LOGIN"]); } CBlogComment::UpdateLog($commentID, $arResult["BlogUser"], $arResult["User"], $arFields, $arPost, $arParamsUpdateLog); $res = CBlogImage::GetList(array(), array("POST_ID" => $arPost["ID"], "BLOG_ID" => $arBlog["ID"], "IS_COMMENT" => "Y", "COMMENT_ID" => false, "<=TIMESTAMP_X" => ConvertTimeStamp(AddToTimeStamp(array("HH" => -3)), "FULL"))); while ($aImg = $res->Fetch()) { CBlogImage::Delete($aImg["ID"]); } $commentUrl = CComponentEngine::MakePathFromTemplate(htmlspecialcharsBack($arParams["PATH_TO_POST"]), array("post_id" => CBlogPost::GetPostID($arPost["ID"], $arPost["CODE"], $arParams["ALLOW_POST_CODE"]), "user_id" => $arBlog["OWNER_ID"])); $commentUrl .= strpos($commentUrl, "?") !== false ? "&" : "?"; if (strlen($arFields["PUBLISH_STATUS"]) > 0 && $arFields["PUBLISH_STATUS"] != BLOG_PUBLISH_STATUS_PUBLISH) { $arResult["MESSAGE"] = GetMessage("B_B_PC_MES_HIDDEN_EDITED"); } $arResult["ajax_comment"] = $commentID; $bHasImg = false; $bHasProps = false; $dbImg = CBlogImage::GetList(array(), array("BLOG_ID" => $arBlog["ID"], "POST_ID" => $arPost["ID"], "IS_COMMENT" => "Y"), false, false, array("ID"));
} else { $arOwnerBlog = CBlog::GetByOwnerID($arTmp["AUTHOR_ID"], $arParams["GROUP_ID"]); if (!empty($arOwnerBlog)) { $arTmp["urlToBlog"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("blog" => $arOwnerBlog["URL"], "user_id" => $arOwnerBlog["OWNER_ID"], "group_id" => $arPost["BLOG_SOCNET_GROUP_ID"])); } else { $arTmp["urlToBlog"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("blog" => $arPost["BLOG_URL"], "user_id" => $arPost["AUTHOR_ID"], "group_id" => $arPost["BLOG_SOCNET_GROUP_ID"])); } } } if (IntVal($arPost["BLOG_SOCNET_GROUP_ID"]) > 0) { $arTmp["urlToPost"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_GROUP_BLOG_POST"], array("blog" => $arPost["BLOG_URL"], "post_id" => CBlogPost::GetPostID($arPost["ID"], $arPost["CODE"], $arParams["ALLOW_POST_CODE"]), "group_id" => $arPost["BLOG_SOCNET_GROUP_ID"])); } else { $arTmp["urlToPost"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_POST"], array("blog" => $arPost["BLOG_URL"], "post_id" => CBlogPost::GetPostID($arPost["ID"], $arPost["CODE"], $arParams["ALLOW_POST_CODE"]), "user_id" => $arPost["BLOG_OWNER_ID"])); } $arTmp["urlToAuthor"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $arPost["AUTHOR_ID"])); $arTmp["AuthorName"] = CBlogUser::GetUserName($arPost["BLOG_USER_ALIAS"], $arPost["AUTHOR_NAME"], $arPost["AUTHOR_LAST_NAME"], $arPost["AUTHOR_LOGIN"]); if ($itemCnt == 0) { $arTmp["FIRST"] = "Y"; } $text = preg_replace("#\\[img\\](.+?)\\[/img\\]#is", "", $arPost["~DETAIL_TEXT"]); $text = preg_replace("#\\[url(.+?)\\](.*?)\\[/url\\]#is", "\\2", $text); $text = preg_replace("#\\[video(.+?)\\](.+?)\\[/video\\]#is", "", $text); $text = preg_replace("#^(.+?)<cut[\\s]*(/>|>).*?\$#is", "\\1", $text); $text = preg_replace("#^(.+?)\\[cut[\\s]*(/\\]|\\]).*?\$#is", "\\1", $text); $text = preg_replace("#(\\[|<)(/?)(b|u|i|list|code|quote|url|img|color|font|/*)(.*?)(\\]|>)#is", "", $text); $text = TruncateText($text, $arParams["MESSAGE_LENGTH"]); $text1 = $text; $title = $p->convert($text1, true, false, array("HTML" => "N", "ANCHOR" => "N", "BIU" => "N", "IMG" => "N", "QUOTE" => "N", "CODE" => "N", "FONT" => "N", "LIST" => "N", "SMILES" => "N", "NL2BR" => "N")); $text = $p->convert($text, true, false, array("HTML" => "N", "ANCHOR" => "N", "BIU" => "N", "IMG" => "N", "QUOTE" => "N", "CODE" => "N", "FONT" => "N", "LIST" => "N", "SMILES" => "Y", "NL2BR" => "N")); $text = CBlogTools::DeleteDoubleBR($text); $arTmp["TEXT_FORMATED"] = $text;
if (IntVal($newID) > 0) { CBlogPostCategory::DeleteByPostID($newID); foreach ($CATEGORYtmp as $v) { CBlogPostCategory::Add(array("BLOG_ID" => $arBlog["ID"], "POST_ID" => $newID, "CATEGORY_ID" => $v)); } $DB->Query("UPDATE b_blog_image SET POST_ID=" . $newID . " WHERE BLOG_ID=" . $arBlog["ID"] . " AND POST_ID=0", true); } if (IntVal($newID) > 0 && strlen($arResult["ERROR_MESSAGE"]) <= 0) { if ($arFields["ACTION"] == "ADD") { $arResult["SUCCESS_MESSAGE"] = GetMessage("IDEA_NEW_MESSAGE_SUCCESS"); } //Get Author Name $arResult["BlogUser"] = CBlogUser::GetByID($arFields["AUTHOR_ID"], BLOG_BY_USER_ID); $arResult["BlogUser"] = CBlogTools::htmlspecialcharsExArray($arResult["BlogUser"]); $arResult["arUser"] = CUser::GetByID($arFields["AUTHOR_ID"])->GetNext(); $AuthorName = CBlogUser::GetUserName($arResult["BlogUser"]["~ALIAS"], $arResult["arUser"]["~NAME"], $arResult["arUser"]["~LAST_NAME"], $arResult["arUser"]["~LOGIN"]); $IdeaParser = new blogTextParser(false, $arParams["PATH_TO_SMILE"]); $arCategoryList = CIdeaManagment::getInstance()->Idea()->GetCategoryList(); $arNotifyFields = array_merge($arFields, array("AUTHOR" => $AuthorName, "IDEA_TEXT" => $IdeaParser->convert4mail($arFields["DETAIL_TEXT"]), "SHOW_RATING" => $arParams["SHOW_RATING"], "RATING_TYPE_ID" => 'BLOG_POST', "RATING_ENTITY_ID" => $newID, "ID" => $newID, "TYPE" => "IDEA", "CATEGORY" => $arCategoryList[$arFields[CIdeaManagment::UFCategroryCodeField]]["NAME"], "FULL_PATH" => "http://" . $serverName . CComponentEngine::MakePathFromTemplate(htmlspecialcharsBack($arFields["PATH"]), array("post_id" => $newID)), "PATH" => CComponentEngine::MakePathFromTemplate(htmlspecialcharsBack($arFields["PATH"]), array("post_id" => $newID)))); //Notifications $Notify = CIdeaManagment::getInstance()->Notification($arNotifyFields); //Socialnetwork notification $Notify->getSonetNotify()->Send(); //Email notification $Notify->getEmailNotify()->Send(); //Clear Caching and redirect BXClearCache(True, "/" . SITE_ID . "/idea/" . $arBlog["ID"] . "/first_page/"); BXClearCache(True, "/" . SITE_ID . "/idea/" . $arBlog["ID"] . "/pages/"); BXClearCache(True, "/" . SITE_ID . "/idea/" . $arBlog["ID"] . "/post/" . $newID . "/"); BXClearCache(True, '/' . SITE_ID . '/idea/statistic_list/'); //Redirect if not AJAX