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 (!CBlogGroup::CheckFields("UPDATE", $arFields, $ID)) { return false; } $strUpdate = $DB->PrepareUpdate("b_blog_group", $arFields); foreach ($arFields1 as $key => $value) { if (strlen($strUpdate) > 0) { $strUpdate .= ", "; } $strUpdate .= $key . "=" . $value . " "; } if (strlen($strUpdate) > 0) { $strSql = "UPDATE b_blog_group SET " . "\t" . $strUpdate . " " . "WHERE ID = " . $ID . " "; $DB->Query($strSql, False, "File: " . __FILE__ . "<br>Line: " . __LINE__); unset($GLOBALS["BLOG_GROUP_CACHE_" . $ID]); return $ID; } return False; }
function CheckFields($ACTION, &$arFields, $ID = 0) { if ((is_set($arFields, "NAME") || $ACTION == "ADD") && strlen($arFields["NAME"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GG_EMPTY_NAME"), "EMPTY_NAME"); return false; } elseif (is_set($arFields, "NAME")) { $dbResult = CBlogGroup::GetList(array(), array("NAME" => $arFields["NAME"], "!ID" => $ID, "SITE_ID" => $arFields["SITE_ID"]), false, false, array("ID")); if ($dbResult->Fetch()) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GG_DUBLICATE_NAME"), "DUBLICATE_NAME"); return false; } } if ((is_set($arFields, "SITE_ID") || $ACTION == "ADD") && strlen($arFields["SITE_ID"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GG_EMPTY_SITE_ID"), "EMPTY_SITE_ID"); return false; } elseif (is_set($arFields, "SITE_ID")) { $dbResult = CSite::GetByID($arFields["SITE_ID"]); if (!$dbResult->Fetch()) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["SITE_ID"], GetMessage("BLG_GG_ERROR_NO_SITE")), "ERROR_NO_SITE"); return false; } } return True; }
CBlogSitePath::Update($res["ID"], array("PATH" => $res_tmp[$res["TYPE"]])); } } while ($db_res && ($res = $db_res->Fetch())); } } else { CBlogSitePath::Add(array("SITE_ID" => WIZARD_SITE_ID, "PATH" => WIZARD_SITE_DIR . "people/user/#user_id#/blog/", "TYPE" => "B")); CBlogSitePath::Add(array("SITE_ID" => WIZARD_SITE_ID, "PATH" => WIZARD_SITE_DIR . "people/user/#user_id#/blog/#post_id#/", "TYPE" => "P")); CBlogSitePath::Add(array("SITE_ID" => WIZARD_SITE_ID, "PATH" => WIZARD_SITE_DIR . "people/user/#user_id#/", "TYPE" => "U")); CBlogSitePath::Add(array("SITE_ID" => WIZARD_SITE_ID, "PATH" => WIZARD_SITE_DIR . "groups/group/#group_id#/blog/", "TYPE" => "G")); CBlogSitePath::Add(array("SITE_ID" => WIZARD_SITE_ID, "PATH" => WIZARD_SITE_DIR . "groups/group/#group_id#/blog/#post_id#/", "TYPE" => "H")); } /******************************************************************** Get users list with permission to create blog ********************************************************************/ if (!$SocNetGroupID) { $SocNetGroupID = CBlogGroup::Add(array("SITE_ID" => WIZARD_SITE_ID, "NAME" => "[" . WIZARD_SITE_ID . "] " . GetMessage("BLOG_DEMO_GROUP_SOCNET"))); } $arFilter = array(); if ($GLOBALS["APPLICATION"]->GetGroupRight("blog", array(2)) < "N") { $arFilter["!ID"] = 1; $arFilter["GROUPS"] = array(); $db_res = CGroup::GetList($by = "ID", $order = "DESC", array("ACTIVE" => "Y", "!ID" => 2)); if ($db_res && ($res = $db_res->Fetch())) { do { if ($GLOBALS["APPLICATION"]->GetGroupRight("blog", array($res["ID"])) >= "N") { $arFilter["GROUPS"][] = $res["ID"]; } } while ($res = $db_res->Fetch()); } } $db_res = CUser::GetList($by = "ID", $order = "DESC", $arFilter, array("NAV_PARAMS" => array("nPageSize" => 3, "iNumPage" => 1, "bDescPageNumbering" => false)));
$arResult["urlToFriends"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER_FRIENDS"], array("user_id" => $user_id)); $arResult["urlToOwnNewPost"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_POST_EDIT"], array("blog" => $arOwnBlog["URL"], "post_id" => "new")); $arResult["urlToOwnBlogEdit"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG_EDIT"], array("blog" => $arOwnBlog["URL"])); } } else { unset($arOwnBlog); } } else { unset($arOwnBlog); } } if (strlen($arParams["BLOG_URL"]) > 0) { if ($arOwnBlog["URL"] != $arParams["BLOG_URL"]) { $arBlog = CBlog::GetByUrl($arParams["BLOG_URL"], $arParams["GROUP_ID"]); if ($arBlog["ACTIVE"] == "Y") { $arGroup = CBlogGroup::GetByID($arBlog["GROUP_ID"]); if ($arGroup["SITE_ID"] == SITE_ID) { $arResult["Blog"] = $arBlog; $arResult["urlToCurrentBlog"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("blog" => $arParams["BLOG_URL"])); } else { unset($arBlog); } } else { unset($arBlog); } } elseif (!empty($arOwnBlog)) { $arBlog = $arOwnBlog; } if (!empty($arBlog)) { if (IntVal($user_id) > 0) { $perm = CBlog::GetBlogUserPostPerms($arBlog["ID"], $user_id);
if ($arParams["CACHE_TIME"] > 0) { $cache->StartDataCache($arParams["CACHE_TIME"], $cache_id, $cache_path); } $SORT = array($arParams["SORT_BY1"] => $arParams["SORT_ORDER1"], $arParams["SORT_BY2"] => $arParams["SORT_ORDER2"]); $arFilter = array("SITE_ID" => SITE_ID); if (!empty($arParams["GROUP_ID"])) { $arFilter["ID"] = $arParams["GROUP_ID"]; } $arSelectFields = false; // if($arParams["GROUPS_COUNT"]>0) // $COUNT = Array("nTopCount" => $arParams["GROUPS_COUNT"]*2); // else $COUNT = false; $arResult["GROUPS"] = array(); $arResult["GROUPS_TABLE"] = array(); $dbGroups = CBlogGroup::GetList($SORT, $arFilter, false, $COUNT, $arSelectFields); $itemCnt = 0; while ($arGroups = $dbGroups->Fetch()) { $dbBlog = CBlog::GetList(array(), array("GROUP_ID" => $arGroups["ID"]), false, false, array("ID", "GROUP_ID")); if ($arBlog = $dbBlog->Fetch()) { $url = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_GROUP"], array("group_id" => $arGroups["ID"])); $arResult["GROUPS"][] = array("ID" => $arGroups["ID"], "NAME" => htmlspecialcharsex($arGroups["NAME"]), "URL" => $url); $itemCnt++; if ($itemCnt >= $arParams["GROUPS_COUNT"] && $arParams["GROUPS_COUNT"] > 0) { break; } } } $cnt = count($arResult["GROUPS"]); $row1 = ceil($cnt / $arParams["COLS_COUNT"]); $all = $cnt - $row1;
$obCache->StartDataCache(); $dbBl = CBlog::GetList(array(), $arFilterblg); $arBlog = $dbBl->Fetch(); if (!$arBlog && IsModuleInstalled("intranet")) { $arIdeaBlogGroupID = array(); if (IsModuleInstalled("idea")) { $rsSite = CSite::GetList($by = "sort", $order = "desc", array("ACTIVE" => "Y")); while ($arSite = $rsSite->Fetch()) { $arIdeaBlogGroupID[] = COption::GetOptionInt("idea", "blog_group_id", false, $arSite["LID"]); } } if (empty($arIdeaBlogGroupID)) { $arBlog = CBlog::GetByOwnerID($arParams["USER_ID"]); } else { $arBlogGroupID = array(); $rsBlogGroup = CBlogGroup::GetList(array(), array(), false, false, array("ID")); while ($arBlogGroup = $rsBlogGroup->Fetch()) { if (!in_array($arBlogGroup["ID"], $arIdeaBlogGroupID)) { $arBlogGroupID[] = $arBlogGroup["ID"]; } } $arBlog = CBlog::GetByOwnerID($arParams["USER_ID"], $arBlogGroupID); } } $obCache->EndDataCache($arBlog); } $arResult["Blog"] = $arBlog; if ($GLOBALS["USER"]->IsAuthorized()) { CSocNetTools::InitGlobalExtranetArrays(); if (isset($GLOBALS["arExtranetGroupID"])) { $arResult["arExtranetGroupID"] = $GLOBALS["arExtranetGroupID"];
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; }
public static function Update($ID, $arFields, $bSearchIndex = true) { global $DB; $ID = IntVal($ID); if(strlen($arFields["PATH"]) > 0) $arFields["PATH"] = str_replace("#comment_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 (!CBlogComment::CheckFields("UPDATE", $arFields, $ID)) return false; elseif(!$GLOBALS["USER_FIELD_MANAGER"]->CheckFields("BLOG_COMMENT", $ID, $arFields)) return false; foreach(GetModuleEvents("blog", "OnBeforeCommentUpdate", true) as $arEvent) { if (ExecuteModuleEventEx($arEvent, Array($ID, &$arFields))===false) return false; } $strUpdate = $DB->PrepareUpdate("b_blog_comment", $arFields); foreach ($arFields1 as $key => $value) { if (strlen($strUpdate) > 0) $strUpdate .= ", "; $strUpdate .= $key."=".$value." "; } if (strlen($strUpdate) > 0) { if(is_set($arFields["PUBLISH_STATUS"]) && strlen($arFields["PUBLISH_STATUS"]) > 0) { $arComment = CBlogComment::GetByID($ID); if($arComment["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_PUBLISH && $arFields["PUBLISH_STATUS"] != BLOG_PUBLISH_STATUS_PUBLISH) CBlogPost::Update($arComment["POST_ID"], array("=NUM_COMMENTS" => "NUM_COMMENTS - 1")); elseif($arComment["PUBLISH_STATUS"] != BLOG_PUBLISH_STATUS_PUBLISH && $arFields["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_PUBLISH) CBlogPost::Update($arComment["POST_ID"], array("=NUM_COMMENTS" => "NUM_COMMENTS + 1")); } $strSql = "UPDATE b_blog_comment SET ". " ".$strUpdate." ". "WHERE ID = ".$ID." "; $DB->Query($strSql, False, "File: ".__FILE__."<br>Line: ".__LINE__); unset($GLOBALS["BLOG_COMMENT"]["BLOG_COMMENT_CACHE_".$ID]); $GLOBALS["USER_FIELD_MANAGER"]->Update("BLOG_COMMENT", $ID, $arFields); $arComment = CBlogComment::GetByID($ID); $arBlog = CBlog::GetByID($arComment["BLOG_ID"]); if($arBlog["USE_SOCNET"] == "Y") $arFields["SC_PERM"] = CBlogComment::GetSocNetCommentPerms($arComment["POST_ID"]); foreach(GetModuleEvents("blog", "OnCommentUpdate", true) as $arEvent) ExecuteModuleEventEx($arEvent, Array($ID, &$arFields)); if ($bSearchIndex && CModule::IncludeModule("search")) { $newPostPerms = CBlogUserGroup::GetGroupPerms(1, $arComment["BLOG_ID"], $arComment["POST_ID"], BLOG_PERMS_POST); if ($arBlog["SEARCH_INDEX"] != "Y" || $arComment["PUBLISH_STATUS"] != BLOG_PUBLISH_STATUS_PUBLISH) { CSearch::Index("blog", "C".$ID, array( "TITLE" => "", "BODY" => "" ) ); } else { $arGroup = CBlogGroup::GetByID($arBlog["GROUP_ID"]); if(strlen($arFields["PATH"]) > 0) { $arFields["PATH"] = str_replace("#comment_id#", $ID, $arFields["PATH"]); $arPostSite = array($arGroup["SITE_ID"] => $arFields["PATH"]); } elseif(strlen($arComment["PATH"]) > 0) { $arComment["PATH"] = str_replace("#comment_id#", $ID, $arComment["PATH"]); $arPostSite = array($arGroup["SITE_ID"] => $arComment["PATH"]); } else { $arPostSite = array( $arGroup["SITE_ID"] => CBlogPost::PreparePath( $arBlog["URL"], $arComment["POST_ID"], $arGroup["SITE_ID"], false, $arBlog["OWNER_ID"], $arBlog["SOCNET_GROUP_ID"] ) ); } $searchContent = blogTextParser::killAllTags($arComment["POST_TEXT"]); $searchContent .= "\r\n" . $GLOBALS["USER_FIELD_MANAGER"]->OnSearchIndex("BLOG_COMMENT", $arComment["ID"]); $arSearchIndex = array( "SITE_ID" => $arPostSite, "LAST_MODIFIED" => $arComment["DATE_CREATE"], "PARAM1" => "COMMENT", "PARAM2" => $arComment["BLOG_ID"]."|".$arComment["POST_ID"], "PERMISSIONS" => array(2), "TITLE" => $arComment["TITLE"], "BODY" => $searchContent, "USER_ID" => (IntVal($arComment["AUTHOR_ID"]) > 0) ? $arComment["AUTHOR_ID"] : false, "ENTITY_TYPE_ID" => "BLOG_COMMENT", "ENTITY_ID" => $arComment["ID"], ); if($arBlog["USE_SOCNET"] == "Y") { if(is_array($arFields["SC_PERM"])) { $arSearchIndex["PERMISSIONS"] = $arFields["SC_PERM"]; $sgId = array(); foreach($arFields["SC_PERM"] 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", ); } if(!in_array("U".$arComment["AUTHOR_ID"], $arSearchIndex["PERMISSIONS"])) $arSearchIndex["PERMISSIONS"][] = "U".$arComment["AUTHOR_ID"]; } } if(strlen($arComment["TITLE"]) <= 0) { //$arPost = CBlogPost::GetByID($arComment["POST_ID"]); $arSearchIndex["TITLE"] = substr($arSearchIndex["BODY"], 0, 100); } CSearch::Index("blog", "C".$ID, $arSearchIndex, True); } } return $ID; } return False; }
ShowError(GetMessage("BLOG_MODULE_NOT_INSTALL")); return; } $arParams["BLOG_URL"] = preg_replace("/[^a-zA-Z0-9_-]/is", "", Trim($arParams["BLOG_URL"])); if (!array_key_exists("PATH_TO_BLOG_CATEGORY", $arParams) || !is_string($arParams["PATH_TO_BLOG_CATEGORY"])) { $arParams["PATH_TO_BLOG_CATEGORY"] = ""; } //0 no limit $arParams["TAGS_COUNT"] = intval($arParams["TAGS_COUNT"]); $obCache = new CPHPCache(); $cache_id = md5(serialize(array($arParams["BLOG_URL"], $arParams["TAGS_COUNT"], $arParams["PATH_TO_BLOG_CATEGORY"]))); $cache_path = '/' . SITE_ID . '/idea/tags/'; if (!$obCache->StartDataCache(60 * 60 * 24, $cache_id, $cache_path)) { $arResult = $obCache->GetVars(); } else { if (($arBlog = CBlog::GetByUrl($arParams["BLOG_URL"])) && $arBlog["ACTIVE"] == "Y" && ($arGroup = CBlogGroup::GetByID($arBlog["GROUP_ID"])) && $arGroup["SITE_ID"] == SITE_ID) { $arResult = array("BLOG" => $arBlog, "CATEGORY" => array()); $toCnt = array(); $res = CBlogCategory::GetList(array("NAME" => "ASC"), array("BLOG_ID" => $arBlog["ID"])); while ($arCategory = $res->GetNext()) { $arSumCat["C" . $arCategory["ID"]] = array("ID" => $arCategory["ID"], "NAME" => $arCategory["NAME"]); $toCnt[] = $arCategory['ID']; } $resCnt = CBlogPostCategory::GetList(array(), array("BLOG_ID" => $arBlog["ID"], "CATEGORY_ID" => $toCnt), array("CATEGORY_ID"), $arParams["TAGS_COUNT"] > 0 ? array("nTopCount" => $arParams["TAGS_COUNT"]) : false, array("ID", "BLOG_ID", "CATEGORY_ID", "NAME")); if (($arCategoryCount = $resCnt->Fetch()) && $arCategoryCount) { $cntMin = $cntMax = $arCategoryCount['CNT']; $arRes = array(); do { $arRes["C" . $arCategoryCount["CATEGORY_ID"]] = array("CNT" => $arCategoryCount['CNT'], "URL" => CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG_CATEGORY"], array("category_id" => $arCategoryCount["CATEGORY_ID"]))); $cntMin = min($cntMin, $arCategoryCount['CNT']); $cntMax = max($cntMax, $arCategoryCount['CNT']);
</td> </tr> <tr valign=top> <td nowrap valign="top" align="right" class="blogtablehead"> <font class="blogheadtext"> <font color="#FF0000">*</font> <b><?php echo GetMessage('BLOG_GRP'); ?> </b> </font> </td> <td class="blogtablebody"> <select name="GROUP_ID" class="inputselect"> <?php $val = IntVal($bVarsFromForm ? $_POST['GROUP_ID'] : ($arBlog ? $arBlog["GROUP_ID"] : 0)); $dbBlogGroup = CBlogGroup::GetList(array("NAME" => "ASC"), array("SITE_ID" => SITE_ID)); while ($arBlogGroup = $dbBlogGroup->Fetch()) { ?> <option value="<?php echo $arBlogGroup["ID"]; ?> "<?php if ($val == IntVal($arBlogGroup["ID"])) { echo " selected"; } ?> ><?php echo htmlspecialchars($arBlogGroup["NAME"]); ?> </option><?php }
<?php if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die; } if (!CModule::IncludeModule("blog")) { return; } $dbGroup = CBlogGroup::GetList(array("ID" => "ASC"), array("SITE_ID" => WIZARD_SITE_ID)); if ($arGroup = $dbGroup->Fetch()) { if (WIZARD_B24_TO_CP) { $groupID = $arGroup["ID"]; CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/index.php", array("BLOG_GROUP_ID" => $groupID)); CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/index_b24.php", array("BLOG_GROUP_ID" => $groupID)); CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/contacts/personal.php", array("BLOG_GROUP_ID" => $groupID)); CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/workgroups/index.php", array("BLOG_GROUP_ID" => $groupID)); } return; } CBlogSitePath::Add(array("SITE_ID" => WIZARD_SITE_ID, "PATH" => WIZARD_SITE_DIR . "contacts/personal/user/#user_id#/blog/", "TYPE" => "B")); CBlogSitePath::Add(array("SITE_ID" => WIZARD_SITE_ID, "PATH" => WIZARD_SITE_DIR . "contacts/personal/user/#user_id#/blog/#post_id#/", "TYPE" => "P")); CBlogSitePath::Add(array("SITE_ID" => WIZARD_SITE_ID, "PATH" => WIZARD_SITE_DIR . "contacts/personal/user/#user_id#/", "TYPE" => "U")); CBlogSitePath::Add(array("SITE_ID" => WIZARD_SITE_ID, "PATH" => WIZARD_SITE_DIR . "workgroups/group/#group_id#/blog/", "TYPE" => "G")); CBlogSitePath::Add(array("SITE_ID" => WIZARD_SITE_ID, "PATH" => WIZARD_SITE_DIR . "workgroups/group/#group_id#/blog/#post_id#/", "TYPE" => "H")); $groupID = CBlogGroup::Add(array("SITE_ID" => WIZARD_SITE_ID, "NAME" => GetMessage("BLOG_SOCNET_GROUP_EXTRANET_NAME"))); CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/index.php", array("BLOG_GROUP_ID" => $groupID)); CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/index_b24.php", array("BLOG_GROUP_ID" => $groupID)); CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/contacts/personal.php", array("BLOG_GROUP_ID" => $groupID)); CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/workgroups/index.php", array("BLOG_GROUP_ID" => $groupID));
} $arSites[] = $ar_sites; } if (empty($arFields["SITE_ID"])) { $arFields["SITE_ID"] = $arSites[0]["LID"]; } $BLOG_GROUP_ID = CBlogGroup::Add($arFields); if ($BLOG_GROUP_ID <= 0) { $bVarsFromForm = true; if ($ex = $APPLICATION->GetException()) { $strWarning .= $ex->GetString() . ". <br />"; } else { $strWarning .= "Error creating blog group. <br />"; } } else { $arBlogGroupTmp = CBlogGroup::GetByID($BLOG_GROUP_ID); BXClearCache(True, "/" . $arBlogGroupTmp["SITE_ID"] . "/blog/blog_groups/"); $_REQUEST["create_blog_group"] = "N"; $_REQUEST["blog_group_id"] = $BLOG_GROUP_ID; $_REQUEST["blog_group_name"] = ""; } } if (!$bVarsFromForm) { $arFields = array("ACTIVE" => "N", "NAME" => $_REQUEST["blog_name"], "DESCRIPTION" => $_REQUEST["blog_description"], "=DATE_UPDATE" => $GLOBALS["DB"]->CurrentTimeFunction(), "=DATE_CREATE" => $GLOBALS["DB"]->CurrentTimeFunction(), "URL" => $_REQUEST["blog_url"], "OWNER_ID" => $GLOBALS["USER"]->GetId(), "GROUP_ID" => $_REQUEST["blog_group_id"], "ENABLE_COMMENTS" => "Y", "ENABLE_IMG_VERIF" => "Y", "EMAIL_NOTIFY" => "N", "ENABLE_RSS" => "N", "ALLOW_HTML" => "N", "PERMS_POST" => array("1" => "I", "2" => "I"), "PERMS_COMMENT" => array("1" => "P", "2" => "P")); $ID = CBlog::Add($arFields); if (intVal($ID) <= 0) { $bVarsFromForm = true; if ($ex = $APPLICATION->GetException()) { $strWarning .= $ex->GetString() . "<br />"; } else { $strWarning .= "Error creating blog. <br />";
else { if ($arParams['BLOG_FROM_AJAX'] === 'N') { $fields = array( 'SITE_ID' => SITE_ID, 'NAME' => GetMessage('IBLOCK_CSC_BLOG_GROUP_NAME') ); $blogGroupIterator = CBlogGroup::GetList(array(), $fields, false, false, array('ID')); if ($blogGroup = $blogGroupIterator->Fetch()) { $blogGroupID = (int)$blogGroup['ID']; } else { $blogGroupID = (int)CBlogGroup::Add($fields); if ($blogGroupID == 0) { if ($ex = $APPLICATION->GetException()) $arResult["ERRORS"][] = $ex->GetString(); else $arResult["ERRORS"][] = GetMessage("IBLOCK_CSC_BLOG_GROUP_CREATE_ERROR"); } } unset($fields); if ($blogGroupID > 0) { if (!$blogExist) { $fields = array( "NAME" => GetMessage("IBLOCK_CSC_BLOG_NAME"),
function Update($ID, $arFields) { 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; } $db_events = GetModuleEvents("blog", "OnBeforePostUpdate"); while ($arEvent = $db_events->Fetch()) { 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 " . "\t" . $strUpdate . " " . "WHERE ID = " . $ID . " "; $DB->Query($strSql, False, "File: " . __FILE__ . "<br>Line: " . __LINE__); unset($GLOBALS["BLOG_POST"]["BLOG_POST_CACHE_" . $ID]); $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); } $db_events = GetModuleEvents("blog", "OnPostUpdate"); while ($arEvent = $db_events->Fetch()) { ExecuteModuleEventEx($arEvent, array($ID, &$arFields)); } if (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) { if (strlen($arNewPost["CODE"]) > 0) { $arNewPost["PATH"] = str_replace("#post_id#", $arNewPost["CODE"], $arNewPost["PATH"]); } else { $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 (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); } $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" => blogTextParser::killAllTags($arNewPost["DETAIL_TEXT"]), "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); } } CSearch::Index("blog", "P" . $ID, $arSearchIndex, True); if ($arOldPost["PUBLISH_STATUS"] != BLOG_PUBLISH_STATUS_PUBLISH && $arNewPost["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_PUBLISH || $bIndexComment) { $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); } } } } return $ID; }
} } } } if ($arParams["SET_TITLE"] == "Y") { if (!empty($arBlog)) { $APPLICATION->SetTitle(str_replace("#BLOG#", $arBlog["NAME"], GetMessage('BLOG_TOP_TITLE'))); } else { $APPLICATION->SetTitle(GetMessage('BLOG_NEW_BLOG')); } } $arFilterGroup = array("SITE_ID" => SITE_ID); if (!empty($arParams["GROUP_ID"])) { $arFilterGroup["ID"] = $arParams["GROUP_ID"]; } $dbBlogGroup = CBlogGroup::GetList(array("NAME" => "ASC"), $arFilterGroup); $arBlogGroupTmp = array(); while ($arBlogGroup = $dbBlogGroup->GetNext()) { if ($arBlogGroup["ID"] == $arResult["BLOG"]["GROUP_ID"]) { $arBlogGroup["SELECTED"] = "Y"; } $arBlogGroupTmp[] = $arBlogGroup; } $arResult["GROUP"] = $arBlogGroupTmp; $arResult["AUTO_GROUPS"] = array(); if (!empty($arBlog)) { $arResult["AUTO_GROUPS"] = unserialize($arBlog["AUTO_GROUPS"]); } if (!empty($arBlog)) { $res = CBlogUserGroup::GetList(array("NAME" => "ASC"), array("BLOG_ID" => $arBlog["ID"]), array("ID", "NAME", "BLOG_ID", "COUNT" => "USER2GROUP_ID")); while ($arGroup = $res->Fetch()) {
); */ if (CModule::IncludeModule("blog")) { $ID = IntVal($ID); $BLOGS_COUNT = intval($BLOGS_COUNT) > 0 ? IntVal($BLOGS_COUNT) : 20; $COUNT = array("nPageSize" => intval($BLOGS_COUNT), "bShowAll" => false); $SORT_BY1 = isset($SORT_BY1) ? $SORT_BY1 : "LAST_POST_DATE"; $SORT_ORDER1 = isset($SORT_ORDER1) ? $SORT_ORDER1 : "DESC"; $SORT_BY2 = isset($SORT_BY2) ? $SORT_BY2 : "NAME"; $SORT_ORDER2 = isset($SORT_ORDER2) ? $SORT_ORDER2 : "ASC"; $SORT = array($SORT_BY1 => $SORT_ORDER1, $SORT_BY2 => $SORT_ORDER2); $CACHE_TIME = intval($CACHE_TIME); $is404 = $is404 == 'N' ? false : true; $arFilter = array("SITE_ID" => SITE_ID, "GROUP_ID" => $ID, "ACTIVE" => "Y"); $arSelectFields = array("ID", "NAME", "DESCRIPTION", "URL", "SITE_ID", "DATE_CREATE", "DATE_UPDATE", "ACTIVE", "OWNER_ID", "OWNER_LOGIN", "OWNER_NAME", "OWNER_LAST_NAME", "LAST_POST_DATE", "LAST_POST_ID", "BLOG_USER_AVATAR", "BLOG_USER_ALIAS"); if ($arGroup = CBlogGroup::GetByID($ID)) { $APPLICATION->SetTitle($arGroup["NAME"]); //формируем кэш $cache = new CPHPCache(); $cache_id = "blog_groups_" . serialize($arParams) . "_" . CDBResult::NavStringForCache($BLOGS_COUNT); $cache_path = "/" . SITE_ID . "/blog/groups/" . $ID . "/"; if ($CACHE_TIME > 0 && $cache->InitCache($CACHE_TIME, $cache_id, $cache_path)) { $cache->Output(); } else { if ($CACHE_TIME > 0) { $cache->StartDataCache($CACHE_TIME, $cache_id, $cache_path); } $dbBlogs = CBlog::GetList($SORT, $arFilter, false, $COUNT, $arSelectFields); if ($arBlogs = $dbBlogs->NavNext(false)) { //$dbBlogs->NavPrint(GetMessage("B_B_GR_TITLE")); do {
function Update($ID, $arFields) { global $DB; $ID = IntVal($ID); if ($ID <= 0) { return false; } if (strlen($arFields["PATH"]) > 0) { $path = $arFields["PATH"]; unset($arFields["PATH"]); } $arFields1 = array(); foreach ($arFields as $key => $value) { if (substr($key, 0, 1) == "=") { $arFields1[substr($key, 1)] = $value; unset($arFields[$key]); } } if (!CBlog::CheckFields("UPDATE", $arFields, $ID)) { return false; } elseif (!$GLOBALS["USER_FIELD_MANAGER"]->CheckFields("BLOG_BLOG", $ID, $arFields)) { return false; } $db_events = GetModuleEvents("blog", "OnBeforeBlogUpdate"); while ($arEvent = $db_events->Fetch()) { if (ExecuteModuleEventEx($arEvent, array($ID, &$arFields)) === false) { return false; } } $arBlogOld = CBlog::GetByID($ID); $strUpdate = $DB->PrepareUpdate("b_blog", $arFields); foreach ($arFields1 as $key => $value) { if (strlen($strUpdate) > 0) { $strUpdate .= ", "; } $strUpdate .= $key . "=" . $value . " "; } if (strlen($strUpdate) > 0) { $strSql = "UPDATE b_blog SET " . "\t" . $strUpdate . " " . "WHERE ID = " . $ID . " "; $DB->Query($strSql, False, "File: " . __FILE__ . "<br>Line: " . __LINE__); unset($GLOBALS["BLOG"]["BLOG_CACHE_" . $ID]); unset($GLOBALS["BLOG"]["BLOG4OWNER_CACHE_" . $arBlogOld["OWNER_ID"]]); unset($GLOBALS["BLOG"]["BLOG4OWNERGROUP_CACHE_" . $arBlogOld["SOCNET_GROUP_ID"]]); $events = GetModuleEvents("blog", "OnBlogUpdate"); while ($arEvent = $events->Fetch()) { ExecuteModuleEventEx($arEvent, array($ID, &$arFields)); } if (is_set($arFields, "PERMS_POST")) { CBlog::SetBlogPerms($ID, $arFields["PERMS_POST"], BLOG_PERMS_POST); } if (is_set($arFields, "PERMS_COMMENT")) { CBlog::SetBlogPerms($ID, $arFields["PERMS_COMMENT"], BLOG_PERMS_COMMENT); } $GLOBALS["USER_FIELD_MANAGER"]->Update("BLOG_BLOG", $ID, $arFields); } else { $ID = False; } if ($ID && (is_set($arFields, "NAME") || is_set($arFields, "DESCRIPTION"))) { if (CModule::IncludeModule("search")) { $arBlog = CBlog::GetByID($ID); if ($arBlogOld["ACTIVE"] == "Y" && $arBlog["ACTIVE"] != "Y" || $arBlogOld["SEARCH_INDEX"] == "Y" && $arBlog["SEARCH_INDEX"] != "Y") { CSearch::DeleteIndex("blog", false, "COMMENT", $ID . "|%"); CSearch::DeleteIndex("blog", false, "POST", $ID); CSearch::DeleteIndex("blog", "B" . $ID); } elseif ($arBlog["ACTIVE"] == "Y" && $arBlog["SEARCH_INDEX"] == "Y") { if ($arBlog["USE_SOCNET"] == "Y") { CSearch::DeleteIndex("blog", "B" . $ID); } else { $arGroup = CBlogGroup::GetByID($arBlog["GROUP_ID"]); if (strlen($path) > 0) { $path = str_replace("#blog_url#", $arBlog["URL"], $path); $arPostSite = array($arGroup["SITE_ID"] => $path); } else { $arPostSite = array($arGroup["SITE_ID"] => CBlog::PreparePath($arBlog["URL"], $arGroup["SITE_ID"], false, $arBlog["OWNER_ID"], $arBlog["SOCNET_GROUP_ID"])); } $arSearchIndex = array("SITE_ID" => $arPostSite, "LAST_MODIFIED" => $arBlog["DATE_UPDATE"], "PARAM1" => "BLOG", "PARAM2" => $arBlog["OWNER_ID"], "PERMISSIONS" => array(2), "TITLE" => $arBlog["NAME"], "BODY" => strlen($arBlog["DESCRIPTION"]) > 0 ? $arBlog["DESCRIPTION"] : $arBlog["NAME"]); CSearch::Index("blog", "B" . $ID, $arSearchIndex); } } } } return $ID; }
if (substr($key, 0, 9) == "PROPERTY_" && substr($key, -6, 6) == "_VALUE") { $arResult["ELEMENT"]["PROPERTIES"][substr($key, 9, intVal(strLen($key) - 15))] = array("VALUE" => $val); } } if (isset($arParams["BLOG_URL"]) && trim($arParams["BLOG_URL"]) != "") { $arResult["BLOG_URL"] = $arParams["BLOG_URL"]; } else { $arResult["BLOG_URL"] = "catalog_comments"; } $SITE_ID = defined("SITE_ID") && strLen(SITE_ID) > 0 ? SITE_ID : "s1"; $arFields = array("SITE_ID" => $SITE_ID, "NAME" => GetMessage("IBLOCK_CSC_BLOG_GROUP_NAME")); $dbBlogGroup = CBlogGroup::GetList(array(), $arFields, false, false, array("ID")); if ($arBlogGroup = $dbBlogGroup->Fetch()) { $blogGroupID = $arBlogGroup["ID"]; } else { $blogGroupID = CBlogGroup::Add($arFields); } $blogGroupID = intval($blogGroupID); if ($blogGroupID > 0) { $dbBlog = CBlog::GetList(array(), array("URL" => $arResult["BLOG_URL"]), false, false, array("ID")); if ($arBlog = $dbBlog->Fetch()) { $blogId = $arBlog["ID"]; } else { $arFields = array("NAME" => GetMessage("IBLOCK_CSC_BLOG_NAME"), "DESCRIPTION" => GetMessage("IBLOCK_CSC_BLOG_DESCRIPTION"), "GROUP_ID" => $blogGroupID, "ENABLE_COMMENTS" => 'Y', "ENABLE_IMG_VERIF" => 'Y', "EMAIL_NOTIFY" => isset($arParams["EMAIL_NOTIFY"]) && $arParams["EMAIL_NOTIFY"] == 'Y' ? 'Y' : 'N', "URL" => $arResult["BLOG_URL"], "ACTIVE" => "Y", "OWNER_ID" => 1, "AUTO_GROUPS" => "N"); $blogId = CBlog::Add($arFields); if (IntVal($blogId) > 0) { CBlog::SetBlogPerms($blogId, array("1" => BLOG_PERMS_WRITE, "2" => BLOG_PERMS_WRITE), BLOG_PERMS_COMMENT); } else { if ($ex = $APPLICATION->GetException()) { $arResult["ERRORS"][] = $ex->GetString(); } else {
$dbResult = CForumNew::GetListEx(array(), array("SITE_ID" => $arSite["SITE_ID"], "XML_ID" => "car_forum_demo")); if ($arResult = $dbResult->Fetch()) { $forumID = $arResult["ID"]; } else { $arFields = array("NAME" => GetSocNetMessageLocal("SONET_I_FORUM_NAME", $arSite["LANGUAGE_ID"]), "ACTIVE" => "Y", "XML_ID" => "car_forum_demo", "MODERATION" => "N", "SITES" => array($arSite["SITE_ID"] => StrLen($arSite["DIR"]) > 0 ? $arSite["DIR"] : "/")); $forumID = CForumNew::Add($arFields); } } // ------------------ BLOG ------------------------------- $blogGroupID = 0; if (CModule::IncludeModule("blog")) { $dbResult = CBlogGroup::GetList(array("ID" => "ASC"), array("SITE_ID" => $arSite["SITE_ID"])); if ($arResult = $dbResult->Fetch()) { $blogGroupID = $arResult["ID"]; } else { $blogGroupID = CBlogGroup::Add(array("SITE_ID" => $arSite["SITE_ID"], "NAME" => GetSocNetMessageLocal("SONET_I_BLOG_NAME", $arSite["LANGUAGE_ID"]))); } } // ------------------ PHOTO ------------------------------- $photoIBlockTypeID = "car_gallery_demo"; $photoUserIBlockID = 0; $photoGroupIBlockID = 0; if (CModule::IncludeModule("iblock")) { $dbIBlockType = CIBlockType::GetList(array(), array("=ID" => $photoIBlockTypeID)); if ($arIBlockType = $dbIBlockType->Fetch()) { $photoIBlockTypeID = $arIBlockType["ID"]; } else { $arFieldsLang = array(); foreach ($arLanguages as $arLang) { $arFieldsLang[$arLang["LID"]] = array("NAME" => GetSocNetMessageLocal("SONET_I_PHOTO_IBLOCK_TYPE_NAME", $arLang["LID"])); }
public static function GetPing($blogUrl, $postID, $arParams = array()) { global $DB; $blogUrl = Trim($blogUrl); $postID = IntVal($postID); $bSuccess = True; $arPost = CBlogPost::GetByID($postID); if (!$arPost) { CBlogTrackback::SendPingResponce(1, "Invalid target post"); $bSuccess = False; } if ($bSuccess) { if ($arPost["ENABLE_TRACKBACK"] != "Y" || COption::GetOptionString("blog", "enable_trackback", "Y") != "Y") { CBlogTrackback::SendPingResponce(1, "Trackbacks disabled"); $bSuccess = False; } } if ($bSuccess) { $arBlog = CBlog::GetByID($arPost["BLOG_ID"]); if (!$arBlog || $arBlog["URL"] != $blogUrl) { CBlogTrackback::SendPingResponce(1, "Invalid target blog"); $bSuccess = False; } } if ($bSuccess) { if (!isset($arParams["title"]) || strlen($arParams["title"]) <= 0 || !isset($arParams["url"]) || strlen($arParams["url"]) <= 0) { CBlogTrackback::SendPingResponce(1, "Missing required fields"); $bSuccess = False; } } if ($bSuccess) { if (!isset($arParams["excerpt"])) { $arParams["excerpt"] = $arParams["title"]; } if (!isset($arParams["blog_name"])) { $arParams["blog_name"] = ""; } } if ($bSuccess) { $serverCharset = ""; $arGroup = CBlogGroup::GetByID($arBlog["GROUP_ID"]); $dbSite = CSite::GetList($b = "sort", $o = "asc", array("LID" => $arGroup["SITE_ID"])); if ($arSite = $dbSite->Fetch()) { $serverCharset = $arSite["CHARSET"]; } if (strlen($serverCharset) <= 0) { if (defined("SITE_CHARSET") && strlen(SITE_CHARSET) > 0) { $serverCharset = SITE_CHARSET; } else { $serverCharset = "windows-1251"; } } preg_match("/charset=(\")*(.*?)(\")*(;|\$)/", $_SERVER["CONTENT_TYPE"], $charset); $charset = preg_replace("#[^[:space:]a-zA-Z0-9\\-]#is", "", $charset[2]); if (strlen($charset) <= 0) { $charset = "utf-8"; } if ($charset != $serverCharset) { $arParams["title"] = $GLOBALS["APPLICATION"]->ConvertCharset($arParams["title"], $charset, $serverCharset); $arParams["url"] = $GLOBALS["APPLICATION"]->ConvertCharset($arParams["url"], $charset, $serverCharset); $arParams["excerpt"] = $GLOBALS["APPLICATION"]->ConvertCharset($arParams["excerpt"], $charset, $serverCharset); $arParams["blog_name"] = $GLOBALS["APPLICATION"]->ConvertCharset($arParams["blog_name"], $charset, $serverCharset); } $arFields = array("TITLE" => $arParams["title"], "URL" => $arParams["url"], "PREVIEW_TEXT" => $arParams["excerpt"], "BLOG_NAME" => $arParams["blog_name"], "=POST_DATE" => $DB->CurrentTimeFunction(), "BLOG_ID" => $arPost["BLOG_ID"], "POST_ID" => $arPost["ID"]); $dbTrackback = CBlogTrackback::GetList(array(), array("BLOG_ID" => $arPost["BLOG_ID"], "POST_ID" => $arPost["ID"], "URL" => $arParams["url"])); if ($arTrackback = $dbTrackback->Fetch()) { if (!CBlogTrackback::Update($arTrackback["ID"], $arFields)) { if ($ex = $GLOBALS["APPLICATION"]->GetException()) { $errorMessage = $ex->GetString() . ".<br>"; } else { $errorMessage = "Unknown error" . ".<br>"; } CBlogTrackback::SendPingResponce(1, $errorMessage); } } else { if (!CBlogTrackback::Add($arFields)) { if ($ex = $GLOBALS["APPLICATION"]->GetException()) { $errorMessage = $ex->GetString() . ".<br>"; } else { $errorMessage = "Unknown error" . ".<br>"; } CBlogTrackback::SendPingResponce(1, $errorMessage); } } CBlogTrackback::SendPingResponce(0, "Ping accepted"); } return $bSuccess; }
public static function BuildRSS($postID, $blogID, $type = "RSS2.0", $numPosts = 10, $arPathTemplate = Array()) { $blogID = IntVal($blogID); $postID = IntVal($postID); if($blogID <= 0) return false; if($postID <= 0) return false; $numPosts = IntVal($numPosts); $type = strtolower(preg_replace("/[^a-zA-Z0-9.]/is", "", $type)); if ($type != "rss.92" && $type != "atom.03") $type = "rss2.0"; $rssText = False; $arBlog = CBlog::GetByID($blogID); if ($arBlog && $arBlog["ACTIVE"] == "Y" && $arBlog["ENABLE_RSS"] == "Y") { $arGroup = CBlogGroup::GetByID($arBlog["GROUP_ID"]); if($arGroup["SITE_ID"] == SITE_ID) { $arPost = CBlogPost::GetByID($postID); if(!empty($arPost) && $arPost["BLOG_ID"] == $arBlog["ID"] && $arPost["ENABLE_COMMENTS"] == "Y") { $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"; } if(strlen($arPathTemplate["PATH_TO_BLOG"])>0) $blogURL = htmlspecialcharsbx("http://".$serverName.CComponentEngine::MakePathFromTemplate($arPathTemplate["PATH_TO_BLOG"], array("blog" => $arBlog["URL"], "user_id" => $arBlog["OWNER_ID"], "group_id" => $arBlog["SOCNET_GROUP_ID"]))); else $blogURL = htmlspecialcharsbx("http://".$serverName.CBlog::PreparePath($arBlog["URL"], $arGroup["SITE_ID"])); if(strlen($arPathTemplate["PATH_TO_POST"])>0) $url = htmlspecialcharsbx("http://".$serverName.CComponentEngine::MakePathFromTemplate($arPathTemplate["PATH_TO_POST"], array("blog" => $arBlog["URL"], "post_id" => CBlogPost::GetPostID($arPost["ID"], $arPost["CODE"], $arPathTemplate["ALLOW_POST_CODE"]), "user_id" => $arBlog["OWNER_ID"], "group_id" => $arBlog["SOCNET_GROUP_ID"]))); else $url = htmlspecialcharsbx("http://".$serverName.CBlogPost::PreparePath($arBlog["URL"], $arPost["ID"], $arGroup["SITE_ID"])); $dbUser = CUser::GetByID($arPost["AUTHOR_ID"]); $arUser = $dbUser->Fetch(); if($arPathTemplate["USE_SOCNET"] == "Y") { $blogName = GetMessage("BLG_GCM_RSS_TITLE_SOCNET", Array("#AUTHOR_NAME#" => htmlspecialcharsEx($arUser["NAME"]." ".$arUser["LAST_NAME"]), "#POST_TITLE#" => htmlspecialcharsEx($arPost["TITLE"]))); } else { $blogName = GetMessage("BLG_GCM_RSS_TITLE", Array("#BLOG_NAME#" => htmlspecialcharsEx($arBlog["NAME"]), "#POST_TITLE#" => htmlspecialcharsEx($arPost["TITLE"]))); } $rssText = ""; if ($type == "rss.92") { $rssText .= "<"."?xml version=\"1.0\" encoding=\"".$charset."\"?".">\n\n"; $rssText .= "<rss version=\".92\">\n"; $rssText .= " <channel>\n"; $rssText .= " <title>".$blogName."</title>\n"; $rssText .= " <description>".$blogName."</description>\n"; $rssText .= " <link>".$url."</link>\n"; $rssText .= " <language>".$language."</language>\n"; $rssText .= " <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 .= " <title>".$blogName."</title>\n"; $rssText .= " <description>".$blogName."</description>\n"; //$rssText .= " <guid>".$url."</guid>\n"; $rssText .= " <link>".$url."</link>\n"; $rssText .= " <language>".$language."</language>\n"; $rssText .= " <docs>http://backend.userland.com/rss2</docs>\n"; $rssText .= " <pubDate>".$now."</pubDate>\n"; $rssText .= "\n"; } elseif ($type == "atom.03") { $atomID = "tag:".htmlspecialcharsbx($serverName).",".date("Y-m-d").":".$postID; $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>".$url."</tagline>\n"; $rssText .= " <id>".$atomID."</id>\n"; $rssText .= " <link rel=\"alternate\" type=\"text/html\" href=\"".$url."\" />\n"; $rssText .= " <modified>".$nowISO."</modified>\n"; $BlogUser = CBlogUser::GetByID($arPost["AUTHOR_ID"], BLOG_BY_USER_ID); $authorP = htmlspecialcharsex(CBlogUser::GetUserName($BlogUser["ALIAS"], $arUser["NAME"], $arUser["LAST_NAME"], $arUser["LOGIN"], $arUser["SECOND_NAME"])); if(strLen($arPathTemplate["PATH_TO_USER"])>0) $authorURLP = htmlspecialcharsbx("http://".$serverName.CComponentEngine::MakePathFromTemplate($arPathTemplate["PATH_TO_USER"], array("user_id"=>$arPost["AUTHOR_ID"]))); else $authorURLP = "http://".$serverName.CBlogUser::PreparePath($arPost["AUTHOR_ID"], $arGroup["SITE_ID"]); $rssText .= " <author>\n"; $rssText .= " <name>".$authorP."</name>\n"; $rssText .= " <uri>".$authorURLP."</uri>\n"; $rssText .= " </author>\n"; $rssText .= "\n"; } $user_id = $GLOBALS["USER"]->GetID(); if($arPathTemplate["USE_SOCNET"] == "Y") { $postPerm = CBlogPost::GetSocNetPostPerms($postID); if($postPerm > BLOG_PERMS_DENY) $postPerm = CBlogComment::GetSocNetUserPerms($postID, $arPost["AUTHOR_ID"]); } else $postPerm = CBlogPost::GetBlogUserCommentPerms($postID, IntVal($user_id)); if($postPerm >= BLOG_PERMS_READ) { $parser = new blogTextParser(); $arParserParams = Array( "imageWidth" => $arPathTemplate["IMAGE_MAX_WIDTH"], "imageHeight" => $arPathTemplate["IMAGE_MAX_HEIGHT"], ); CTimeZone::Disable(); $dbComments = CBlogComment::GetList( array("DATE_CREATE" => "DESC"), array( //"BLOG_ID" => $blogID, "POST_ID" => $postID, "PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_PUBLISH, ), false, array("nTopCount" => $numPosts), array("ID", "TITLE", "DATE_CREATE", "POST_TEXT", "AUTHOR_EMAIL", "AUTHOR_ID", "AUTHOR_NAME", "USER_LOGIN", "USER_LAST_NAME", "USER_SECOND_NAME", "USER_NAME", "BLOG_USER_ALIAS") ); CTimeZone::Enable(); $arImages = Array(); $dbImages = CBlogImage::GetList(Array(), Array("BLOG_ID" => $blogID, "POST_ID" => $postID, "IS_COMMENT" => "Y", "!COMMENT_ID" => false)); while($arI = $dbImages->Fetch()) $arImages[$arI["ID"]] = $arI["FILE_ID"]; while ($arComments = $dbComments->Fetch()) { $arDate = ParseDateTime($arComments["DATE_CREATE"], CSite::GetDateFormat("FULL", $arGroup["SITE_ID"])); $date = date("r", mktime($arDate["HH"], $arDate["MI"], $arDate["SS"], $arDate["MM"], $arDate["DD"], $arDate["YYYY"])); if(strpos($url, "?") !== false) $url1 = $url."&"; else $url1 = $url."?"; $url1 .= "commentId=".$arComments["ID"]."#".$arComments["ID"]; $authorURL = ""; if(IntVal($arComments["AUTHOR_ID"]) > 0) { $author = CBlogUser::GetUserName($arComments["BLOG_USER_ALIAS"], $arComments["USER_NAME"], $arComments["USER_LAST_NAME"], $arComments["USER_LOGIN"], $arComments["USER_SECOND_NAME"]); if(strLen($arPathTemplate["PATH_TO_USER"])>0) $authorURL = htmlspecialcharsbx("http://".$serverName.CComponentEngine::MakePathFromTemplate($arPathTemplate["PATH_TO_USER"], array("user_id"=>$arComments["AUTHOR_ID"]))); else $authorURL = htmlspecialcharsbx("http://".$serverName.CBlogUser::PreparePath($arComments["AUTHOR_ID"], $arGroup["SITE_ID"])); } else $author = $arComments["AUTHOR_NAME"]; $arAllow = array("HTML" => "N", "ANCHOR" => "Y", "BIU" => "Y", "IMG" => "Y", "QUOTE" => "Y", "CODE" => "Y", "FONT" => "Y", "LIST" => "Y", "SMILES" => "Y", "NL2BR" => "N", "VIDEO" => "Y", "TABLE" => "Y", "CUT_ANCHOR" => "N"); if($arPathTemplate["NO_URL_IN_COMMENTS"] == "L" || (IntVal($arComments["AUTHOR_ID"]) <= 0 && $arPathTemplate["NO_URL_IN_COMMENTS"] == "A")) $arAllow["CUT_ANCHOR"] = "Y"; if($arPathTemplate["NO_URL_IN_COMMENTS_AUTHORITY_CHECK"] == "Y" && $arAllow["CUT_ANCHOR"] != "Y" && IntVal($arComments["AUTHOR_ID"]) > 0) { $authorityRatingId = CRatings::GetAuthorityRating(); $arRatingResult = CRatings::GetRatingResult($authorityRatingId, $arComments["AUTHOR_ID"]); if($arRatingResult["CURRENT_VALUE"] < $arPathTemplate["NO_URL_IN_COMMENTS_AUTHORITY"]) $arAllow["CUT_ANCHOR"] = "Y"; } $text = $parser->convert_to_rss($arComments["POST_TEXT"], $arImages, $arAllow, false, $arParserParams); $title = GetMessage("BLG_GCM_COMMENT_TITLE", Array("#POST_TITLE#" => htmlspecialcharsEx($arPost["TITLE"]), "#COMMENT_AUTHOR#" => htmlspecialcharsEx($author))); /*$title = str_replace( array("&", "<", ">", "\""), array("&", "<", ">", """), $title); */ //$text1 = HTMLToTxt($text, "", Array("\ "), 60); $text = "<![CDATA[".$text."]]>"; if ($type == "rss.92") { $rssText .= " <item>\n"; $rssText .= " <title>".$title."</title>\n"; $rssText .= " <description>".$text."</description>\n"; $rssText .= " <link>".$url1."</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>".$url1."</link>\n"; $rssText .= " <guid>".$url1."</guid>\n"; $rssText .= " <pubDate>".$date."</pubDate>\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); $rssText .= "<entry>\n"; $rssText .= " <title type=\"text/html\">".$title."</title>\n"; $rssText .= " <link rel=\"alternate\" type=\"text/html\" href=\"".$url1."\"/>\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 .= " <author>\n"; $rssText .= " <name>".htmlspecialcharsex($author)."</name>\n"; if(strlen($authorURL) > 0) $rssText .= " <uri>".$authorURL."</uri>\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; }
if ($db_res && ($res = $db_res->GetNext())) { do { $arForum[intVal($res["ID"])] = $res["NAME"]; $fid = intVal($res["ID"]); } while ($res = $db_res->GetNext()); } } $arComponentParameters["PARAMETERS"]["FILES_FORUM_ID"] = array("PARENT" => "WEBDAV_SETTINGS", "NAME" => GetMessage("SONET_FORUM_ID"), "TYPE" => "LIST", "VALUES" => $arForum, "DEFAULT" => $fid); $arComponentParameters["PARAMETERS"]["FILES_USE_CAPTCHA"] = array("PARENT" => "WEBDAV_SETTINGS", "NAME" => GetMessage("SONET_USE_CAPTCHA"), "TYPE" => "CHECKBOX", "MULTIPLE" => "N", "DEFAULT" => "Y"); } } } } if (CModule::IncludeModule("blog")) { $arBlogGroup = array(); $dbBlogGr = CBlogGroup::GetList(); while ($arBlogGr = $dbBlogGr->Fetch()) { $arBlogGroup[$arBlogGr["ID"]] = "(" . $arBlogGr["SITE_ID"] . ") " . $arBlogGr["NAME"]; } $arComponentParameters["GROUPS"]["BLOG_SETTINGS"] = array("NAME" => GetMessage("SONET_BLOG_SETTINGS")); if (!empty($arBlogGroup)) { $arComponentParameters["PARAMETERS"]["BLOG_GROUP_ID"] = array("PARENT" => "BLOG_SETTINGS", "NAME" => GetMessage("SONET_BLOG_GROUP_ID"), "TYPE" => "LIST", "VALUES" => $arBlogGroup, "REFRESH" => "N", "MULTIPLE" => "N"); } $arComponentParameters["PARAMETERS"]["ALLOW_POST_MOVE"] = array("NAME" => GetMessage("BPE_ALLOW_POST_MOVE"), "TYPE" => "CHECKBOX", "MULTIPLE" => "N", "VALUE" => "Y", "DEFAULT" => "N", "PARENT" => "BLOG_SETTINGS", "REFRESH" => "Y"); $arComponentParameters["PARAMETERS"]["PATH_TO_USER_BLOG_POST"] = array("NAME" => GetMessage("BPE_PATH_TO_USER_POST"), "TYPE" => "STRING", "DEFAULT" => "", "PARENT" => "BLOG_SETTINGS"); $arComponentParameters["PARAMETERS"]["PATH_TO_USER_BLOG_POST_EDIT"] = array("NAME" => GetMessage("BPE_PATH_TO_USER_POST_EDIT"), "TYPE" => "STRING", "DEFAULT" => "", "PARENT" => "BLOG_SETTINGS"); if ($arCurrentValues["ALLOW_POST_MOVE"] == "Y") { $arComponentParameters["PARAMETERS"]["PATH_TO_BLOG_POST"] = array("NAME" => GetMessage("BPE_PATH_TO_BLOG_POST"), "TYPE" => "STRING", "DEFAULT" => "", "PARENT" => "BLOG_SETTINGS"); $arComponentParameters["PARAMETERS"]["PATH_TO_BLOG_POST_EDIT"] = array("NAME" => GetMessage("BPE_PATH_TO_BLOG_POST_EDIT"), "TYPE" => "STRING", "DEFAULT" => "", "PARENT" => "BLOG_SETTINGS"); $arComponentParameters["PARAMETERS"]["PATH_TO_BLOG_DRAFT"] = array("NAME" => GetMessage("BPE_PATH_TO_BLOG_DRAFT"), "TYPE" => "STRING", "DEFAULT" => "", "PARENT" => "BLOG_SETTINGS"); $arComponentParameters["PARAMETERS"]["PATH_TO_BLOG_BLOG"] = array("NAME" => GetMessage("BPE_PATH_TO_BLOG_BLOG"), "TYPE" => "STRING", "DEFAULT" => "", "PARENT" => "BLOG_SETTINGS");
?> " size="40"></td> </tr> <tr> <td valign="top"><?php echo GetMessage("BLB_FILTER_GROUP_ID"); ?> :</td> <td> <select name="filter_group_id[]" multiple size="5"> <option value=""><?php echo GetMessage("BLB_F_ALL"); ?> </option> <?php $dbGroup = CBlogGroup::GetList(array("NAME" => "ASC"), array()); while ($arGroup = $dbGroup->GetNext()) { ?> <option value="<?php echo $arGroup["ID"]; ?> "<?php if (in_array($arGroup["ID"], $filter_group_id)) { echo " selected"; } ?> >[<?php echo $arGroup["ID"]; ?> ] <?php echo $arGroup["NAME"];
private function InstallBlogGroup() { if ($this->arResult["INSTALLATION"]["BLOG_GROUP_INSTALL"]) { global $APPLICATION; $arFields = array("SITE_ID" => $this->SITE_ID, "NAME" => $this->ModuleBlogGroup); if (!($BlogGroupId = CBlogGroup::Add($arFields))) { if ($ex = $APPLICATION->GetException()) { $this->arResult["ERRORS"][] = $ex->GetString() . ' [' . $this->ModuleBlogGroup . "]"; } else { $this->arResult["ERRORS"][] = GetMessage("IDEA_INSTALL_ERROR_BLOG_GROUP_NOT_INSTALLED"); } } $this->arResult["INSTALLATION"]["BLOG_GROUP_ID"] = $BlogGroupId; } }
} $arParams["PATH_TO_BLOG"] = trim($arParams["PATH_TO_BLOG"]); if (strlen($arParams["PATH_TO_BLOG"]) <= 0) { $arParams["PATH_TO_BLOG"] = htmlspecialcharsbx($APPLICATION->GetCurPage() . "?" . $arParams["PAGE_VAR"] . "=blog&" . $arParams["BLOG_VAR"] . "=#blog#"); } $arParams["PATH_TO_POST"] = trim($arParams["PATH_TO_POST"]); if (strlen($arParams["PATH_TO_POST"]) <= 0) { $arParams["PATH_TO_POST"] = htmlspecialcharsbx($APPLICATION->GetCurPage() . "?" . $arParams["PAGE_VAR"] . "=post&" . $arParams["BLOG_VAR"] . "=#blog#&" . $arParams["POST_VAR"] . "=#post_id#"); } $arParams["PATH_TO_USER"] = trim($arParams["PATH_TO_USER"]); if (strlen($arParams["PATH_TO_USER"]) <= 0) { $arParams["PATH_TO_USER"] = htmlspecialcharsbx($APPLICATION->GetCurPage() . "?" . $arParams["PAGE_VAR"] . "=user&" . $arParams["USER_VAR"] . "=#user_id#"); } $arParams["DATE_TIME_FORMAT"] = trim(empty($arParams["DATE_TIME_FORMAT"]) ? $DB->DateFormatToPHP(CSite::GetDateFormat("FULL")) : $arParams["DATE_TIME_FORMAT"]); if (empty($arParams["GROUP_ID"]) || !empty($arParams["GROUP_ID"]) && in_array($arParams["ID"], $arParams["GROUP_ID"]) || $bShowAll) { $arGroup = CBlogGroup::GetByID($arParams["ID"]); if (!empty($arGroup) || $bShowAll) { $arGroup = CBlogTools::htmlspecialcharsExArray($arGroup); $arResult["GROUP"] = $arGroup; if ($arParams["SET_TITLE"] == "Y") { if ($bShowAll) { $APPLICATION->SetTitle(GetMessage("B_B_GR_TITLE")); } else { $APPLICATION->SetTitle(GetMessage("B_B_GR_TITLE_NAME", array("#group#" => $arGroup["NAME"]))); } } $cache = new CPHPCache(); $cache_id = "blog_groups_" . serialize($arParams) . "_" . CDBResult::NavStringForCache($arParams["BLOG_COUNT"]); if (($tzOffset = CTimeZone::GetOffset()) != 0) { $cache_id .= "_" . $tzOffset; }
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; }
<?php if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die; } if (!CModule::IncludeModule("blog")) { return false; } $arGroupList = array(); $dbGroup = CBlogGroup::GetList(array("SITE_ID" => "ASC", "NAME" => "ASC")); while ($arGroup = $dbGroup->Fetch()) { $arGroupList[$arGroup["ID"]] = "(" . $arGroup["SITE_ID"] . ") [" . $arGroup["ID"] . "] " . $arGroup["NAME"]; } $arComponentParameters = array("GROUPS" => array("VARIABLE_ALIASES" => array("NAME" => GetMessage("B_VARIABLE_ALIASES"))), "PARAMETERS" => array("MESSAGE_COUNT" => array("NAME" => GetMessage("BMNP_MESSAGE_COUNT"), "TYPE" => "STRING", "DEFAULT" => 6, "PARENT" => "VISUAL"), "PERIOD_DAYS" => array("NAME" => GetMessage("BMNP_PERIOD_DAYS"), "TYPE" => "STRING", "DEFAULT" => 30, "PARENT" => "VISUAL"), "MESSAGE_LENGTH" => array("NAME" => GetMessage("BMNP_MESSAGE_LENGTH"), "TYPE" => "STRING", "DEFAULT" => 100, "PARENT" => "VISUAL"), "PREVIEW_WIDTH" => array("NAME" => GetMessage("BMNP_PREVIEW_WIDTH"), "TYPE" => "STRING", "DEFAULT" => 100, "PARENT" => "VISUAL"), "PREVIEW_HEIGHT" => array("NAME" => GetMessage("BMNP_PREVIEW_HEIGHT"), "TYPE" => "STRING", "DEFAULT" => 100, "PARENT" => "VISUAL"), "DATE_TIME_FORMAT" => CComponentUtil::GetDateTimeFormatField(GetMessage("BC_DATE_TIME_FORMAT"), "VISUAL"), "PATH_TO_BLOG" => array("NAME" => GetMessage("BMNP_PATH_TO_BLOG"), "TYPE" => "STRING", "MULTIPLE" => "N", "DEFAULT" => "", "COLS" => 25, "PARENT" => "URL_TEMPLATES"), "PATH_TO_POST" => array("NAME" => GetMessage("BMNP_PATH_TO_POST"), "TYPE" => "STRING", "MULTIPLE" => "N", "DEFAULT" => "", "COLS" => 25, "PARENT" => "URL_TEMPLATES"), "PATH_TO_USER" => array("NAME" => GetMessage("BMNP_PATH_TO_USER"), "TYPE" => "STRING", "MULTIPLE" => "N", "DEFAULT" => "", "COLS" => 25, "PARENT" => "URL_TEMPLATES"), "PATH_TO_GROUP_BLOG_POST" => array("NAME" => GetMessage("BMNP_PATH_TO_GROUP_BLOG_POST"), "TYPE" => "STRING", "MULTIPLE" => "N", "DEFAULT" => "", "COLS" => 25, "PARENT" => "URL_TEMPLATES"), "PATH_TO_SMILE" => array("NAME" => GetMessage("BMNP_PATH_TO_SMILE"), "TYPE" => "STRING", "MULTIPLE" => "N", "DEFAULT" => "", "COLS" => 25, "PARENT" => "ADDITIONAL_SETTINGS"), "BLOG_VAR" => array("NAME" => GetMessage("BMNP_BLOG_VAR"), "TYPE" => "STRING", "MULTIPLE" => "N", "DEFAULT" => "", "COLS" => 25, "PARENT" => "VARIABLE_ALIASES"), "POST_VAR" => array("NAME" => GetMessage("BMNP_POST_VAR"), "TYPE" => "STRING", "MULTIPLE" => "N", "DEFAULT" => "", "COLS" => 25, "PARENT" => "VARIABLE_ALIASES"), "USER_VAR" => array("NAME" => GetMessage("BMNP_USER_VAR"), "TYPE" => "STRING", "MULTIPLE" => "N", "DEFAULT" => "", "COLS" => 25, "PARENT" => "VARIABLE_ALIASES"), "PAGE_VAR" => array("NAME" => GetMessage("BMNP_PAGE_VAR"), "TYPE" => "STRING", "MULTIPLE" => "N", "DEFAULT" => "", "COLS" => 25, "PARENT" => "VARIABLE_ALIASES"), "CACHE_TIME" => array("DEFAULT" => "86400"), "GROUP_ID" => array("NAME" => GetMessage("BLG_GROUP_ID"), "TYPE" => "LIST", "VALUES" => $arGroupList, "MULTIPLE" => "N", "DEFAULT" => "", "ADDITIONAL_VALUES" => "Y", "PARENT" => "DATA_SOURCE"), "BLOG_URL" => array("NAME" => GetMessage("BLG_BLOG_URL"), "TYPE" => "STRING", "MULTIPLE" => "N", "DEFAULT" => "", "COLS" => 25, "PARENT" => "DATA_SOURCE")));
/* if (WIZARD_INSTALL_DEMO_DATA) { $db_blog = CBlog::GetList(array(), array("GROUP_ID" => $res_blog_group["ID"]), false, false, array("ID")); if ($res_blog = $db_blog->Fetch()) { do { CBlog::Delete($res_blog["ID"]); } while ($res_blog = $db_blog->Fetch()); } BXClearCache(True, "/".WIZARD_SITE_ID."/blog/"); BXClearCache(True, "/".WIZARD_SITE_ID."/idea/"); } */ } if (!$SocNetGroupID) { $SocNetGroupID = CBlogGroup::Add(array("SITE_ID" => WIZARD_SITE_ID, "NAME" => $IdeaBlogGroupName)); } //Blog $blogID = CBlog::Add(array("NAME" => GetMessage("IDEA_DEMO_BLOG_NAME"), "DESCRIPTION" => "", "GROUP_ID" => $SocNetGroupID, "ENABLE_IMG_VERIF" => 'Y', "EMAIL_NOTIFY" => 'Y', "ENABLE_RSS" => "Y", "ALLOW_HTML" => "Y", "URL" => $IdeaBlogUrl, "ACTIVE" => "Y", "=DATE_CREATE" => $DB->GetNowFunction(), "=DATE_UPDATE" => $DB->GetNowFunction(), "SOCNET_GROUP_ID" => 1, "PERMS_POST" => array("1" => BLOG_PERMS_READ, "2" => BLOG_PERMS_WRITE), "PERMS_COMMENT" => array("1" => BLOG_PERMS_WRITE, "2" => BLOG_PERMS_WRITE), "PATH" => '/services/idea/')); //UF $arUFIdByName = array(); $arStatusList = CIdeaManagment::getInstance()->GetStatusList(); foreach ($arStatusList as $UF) { $arUFIdByName[$UF["XML_ID"]] = $UF["ID"]; } //Categories $categoryID = array(); $categoryID[0][] = CBlogCategory::Add(array("BLOG_ID" => $blogID, "NAME" => GetMessage("IDEA_BLOG_DEMO_CATEGORY_1"))); $categoryID[0][] = CBlogCategory::Add(array("BLOG_ID" => $blogID, "NAME" => GetMessage("IDEA_BLOG_DEMO_CATEGORY_2"))); $categoryID[1][] = CBlogCategory::Add(array("BLOG_ID" => $blogID, "NAME" => GetMessage("IDEA_BLOG_DEMO_CATEGORY_3"))); //Post messages
if (StrLen($errorMessage) <= 0) { foreach ($arGroupsId as $ind => $val) { CSocNetUserToGroup::Add(array("USER_ID" => 1, "GROUP_ID" => $val, "ROLE" => "A", "=DATE_CREATE" => $GLOBALS["DB"]->CurrentTimeFunction(), "=DATE_UPDATE" => $GLOBALS["DB"]->CurrentTimeFunction(), "INITIATED_BY_TYPE" => SONET_INITIATED_BY_USER, "INITIATED_BY_USER_ID" => 1, "MESSAGE" => false)); } } if (StrLen($errorMessage) <= 0) { // set EUV vor news $dbResult = CSocNetEventUserView::GetList(array("ENTITY_ID" => "ASC"), array("ENTITY_TYPE" => "N")); $arResult = $dbResult->Fetch(); if (!$arResult) { CSocNetEventUserView::Add(array("ENTITY_TYPE" => "N", "ENTITY_ID" => 0, "EVENT_ID" => "news", "USER_ID" => 0, "USER_ANONYMOUS" => "N")); CSocNetEventUserView::Add(array("ENTITY_TYPE" => "N", "ENTITY_ID" => 0, "EVENT_ID" => "news_comment", "USER_ID" => 0, "USER_ANONYMOUS" => "N")); } $blogGroupID = 0; if (CModule::IncludeModule("blog")) { $dbRes = CBlogGroup::GetList(array("ID" => "DESC"), array("SITE_ID" => WIZARD_SITE_ID)); if ($arRes = $dbRes->Fetch()) { $blogGroupID = $arRes["ID"]; } } $forumID = 0; $photoForumID = 0; if (CModule::IncludeModule("forum")) { $dbRes = CForumNew::GetListEx(array(), array("SITE_ID" => WIZARD_SITE_ID, "XML_ID" => "USERS_AND_GROUPS")); if ($arRes = $dbRes->Fetch()) { $forumID = $arRes["ID"]; } $dbRes = CForumNew::GetListEx(array(), array("XML_ID" => "PHOTOGALLERY_COMMENTS")); if ($arRes = $dbRes->Fetch()) { $photoForumID = $arRes["ID"]; }
$arParams = array("USE_COMMENTS" => "Y", "COMMENTS_TYPE" => "forum", "FORUM_ID" => $FID, "BLOG_URL" => "", "PATH_TO_SMILE" => "/bitrix/images/forum/smile/"); } } elseif (CModule::IncludeModule("blog")) { $iBlogId = ""; $res = CBlog::GetByUrl("gallery"); if ($res && !empty($res) && is_array($res)) { $iBlogId = intVal($res["ID"]); } else { $iBlogGroupId = 0; $arFields = array("NAME" => GetMessage("P_BLOG_GROUP_NAME")); $db_res = CBlogGroup::GetList(array(), $arFields, false, false, array("ID")); if ($db_res && ($res = $db_res->Fetch())) { $iBlogGroupId = intVal($res["ID"]); } else { $arFields["SITE_ID"] = $SITE_ID; $iBlogGroupId = CBlogGroup::Add($arFields); } if ($iBlogGroupId > 0) { $arFields = array("ACTIVE" => "N", "NAME" => GetMessage("P_BLOG_NAME"), "DESCRIPTION" => GetMessage("P_BLOG_DESCRIPTION"), "=DATE_UPDATE" => $GLOBALS["DB"]->CurrentTimeFunction(), "=DATE_CREATE" => $GLOBALS["DB"]->CurrentTimeFunction(), "URL" => "gallery", "OWNER_ID" => $GLOBALS["USER"]->GetId(), "GROUP_ID" => $iBlogGroupId); $iBlogId = CBlog::Add($arFields); } } if (intVal($iBlogId) > 0) { $arParams = array("USE_COMMENTS" => "Y", "COMMENTS_TYPE" => "blog", "FORUM_ID" => 0, "BLOG_URL" => "gallery", "PATH_TO_SMILE" => "/bitrix/images/blog/smile/"); } } $arParams["IBLOCK_ID"] = $iBlockId; // 4. Copy public files with "on the fly" translation $source = "/public/photogallery/"; $target = "/content/photo/"; $source_base = dirname(__FILE__);