public static function CanUserDeletePost($ID, $userID, $blogOwnerID, $groupOwnerID) { $ID = IntVal($ID); $userID = IntVal($userID); $blogOwnerID = IntVal($blogOwnerID); $groupOwnerID = IntVal($groupOwnerID); $blogModulePermissions = $GLOBALS["APPLICATION"]->GetGroupRight("blog"); if ($blogModulePermissions >= "W") { return True; } $arPost = CBlogPost::GetByID($ID); if (empty($arPost)) { return False; } if ($groupOwnerID > 0) { $arBlogUser = CBlogUser::GetByID($userID, BLOG_BY_USER_ID); if ($arBlogUser && $arBlogUser["ALLOW_POST"] != "Y") { return False; } $perms = BLOG_PERMS_DENY; if (CSocNetFeaturesPerms::CanPerformOperation($userID, SONET_ENTITY_GROUP, $groupOwnerID, "blog", "view_post")) { $perms = BLOG_PERMS_READ; } if (CSocNetFeaturesPerms::CanPerformOperation($userID, SONET_ENTITY_GROUP, $groupOwnerID, "blog", "write_post")) { $perms = BLOG_PERMS_WRITE; } if (CSocNetFeaturesPerms::CanPerformOperation($userID, SONET_ENTITY_GROUP, $groupOwnerID, "blog", "full_post")) { $perms = BLOG_PERMS_FULL; } if ($perms >= BLOG_PERMS_WRITE && $arPost["AUTHOR_ID"] == $userID) { return true; } if ($perms > BLOG_PERMS_WRITE) { return true; } } else { $arBlog = CBlog::GetByID($arPost["BLOG_ID"]); $arBlogUser = CBlogUser::GetByID($userID, BLOG_BY_USER_ID); if ($arBlogUser && $arBlogUser["ALLOW_POST"] != "Y") { return False; } $perms = BLOG_PERMS_DENY; if (CSocNetFeaturesPerms::CanPerformOperation($userID, SONET_ENTITY_USER, $blogOwnerID, "blog", "view_post")) { $perms = BLOG_PERMS_READ; } if (CSocNetFeaturesPerms::CanPerformOperation($userID, SONET_ENTITY_USER, $blogOwnerID, "blog", "write_post")) { $perms = BLOG_PERMS_WRITE; } if (CSocNetFeaturesPerms::CanPerformOperation($userID, SONET_ENTITY_USER, $blogOwnerID, "blog", "full_post")) { $perms = BLOG_PERMS_FULL; } if ($perms >= BLOG_PERMS_WRITE && $arPost["AUTHOR_ID"] == $userID) { return true; } if ($perms > BLOG_PERMS_WRITE) { return true; } } return False; }
function OnAfterUserAuthorizeHandler(&$arFields) { $f = fopen($_SERVER['DOCUMENT_ROOT'] . '/bitrix/php_interface/md/log.txt', 'a+'); global $USER; $rsUser = CUser::GetByID($USER->GetId()); $arUser = $rsUser->Fetch(); fwrite($f, "---start\n"); if ($arUser['ID'] > 0 && $arUser['EXTERNAL_AUTH_ID'] == 'Facebook' && $arUser['UF_RULES'] != '1') { $facebook = new Facebook_Facebook(array('appId' => '447579571927341', 'secret' => '2f2cf9cd60f9e98d6cf3309e6b7bde5d')); $id = $arUser["XML_ID"]; $user_info = $facebook->api('/' . $id . '?fields=id,name,first_name,middle_name,last_name,gender,birthday,email,picture'); $props = array(); if (!$arUser['PERSONAL_GENDER']) { if (isset($user_info['gender']) && $user_info['gender']) { $props['PERSONAL_GENDER'] = $user_info['gender'] == 'male' ? 'M' : 'F'; } } if (!empty($props)) { $user = new CUser(); $user->Update($arUser["ID"], $props); } CModule::IncludeModule("blog"); $blogUser = CBlogUser::GetByID($USER->GetId(), BLOG_BY_USER_ID); $props = array(); if (!$blogUser['AVATAR']) { if (isset($user_info['picture']) && $user_info['picture']) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://graph.facebook.com/{$id}/picture?type=large"); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_MAXREDIRS, 3); $output = curl_exec($ch); if ($output) { $fileName = md5($user_info['picture']); $fullPath = $_SERVER['DOCUMENT_ROOT'] . "/bitrix/cache/social_pictures/{$fileName}.jpg"; if (file_put_contents($fullPath, $output) !== false) { $picture = CFile::MakeFileArray($fullPath); $props['AVATAR'] = $picture; $user = new CBlogUser(); $user->Update($blogUser["ID"], $props); unlink($fullPath); } } } } } fwrite($f, "---finish\n"); fclose($f); }
public static function Add($arFields) { global $DB; $arFields1 = array(); foreach ($arFields as $key => $value) { if (substr($key, 0, 1) == "=") { $arFields1[substr($key, 1)] = $value; unset($arFields[$key]); } } if (!CBlogCandidate::CheckFields("ADD", $arFields)) { return false; } $arInsert = $DB->PrepareInsert("b_blog_user2blog", $arFields); foreach ($arFields1 as $key => $value) { if (strlen($arInsert[0]) > 0) { $arInsert[0] .= ", "; } $arInsert[0] .= $key; if (strlen($arInsert[1]) > 0) { $arInsert[1] .= ", "; } $arInsert[1] .= $value; } $ID = False; if (strlen($arInsert[0]) > 0) { $strSql = "INSERT INTO b_blog_user2blog(" . $arInsert[0] . ") " . "VALUES(" . $arInsert[1] . ")"; $DB->Query($strSql, False, "File: " . __FILE__ . "<br>Line: " . __LINE__); $ID = IntVal($DB->LastID()); } if ($ID) { $arCandidat = CBlogCandidate::GetByID($ID); if ($arCandidat) { $arBlog = CBlog::GetByID($arCandidat["BLOG_ID"]); if (strlen($arBlog["AUTO_GROUPS"]) > 0) { $arAutoGroups = unserialize($arBlog["AUTO_GROUPS"]); if (is_array($arAutoGroups) && count($arAutoGroups) > 0) { $arBlogUser = CBlogUser::GetByID($arCandidat["USER_ID"], BLOG_BY_USER_ID); if (!$arBlogUser) { CBlogUser::Add(array("USER_ID" => $arCandidat["USER_ID"], "=LAST_VISIT" => $GLOBALS["DB"]->GetNowFunction(), "=DATE_REG" => $GLOBALS["DB"]->GetNowFunction(), "ALLOW_POST" => "Y")); } CBlogUser::AddToUserGroup($arCandidat["USER_ID"], $arCandidat["BLOG_ID"], $arAutoGroups, "", BLOG_BY_USER_ID, BLOG_CHANGE); CBlogCandidate::Delete($ID); } } } } return $ID; }
public function OnAfterUserAuthorizeHandler(&$arFields) { global $USER; $rsUser = CUser::GetByID($USER->GetId()); $arUser = $rsUser->Fetch(); $social = MH_Social_SocialFabric::getSocial($arUser['EXTERNAL_AUTH_ID'], $arUser["XML_ID"]); if ($arUser['ID'] > 0 && $arUser['UF_RULES'] != '1') { $props = array(); if (!$arUser['PERSONAL_GENDER']) { $props['PERSONAL_GENDER'] = $social->getGender(); } if (!$arUser['PERSONAL_BIRTHDAY']) { $props['PERSONAL_BIRTHDAY'] = $social->getBirthday(); } if (!empty($props)) { $user = new CUser(); $user->Update($arUser["ID"], $props); } CModule::IncludeModule("blog"); $blogUser = CBlogUser::GetByID($arUser['ID'], BLOG_BY_USER_ID); if (!$blogUser || !$blogUser['AVATAR']) { $props = array('USER_ID' => $arUser['ID']); if ($path = $social->getPicture()) { $picture = CFile::MakeFileArray($path); $props['AVATAR'] = $picture; $user = new CBlogUser(); if ($blogUser) { $user->Update($blogUser["ID"], $props); } else { $user->Add($props); } unlink($path); } } } }
} } $dbSearchUser = CUser::GetList($b = "LOGIN", $o = "ASC", array("LOGIN_EQUAL" => $friend)); if (($arSearchUser = $dbSearchUser->Fetch()) && !in_array($arSearchUser["ID"], $arUserID)) { $arUserID[] = $arSearchUser["ID"]; } if (count($arUserID) > 0) { for ($i = 0; $i < count($arUserID); $i++) { if ($arUserID[$i] != $arBlog["OWNER_ID"] && !in_array($arUserID[$i], $arFriendUsers)) { $dbCandidate = CBlogCandidate::GetList(array(), array("BLOG_ID" => $arBlog["ID"], "USER_ID" => $arUserID[$i])); if ($dbCandidate->Fetch()) { $okMessage .= str_replace("#NAME#", "[" . $arUserID[$i] . "] " . htmlspecialcharsex($friend), GetMessage("BLOG_BLOG_ADD_F_POS_ALREADY_WANT")) . ".<br />"; } else { if (CBlogCandidate::Add(array("BLOG_ID" => $arBlog["ID"], "USER_ID" => $arUserID[$i]))) { $okMessage .= str_replace("#NAME#", "[" . $arUserID[$i] . "] " . htmlspecialcharsex($friend), GetMessage("BLOG_BLOG_ADD_F_POS_ADDED")) . ".<br />"; $BlogUser = CBlogUser::GetByID($arUserID[$i], BLOG_BY_USER_ID); $BlogUser = CBlogTools::htmlspecialcharsExArray($BlogUser); $dbUser = CUser::GetByID($arUserID[$i]); $arUser = $dbUser->GetNext(); $AuthorName = CBlogUser::GetUserName($BlogUser["ALIAS"], $arUser["NAME"], $arUser["LAST_NAME"], $arUser["LOGIN"]); $dbUser = CUser::GetByID($arBlog["OWNER_ID"]); $arUserBlog = $dbUser->GetNext(); 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", "www.bitrixsoft.com"); } } $arMailFields = array("BLOG_ID" => $arBlog["ID"], "BLOG_NAME" => $arBlog["NAME"], "BLOG_URL" => $arBlog["URL"], "BLOG_ADR" => "http://" . $serverName . CComponentEngine::MakePathFromTemplate(htmlspecialcharsBack($arParams["PATH_TO_BLOG"]), array("blog" => $arBlog["URL"])), "USER_ID" => $arUserID[$i], "USER" => $AuthorName, "USER_URL" => "http://" . $serverName . CComponentEngine::MakePathFromTemplate(htmlspecialcharsBack($arParams["PATH_TO_USER"]), array("user_id" => $arUserID[$i])), "EMAIL_FROM" => COption::GetOptionString("main", "email_from", "*****@*****.**")); $arF1 = $arF2 = $arMailFields;
if ($dbComment->Fetch() && $arResult["Perm"] < BLOG_PERMS_FULL && !$bIntranetInstalled) { $arResult["COMMENT_ERROR"] = "<b>" . GetMessage("B_B_PC_COM_ERROR_EDIT") . "</b><br />" . GetMessage("B_B_PC_EDIT_ALREADY_COMMENTED"); } else { if (!empty($_POST["attachedFilesRaw"]) && is_array($_POST["attachedFilesRaw"])) { 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"); }
$arSearch["USER_URL"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $Blog["OWNER_ID"])); $arSearch["URL"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_POST"], array("blog" => $Blog["URL"], "post_id" => $postID)); if (strpos($arSearch["URL"], "?") !== false) { $arSearch["URL"] .= "&"; } else { $arSearch["URL"] .= "?"; } $arSearch["URL"] .= "commentId=" . substr($arSearch["ITEM_ID"], 1) . "#" . substr($arSearch["ITEM_ID"], 1); } } else { if (!empty($Blog)) { $arSearch["USER_URL"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $Blog["OWNER_ID"])); } } if ($where != "USER") { $arSearch["BlogUser"] = CBlogUser::GetByID($arSearch["PARAM2"], BLOG_BY_USER_ID); $arSearch["BlogUser"] = CBlogTools::htmlspecialcharsExArray($arSearch["BlogUser"]); $dbUser = CUser::GetByID($arSearch["PARAM2"]); $arSearch["arUser"] = $dbUser->GetNext(); $arSearch["AuthorName"] = CBlogUser::GetUserName($arSearch["BlogUser"]["ALIAS"], $arSearch["arUser"]["NAME"], $arSearch["arUser"]["LAST_NAME"], $arSearch["arUser"]["LOGIN"]); } $arSearch["FULL_DATE_CHANGE_FORMATED"] = FormatDate($arParams["DATE_TIME_FORMAT"], MakeTimeStamp($arSearch["FULL_DATE_CHANGE"], CSite::GetDateFormat("FULL"))); $arResult["SEARCH_RESULT"][] = $arSearch; } if (count($arResult["SEARCH_RESULT"]) > 0) { if (strlen($arResult["~tags"]) > 0) { $arResult["ORDER_LINK"] = $APPLICATION->GetCurPageParam("tags=" . urlencode($arResult["tags"]) . "&where=" . urlencode($arResult["where"]), array("tags", "where", "how")); } else { $arResult["ORDER_LINK"] = $APPLICATION->GetCurPageParam("q=" . urlencode($arResult["q"]) . "&where=" . urlencode($arResult["where"]), array("q", "where", "how")); } if ($arResult["~how"] != "d") {
function GetUserGroups($ID, $blogID, $joinStatus = "", $selectType = BLOG_BY_BLOG_USER_ID, $bUrl = false) { global $DB; $ID = IntVal($ID); $joinStatus = $joinStatus == "Y" || $joinStatus == "N" ? $joinStatus : ""; $selectType = $selectType == BLOG_BY_USER_ID ? BLOG_BY_USER_ID : BLOG_BY_BLOG_USER_ID; if ($bUrl) { $bUrl = true; } else { $bUrl = false; } if (!$bUrl) { $blogID = IntVal($blogID); } else { $blogID = preg_replace("/[^a-zA-Z0-9_-]/is", "", Trim($blogID)); } $varName = $selectType == BLOG_BY_USER_ID ? "BLOG_USER2GROUP1_CACHE_" . $blogID . "_" . $joinStatus . "_" . $ID . "_" . $bUrl : "BLOG_USER2GROUP_CACHE_" . $blogID . "_" . $joinStatus . "_" . $ID . "_" . $bUrl; if (isset($GLOBALS["BLOG_USER"][$varName]) && is_array($GLOBALS["BLOG_USER"][$varName])) { return $GLOBALS["BLOG_USER"][$varName]; } else { $arGroups = array(1); if (isset($GLOBALS["USER"]) && is_object($GLOBALS["USER"]) && $GLOBALS["USER"]->IsAuthorized()) { $arGroups[] = 2; } if ($ID > 0 && strlen($blogID) > 0) { if ($selectType == BLOG_BY_BLOG_USER_ID) { $arBlogUser = CBlogUser::GetByID($ID, $selectType); $userID = $arBlogUser["USER_ID"]; } else { $userID = $ID; } $strSql = "SELECT UG.ID, UG.USER_ID, UG.BLOG_ID, UG.USER_GROUP_ID " . "FROM b_blog_user2user_group UG "; if ($bUrl) { $strSql .= " INNER JOIN b_blog B ON (UG.BLOG_ID = B.ID AND B.URL='" . $DB->ForSql($blogID) . "') "; } $strSql .= " WHERE UG.USER_ID = " . $userID . " "; if (!$bUrl) { $strSql .= "\tAND UG.BLOG_ID = " . $blogID . " "; } $dbResult = $DB->Query($strSql, False, "File: " . __FILE__ . "<br>Line: " . __LINE__); while ($arResult = $dbResult->Fetch()) { $arGroups[] = IntVal($arResult["USER_GROUP_ID"]); } } if ($selectType == BLOG_BY_BLOG_USER_ID && !empty($arBlogUser)) { $GLOBALS["BLOG_USER"]["BLOG_USER2GROUP_CACHE_" . $blogID . "_" . $joinStatus . "_" . IntVal($arBlogUser["ID"]) . "_" . $bUrl] = $arGroups; } $GLOBALS["BLOG_USER"]["BLOG_USER2GROUP1_CACHE_" . $blogID . "_" . $joinStatus . "_" . IntVal($userID) . "_" . $bUrl] = $arGroups; return $arGroups; } return False; }
function BuildRSS($ID, $type = "RSS .92", $numPosts = 10, $blogTemplate = "", $postTemplate = "", $userTemplate = "", $bSoNet = false, $arParams = array()) { $ID = IntVal($ID); if ($ID <= 0 && $arParams["USE_SOCNET"] != "Y") { return false; } $numPosts = IntVal($numPosts); $type = strtolower(preg_replace("/[^a-zA-Z0-9.]/is", "", $type)); if ($type != "rss2.0" && $type != "atom.03") { $type = "rss.92"; } $rssText = False; $arBlog = CBlog::GetByID($ID); if ($arBlog && $arBlog["ACTIVE"] == "Y" && $arBlog["ENABLE_RSS"] == "Y" || $arParams["USE_SOCNET"] == "Y") { if (!empty($arBlog)) { $arGroup = CBlogGroup::GetByID($arBlog["GROUP_ID"]); } if ($arGroup["SITE_ID"] == SITE_ID || $arParams["USE_SOCNET"] == "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 ($bSoNet) { if (IntVal($arParams["USER_ID"]) > 0) { $dbUser = CUser::GetByID($arParams["USER_ID"]); if ($arUser = $dbUser->Fetch()) { $blogName = htmlspecialcharsbx(GetMessage("BLG_RSS_NAME_SONET", array("#AUTHOR_NAME#" => CUser::FormatName(CSite::GetNameFormat(false), $arUser, true)))); $blogURL = htmlspecialcharsbx("http://" . $serverName . CComponentEngine::MakePathFromTemplate($blogTemplate, array("user_id" => $arParams["USER_ID"]))); } } else { if ($arGroupSoNet = CSocNetGroup::GetByID($arParams["SOCNET_GROUP_ID"])) { $blogName = htmlspecialcharsbx(GetMessage("BLG_RSS_NAME_SONET_GROUP", array("#GROUP_NAME#" => $arGroupSoNet["NAME"]))); $blogURL = htmlspecialcharsbx("http://" . $serverName . CComponentEngine::MakePathFromTemplate($blogTemplate, array("group_id" => $arParams["SOCNET_GROUP_ID"]))); } } $blogDescr = ""; } else { if (strlen($blogTemplate) > 0) { $blogURL = htmlspecialcharsbx("http://" . $serverName . CComponentEngine::MakePathFromTemplate($blogTemplate, 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"])); } $blogName = htmlspecialcharsbx($arBlog["NAME"]); $blogDescr = htmlspecialcharsbx($arBlog["DESCRIPTION"]); } $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<description>" . $blogDescr . "</description>\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 .= " <guid>".$blogURL."</guid>\n"; $rssText .= "\t<link>" . $blogURL . "</link>\n"; $rssText .= "\t<description>" . $blogDescr . "</description>\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") . ":" . $ID; $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 .= " <link href=\"".$blogURL."\"/>"; $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"; } $user_id = IntVal($GLOBALS["USER"]->GetID()); if ($bSoNet) { $postPerm = BLOG_PERMS_DENY; if (IntVal($arParams["SOCNET_GROUP_ID"]) > 0) { if (CSocNetFeaturesPerms::CanPerformOperation($user_id, SONET_ENTITY_GROUP, $arParams["SOCNET_GROUP_ID"], "blog", "view_post")) { $postPerm = BLOG_PERMS_READ; } if (CSocNetFeaturesPerms::CanPerformOperation($user_id, SONET_ENTITY_GROUP, $arParams["SOCNET_GROUP_ID"], "blog", "write_post")) { $postPerm = BLOG_PERMS_WRITE; } if (CSocNetFeaturesPerms::CanPerformOperation($user_id, SONET_ENTITY_GROUP, $arParams["SOCNET_GROUP_ID"], "blog", "full_post", CSocNetUser::IsCurrentUserModuleAdmin()) || $GLOBALS["APPLICATION"]->GetGroupRight("blog") >= "W") { $postPerm = BLOG_PERMS_FULL; } } else { if ($user_id == $arParams["USER_ID"]) { $postPerm = BLOG_PERMS_FULL; } elseif (CSocNetFeaturesPerms::CanPerformOperation($user_id, SONET_ENTITY_USER, $arParams["USER_ID"], "blog", "view_post")) { $postPerm = BLOG_PERMS_READ; } } } else { $postPerm = CBlog::GetBlogUserPostPerms($ID, IntVal($user_id)); } if ($postPerm >= BLOG_PERMS_READ) { $parser = new blogTextParser(); $arParserParams = array("imageWidth" => $arParams["IMAGE_MAX_WIDTH"], "imageHeight" => $arParams["IMAGE_MAX_HEIGHT"]); if ($bSoNet) { $arFilter = array("<=DATE_PUBLISH" => ConvertTimeStamp(false, "FULL", false), "PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_PUBLISH, "BLOG_ACTIVE" => "Y", "BLOG_GROUP_SITE_ID" => SITE_ID); if (IntVal($arParams["SOCNET_GROUP_ID"]) > 0) { $arFilter["SOCNET_GROUP_ID"] = $arParams["SOCNET_GROUP_ID"]; } else { $arFilter["FOR_USER"] = $user_id; $arFilter["AUTHOR_ID"] = $arParams["USER_ID"]; } } else { $arFilter = array("BLOG_ID" => $ID, "<=DATE_PUBLISH" => ConvertTimeStamp(false, "FULL", false), "PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_PUBLISH, "MICRO" => "N"); } CTimeZone::Disable(); $dbPosts = CBlogPost::GetList(array("DATE_PUBLISH" => "DESC"), $arFilter, false, array("nTopCount" => $numPosts), array("ID", "TITLE", "DETAIL_TEXT", "DATE_PUBLISH", "AUTHOR_ID", "AUTHOR_NAME", "AUTHOR_LAST_NAME", "BLOG_USER_ALIAS", "DETAIL_TEXT_TYPE", "CODE", "PATH")); CTimeZone::Enable(); while ($arPost = $dbPosts->Fetch()) { if (!$bSoNet) { $perms = CBlogPost::GetBlogUserPostPerms($arPost["ID"], $GLOBALS["USER"]->IsAuthorized() ? $GLOBALS["USER"]->GetID() : 0); if ($perms < BLOG_PERMS_READ) { continue; } } //$title = htmlspecialcharsEx($arPost["TITLE"]); $title = str_replace(array("&", "<", ">", "\""), array("&", "<", ">", """), $arPost["TITLE"]); $res = CBlogImage::GetList(array("ID" => "ASC"), array("POST_ID" => $arPost['ID'], "BLOG_ID" => $ID, "IS_COMMENT" => "N")); while ($arImage = $res->Fetch()) { $arImages[$arImage['ID']] = $arImage['FILE_ID']; } $arDate = ParseDateTime($arPost["DATE_PUBLISH"], CSite::GetDateFormat("FULL", $arGroup["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 (strLen($postTemplate) > 0) { $url = htmlspecialcharsbx("http://" . $serverName . CComponentEngine::MakePathFromTemplate($postTemplate, array("blog" => $arBlog["URL"], "post_id" => CBlogPost::GetPostID($arPost["ID"], $arPost["CODE"], $arParams["ALLOW_POST_CODE"]), "user_id" => IntVal($arParams["USER_ID"]) > 0 ? $arParams["USER_ID"] : $arBlog["OWNER_ID"], "group_id" => IntVal($arParams["SOCNET_GROUP_ID"]) > 0 ? $arParams["SOCNET_GROUP_ID"] : $arBlog["SOCNET_GROUP_ID"]))); } else { $url = htmlspecialcharsbx("http://" . $serverName . CBlogPost::PreparePath($arBlog["URL"], $arPost["ID"], $arGroup["SITE_ID"])); } $category = htmlspecialcharsbx($arPost["CATEGORY_NAME"]); $BlogUser = CBlogUser::GetByID($arPost["AUTHOR_ID"], BLOG_BY_USER_ID); $dbUser = CUser::GetByID($arPost["AUTHOR_ID"]); $arUser = $dbUser->Fetch(); $author = htmlspecialcharsex(CBlogUser::GetUserName($BlogUser["ALIAS"], $arUser["NAME"], $arUser["LAST_NAME"], $arUser["LOGIN"], $arUser["SECOND_NAME"])); if (strLen($userTemplate) > 0) { $authorURL = htmlspecialcharsbx("http://" . $serverName . CComponentEngine::MakePathFromTemplate($userTemplate, array("user_id" => $arPost["AUTHOR_ID"]))); } else { $authorURL = htmlspecialcharsbx("http://" . $serverName . CBlogUser::PreparePath($arPost["AUTHOR_ID"], $arGroup["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, !$bSoNet, $arParserParams); } if (!$bSoNet) { $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>" . $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; }
} } //Update categories & images 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/");
} $dbItem = CBlogPost::GetList(array("VIEWS" => "DESC", "NUM_COMMENTS" => "DESC"), $arFilter, false, false, $arSelectedFields); while ($arItem = $dbItem->Fetch()) { $arBlogs[$arItem["BLOG_ID"]]["VIEWS"] += $arItem["VIEWS"]; $arBlogs[$arItem["BLOG_ID"]]["NUM_COMMENTS"] += $arItem["NUM_COMMENTS"]; } if (!empty($arBlogs)) { uasort($arBlogs, create_function('$a, $b', 'if($a["VIEWS"] == $b["VIEWS"]) { if($a["NUM_COMMENTS"] < $b["NUM_COMMENTS"]) return 1; elseif($a["NUM_COMMENTS"] > $b["NUM_COMMENTS"]) return -1; else return 0;} return ($a["VIEWS"] < $b["VIEWS"])? 1 : -1;')); $i = 0; foreach ($arBlogs as $blogID => $info) { if ($i >= $arParams["BLOG_COUNT"] && IntVal($arParams["BLOG_COUNT"]) > 0) { continue; } $arBlog = CBlog::GetByID($blogID); $arBlog = CBlogTools::htmlspecialcharsExArray($arBlog); $arBlog["BlogUser"] = CBlogUser::GetByID($arBlog["OWNER_ID"], BLOG_BY_USER_ID); $arBlog["BlogUser"] = CBlogTools::htmlspecialcharsExArray($arBlog["BlogUser"]); $dbUser = CUser::GetByID($arBlog["OWNER_ID"]); $arBlog["arUser"] = $dbUser->GetNext(); $arBlog["AuthorName"] = CBlogUser::GetUserName($arBlog["BlogUser"]["ALIAS"], $arBlog["arUser"]["NAME"], $arBlog["arUser"]["LAST_NAME"], $arBlog["arUser"]["LOGIN"]); if (IntVal($arBlog["SOCNET_GROUP_ID"]) > 0) { $arBlog["urlToBlog"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_GROUP_BLOG"], array("blog" => $arBlog["URL"], "group_id" => $arBlog["SOCNET_GROUP_ID"])); $arBlog["urlToAuthor"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_GROUP"], array("group_id" => $arBlog["SOCNET_GROUP_ID"])); } else { $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"])); } if ($i == 0) { $arBlog["FIRST_BLOG"] = "Y"; } $i++;
$Vars = $cache->GetVars(); CBitrixComponentTemplate::ApplyCachedData($Vars["templateCachedData"]); $arResult = $Vars["arResult"]; $cache->Output(); } else { if ($arParams["CACHE_TIME"] > 0) { $cache->StartDataCache($arParams["CACHE_TIME"], $cache_id, $cache_path); } if ($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) { $arBlog["Group"] = $arGroup; $arResult = $arBlog; $arResult["urlToBlog"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("blog" => $arBlog["URL"])); $arResult["arUserBlog"] = CBlogUser::GetByID($arBlog["OWNER_ID"], BLOG_BY_USER_ID); $arResult["arUserBlog"] = CBlogTools::htmlspecialcharsExArray($arResult["arUserBlog"]); $dbUser = CUser::GetByID($arBlog["OWNER_ID"]); $arResult["arUser"] = $dbUser->GetNext(); $arResult["AuthorName"] = CBlogUser::GetUserName($arResult["arUserBlog"]["ALIAS"], $arResult["arUser"]["NAME"], $arResult["arUser"]["LAST_NAME"], $arResult["arUser"]["LOGIN"]); $arResult["urlToAuthor"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $arBlog["OWNER_ID"])); $arResult["Avatar"] = CFile::GetFileArray($arResult["arUserBlog"]["AVATAR"]); if (!empty($arResult["Avatar"])) { $arResult["Avatar_FORMATED"] = CFile::ShowImage($arResult["Avatar"]["SRC"], 100, 100, 'title="' . $arResult["AuthorName"] . '" border="0"'); } $arCategoryAll = array(); //$dbCategory = CBlogCategory::GetList(Array("NAME"=>"ASC"), Array("BLOG_ID"=>$arBlog["ID"])); $dbCategory = CBlogPostCategory::GetList(array("NAME" => "ASC"), array("BLOG_ID" => $arBlog["ID"], "POST_PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_PUBLISH), array("CATEGORY_ID", "NAME"), false, array("POST_ID", "BLOG_ID", "NAME", "CATEGORY_ID")); while ($arCategory = $dbCategory->GetNext()) { if ($arParams["CATEGORY_ID"] == $arCategory["CATEGORY_ID"]) { $arCategory["SELECTED"] = "Y";
$arImages[$arImage['ID']] = $arImage['FILE_ID']; } if ($arResult["postPreview"]["POST_MESSAGE_TYPE"] == "html" && $arResult["allowHTML"] == "Y") { $arAllow = array("HTML" => "Y", "ANCHOR" => "Y", "IMG" => "Y", "SMILES" => "Y", "NL2BR" => "N", "VIDEO" => "Y", "QUOTE" => "Y", "CODE" => "Y"); 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))); }
} $dbUser = CUser::GetByID($arParams["ID"]); if ($arUser = $dbUser->GetNext()) { $arResult["User"] = $arUser; if ($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; if (CBlog::CanUserManageBlog($arBlog["ID"], IntVal($USER->GetID()))) { if ($arParams["SET_TITLE"] == "Y") { $APPLICATION->SetTitle(str_replace("#NAME#", $arBlog["NAME"], GetMessage("B_B_USE_TITLE_BLOG"))); } $errorMessage = ""; $okMessage = ""; $arBlogUser = CBlogUser::GetByID($arUser["ID"], BLOG_BY_USER_ID); $arBlogUser = CBlogTools::htmlspecialcharsExArray($arBlogUser); $arResult["BlogUser"] = $arBlogUser; if ($GLOBALS["user_action"] == "Y" && check_bitrix_sessid()) { 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"])));
$arUserGroups = array(); $dbUserGroups = CUser::GetUserGroupEx($arUser['ID']); while ($arG = $dbUserGroups->Fetch()) { if (strlen($arG["STRING_ID"]) > 0) $arUserGroups[] = $arG["STRING_ID"]; elseif ($arG["GROUP_ID"] == 1) $arUserGroups[] = "administrators"; elseif ($arG["GROUP_ID"] == 2) $arUserGroups[] = "everyone"; } $arSaveUser["GROUP_ID"] = $arUserGroups; if (CModule::IncludeModule("blog")) { $arBlogUser = CBlogUser::GetByID($arUser['ID'], BLOG_BY_USER_ID); if (is_array($arBlogUser) && $arBlogUser["AVATAR"] > 0) $arSaveUser["BLOG_AVATAR"] = CFile::GetPath($arBlogUser["AVATAR"]); } if (CModule::IncludeModule("forum")) { $arForumUser = CForumUser::GetByID($arUser['ID'], BLOG_BY_USER_ID); if (is_array($arForumUser) && $arForumUser["AVATAR"] > 0) $arSaveUser["FORUM_AVATAR"] = CFile::GetPath($arForumUser["AVATAR"]); } $oResponse->status = "200 OK"; $oResponse->arParameters['USER_INFO'] = $arSaveUser; if (defined("FORMAT_DATE")) $oResponse->arParameters['FORMAT_DATE'] = FORMAT_DATE;
<?php if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die; } IncludeTemplateLangFile(__FILE__); $strErrorMessage = ""; $BLOG_USER_ID = intval($_POST["BLOG_USER_ID"]); if ($_SERVER["REQUEST_METHOD"] == "POST" && $_POST["save"] != "" && check_bitrix_sessid()) { if (CModule::IncludeModule("blog")) { if ($BLOG_USER_ID <= 0) { $BLOG_USER_ID = CBlogUser::Add(array("USER_ID" => $USER->GetID(), "=LAST_VISIT" => $GLOBALS["DB"]->GetNowFunction(), "=DATE_REG" => $GLOBALS["DB"]->GetNowFunction(), "ALLOW_POST" => "Y")); } $BlogUser = CBlogUser::GetByID($BLOG_USER_ID); if ($BlogUser && ($USER->GetID() == $BlogUser["USER_ID"] || $USER->IsAdmin())) { $arPICTURE = $_FILES["BLOG_USER_AVATAR"]; $arPICTURE["old_file"] = $BlogUser["AVATAR"]; $arPICTURE["del"] = $_POST["BLOG_USER_AVATAR_del"]; $arHobbyDB = array(); $arHobby = explode(",", $_POST["BLOG_USER_INTERESTS"]); foreach ($arHobby as $Hobby) { $Hobby = trim($Hobby); $arHobbyDB[] = $Hobby; } $arHobbyDB = array_unique($arHobbyDB); if (count($arHobbyDB) > 0) { $Hobby = implode(", ", $arHobbyDB); } else { $Hobby = ""; } $arFields = array("ALIAS" => $_POST["BLOG_USER_ALIAS"], "DESCRIPTION" => $_POST["BLOG_USER_DESCRIPTION"], "AVATAR" => $arPICTURE, "INTERESTS" => $Hobby);
CEvent::Send("NEW_BLOG_COMMENT", SITE_ID, $arMailFields); } } } LocalRedirect($urlToPost . "#" . $commmentId); } } else { if ($e = $APPLICATION->GetException()) { echo ShowError(GetMessage("B_B_PC_COM_ERROR") . " " . $e->GetString()); } if (strlen($strErrorMessage) > 0) { echo ShowError(GetMessage("B_B_PC_COM_ERROR") . " " . $strErrorMessage); } $user_id = $USER->GetID(); if (IntVal($user_id) > 0) { $BlogUser = CBlogUser::GetByID($user_id, BLOG_BY_USER_ID); $dbUser = CUser::GetByID($user_id); $arUser = $dbUser->Fetch(); $User["NAME"] = CBlogUser::GetUserName($BlogUser["ALIAS"], $arUser["NAME"], $arUser["LAST_NAME"], $arUser["LOGIN"]); $User["ID"] = $user_id; } ?> <table width="100%" cellpadding="0" cellspacing="1" border="0" class="blogtableborder"> <form method="POST" name="comment" enctype="multipart/form-data" action=""> <tr> <td> <table cellspacing="0" cellpadding="3" width="100%" class="blogtablebody" border="0"> <?php echo bitrix_sessid_post(); ?> <input type="hidden" name="parentId" value="<?php
} if ($strError == '') { if ($arParams['SEND_INFO'] == 'Y') { $obUser->SendUserInfo($arResult["ID"], SITE_ID, GetMessage("ACCOUNT_UPDATE"), true); } $bOk = true; } } $rsUser = CUser::GetByID($arResult["ID"]); if (!($arResult["arUser"] = $rsUser->GetNext(false))) { $arResult["ID"] = 0; } if (CModule::IncludeModule("blog")) { $arResult["INCLUDE_BLOG"] = "Y"; $arResult["arBlogUser"] = array(); $arBlg = CBlogUser::GetByID($arResult["ID"], BLOG_BY_USER_ID); if (is_array($arBlg)) { foreach ($arBlg as $key => $val) { $arResult["arBlogUser"]["~" . $key] = $val; $arResult["arBlogUser"][$key] = htmlspecialcharsbx($val); } } if (!isset($arResult["arBlogUser"]["ALLOW_POST"]) || $arResult["arBlogUser"]["ALLOW_POST"] != "Y" && $arResult["arBlogUser"]["ALLOW_POST"] != "N") { $arResult["arBlogUser"]["ALLOW_POST"] = "Y"; } } if (CModule::IncludeModule("forum")) { $arResult["INCLUDE_FORUM"] = "Y"; $rsForumUser = CForumUser::GetList(array(), array("USER_ID" => $arResult["ID"])); $arResult["arForumUser"] = $rsForumUser->GetNext(false); if (!isset($arResult["arForumUser"]["ALLOW_POST"]) || $arResult["arForumUser"]["ALLOW_POST"] != "Y" && $arResult["arForumUser"]["ALLOW_POST"] != "N") {
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; }
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; }
if (count($arParams["POST_PROPERTY_LIST"]) > 0) { foreach ($arPostFields as $FIELD_NAME => $arPostField) { if (!in_array($FIELD_NAME, $arParams["POST_PROPERTY_LIST"])) { continue; } $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; }
$arFields['DETAIL_TEXT'] = str_replace("[IMG ID={$imgID}]", "", $arFields['DETAIL_TEXT']); } else { CBlogImage::Update($imgID, array("TITLE" => $imgTitle)); } } } 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/");
$socnetPerms = array("U1", "G2"); 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));
$p = new blogTextParser(false, $arParams["PATH_TO_SMILE"]); $arParserParams = array("imageWidth" => $arParams["IMAGE_MAX_WIDTH"], "imageHeight" => $arParams["IMAGE_MAX_HEIGHT"]); do { $arResult["Comments"][$arComment["ID"]] = array("ID" => $arComment["ID"], "PARENT_ID" => $arComment["PARENT_ID"]); $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"]); 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";
$DB->Rollback(); if ($e = $APPLICATION->GetException()) { $strErrorMessage .= $e->GetString(); } } } else { $strErrorMessage .= GetMessage("B_B_PU_NO_RIGHTS") . "<br />"; } } if (strlen($strErrorMessage) <= 0) { LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $arParams["ID"]))); } else { $arResult["ERROR_MESSAGE"] = $strErrorMessage; } } $arResult["BlogUser"] = CBlogUser::GetByID($arParams["ID"], BLOG_BY_USER_ID); $arResult["BlogUser"] = CBlogTools::htmlspecialcharsExArray($arResult["BlogUser"]); $arResult["arSex"] = array("M" => GetMessage("B_B_USER_SEX_M"), "F" => GetMessage("B_B_USER_SEX_F")); $arResult["userName"] = CBlogUser::GetUserNameEx($arResult["arUser"], $arResult["BlogUser"], $arParams); $arResult["User"] = $arResult["arUser"]; $arResult["BlogUser"]["LAST_VISIT_FORMATED"] = FormatDate($arParams["DATE_TIME_FORMAT"], MakeTimeStamp($arResult["BlogUser"]["LAST_VISIT"], CSite::GetDateFormat("FULL"))); foreach ($arResult["BlogUser"] as $k => $v) { $arResult["User"][$k] = $v; } if ($arResult["bEdit"] == "Y") { $arResult["User"]["ALIAS"] = htmlspecialcharsbx($_POST["ALIAS"]); $arResult["User"]["DESCRIPTION"] = htmlspecialcharsbx($_POST["DESCRIPTION"]); $arResult["User"]["PERSONAL_WWW"] = htmlspecialcharsbx($_POST["PERSONAL_WWW"]); $arResult["User"]["PERSONAL_GENDER"] = htmlspecialcharsbx($_POST["PERSONAL_GENDER"]); $arResult["User"]["PERSONAL_BIRTHDAY"] = htmlspecialcharsbx($_POST["PERSONAL_BIRTHDAY"]); $arResult["User"]["INTERESTS"] = htmlspecialcharsbx($_POST["INTERESTS"]);
function Notify($arPost, $arBlog, $arParams) { global $DB; if (empty($arBlog)) { $arBlog = CBlog::GetByID($arPost["BLOG_ID"]); } if ($arParams["bSoNet"] || $arBlog["EMAIL_NOTIFY"] == "Y" && $arParams["user_id"] != $arBlog["OWNER_ID"]) { $BlogUser = CBlogUser::GetByID($arParams["user_id"], BLOG_BY_USER_ID); $BlogUser = CBlogTools::htmlspecialcharsExArray($BlogUser); $res = CUser::GetByID($arBlog["OWNER_ID"]); $arOwner = $res->GetNext(); $dbUser = CUser::GetByID($arParams["user_id"]); $arUser = $dbUser->Fetch(); $AuthorName = CBlogUser::GetUserNameEx($arUser, $BlogUser, $arParams); $parserBlog = new blogTextParser(false, $arParams["PATH_TO_SMILE"]); $text4mail = $arPost["DETAIL_TEXT"]; if ($arPost["DETAIL_TEXT_TYPE"] == "html") { $text4mail = HTMLToTxt($text4mail); } $arImages = array(); $res = CBlogImage::GetList(array("ID" => "ASC"), array("POST_ID" => $arPost["ID"], "BLOG_ID" => $arBlog["ID"], "IS_COMMENT" => "N")); while ($arImage = $res->Fetch()) { $arImages[$arImage['ID']] = $arImage['FILE_ID']; } $text4mail = $parserBlog->convert4mail($text4mail, $arImages); $dbSite = CSite::GetByID(SITE_ID); $arSite = $dbSite->Fetch(); $serverName = htmlspecialcharsEx($arSite["SERVER_NAME"]); 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 (!$arParams["bSoNet"] && $arBlog["EMAIL_NOTIFY"] == "Y" && $arParams["user_id"] != $arBlog["OWNER_ID"] && IntVal($arBlog["OWNER_ID"]) > 0) { CEvent::Send("NEW_BLOG_MESSAGE", SITE_ID, array("BLOG_ID" => $arBlog["ID"], "BLOG_NAME" => htmlspecialcharsBack($arBlog["NAME"]), "BLOG_URL" => $arBlog["URL"], "MESSAGE_TITLE" => $arPost["TITLE"], "MESSAGE_TEXT" => $text4mail, "MESSAGE_DATE" => GetTime(MakeTimeStamp($arPost["DATE_PUBLISH"]) - CTimeZone::GetOffset(), "FULL"), "MESSAGE_PATH" => "http://" . $serverName . CComponentEngine::MakePathFromTemplate(htmlspecialcharsBack($arParams["PATH_TO_POST"]), array("blog" => $arBlog["URL"], "post_id" => $arPost["ID"], "user_id" => $arBlog["OWNER_ID"], "group_id" => $arParams["SOCNET_GROUP_ID"])), "AUTHOR" => $AuthorName, "EMAIL_FROM" => COption::GetOptionString("main", "email_from", "*****@*****.**"), "EMAIL_TO" => $arOwner["EMAIL"])); } if ($arParams["bSoNet"] && $arPost["ID"] && CModule::IncludeModule("socialnetwork")) { if ($arPost["DETAIL_TEXT_TYPE"] == "html" && $arParams["allowHTML"] == "Y" && $arBlog["ALLOW_HTML"] == "Y") { $arAllow = array("HTML" => "Y", "ANCHOR" => "Y", "IMG" => "Y", "SMILES" => "N", "NL2BR" => "N", "VIDEO" => "Y", "QUOTE" => "Y", "CODE" => "Y"); if ($arParams["allowVideo"] != "Y") { $arAllow["VIDEO"] = "N"; } $text4message = $parserBlog->convert($arPost["DETAIL_TEXT"], false, $arImages, $arAllow); } else { $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($arPost["DETAIL_TEXT"], false, $arImages, $arAllow, array("isSonetLog" => true)); } $arSoFields = array("EVENT_ID" => "blog_post", "=LOG_DATE" => strlen($arPost["DATE_PUBLISH"]) > 0 ? MakeTimeStamp($arPost["DATE_PUBLISH"], CSite::GetDateFormat("FULL", $SITE_ID)) > time() + CTimeZone::GetOffset() ? $DB->CharToDateFunction($arPost["DATE_PUBLISH"], "FULL", SITE_ID) : $DB->CurrentTimeFunction() : $DB->CurrentTimeFunction(), "TITLE_TEMPLATE" => "#USER_NAME# " . GetMessage("BLG_SONET_TITLE"), "TITLE" => $arPost["TITLE"], "MESSAGE" => $text4message, "TEXT_MESSAGE" => $text4mail, "MODULE_ID" => "blog", "CALLBACK_FUNC" => false, "SOURCE_ID" => $arPost["ID"], "ENABLE_COMMENTS" => array_key_exists("ENABLE_COMMENTS", $arPost) && $arPost["ENABLE_COMMENTS"] == "N" ? "N" : "Y"); $arSoFields["RATING_TYPE_ID"] = "BLOG_POST"; $arSoFields["RATING_ENTITY_ID"] = intval($arPost["ID"]); if ($arParams["bGroupMode"]) { $arSoFields["ENTITY_TYPE"] = SONET_ENTITY_GROUP; $arSoFields["ENTITY_ID"] = $arParams["SOCNET_GROUP_ID"]; $arSoFields["URL"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_POST"], array("blog" => $arBlog["URL"], "user_id" => $arBlog["OWNER_ID"], "group_id" => $arParams["SOCNET_GROUP_ID"], "post_id" => $arPost["ID"])); } else { $arSoFields["ENTITY_TYPE"] = SONET_ENTITY_USER; $arSoFields["ENTITY_ID"] = $arBlog["OWNER_ID"]; $arSoFields["URL"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_POST"], array("blog" => $arBlog["URL"], "user_id" => $arBlog["OWNER_ID"], "group_id" => $arParams["SOCNET_GROUP_ID"], "post_id" => $arPost["ID"])); } if (intval($arParams["user_id"]) > 0) { $arSoFields["USER_ID"] = $arParams["user_id"]; } $logID = CSocNetLog::Add($arSoFields, false); if (intval($logID) > 0) { $socnetPerms = CBlogPost::GetSocNetPermsCode($arPost["ID"]); if (!in_array("U" . $arPost["AUTHOR_ID"], $socnetPerms)) { $socnetPerms[] = "U" . $arPost["AUTHOR_ID"]; } $socnetPerms[] = "SA"; // socnet admin CSocNetLog::Update($logID, array("TMP_ID" => $logID)); if (CModule::IncludeModule("extranet")) { $arSiteID = CExtranet::GetSitesByLogDestinations($socnetPerms); CSocNetLog::Update($logID, array("SITE_ID" => $arSiteID)); } CSocNetLogRights::DeleteByLogID($logID); CSocNetLogRights::Add($logID, $socnetPerms); CSocNetLog::SendEvent($logID, "SONET_NEW_EVENT", $logID); return $logID; } } }
<?php $blogWarningTmp = ""; if (CModule::IncludeModule("blog") && check_bitrix_sessid()) { $arblogFields = array("ALIAS" => $blog_ALIAS, "DESCRIPTION" => $blog_DESCRIPTION, "INTERESTS" => $blog_INTERESTS, "AVATAR" => $_FILES["blog_AVATAR"]); $arblogFields["AVATAR"]["del"] = $blog_AVATAR_del; if ($USER->IsAdmin()) { $arblogFields["ALLOW_POST"] = $blog_ALLOW_POST == "Y" ? "Y" : "N"; } $ar_res = CBlogUser::GetByID($ID, BLOG_BY_USER_ID); if ($ar_res) { $arblogFields["AVATAR"]["old_file"] = $ar_res["AVATAR"]; $BLOG_USER_ID = IntVal($ar_res["ID"]); $BLOG_USER_ID1 = CBlogUser::Update($BLOG_USER_ID, $arblogFields); $blog_res = IntVal($BLOG_USER_ID1) > 0; } else { $arblogFields["USER_ID"] = $ID; $arblogFields["~DATE_REG"] = CDatabase::CurrentTimeFunction(); $BLOG_USER_ID = CBlogUser::Add($arblogFields); $blog_res = IntVal($BLOG_USER_ID) > 0; } }
function GetUserInfo($params) { global $USER; $user = CBlogMetaWeblog::DecodeParams($params[1]["#"]["value"][0]["#"]); $password = CBlogMetaWeblog::DecodeParams($params[2]["#"]["value"][0]["#"]); if (CBlogMetaWeblog::Authorize($user, $password)) { $result = ''; $userId = $USER->GetID(); $dbUser = CUser::GetByID($userId); if ($arUser = $dbUser->Fetch()) { $BlogUser = CBlogUser::GetByID($userId, BLOG_BY_USER_ID); if (strlen($BlogUser["ALIAS"]) > 0) { $nick = htmlspecialcharsEx($BlogUser["ALIAS"]); } else { $nick = htmlspecialcharsEx($arUser["LOGIN"]); } $result .= ' <value> <struct> <member> <name>nickname</name> <value>' . $nick . '</value> </member> <member> <name>email</name> <value>' . htmlspecialcharsEx($arUser["EMAIL"]) . '</value> </member> <member> <name>lastname</name> <value>' . htmlspecialcharsEx($arUser["LAST_NAME"]) . '</value> </member> <member> <name>firstname</name> <value>' . htmlspecialcharsEx($arUser["NAME"]) . '</value> </member> </struct> </value> '; } if (strlen($result) > 0) { return '<params> <param> <value> <array> <data>' . $result . '</data> </array> </value> </param> </params>'; } else { return '<fault> <value> <struct> <member> <name>faultCode</name> <value><int>4</int></value> </member> <member> <name>faultString</name> <value><string>User not found.</string></value> </member> </struct> </value> </fault>'; } } else { return '<fault> <value> <struct> <member> <name>faultCode</name> <value><int>3</int></value> </member> <member> <name>faultString</name> <value><string>' . $arAuthResult["MESSAGE"] . '</string></value> </member> </struct> </value> </fault>'; } }
//вывод сообщения $dbPost = CBlogPost::GetList($SORT, $arFilter, array("ID", "DATE_PUBLISH", "MAX" => "PERMS"), array("bDescPageNumbering" => true, "nPageSize" => $MESSAGE_COUNT, "bShowAll" => false)); if ($arPost = $dbPost->NavNext(false)) { do { $CurPost = CBlogPost::GetByID($arPost["ID"]); $urtToPost = CBlogPost::PreparePath($arBlog["URL"], $CurPost["ID"], SITE_ID, $is404); $urlToAuthor = CBlogUser::PreparePath($CurPost["AUTHOR_ID"], SITE_ID, $is404); $urlToBlog = CBlog::PreparePath($arBlog["URL"], SITE_ID, $is404); $p = new blogTextParser(); $arImage = array(); $res = CBlogImage::GetList(array("ID" => "ASC"), array("POST_ID" => $arPost['ID'], "BLOG_ID" => $arBlog['ID'])); while ($arImage = $res->Fetch()) { $arImages[$arImage['ID']] = $arImage['FILE_ID']; } $text = $p->convert($CurPost["DETAIL_TEXT"], true, $arImages); $BlogUser = CBlogUser::GetByID($CurPost["AUTHOR_ID"], BLOG_BY_USER_ID); $dbUser = CUser::GetByID($CurPost["AUTHOR_ID"]); $arUser = $dbUser->Fetch(); $AuthorName = CBlogUser::GetUserName($BlogUser["ALIAS"], $arUser["NAME"], $arUser["LAST_NAME"], $arUser["LOGIN"]); ?> <table class="blogtableborder" cellspacing="1" cellpadding="0" width="100%" border="0"> <tr> <td> <table border="0" width="100%" cellpadding="3" cellspacing="0" class="blogtablebody"> <tr> <td class="blogtablehead" align="left" nowrap width="70%" style="padding-left:10px;"><font class="blogpostdate"><?php echo $CurPost["DATE_PUBLISH"]; ?> </font></td> <td align="right" class="blogtablehead" nowrap width="30%"><font class="blogauthor"><?php echo GetMessage("BLOG_BLOG_BLOG_AUTHOR");