public function UnBind() { if(!$this->IsAvailable()) return false; //Comment doesn't exists $arComment = $this->Get(); if(!$arComment) return false; $arIdea = CBlogPost::GetList(array(), array("ID" => $arComment["POST_ID"]), false, false, array("ID", CIdeaManagment::UFAnswerIdField))->Fetch(); if($arIdea) { if(!is_array($arIdea[CIdeaManagment::UFAnswerIdField])) $arIdea[CIdeaManagment::UFAnswerIdField] = array(); $arIdea[CIdeaManagment::UFAnswerIdField] = array_unique($arIdea[CIdeaManagment::UFAnswerIdField]); $key = array_search($arComment["ID"], $arIdea[CIdeaManagment::UFAnswerIdField]); if(is_numeric($key)) { unset($arIdea[CIdeaManagment::UFAnswerIdField][$key], $arIdea["ID"]); return CBlogPost::Update($arComment["POST_ID"], $arIdea)>0; } } return false; }
function __AutoSetPerms($ID) { $ID = IntVal($ID); $arGroupPerms = CBlogUserGroupPerms::GetByID($ID); if (IntVal($arGroupPerms["POST_ID"]) == 0) { $dbBlogPosts = CBlogPost::GetList(array(), array("BLOG_ID" => $arGroupPerms["BLOG_ID"]), false, false, array("ID")); while ($arBlogPosts = $dbBlogPosts->Fetch()) { $dbGroupPerms1 = CBlogUserGroupPerms::GetList(array(), array("BLOG_ID" => $arGroupPerms["BLOG_ID"], "USER_GROUP_ID" => $arGroupPerms["USER_GROUP_ID"], "PERMS_TYPE" => $arGroupPerms["PERMS_TYPE"], "POST_ID" => $arBlogPosts["ID"]), false, false, array("ID", "AUTOSET", "PERMS")); if ($arGroupPerms1 = $dbGroupPerms1->Fetch()) { if ($arGroupPerms1["AUTOSET"] == "Y" && $arGroupPerms["PERMS"] != $arGroupPerms1["PERMS"]) { CBlogUserGroupPerms::Update($arGroupPerms1["ID"], array("PERMS" => $arGroupPerms["PERMS"])); } } else { CBlogUserGroupPerms::Add(array("BLOG_ID" => $arGroupPerms["BLOG_ID"], "USER_GROUP_ID" => $arGroupPerms["USER_GROUP_ID"], "PERMS_TYPE" => $arGroupPerms["PERMS_TYPE"], "POST_ID" => $arBlogPosts["ID"], "PERMS" => $arGroupPerms["PERMS"], "AUTOSET" => "Y")); } } } }
protected function prepareData() { if (strlen(trim($this->arParams["NAME_TEMPLATE"])) <= 0) { $this->arParams["NAME_TEMPLATE"] = \CSite::GetNameFormat(); } $dbPost = \CBlogPost::GetList(array(), array("ID" => $this->arParams["postId"]), false, false, array("ID", "BLOG_ID", "PUBLISH_STATUS", "TITLE", "AUTHOR", "ENABLE_COMMENTS", "NUM_COMMENTS", "VIEWS", "CODE", "MICRO", "DETAIL_TEXT", "DATE_PUBLISH", "CATEGORY_ID", "HAS_SOCNET_ALL", "HAS_TAGS", "HAS_IMAGES", "HAS_PROPS", "HAS_COMMENT_IMAGES")); if ($arPost = $dbPost->Fetch()) { if (strlen($arPost['TITLE']) > 30) { $arPost['TITLE'] = substr($arPost['TITLE'], 0, 30) . "..."; } $this->arResult['POST'] = $arPost; $this->arResult['POST']['PUBLISH_STATUS_DESCRIPTION'] = Loc::getMessage('BLOG_POST_PUBLISH_STATUS_' . $arPost['PUBLISH_STATUS']); $this->arResult['POST']['AUTHOR_FORMATTED_NAME'] = \CUser::FormatName($this->arParams['NAME_TEMPLATE'], array('LOGIN' => $this->arResult['POST']['LOGIN'], 'NAME' => $this->arResult['POST']['NAME'], 'LAST_NAME' => $this->arResult['POST']['LAST_NAME']), true, false); $this->arResult["POST"]['AUTHOR_PROFILE'] = \CComponentEngine::MakePathFromTemplate($this->arParams["PATH_TO_USER_PROFILE"], array("user_id" => $this->arResult['POST']['AUTHOR'])); $this->arResult["POST"]['AUTHOR_UNIQID'] = 'u_' . $this->randString(); if (defined("BX_COMP_MANAGED_CACHE")) { $GLOBALS['CACHE_MANAGER']->RegisterTag('blog_post_' . $this->arParams['postId']); } } }
//@::Idea| If moderator the display hidden posts if ($arResult["IDEA_MODERATOR"]) { $arFilter["PUBLISH_STATUS"] = array(BLOG_PUBLISH_STATUS_PUBLISH, BLOG_PUBLISH_STATUS_READY, BLOG_PUBLISH_STATUS_DRAFT); } else { $arFilter["PUBLISH_STATUS"] = BLOG_PUBLISH_STATUS_PUBLISH; } $arFilter["BLOG_ID"] = $arBlog["ID"]; if (IntVal($arParams["CATEGORY_ID"]) > 0) { $arFilter["CATEGORY_ID_F"] = $arParams["CATEGORY_ID"]; if ($arParams["SET_TITLE"] == "Y") { $arCat = CBlogCategory::GetByID($arFilter["CATEGORY_ID_F"]); $arResult["title"]["category"] = CBlogTools::htmlspecialcharsExArray($arCat); } } $arResult["filter"] = $arFilter; $dbPost = CBlogPost::GetList($SORT, array_merge($arParams["EXT_FILTER"], $arFilter), false, array("bDescPageNumbering" => true, "nPageSize" => $arParams["MESSAGE_COUNT"], "bShowAll" => false), array("ID", "TITLE", "BLOG_ID", "AUTHOR_ID", "PREVIEW_TEXT", "PREVIEW_TEXT_TYPE", "DETAIL_TEXT", "DETAIL_TEXT_TYPE", "DATE_CREATE", "DATE_PUBLISH", "KEYWORDS", "PUBLISH_STATUS", "ATRIBUTE", "ATTACH_IMG", "ENABLE_TRACKBACK", "ENABLE_COMMENTS", "VIEWS", "NUM_COMMENTS", "CODE", "MICRO", "CATEGORY_ID")); $arResult["NAV_STRING"] = $dbPost->GetPageNavStringEx($navComponentObject, GetMessage("MESSAGE_COUNT"), $arParams["NAV_TEMPLATE"], false, $this->__component->__parent ? $this->__component->__parent : $this->__component); $arResult["NAV_CACHED_DATA"] = $navComponentObject->GetTemplateCachedData(); $arResult["POST"] = array(); $arResult["IDS"] = array(); $p = new blogTextParser(false, $arParams["PATH_TO_SMILE"]); $arParserParams = array("imageWidth" => $arParams["IMAGE_MAX_WIDTH"], "imageHeight" => $arParams["IMAGE_MAX_HEIGHT"]); while ($CurPost = $dbPost->GetNext()) { $CurPost["urlToPost"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_POST"], array("blog" => $arBlog["URL"], "post_id" => CBlogPost::GetPostID($CurPost["ID"], $CurPost["CODE"], $arParams["ALLOW_POST_CODE"]))); $CurPost["urlToAuthor"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $CurPost["AUTHOR_ID"])); $arImages = array(); $res = CBlogImage::GetList(array("ID" => "ASC"), array("POST_ID" => $CurPost['ID'], "BLOG_ID" => $arBlog['ID'])); while ($arImage = $res->Fetch()) { $arImages[$arImage['ID']] = $arImage['FILE_ID']; } if ($CurPost["DETAIL_TEXT_TYPE"] == "html" && COption::GetOptionString("blog", "allow_html", "N") == "Y") {
$arBlogPostId = array(); foreach ($arBlogPostFields as $BlogPostFields) { $arBlogPostId[] = CBlogPost::Add($BlogPostFields); } foreach ($arBlogPostId as $key => $BlogPostId) { if (!is_array($categoryID[$key])) { continue; } foreach ($categoryID[$key] as $v) { CBlogPostCategory::Add(array("BLOG_ID" => $blogID, "POST_ID" => $BlogPostId, "CATEGORY_ID" => $v)); } } //Post Comments $arBlogCommentFields = array(); $arBlogCommentFields[] = array("TITLE" => '', "POST_TEXT" => GetMessage("IDEA_BLOG_DEMO_COMMENT_BODY_1"), "BLOG_ID" => $blogID, "POST_ID" => $arBlogPostId[0], "PARENT_ID" => 0, "AUTHOR_ID" => 1, "DATE_CREATE" => ConvertTimeStamp(false, "FULL"), "AUTHOR_IP" => "192.168.0.108", "PATH" => "/services/idea/#post_id#/?commentId=#comment_id###comment_id#"); $arBlogCommentFields[] = array("TITLE" => '', "POST_TEXT" => GetMessage("IDEA_BLOG_DEMO_COMMENT_BODY_2"), "BLOG_ID" => $blogID, "POST_ID" => $arBlogPostId[0], "PARENT_ID" => 0, "AUTHOR_ID" => 1, "DATE_CREATE" => ConvertTimeStamp(false, "FULL"), "AUTHOR_IP" => "192.168.0.108", "PATH" => "/services/idea/#post_id#/?commentId=#comment_id###comment_id#"); $arCommentId = array(); foreach ($arBlogCommentFields as $BlogCommentFields) { $arCommentId[] = CBlogComment::Add($BlogCommentFields); } if ($arBlogPost = CBlogPost::GetList(array(), array("BLOG_ID" => $blogID, "ID" => $arBlogPostId[0]), false, false, array("ID", CIdeaManagment::UFAnswerIdField, CIdeaManagment::UFStatusField))->Fetch()) { //if Empty value make an array if (!is_array($arBlogPost[CIdeaManagment::UFAnswerIdField])) { $arBlogPost[CIdeaManagment::UFAnswerIdField] = array(); } $arBlogPost[CIdeaManagment::UFAnswerIdField][] = $arCommentId[1]; unset($arBlogPost["ID"]); CBlogPost::Update($arBlogPostId[0], $arBlogPost); } //Replace in file CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/services/idea/index.php", array("IDEA_BLOG_CODE" => $IdeaBlogUrl, "IDEA_BIND_STATUS_DEFAULT" => $arUFIdByName["NEW"]));
public function GetRSS($BlogCode, $type = "rss2.0", $numPosts = 10, $siteID = SITE_ID, $arPathTemplates = array(), $arFilterExt = array()) { if (!$this->IsAvailable()) { return false; } global $USER; //Post CNT $numPosts = IntVal($numPosts); //RSS type $type = ToLower(preg_replace("/[^a-zA-Z0-9.]/is", "", $type)); if (!in_array($type, array("rss2.0", "atom.03", "rss.92"))) { $type = "rss.92"; } //Prepare Extended filter if (!is_array($arFilterExt)) { $arFilterExt = array(); } $arSettings = array("BLOG_CODE" => $BlogCode, "NOW" => date("r"), "NOW_ISO" => date("Y-m-d\\TH:i:s") . substr(date("O"), 0, 3) . ":" . substr(date("O"), -2, 2), "SERVER_NAME" => "", "CHARSET" => "", "LANGUAGE" => "", "RSS" => "", "RSS_TYPE" => $type, "CURRENT_USER_ID" => $USER->IsAuthorized() ? $USER->GetID() : 0, "CATEGORIES" => CIdeaManagment::getInstance()->Idea()->GetCategoryList()); //Get Settings if possible if ($arSite = CSite::GetList($s = "sort", $o = "asc", array("LID" => SITE_ID))->Fetch()) { $arSettings["SERVER_NAME"] = $arSite["SERVER_NAME"]; $arSettings["CHARSET"] = $arSite["CHARSET"]; $arSettings["LANGUAGE"] = $arSite["LANGUAGE_ID"]; } //Get Server Name if (strlen($arSettings["SERVER_NAME"]) == 0) { if (defined("SITE_SERVER_NAME") && strlen(SITE_SERVER_NAME) > 0) { $arSettings["SERVER_NAME"] = SITE_SERVER_NAME; } else { $arSettings["SERVER_NAME"] = COption::GetOptionString("main", "server_name", ""); } } //Get Site Charset if (strlen($arSettings["CHARSET"]) == 0) { if (defined("SITE_CHARSET") && strlen(SITE_CHARSET) > 0) { $arSettings["CHARSET"] = SITE_CHARSET; } else { $arSettings["CHARSET"] = "windows-1251"; } } $arSettings["BLOG_URL"] = "http://" . $arSettings["SERVER_NAME"]; if (!empty($arPathTemplates) && strlen($arPathTemplates["INDEX"]) > 0) { $arSettings["BLOG_URL"] .= $arPathTemplates["INDEX"]; } if (!empty($arPathTemplates) && strlen($arPathTemplates["CUSTOM_TITLE"]) > 0) { $arSettings["BLOG_NAME"] = htmlspecialcharsbx($arPathTemplates["CUSTOM_TITLE"]); } else { $arSettings["BLOG_NAME"] = "\"" . htmlspecialcharsbx($arSite["NAME"]) . "\" (" . $arSettings["SERVER_NAME"] . ")"; } //Prepare Head Type part if ($arSettings["RSS_TYPE"] == "rss.92") { $arSettings["RSS"] .= "<" . "?xml version=\"1.0\" encoding=\"" . $arSettings["CHARSET"] . "\"?" . ">\n\n"; $arSettings["RSS"] .= "<rss version=\".92\">\n"; $arSettings["RSS"] .= " <channel>\n"; $arSettings["RSS"] .= "\t<title>" . $arSettings["BLOG_NAME"] . "</title>\n"; $arSettings["RSS"] .= "\t<link>" . $arSettings["BLOG_URL"] . "</link>\n"; $arSettings["RSS"] .= "\t<guid>" . $arSettings["BLOG_URL"] . "</guid>\n"; $arSettings["RSS"] .= "\t<language>" . $arSettings["LANGUAGE"] . "</language>\n"; $arSettings["RSS"] .= "\t<docs>http://backend.userland.com/rss092</docs>\n"; $arSettings["RSS"] .= "\n"; } elseif ($arSettings["RSS_TYPE"] == "rss2.0") { $arSettings["RSS"] .= "<" . "?xml version=\"1.0\" encoding=\"" . $arSettings["CHARSET"] . "\"?" . ">\n\n"; $arSettings["RSS"] .= "<rss version=\"2.0\">\n"; $arSettings["RSS"] .= " <channel>\n"; $arSettings["RSS"] .= "\t<title>" . $arSettings["BLOG_NAME"] . "</title>\n"; $arSettings["RSS"] .= "\t<description>" . $arSettings["BLOG_NAME"] . "</description>\n"; $arSettings["RSS"] .= "\t<link>" . $arSettings["BLOG_URL"] . "</link>\n"; $arSettings["RSS"] .= "\t<language>" . $arSettings["LANGUAGE"] . "</language>\n"; $arSettings["RSS"] .= "\t<docs>http://backend.userland.com/rss2</docs>\n"; $arSettings["RSS"] .= "\t<pubDate>" . $arSettings["NOW"] . "</pubDate>\n"; $arSettings["RSS"] .= "\n"; } elseif ($arSettings["RSS_TYPE"] == "atom.03") { $atomID = "tag:" . htmlspecialcharsbx($arSettings["SERVER_NAME"]) . "," . date("Y-m-d"); $arSettings["RSS"] .= "<" . "?xml version=\"1.0\" encoding=\"" . $arSettings["CHARSET"] . "\"?" . ">\n\n"; $arSettings["RSS"] .= "<feed version=\"0.3\" xmlns=\"http://purl.org/atom/ns#\" xml:lang=\"" . $arSettings["LANGUAGE"] . "\">\n"; $arSettings["RSS"] .= " <title>" . $arSettings["BLOG_NAME"] . "</title>\n"; $arSettings["RSS"] .= " <tagline>" . $arSettings["BLOG_URL"] . "</tagline>\n"; $arSettings["RSS"] .= " <id>" . $atomID . "</id>\n"; $arSettings["RSS"] .= " <link rel=\"alternate\" type=\"text/html\" href=\"" . $arSettings["BLOG_URL"] . "\" />\n"; $arSettings["RSS"] .= " <copyright>Copyright (c) " . $arSettings["SERVER_NAME"] . "</copyright>\n"; $arSettings["RSS"] .= " <modified>" . $arSettings["NOW_ISO"] . "</modified>\n"; $arSettings["RSS"] .= "\n"; } $arParserParams = array("imageWidth" => $arPathTemplates["IMAGE_MAX_WIDTH"], "imageHeight" => $arPathTemplates["IMAGE_MAX_HEIGHT"]); //Text Parser $parser = new blogTextParser(); //SELECT $arSelFields = array("ID", "TITLE", "DETAIL_TEXT", "DATE_PUBLISH", "AUTHOR_ID", "BLOG_USER_ALIAS", "BLOG_ID", "DETAIL_TEXT_TYPE", "BLOG_URL", "BLOG_OWNER_ID", "BLOG_SOCNET_GROUP_ID", "BLOG_GROUP_SITE_ID", "CODE", self::UFCategroryCodeField); //WHERE $arFilter = array("<=DATE_PUBLISH" => ConvertTimeStamp(false, "FULL", false), "PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_PUBLISH, "BLOG_ENABLE_RSS" => "Y", "MICRO" => "N"); if (intval($arSettings["BLOG_CODE"]) === $arSettings["BLOG_CODE"]) { $arFilter["BLOG_ID"] = $arSettings["BLOG_CODE"]; } else { $arFilter["BLOG_URL"] = $arSettings["BLOG_CODE"]; } //Extend standart filter $arFilter = array_merge($arFilter, $arFilterExt); CTimeZone::Disable(); $dbPosts = CBlogPost::GetList(array("DATE_PUBLISH" => "DESC"), $arFilter, false, array("nTopCount" => $numPosts), $arSelFields); CTimeZone::Enable(); while ($arPost = $dbPosts->Fetch()) { //Can read if (CBlogPost::GetBlogUserPostPerms($arPost["ID"], $arSettings["CURRENT_USER_ID"]) < BLOG_PERMS_READ) { continue; } $arAuthorUser = $USER->GetByID($arPost["AUTHOR_ID"])->Fetch(); $author = CBlogUser::GetUserName($arPost["BLOG_USER_ALIAS"], $arAuthorUser["NAME"], $arAuthorUser["LAST_NAME"], $arAuthorUser["LOGIN"], $arAuthorUser["SECOND_NAME"]); $title = str_replace(array("&", "<", ">", "\""), array("&", "<", ">", """), $author . ": " . $arPost["TITLE"]); //Idea Images $arImages = array(); $res = CBlogImage::GetList(array("ID" => "ASC"), array("POST_ID" => $arPost["ID"], "BLOG_ID" => $arPost["BLOG_ID"], "IS_COMMENT" => "N")); while ($arImage = $res->Fetch()) { $arImages[$arImage['ID']] = $arImage['FILE_ID']; } $arDate = ParseDateTime($arPost["DATE_PUBLISH"], CSite::GetDateFormat("FULL", $arPost["BLOG_GROUP_SITE_ID"])); $date = date("r", mktime($arDate["HH"], $arDate["MI"], $arDate["SS"], $arDate["MM"], $arDate["DD"], $arDate["YYYY"])); if (!empty($arPathTemplates)) { $url = htmlspecialcharsbx("http://" . $arSettings["SERVER_NAME"] . CComponentEngine::MakePathFromTemplate($arPathTemplates["BLOG_POST"], array("blog" => $arPost["BLOG_URL"], "post_id" => CBlogPost::GetPostID($arPost["ID"], $arPost["CODE"], $arPathTemplates["ALLOW_POST_CODE"]), "user_id" => $arPost["BLOG_OWNER_ID"], "group_id" => $arPost["BLOG_SOCNET_GROUP_ID"]))); } else { $url = htmlspecialcharsbx("http://" . $arSettings["SERVER_NAME"] . CBlogPost::PreparePath(htmlspecialcharsbx($arPost["BLOG_URL"]), $arPost["ID"], $arPost["BLOG_GROUP_SITE_ID"])); } $category = ""; if (isset($arPost[self::UFCategroryCodeField]) && is_array($arSettings["CATEGORIES"][ToUpper($arPost[self::UFCategroryCodeField])])) { $category = htmlspecialcharsbx($arSettings["CATEGORIES"][ToUpper($arPost[self::UFCategroryCodeField])]["NAME"]); } if (strlen($arPathTemplates["USER"]) > 0) { $authorURL = htmlspecialcharsbx("http://" . $arSettings["SERVER_NAME"] . CComponentEngine::MakePathFromTemplate($arPathTemplates["USER"], array("user_id" => $arPost["AUTHOR_ID"], "group_id" => $arPost["BLOG_SOCNET_GROUP_ID"]))); } else { $authorURL = htmlspecialcharsbx("http://" . $arSettings["SERVER_NAME"] . CBlogUser::PreparePath($arPost["AUTHOR_ID"], $arPost["BLOG_GROUP_SITE_ID"])); } if ($arPost["DETAIL_TEXT_TYPE"] == "html") { $IdeaText = $parser->convert_to_rss($arPost["DETAIL_TEXT"], $arImages, array("HTML" => "Y", "ANCHOR" => "Y", "IMG" => "Y", "SMILES" => "Y", "NL2BR" => "N", "QUOTE" => "Y", "CODE" => "Y"), true, $arParserParams); } else { $IdeaText = $parser->convert_to_rss($arPost["DETAIL_TEXT"], $arImages, false, true, $arParserParams); } $IdeaText .= "<br /><a href=\"" . $url . "\">" . GetMessage("BLG_GB_RSS_DETAIL") . "</a>"; $IdeaText = "<![CDATA[" . $IdeaText . "]]>"; if ($arSettings["RSS_TYPE"] == "rss.92") { $arSettings["RSS"] .= "\t<item>\n"; $arSettings["RSS"] .= "\t <title>" . $title . "</title>\n"; $arSettings["RSS"] .= "\t <description>" . $IdeaText . "</description>\n"; $arSettings["RSS"] .= "\t <link>" . $url . "</link>\n"; $arSettings["RSS"] .= "\t</item>\n"; $arSettings["RSS"] .= "\n"; } elseif ($arSettings["RSS_TYPE"] == "rss2.0") { $arSettings["RSS"] .= "\t<item>\n"; $arSettings["RSS"] .= "\t <title>" . $title . "</title>\n"; $arSettings["RSS"] .= "\t <description>" . $IdeaText . "</description>\n"; $arSettings["RSS"] .= "\t <link>" . $url . "</link>\n"; $arSettings["RSS"] .= "\t <guid>" . $url . "</guid>\n"; $arSettings["RSS"] .= "\t <pubDate>" . $date . "</pubDate>\n"; if (strlen($category) > 0) { $arSettings["RSS"] .= "\t <category>" . $category . "</category>\n"; } $arSettings["RSS"] .= "\t</item>\n"; $arSettings["RSS"] .= "\n"; } elseif ($arSettings["RSS_TYPE"] == "atom.03") { $atomID = "tag:" . htmlspecialcharsbx($arSettings["SERVER_NAME"]) . ":" . $arBlog["URL"] . "/" . $arPost["ID"]; $timeISO = mktime($arDate["HH"], $arDate["MI"], $arDate["SS"], $arDate["MM"], $arDate["DD"], $arDate["YYYY"]); $dateISO = date("Y-m-d\\TH:i:s", $timeISO) . substr(date("O", $timeISO), 0, 3) . ":" . substr(date("O", $timeISO), -2, 2); $titleRel = htmlspecialcharsbx($arPost["TITLE"]); $arSettings["RSS"] .= "<entry>\n"; $arSettings["RSS"] .= " <title type=\"text/html\">" . $title . "</title>\n"; $arSettings["RSS"] .= " <link rel=\"alternate\" type=\"text/html\" href=\"" . $url . "\"/>\n"; $arSettings["RSS"] .= " <issued>" . $dateISO . "</issued>\n"; $arSettings["RSS"] .= " <modified>" . $arSettings["NOW_ISO"] . "</modified>\n"; $arSettings["RSS"] .= " <id>" . $atomID . "</id>\n"; $arSettings["RSS"] .= " <content type=\"text/html\" mode=\"escaped\" xml:lang=\"" . $arSettings["LANGUAGE"] . "\" xml:base=\"" . $arSettings["BLOG_URL"] . "\">\n"; $arSettings["RSS"] .= $IdeaText . "\n"; $arSettings["RSS"] .= " </content>\n"; $arSettings["RSS"] .= " <link rel=\"related\" type=\"text/html\" href=\"" . $url . "\" title=\"" . $titleRel . "\"/>\n"; $arSettings["RSS"] .= " <author>\n"; $arSettings["RSS"] .= "\t<name>" . htmlspecialcharsbx($author) . "</name>\n"; $arSettings["RSS"] .= "\t<url>" . $authorURL . "</url>\n"; $arSettings["RSS"] .= " </author>\n"; $arSettings["RSS"] .= "</entry>\n"; $arSettings["RSS"] .= "\n"; } } if ($arSettings["RSS_TYPE"] == "rss.92") { $arSettings["RSS"] .= " </channel>\n</rss>"; } elseif ($arSettings["RSS_TYPE"] == "rss2.0") { $arSettings["RSS"] .= " </channel>\n</rss>"; } elseif ($arSettings["RSS_TYPE"] == "atom.03") { $arSettings["RSS"] .= "\n\n</feed>"; } return $arSettings["RSS"]; }
function GetDataFromRatingEntity($rating_entity_type_id, $rating_entity_id, $bCheckRights = true) { $rating_entity_type_id = preg_replace("/[^a-z0-9_-]/i", "", $rating_entity_type_id); $rating_entity_id = intval($rating_entity_id); if (strlen($rating_entity_type_id) <= 0) { return false; } if ($rating_entity_id <= 0) { return false; } switch ($rating_entity_type_id) { case "BLOG_POST": $log_type = "log"; $log_event_id = array("blog_post", "blog_post_important"); break; case "BLOG_COMMENT": $log_type = "comment"; $log_event_id = array("blog_comment", "photo_comment"); break; case "FORUM_TOPIC": $log_type = "log"; $log_event_id = array("forum"); if (CModule::IncludeModule("forum")) { $dbForumMessage = CForumMessage::GetList(array("ID" => "ASC"), array("TOPIC_ID" => $rating_entity_id), false, 1); if ($arForumMessage = $dbForumMessage->Fetch()) { $rating_entity_id = $arForumMessage["ID"]; } } break; case "FORUM_POST": $log_type = "comment"; $log_event_id = array("forum", "photo_comment", "files_comment", "commondocs_comment", "tasks_comment", "wiki_comment", "news_comment", "lists_new_element_comment"); break; case "IBLOCK_ELEMENT": $log_type = "log"; $log_event_id = array("photo_photo", "files", "commondocs", "wiki"); break; case "INTRANET_NEW_USER": $log_type = "log"; $log_event_id = array("intranet_new_user"); break; case "INTRANET_NEW_USER_COMMENT": $log_type = "comment"; $log_event_id = array("intranet_new_user_comment"); break; case "BITRIX24_NEW_USER": $log_type = "log"; $log_event_id = array("bitrix24_new_user"); break; case "BITRIX24_NEW_USER_COMMENT": $log_type = "comment"; $log_event_id = array("bitrix24_new_user_comment"); break; case "VOTING": $log_type = "log"; $log_event_id = array("blog_post", "blog_post_important"); if (CModule::IncludeModule("blog")) { $rsBlogPost = CBlogPost::GetList(array("ID" => "DESC"), array("UF_BLOG_POST_VOTE" => $rating_entity_id), false, array("nTopCount" => 1), array("ID")); if ($arBlogPost = $rsBlogPost->Fetch()) { $rating_entity_id = $arBlogPost["ID"]; } } break; case "LISTS_NEW_ELEMENT": $log_type = "log"; $log_event_id = array("lists_new_element"); break; case "LOG_ENTRY": $log_type = "log_entry"; break; case "LOG_COMMENT": $log_type = "log_comment"; break; default: } if ($log_type == "log") { $rsLogSrc = CSocNetLog::GetList(array(), array("EVENT_ID" => $log_event_id, "SOURCE_ID" => $rating_entity_id), false, false, array("ID"), array("CHECK_RIGHTS" => $bCheckRights ? "Y" : "N", "USE_SUBSCRIBE" => "N")); if ($arLogSrc = $rsLogSrc->Fetch()) { $log_id = $arLogSrc["ID"]; } } elseif ($log_type == "log_entry") { $rsLogSrc = CSocNetLog::GetList(array(), array("ID" => $rating_entity_id), false, false, array("ID"), array("CHECK_RIGHTS" => $bCheckRights ? "Y" : "N", "USE_SUBSCRIBE" => "N")); if ($arLogSrc = $rsLogSrc->Fetch()) { $log_id = $arLogSrc["ID"]; } } elseif ($log_type == "comment") { $rsLogCommentSrc = CSocNetLogComments::GetList(array(), array("EVENT_ID" => $log_event_id, "SOURCE_ID" => $rating_entity_id), false, false, array("ID", "LOG_ID"), array("CHECK_RIGHTS" => $bCheckRights ? "Y" : "N", "USE_SUBSCRIBE" => "N")); if ($arLogCommentSrc = $rsLogCommentSrc->Fetch()) { $log_id = $arLogCommentSrc["LOG_ID"]; $log_comment_id = $arLogCommentSrc["ID"]; } } elseif ($log_type == "log_comment") { $rsLogCommentSrc = CSocNetLogComments::GetList(array(), array("ID" => $rating_entity_id), false, false, array("ID", "LOG_ID"), array("CHECK_RIGHTS" => $bCheckRights ? "Y" : "N", "USE_SUBSCRIBE" => "N")); if ($arLogCommentSrc = $rsLogCommentSrc->Fetch()) { $log_id = $arLogCommentSrc["LOG_ID"]; $log_comment_id = $arLogCommentSrc["ID"]; } } if ($log_id > 0) { $arResult = array("LOG_ID" => $log_id); if ($log_comment_id > 0) { $arResult["LOG_COMMENT_ID"] = $log_comment_id; } return $arResult; } else { return false; } }
//@::Idea| If moderator the display hidden posts if ($arResult["IDEA_MODERATOR"]) { $arFilter["PUBLISH_STATUS"] = array(BLOG_PUBLISH_STATUS_PUBLISH, BLOG_PUBLISH_STATUS_READY, BLOG_PUBLISH_STATUS_DRAFT); } else { $arFilter["PUBLISH_STATUS"] = BLOG_PUBLISH_STATUS_PUBLISH; } $arFilter["BLOG_ID"] = $arBlog["ID"]; if (IntVal($arParams["CATEGORY_ID"]) > 0) { $arFilter["CATEGORY_ID_F"] = $arParams["CATEGORY_ID"]; if ($arParams["SET_TITLE"] == "Y") { $arCat = CBlogCategory::GetByID($arFilter["CATEGORY_ID_F"]); $arResult["title"]["category"] = CBlogTools::htmlspecialcharsExArray($arCat); } } $arResult["filter"] = $arFilter; $dbPost = CBlogPost::GetList($SORT, array_merge($arParams["EXT_FILTER"], $arFilter), false, array("bDescPageNumbering" => true, "nPageSize" => $arParams["MESSAGE_COUNT"], "bShowAll" => false), array()); $arResult["NAV_STRING"] = $dbPost->GetPageNavString(GetMessage("MESSAGE_COUNT"), $arParams["NAV_TEMPLATE"]); $arResult["POST"] = array(); $arResult["IDS"] = array(); $p = new blogTextParser(false, $arParams["PATH_TO_SMILE"]); $arParserParams = array("imageWidth" => $arParams["IMAGE_MAX_WIDTH"], "imageHeight" => $arParams["IMAGE_MAX_HEIGHT"]); while ($CurPost = $dbPost->GetNext()) { $CurPost["urlToPost"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_POST"], array("blog" => $arBlog["URL"], "post_id" => CBlogPost::GetPostID($CurPost["ID"], $CurPost["CODE"], $arParams["ALLOW_POST_CODE"]))); $CurPost["urlToAuthor"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $CurPost["AUTHOR_ID"])); $arImages = array(); $res = CBlogImage::GetList(array("ID" => "ASC"), array("POST_ID" => $CurPost['ID'], "BLOG_ID" => $arBlog['ID'])); while ($arImage = $res->Fetch()) { $arImages[$arImage['ID']] = $arImage['FILE_ID']; } if ($CurPost["DETAIL_TEXT_TYPE"] == "html" && COption::GetOptionString("blog", "allow_html", "N") == "Y") { $arAllow = array("HTML" => "Y", "ANCHOR" => "Y", "IMG" => "Y", "SMILES" => "Y", "NL2BR" => "N", "VIDEO" => "Y", "QUOTE" => "Y", "CODE" => "Y");
<?php if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die; } if (strlen($arResult["VARIABLES"]["post_id"]) > 0) { CModule::IncludeModule("blog"); $postID = trim($arResult["VARIABLES"]["post_id"]); if (!is_numeric($postID) || strlen(IntVal($postID)) != strlen($postID)) { $postID = preg_replace("/[^a-zA-Z0-9_-]/is", "", Trim($postID)); $arFilter = array("CODE" => $postID); } else { $arFilter = array("ID" => IntVal($postID)); } if (strlen($arResult["PATH_TO_USER_BLOG_POST"]) <= 0) { $arResult["PATH_TO_USER_BLOG_POST"] = "/company/personal/user/#user_id#/blog/#post_id#/"; } $dbPost = CBlogPost::GetList(array(), $arFilter, false, false, array("ID", "AUTHOR_ID")); if ($arPost = $dbPost->Fetch()) { LocalRedirect(CComponentEngine::MakePathFromTemplate($arResult["PATH_TO_USER_BLOG_POST"], array("post_id" => $arPost["ID"], "user_id" => $arPost["AUTHOR_ID"]))); die; } }
} } } } if (StrLen($errorMessage) > 0) { $arResult["ERROR_MESSAGE"][] = $errorMessage; } if (StrLen($okMessage) > 0) { $arResult["OK_MESSAGE"][] = $okMessage; } $arResult["POST"] = array(); $p = new blogTextParser(false, $arParams["PATH_TO_SMILE"]); $arParserParams = array("imageWidth" => $arParams["IMAGE_MAX_WIDTH"], "imageHeight" => $arParams["IMAGE_MAX_HEIGHT"]); $arPostColl1 = array(); $arPostColl2 = array(); $dbPost = CBlogPost::GetList(array("DATE_PUBLISH" => "DESC"), array("BLOG_ID" => $arBlog["ID"], "PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_READY), false, false, array("ID", "BLOG_ID", "TITLE", "DATE_PUBLISH", "AUTHOR_ID", "DETAIL_TEXT", "BLOG_ACTIVE", "BLOG_URL", "BLOG_GROUP_ID", "BLOG_GROUP_SITE_ID", "AUTHOR_ID", "BLOG_OWNER_ID", "VIEWS", "NUM_COMMENTS", "ATTACH_IMG", "BLOG_SOCNET_GROUP_ID", "DETAIL_TEXT_TYPE", "CATEGORY_ID")); while ($arPost = $dbPost->Fetch()) { $arPost = CBlogTools::htmlspecialcharsExArray($arPost); $arPost["urlToAuthor"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $arPost["AUTHOR_ID"])); if ($arPost["AUTHOR_ID"] == $arBlog["OWNER_ID"]) { $arPost["urlToBlog"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("blog" => $arBlog["URL"], "user_id" => $arPost["AUTHOR_ID"])); } else { if ($arOwnerBlog = CBlog::GetByOwnerID($arPost["AUTHOR_ID"], $arParams["GROUP_ID"])) { $arPost["urlToBlog"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("blog" => $arOwnerBlog["URL"], "user_id" => $arPost["AUTHOR_ID"])); } } $arPost["BlogUser"] = CBlogUser::GetByID($arPost["AUTHOR_ID"], BLOG_BY_USER_ID); $arPost["BlogUser"] = CBlogTools::htmlspecialcharsExArray($arPost["BlogUser"]); $arPost["BlogUser"]["AVATAR_file"] = CFile::GetFileArray($arPost["BlogUser"]["AVATAR"]); if ($arPost["BlogUser"]["AVATAR_file"] !== false) { $arPost["BlogUser"]["Avatar_resized"] = CFile::ResizeImageGet($arPost["BlogUser"]["AVATAR_file"], array("width" => 100, "height" => 100), BX_RESIZE_IMAGE_EXACT, false);
public static function GetSocNetPostPerms($postId = 0, $bNeedFull = false, $userId = false, $postAuthor = 0) { if (!$userId) { $userId = IntVal($GLOBALS["USER"]->GetID()); $bByUserId = false; } else { $userId = IntVal($userId); $bByUserId = true; } $postId = IntVal($postId); if ($postId <= 0) { return false; } $cId = md5(serialize(func_get_args())); if (isset($GLOBALS["BLOG_BP_SOCNETPOSTPERMS"]) && !empty($GLOBALS["BLOG_BP_SOCNETPOSTPERMS"][$cId])) { return $GLOBALS["BLOG_BP_SOCNETPOSTPERMS"][$cId]; } if (!CModule::IncludeModule("socialnetwork")) { return false; } $perms = BLOG_PERMS_DENY; $arAvailPerms = array_keys($GLOBALS["AR_BLOG_PERMS"]); if (!$bByUserId) { $blogModulePermissions = $GLOBALS["APPLICATION"]->GetGroupRight("blog"); if ($blogModulePermissions >= "W" || CSocNetUser::IsCurrentUserModuleAdmin()) { $perms = $arAvailPerms[count($arAvailPerms) - 1]; } } else { if (CSocNetUser::IsUserModuleAdmin($userId)) { $perms = $arAvailPerms[count($arAvailPerms) - 1]; } } if (IntVal($postAuthor) <= 0) { $dbPost = CBlogPost::GetList(array(), array("ID" => $postId), false, false, array("ID", "AUTHOR_ID")); $arPost = $dbPost->Fetch(); } else { $arPost["AUTHOR_ID"] = $postAuthor; } if ($arPost["AUTHOR_ID"] == $userId) { $perms = BLOG_PERMS_FULL; } if ($perms <= BLOG_PERMS_DENY) { $arPerms = CBlogPost::GetSocNetPerms($postId); $arEntities = array(); if (isset($GLOBALS["BLOG_POST"]["UAC_CACHE_" . $userId]) && !empty($GLOBALS["BLOG_POST"]["UAC_CACHE_" . $userId])) { $arEntities = $GLOBALS["BLOG_POST"]["UAC_CACHE_" . $userId]; } else { $dbA = CAccess::GetUserCodes($userId); while ($arA = $dbA->Fetch()) { if ($arA["PROVIDER_ID"] == "intranet") { $arEntities["DR"][$arA["ACCESS_CODE"]] = $arA["ACCESS_CODE"]; } elseif ($arA["PROVIDER_ID"] == "socnetgroup") { $g = substr($arA["ACCESS_CODE"], 2); $gId = IntVal($g); $gR = substr($g, strpos($g, "_") + 1); $arEntities["SG"][$gId][$gR] = $gR; } } $GLOBALS["BLOG_POST"]["UAC_CACHE_" . $userId] = $arEntities; } foreach ($arPerms as $t => $val) { foreach ($val as $id => $p) { if (!is_array($p)) { $p = array(); } if ($userId > 0 && $t == "U" && $userId == $id) { $perms = BLOG_PERMS_READ; if (in_array("US" . $userId, $p)) { // if author $perms = BLOG_PERMS_FULL; } break; } if (in_array("G2", $p)) { $perms = BLOG_PERMS_READ; break; } if ($userId > 0 && in_array("AU", $p)) { $perms = BLOG_PERMS_READ; break; } if ($t == "SG") { if (!empty($arEntities["SG"][$id])) { foreach ($arEntities["SG"][$id] as $gr) { if (in_array("SG" . $id . "_" . $gr, $p)) { $perms = BLOG_PERMS_READ; break; } } } } if ($t == "DR" && !empty($arEntities["DR"])) { if (in_array("DR" . $id, $arEntities["DR"])) { $perms = BLOG_PERMS_READ; break; } } } if ($perms > BLOG_PERMS_DENY) { break; } } if ($bNeedFull && $perms <= BLOG_PERMS_FULL) { $arGroupsId = array(); if (!empty($arPerms["SG"])) { foreach ($arPerms["SG"] as $gid => $val) { if (!empty($arEntities["SG"][$gid])) { $arGroupsId[] = $gid; } } } $operation = array("full_post", "moderate_post", "write_post", "premoderate_post"); if (!empty($arGroupsId)) { foreach ($operation as $v) { if ($perms <= BLOG_PERMS_READ) { $f = CSocNetFeaturesPerms::GetOperationPerm(SONET_ENTITY_GROUP, $arGroupsId, "blog", $v); if (!empty($f)) { foreach ($f as $gid => $val) { if (in_array($val, $arEntities["SG"][$gid])) { switch ($v) { case "full_post": $perms = BLOG_PERMS_FULL; break; case "moderate_post": $perms = BLOG_PERMS_MODERATE; break; case "write_post": $perms = BLOG_PERMS_WRITE; break; case "premoderate_post": $perms = BLOG_PERMS_PREMODERATE; break; } } } } } } } } } $GLOBALS["BLOG_BP_SOCNETPOSTPERMS"][$cId] = $perms; return $perms; }
/*Неэффективный кусок кода*/ $arResult[$el["ID"]]["ARTNUMBER"] = CIBlockElement::GetProperty($el["IBLOCK_ID"], $el["ID"], array(), array("CODE" => "ARTNUMBER"))->GetNext()["VALUE"]; //Получение артикула, для каждого инфоблока свой артикул, поэтому нельзя выбрать для всех сразу /**********************************/ $arResult[$el["ID"]]["IMAGE"] = $sPath; /***Получение количества товара с учетом наличия его на складе***/ $arProd = (int) CCatalogStoreProduct::GetList(array(), array('PRODUCT_ID' => $iProductId, "STORE_ID" => 1), false, false, array('AMOUNT'))->GetNext()['AMOUNT']; $arResult[$el["ID"]]["QUANTITY"] = $arProd <= 0 || $arResult[$el["ID"]]['CATALOG_QUANTITY'] <= 0 ? 0 : $arResult[$el["ID"]]['CATALOG_QUANTITY']; unset($arProd); /****Получение ссылок редактирования и удаления элемента из публичной части****/ $arButtons = CIBlock::GetPanelButtons($el["IBLOCK_ID"], $el["ID"], 0, array("SECTION_BUTTONS" => false, "SESSID" => false)); $arResult[$el["ID"]]["EDIT_LINK"] = $arButtons["edit"]["edit_element"]["ACTION_URL"]; $arResult[$el["ID"]]["DELETE_LINK"] = $arButtons["edit"]["delete_element"]["ACTION_URL"]; unset($arButtons); /******************************************************************************************/ //Получаем ИД поста (коммента) //примечание: CIBlockPropertyTools::CODE_BLOG_COMMENTS_COUNT - возвращает некорректное значение $iCommentId = (int) CIBlockElement::GetProperty($el["IBLOCK_ID"], $el["ID"], array("sort" => "asc"), array("CODE" => CIBlockPropertyTools::CODE_BLOG_POST))->GetNext()["ID"]; //Получем ИД самого коментария для товарной еденицы $dbProp = CIBlockElement::GetList(array(), array("ID" => $el["ID"]), false, array(), array("PROPERTY_" . $iCommentId, "ID")); //Получаем количество коментариев $rsPosts = CBlogPost::GetList(array(), array('ID' => $dbProp->GetNext()["PROPERTY_" . $iCommentId . "_VALUE"]), false, false, array('NUM_COMMENTS')); $arResult[$el["ID"]]["REVIEW_COUNT"] = $rsPosts->GetNext()['NUM_COMMENTS']; unset($iCommentId, $dbProp, $rsPosts); /*******************************************************************************************/ } unset($elementIterator, $el); } unset($strImageStorePath); $this->IncludeComponentTemplate(); }
} $arFields = array("TITLE" => trim($_POST["POST_TITLE"]), "DETAIL_TEXT" => $_POST["POST_MESSAGE"], "DETAIL_TEXT_TYPE" => "text", "DATE_PUBLISH" => $DATE_PUBLISH, "PUBLISH_STATUS" => $PUBLISH_STATUS, "CATEGORY_ID" => $CATEGORY_ID, "PATH" => CComponentEngine::MakePathFromTemplate(htmlspecialcharsBack($arParams["PATH_TO_POST"]), array("post_id" => "#post_id#", "user_id" => $arBlog["OWNER_ID"])), "URL" => $arBlog["URL"]); if ($arParams["ALLOW_POST_CODE"] && strlen(trim($_POST["CODE"])) > 0) { $arFields["CODE"] = trim($_POST["CODE"]); $arPCFilter = array("BLOG_ID" => $arBlog["ID"], "CODE" => $arFields["CODE"]); if (IntVal($arParams["ID"]) > 0) { $arPCFilter["!ID"] = $arParams["ID"]; } $db = CBlogPost::GetList(array(), $arPCFilter, false, array("nTopCount" => 1), array("ID", "CODE", "BLOG_ID")); if ($db->Fetch()) { $uind = 0; do { $uind++; $arFields["CODE"] = $arFields["CODE"] . $uind; $arPCFilter["CODE"] = $arFields["CODE"]; $db = CBlogPost::GetList(array(), $arPCFilter, false, array("nTopCount" => 1), array("ID", "CODE", "BLOG_ID")); } while ($db->Fetch()); } } $arFields["PERMS_POST"] = array(); $arFields["PERMS_COMMENT"] = array(); $arFields["MICRO"] = "N"; if (strlen($arFields["TITLE"]) <= 0) { $arFields["MICRO"] = "Y"; $arFields["TITLE"] = trim(blogTextParser::killAllTags($arFields["DETAIL_TEXT"])); if (strlen($arFields["TITLE"]) <= 0) { $arFields["TITLE"] = GetMessage("BLOG_EMPTY_TITLE_PLACEHOLDER"); } } $arFields["SOCNET_RIGHTS"] = array(); if (!empty($_POST["SPERM"])) {
false, $arSelect ); if ($arElement = $rsElement->GetNext()) { $arResult['ELEMENT'] = $arElement; if ($arResult['BLOG_USE']) { $postID = (int)$arElement['PROPERTY_'.$arResult['BLOG_DATA']['BLOG_POST_ID_PROP'].'_VALUE']; $commentsCount = (int)$arElement['PROPERTY_'.$arResult['BLOG_DATA']['BLOG_COMMENTS_COUNT_PROP']]; if ($postID > 0) { $rsPosts = CBlogPost::GetList( array(), array('ID' => $postID, 'BLOG_ID' => $arResult['BLOG_DATA']['BLOG_ID']), false, false, array('ID', 'BLOG_ID', 'NUM_COMMENTS') ); if ($postInfo = $rsPosts->Fetch()) { $postInfo['NUM_COMMENTS'] = (int)$postInfo['NUM_COMMENTS']; if ($postInfo['NUM_COMMENTS'] > 0 && $postInfo['NUM_COMMENTS'] != $commentsCount) { CIBlockElement::SetPropertyValues($arResult['ELEMENT']['ID'], $arResult['ELEMENT']['IBLOCK_ID'], $postInfo['NUM_COMMENTS'], $arResult['BLOG_DATA']['BLOG_COMMENTS_COUNT_PROP']); $commentsCount = $postInfo['NUM_COMMENTS']; } } else { $postID = 0;
echo htmlspecialchars($arBlog["URL"]); ?> "> <input type=hidden name=BACK_URL value="<?php echo $APPLICATION->GetCurPage() . $add_back; ?> "> <table border=0 cellspacing=1 cellpadding=3 class="blogtableborder" width=300> <?php $res = CBlogCategory::GetList($arOrder = array("NAME" => "ASC"), $arFilter = array("BLOG_ID" => $BLOG_ID)); while ($arCategory = $res->Fetch()) { $arSumCat[] = array("ID" => $arCategory['ID'], "NAME" => $arCategory['NAME']); $toCnt[] = $arCategory['ID']; } $resCnt = CBlogPost::GetList(array(), $arFilter = array("BLOG_ID" => $BLOG_ID, "CATEGORY_ID" => $toCnt, "PUBLISH_STATUS" => "P"), array("CATEGORY_ID"), false, array("ID", "BLOG_ID", "CATEGORY_ID", "PUBLISH_STATUS")); while ($arCategoryCount = $resCnt->Fetch()) { $arCntCat[$arCategoryCount["CATEGORY_ID"]] = $arCategoryCount['CNT']; } foreach ($arSumCat as $SumCat) { $count = intval($arCntCat[$SumCat["ID"]]); $name = htmlspecialchars($SumCat['NAME']); $id = $SumCat['ID']; print "\r\n\t<input type=hidden id=count_{$id} value={$count}>\r\n\t<input type=hidden id=name_{$id} value=\"{$name}\">\r\n\t<tr>\r\n\t\t<td class=\"blogtablebody\" width=100% nowrap><font class=blogtext>{$name} ({$count})</font></td>\r\n\t\t<td class=\"blogtablebody\"><a href='javascript:category_edit({$id})' class=blogButton title='" . GetMessage("BLOG_NAME_CHANGE") . "'><img src='/bitrix/templates/.default/blog/images/edit_button.gif' width=18 height=18 border=0></a></td>\r\n\t\t<td class=\"blogtablebody\"><a href='javascript:category_del({$id})' class=blogButton title='" . GetMessage("BLOG_GROUP_DELETE") . "'><img src='/bitrix/templates/.default/blog/images/delete_button.gif' width=18 height=18 border=0></a></td>\r\n\t</tr>"; } ?> <tr> <td align=center valign=center colspan=3 class="blogtablebody"><a href='javascript:category_edit(0)' class=blogtext title='<?php echo GetMessage("BLOG_GROUP_ADD"); ?> '><img align='absmiddle' src='/bitrix/templates/.default/blog/images/add_button.gif' border=0 width='18' height='18' ></a> <a href='javascript:category_edit(0)' class=blogtext title='<?php
$arFieldsIM = array("TYPE" => "POST", "TITLE" => $arPost["TITLE"], "URL" => CComponentEngine::MakePathFromTemplate(htmlspecialcharsBack($arParams["PATH_TO_POST"]), array("post_id" => $arPost["ID"], "user_id" => $arParams["USER_ID"])), "ID" => $arPost["ID"], "FROM_USER_ID" => $arParams["USER_ID"], "TO_USER_ID" => array(), "TO_SOCNET_RIGHTS" => $socnetRights, "TO_SOCNET_RIGHTS_OLD" => array()); CBlogPost::NotifyIm($arFieldsIM); LocalRedirect($APPLICATION->GetCurPageParam("pub_id=" . $pub_id . "&success=Y", array("del_id", "pub_id", "sessid", "success"))); } else { $arResult["ERROR_MESSAGE"][] = GetMessage("BLOG_BLOG_BLOG_MES_PUB_ERROR"); } } } else { $arResult["ERROR_MESSAGE"][] = GetMessage("BLOG_BLOG_BLOG_MES_PUB_NO_RIGHTS"); } } else { $arResult["ERROR_MESSAGE"][] = GetMessage("BLOG_BLOG_SESSID_WRONG"); } } } $dbPost = CBlogPost::GetList(array("DATE_PUBLISH" => "DESC"), array("PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_DRAFT, "BLOG_USE_SOCNET" => "Y", "GROUP_ID" => $arParams["GROUP_ID"], "GROUP_SITE_ID" => SITE_ID, "AUTHOR_ID" => $arParams["USER_ID"]), false, array("nPageSize" => $arParams["MESSAGE_COUNT"], "bShowAll" => false), array("ID", "TITLE", "BLOG_ID", "AUTHOR_ID", "DETAIL_TEXT", "DETAIL_TEXT_TYPE", "DATE_PUBLISH", "PUBLISH_STATUS", "ENABLE_COMMENTS", "VIEWS", "NUM_COMMENTS", "CATEGORY_ID", "CODE", "BLOG_OWNER_ID", "BLOG_GROUP_ID", "BLOG_GROUP_SITE_ID", "MICRO")); $arResult["NAV_STRING"] = $dbPost->GetPageNavString(GetMessage("MESSAGE_COUNT"), $arParams["NAV_TEMPLATE"]); $arResult["POST"] = array(); $arResult["IDS"] = array(); while ($arPost = $dbPost->GetNext()) { $arPost["perms"] = BLOG_PERMS_FULL; $arPost["urlToPub"] = htmlspecialcharsex($APPLICATION->GetCurPageParam("pub_id=" . $arPost["ID"] . "&" . bitrix_sessid_get(), array("del_id", "sessid", "success", "pub_id"))); $arPost["urlToDelete"] = htmlspecialcharsex($APPLICATION->GetCurPageParam("del_id=" . $arPost["ID"] . "&" . bitrix_sessid_get(), array("del_id", "sessid", "success", "pub_id"))); $arPost["ADIT_MENU"][6] = array("text_php" => GetMessage("BLOG_DR_PUB"), "href" => $arPost["urlToPub"]); $arPost["ADIT_MENU"][7] = array("text_php" => GetMessage("BLOG_DR_DELETE"), "onclick" => "function() { if(confirm('" . GetMessage("BLOG_DR_DELETE_CONFIRM") . "')) window.location='" . $arPost["urlToDelete"] . "'; this.popupWindow.close();}"); $arResult["POST"][] = $arPost; } } else { $arResult["ERROR_MESSAGE"][] = GetMessage("BLOG_SONET_MODULE_NOT_AVAIBLE"); } } else {
public function SetStatus($StatusId) { if (!$this->IsAvailable()) { return false; } $arStatusList = $this->GetStatusList(); $arStatusListXML = $this->GetStatusList(true); $arPost = CBlogPost::GetList(array(), array("ID" => $this->IdeaId), false, false, array("ID", CIdeaManagment::UFStatusField))->Fetch(); $bUpdate = false; //Get Status ID from XML List if (array_key_exists($StatusId, $arStatusListXML)) { $StatusId = $arStatusListXML[$StatusId]["ID"]; } //Status Exists and not current if (array_key_exists($StatusId, $arStatusList)) { $bUpdate = $arPost[CIdeaManagment::UFStatusField] != $StatusId; } if ($arPost && $bUpdate) { return CBlogPost::Update($this->IdeaId, array(CIdeaManagment::UFStatusField => $StatusId)); } return false; }
CHTTP::SetStatus("404 Not Found"); return; } $arPost = array(); $cacheTtl = 2592000; $cacheId = 'blog_post_socnet_general_' . $arParams["ID"] . '_' . LANGUAGE_ID; if ($arResult["TZ_OFFSET"] != 0) { $cacheId .= "_" . $arResult["TZ_OFFSET"]; } $cacheDir = '/blog/socnet_post/gen/' . intval($arParams["ID"] / 100) . '/' . $arParams["ID"]; $obCache = new CPHPCache(); if ($obCache->InitCache($cacheTtl, $cacheId, $cacheDir)) { $arPost = $obCache->GetVars(); } else { $obCache->StartDataCache(); $dbPost = CBlogPost::GetList(array(), array("ID" => $arParams["ID"]), false, false, array("ID", "BLOG_ID", "PUBLISH_STATUS", "TITLE", "AUTHOR_ID", "ENABLE_COMMENTS", "NUM_COMMENTS", "VIEWS", "CODE", "MICRO", "DETAIL_TEXT", "DATE_PUBLISH", "CATEGORY_ID", "HAS_SOCNET_ALL", "HAS_TAGS", "HAS_IMAGES", "HAS_PROPS", "HAS_COMMENT_IMAGES")); $arPost = $dbPost->Fetch(); $obCache->EndDataCache($arPost); } if (!empty($arPost) && ($arPost["PUBLISH_STATUS"] != BLOG_PUBLISH_STATUS_PUBLISH && !in_array($arParams["TYPE"], array("DRAFT", "MODERATION")))) { unset($arPost); } $a = new CAccess(); $a->UpdateCodes(); if (!empty($arBlog) && $arBlog["ACTIVE"] == "Y" || $arResult["bFromList"]) { if (!empty($arPost)) { if (($arParams["GET_FOLLOW"] == "Y" && (!array_key_exists("FOLLOW", $arParams) || strlen($arParams["FOLLOW"]) <= 0) || intval($arParams["LOG_ID"]) <= 0) && CModule::IncludeModule("socialnetwork")) { $rsLogSrc = CSocNetLog::GetList(array(), array("EVENT_ID" => array("blog_post", "blog_post_micro", "blog_post_important"), "SOURCE_ID" => $arParams["ID"], "SITE_ID" => CModule::IncludeModule('extranet') && CExtranet::IsExtranetSite() ? SITE_ID : array(SITE_ID, false)), false, false, $arParams["GET_FOLLOW"] == "Y" ? array("ID", "FOLLOW", "FAVORITES_USER_ID") : array("ID", "FAVORITES_USER_ID"), $arParams["GET_FOLLOW"] == "Y" ? array("USE_FOLLOW" => "Y") : array()); if ($arLogSrc = $rsLogSrc->Fetch()) { $arParams["LOG_ID"] = $arLogSrc["ID"]; $arParams["FAVORITES_USER_ID"] = $arLogSrc["FAVORITES_USER_ID"];
$cache->Output(); } else { if ($arParams["CACHE_TIME"] > 0) { $cache->StartDataCache($arParams["CACHE_TIME"], $cache_id, $cache_path); } $arFilter = array("<=DATE_PUBLISH" => ConvertTimeStamp(time() + $tzOffset, "FULL", false), ">=DATE_PUBLISH" => ConvertTimeStamp(AddToTimeStamp(array("DD" => "-" . $arParams["PERIOD_DAYS"])) + $tzOffset, "FULL", false), "PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_PUBLISH, "BLOG_ACTIVE" => "Y", "BLOG_GROUP_SITE_ID" => SITE_ID, ">PERMS" => BLOG_PERMS_DENY); if (!empty($arParams["GROUP_ID"])) { $arFilter["BLOG_GROUP_ID"] = $arParams["GROUP_ID"]; } $arSelectedFields = array("ID", "BLOG_ID", "PERMS", "NUM_COMMENTS", "VIEWS"); if (CModule::IncludeModule("socialnetwork") && $arParams["USE_SOCNET"] == "Y") { unset($arFilter[">PERMS"]); $arSelectedFields[] = "SOCNET_BLOG_READ"; $arFilter["BLOG_USE_SOCNET"] = "Y"; } $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"]);
$arBlog = $arOwnBlog; } if (!empty($arBlog)) { if (IntVal($user_id) > 0) { $perm = CBlog::GetBlogUserPostPerms($arBlog["ID"], $user_id); if ($perm >= BLOG_PERMS_WRITE) { $arResult["urlToDraft"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_DRAFT"], array("blog" => $arBlog["URL"])); $arResult["urlToNewPost"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_POST_EDIT"], array("blog" => $arBlog["URL"], "post_id" => "new")); if ($perm >= BLOG_PERMS_MODERATE) { $arResult["urlToModeration"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_MODERATION"], array("blog" => $arBlog["URL"])); $dbPost = CBlogPost::GetList(array(), array("BLOG_ID" => $arBlog["ID"], "PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_READY), array("COUNT" => "ID"), false, array("ID", "BLOG_ID")); if ($arPost = $dbPost->Fetch()) { $arResult["CntToModerate"] = $arPost["ID"]; } } $dbPost = CBlogPost::GetList(array(), array("BLOG_ID" => $arBlog["ID"], "PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_DRAFT, "AUTHOR_ID" => $user_id), array("COUNT" => "ID"), false, array("ID", "BLOG_ID")); if ($arPost = $dbPost->Fetch()) { $arResult["CntToDraft"] = $arPost["ID"]; } $arResult["SecondLine"] = "Y"; } elseif ($perm >= BLOG_PERMS_PREMODERATE) { $arResult["urlToNewPost"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_POST_EDIT"], array("blog" => $arBlog["URL"], "post_id" => "new")); $arResult["SecondLine"] = "Y"; } if (CBlog::CanUserManageBlog($arBlog["ID"], $user_id)) { $arResult["urlToUserSettings"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER_SETTINGS"], array("blog" => $arBlog["URL"])); $arResult["urlToGroupEdit"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_GROUP_EDIT"], array("blog" => $arBlog["URL"])); $arResult["urlToCategoryEdit"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_CATEGORY_EDIT"], array("blog" => $arBlog["URL"])); $arResult["urlToBlogEdit"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG_EDIT"], array("blog" => $arBlog["URL"])); $arResult["ThirdLine"] = "Y"; }
function Delete($ID) { global $DB; $ID = IntVal($ID); $bSuccess = True; $arUser = CBlogUser::GetByID($ID, BLOG_BY_USER_ID); if ($arUser) { $dbResult = CBlog::GetList(array(), array("OWNER_ID" => $arUser["USER_ID"]), false, false, array("ID")); if ($dbResult->Fetch()) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GU_ERROR_OWNER"), "ERROR_OWNER"); $bSuccess = False; } if ($bSuccess) { $dbResult = CBlogPost::GetList(array(), array("AUTHOR_ID" => $arUser["USER_ID"]), false, false, array("ID")); if ($arResult = $dbResult->Fetch()) { if (!CBlogPost::Delete($arResult["ID"])) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GU_ERROR_AUTHOR"), "ERROR_AUTHOR"); $bSuccess = False; } } } if ($bSuccess) { $dbGloUser = CUser::GetByID($arUser["USER_ID"]); $arGloUser = $dbGloUser->Fetch(); $DB->Query("UPDATE b_blog_comment SET " . "\tAUTHOR_NAME = '" . $DB->ForSql(CBlogUser::GetUserName($arUser["ALIAS"], $arGloUser["NAME"], $arGloUser["LAST_NAME"], $arGloUser["LOGIN"], $arGloUser["SECOND_NAME"])) . "', " . "\tAUTHOR_ID = null " . "WHERE AUTHOR_ID = " . $arUser["USER_ID"] . "", true); $DB->Query("DELETE FROM b_blog_user2user_group WHERE USER_ID = " . $arUser["USER_ID"] . "", true); } if ($bSuccess) { $strSql = "SELECT F.ID " . "FROM b_blog_user FU, b_file F " . "WHERE FU.ID = " . $arUser["ID"] . " " . "\tAND FU.AVATAR = F.ID "; $z = $DB->Query($strSql, false, "FILE: " . __FILE__ . " LINE:" . __LINE__); while ($zr = $z->Fetch()) { CFile::Delete($zr["ID"]); } if (CModule::IncludeModule("search")) { CSearch::Index("blog", "U" . $arUser["ID"], array("TITLE" => "", "BODY" => "")); } unset($GLOBALS["BLOG_USER"]["BLOG_USER_CACHE_" . $arUser["ID"]]); unset($GLOBALS["BLOG_USER"]["BLOG_USER1_CACHE_" . $arUser["USER_ID"]]); unset($GLOBALS["BLOG_USER"]["BLOG_USER2GROUP_CACHE_" . $arUser["ID"]]); unset($GLOBALS["BLOG_USER"]["BLOG_USER2GROUP1_CACHE_" . $arUser["USER_ID"]]); return $DB->Query("DELETE FROM b_blog_user WHERE ID = " . $arUser["ID"] . "", true); } if (!$bSuccess) { return false; } } return True; }
BXClearCache(true, "/blog/socnet_post/gen/" . intval($arParams["ID"] / 100) . "/" . $arParams["ID"] . "/"); BXClearCache(True, "/" . SITE_ID . "/blog/popular_posts/"); $arFields["AUTHOR_ID"] = $arOldPost["AUTHOR_ID"]; if ($arFields["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_DRAFT && $arOldPost["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_PUBLISH) { CBlogPost::DeleteLog($newID); } elseif ($arFields["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_PUBLISH && $arOldPost["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_PUBLISH) { $arParamsUpdateLog = array("allowVideo" => $arResult["allowVideo"], "PATH_TO_SMILE" => $arParams["PATH_TO_SMILE"]); CBlogPost::UpdateLog($newID, $arFields, $arBlog, $arParamsUpdateLog); } } } else { $arFields["=DATE_CREATE"] = $DB->GetNowFunction(); $arFields["AUTHOR_ID"] = $arResult["UserID"]; $arFields["BLOG_ID"] = $arBlog["ID"]; $ar = is_array($arFields["UF_BLOG_POST_FILE"]) ? array_values($arFields["UF_BLOG_POST_FILE"]) : array(); $dbDuplPost = CBlogPost::GetList(array("ID" => "DESC"), array("BLOG_ID" => $arBlog["ID"]), false, array("nTopCount" => 1), array("ID", "BLOG_ID", "AUTHOR_ID", "DETAIL_TEXT", "TITLE")); if ($arDuplPost = $dbDuplPost->Fetch()) { if (empty($ar[0]) && $arDuplPost["BLOG_ID"] == $arFields["BLOG_ID"] && IntVal($arDuplPost["AUTHOR_ID"]) == IntVal($arFields["AUTHOR_ID"]) && md5($arDuplPost["DETAIL_TEXT"]) == md5($arFields["DETAIL_TEXT"]) && md5($arDuplPost["TITLE"]) == md5($arFields["TITLE"])) { $bError = true; $arResult["ERROR_MESSAGE"] = GetMessage("B_B_PC_DUPLICATE_POST"); } } if (!$bError) { $newID = CBlogPost::Add($arFields); $socnetRightsOld = array("U" => array()); $bAdd = true; $bNeedMail = false; } } if (IntVal($newID) > 0) { if ($bNeedAddGrat && CModule::IncludeModule("iblock")) {
function GetID($code, $blogID) { $postID = false; $blogID = IntVal($blogID); $code = preg_replace("/[^a-zA-Z0-9_-]/is", "", Trim($code)); if (strlen($code) <= 0 || IntVal($blogID) <= 0) { return false; } if (isset($GLOBALS["BLOG_POST"]["BLOG_POST_ID_CACHE_" . $blogID . "_" . $code]) && IntVal($GLOBALS["BLOG_POST"]["BLOG_POST_ID_CACHE_" . $blogID . "_" . $code]) > 0) { return $GLOBALS["BLOG_POST"]["BLOG_POST_ID_CACHE_" . $blogID . "_" . $code]; } else { $arFilter = array("CODE" => $code); if (IntVal($blogID) > 0) { $arFilter["BLOG_ID"] = $blogID; } $dbPost = CBlogPost::GetList(array(), $arFilter, false, array("nTopCount" => 1), array("ID")); if ($arPost = $dbPost->Fetch()) { $GLOBALS["BLOG_POST"]["BLOG_POST_ID_CACHE_" . $blogID . "_" . $code] = $arPost["ID"]; $postID = $arPost["ID"]; } } return $postID; }
public static function getBlogPost($arFields, $n, $server) { $result = array(); if (!CModule::IncludeModule("blog")) { return $result; } $tzOffset = CTimeZone::GetOffset(); $arOrder = array("LOG_UPDATE" => "DESC"); $arAccessCodes = $GLOBALS["USER"]->GetAccessCodes(); foreach ($arAccessCodes as $i => $code) { if (!preg_match("/^(U|D|DR)/", $code)) { unset($arAccessCodes[$i]); } } $arEventId = array("blog_post", "blog_post_important"); $arEventIdFullset = array(); foreach ($arEventId as $eventId) { $arEventIdFullset = array_merge($arEventIdFullset, CSocNetLogTools::FindFullSetByEventID($eventId)); } $arFilter = array("LOG_RIGHTS" => $arAccessCodes, "EVENT_ID" => array_unique($arEventIdFullset), "SITE_ID" => array('s1', false), "<=LOG_DATE" => "NOW"); $arListParams = array("CHECK_RIGHTS" => "Y", "USE_FOLLOW" => "N", "USE_SUBSCRIBE" => "N"); $dbLog = CSocNetLog::GetList($arOrder, $arFilter, false, self::getNavData($n), array("ID", "SOURCE_ID"), $arListParams); while ($arLog = $dbLog->Fetch()) { $arPostId[] = $arLog["SOURCE_ID"]; } $arPostIdToGet = array(); $cacheTtl = 2592000; foreach ($arPostId as $key => $postId) { $cacheId = 'blog_post_socnet_rest_' . $postId . '_ru' . ($tzOffset != 0 ? '_' . $tzOffset : ''); $cacheDir = '/blog/socnet_post/gen/' . intval($postId / 100) . '/' . $postId; $obCache = new CPHPCache(); if ($obCache->InitCache($cacheTtl, $cacheId, $cacheDir)) { $result[$key] = $obCache->GetVars(); } else { $arPostIdToGet[$key] = $postId; } $obCache->EndDataCache(); } if (!empty($arPostIdToGet)) { foreach ($arPostIdToGet as $key => $postId) { $cacheId = 'blog_post_socnet_rest_' . $postId . '_ru' . ($tzOffset != 0 ? '_' . $tzOffset : ''); $cacheDir = '/blog/socnet_post/gen/' . intval($postId / 100) . '/' . $postId; $obCache = new CPHPCache(); $obCache->InitCache($cacheTtl, $cacheId, $cacheDir); $obCache->StartDataCache(); $dbPost = CBlogPost::GetList(array(), array("ID" => $postId), false, false, array("ID", "BLOG_ID", "PUBLISH_STATUS", "TITLE", "AUTHOR_ID", "ENABLE_COMMENTS", "NUM_COMMENTS", "VIEWS", "CODE", "MICRO", "DETAIL_TEXT", "DATE_PUBLISH", "CATEGORY_ID", "HAS_SOCNET_ALL", "HAS_TAGS", "HAS_IMAGES", "HAS_PROPS", "HAS_COMMENT_IMAGES")); if ($arPost = $dbPost->Fetch()) { if ($arPost["PUBLISH_STATUS"] != BLOG_PUBLISH_STATUS_PUBLISH) { unset($arPost); } else { if ($arPost["HAS_PROPS"] != "N") { $arPostFields = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFields("BLOG_POST", $arPost["ID"], LANGUAGE_ID); $arPost = array_merge($arPost, $arPostFields); } $result[$key] = $arPost; } } $obCache->EndDataCache($arPost); } } ksort($result); return self::setNavData($result, $dbLog); }
} if (!CModule::IncludeModule("blog")) { ShowError(GetMessage("BLOG_MODULE_NOT_INSTALL")); return; } if (!CModule::IncludeModule('idea')) { ShowError(GetMessage("IDEA_MODULE_NOT_INSTALL")); return; } if (strlen($arParams["BLOG_URL"]) == 0) { return; } $arResult = array(); $obCache = new CPHPCache(); $life_time = 60 * 60 * 24; //1 day $cache_id = 'idea_statistic_list_' . $arParams["BLOG_URL"]; $cache_path = '/' . SITE_ID . '/idea/statistic_list/'; if ($obCache->StartDataCache($life_time, $cache_id, $cache_path)) { $arResult = CIdeaManagment::getInstance()->Idea()->GetStatusList(); if ($arCurBlog = CBlog::GetByUrl($arParams["BLOG_URL"])) { $dbPosts = CBlogPost::GetList(array(), array("BLOG_ID" => $arCurBlog["ID"], "PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_PUBLISH), false, false, array("ID", "UF_STATUS")); while ($arPost = $dbPosts->Fetch()) { $arResult[intval($arPost["UF_STATUS"])]["CNT"]++; } } $obCache->EndDataCache($arResult); } else { $arResult = $obCache->GetVars(); } $this->IncludeComponentTemplate();
$to = $t; } $arFilter[">=DATE_PUBLISH"] = ConvertTimeStamp($from, "FULL"); $arFilter["<DATE_PUBLISH"] = ConvertTimeStamp($to, "FULL"); } else { $arFilter["<=DATE_PUBLISH"] = ConvertTimeStamp(time() + $tzOffset, "FULL"); } if (IntVal($arParams["CATEGORY_ID"]) > 0) { $arFilter["CATEGORY_ID_F"] = $arParams["CATEGORY_ID"]; if ($arParams["SET_TITLE"] == "Y") { $arCat = CBlogCategory::GetByID($arFilter["CATEGORY_ID_F"]); $arResult["title"]["category"] = CBlogTools::htmlspecialcharsExArray($arCat); } } $arResult["filter"] = $arFilter; $dbPost = CBlogPost::GetList($SORT, $arFilter, array("DATE_PUBLISH", "ID", "MAX" => "PERMS"), array("bDescPageNumbering" => true, "nPageSize" => $arParams["MESSAGE_COUNT"], "bShowAll" => false)); $arResult["NAV_STRING"] = $dbPost->GetPageNavString(GetMessage("MESSAGE_COUNT"), $arParams["NAV_TEMPLATE"], false, $component); $arResult["POST"] = array(); $arResult["IDS"] = array(); $p = new blogTextParser(false, $arParams["PATH_TO_SMILE"]); $arParserParams = array("imageWidth" => $arParams["IMAGE_MAX_WIDTH"], "imageHeight" => $arParams["IMAGE_MAX_HEIGHT"]); while ($arPost = $dbPost->GetNext()) { $CurPost = CBlogPost::GetByID($arPost["ID"]); $CurPost = CBlogTools::htmlspecialcharsExArray($CurPost); if ($CurPost["AUTHOR_ID"] == $arBlog["OWNER_ID"]) { $CurPost["urlToBlog"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("blog" => $arBlog["URL"])); } else { if ($arOwnerBlog = CBlog::GetByOwnerID($CurPost["AUTHOR_ID"], $arParams["GROUP_ID"])) { $CurPost["urlToBlog"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("blog" => $arOwnerBlog["URL"])); } else { $CurPost["urlToBlog"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("blog" => $arBlog["URL"]));
$perms = BLOG_PERMS_WRITE; } elseif (CSocNetFeaturesPerms::CanPerformOperation($user_id, SONET_ENTITY_GROUP, $arParams["SOCNET_GROUP_ID"], "blog", "view_post")) { $perms = BLOG_PERMS_READ; } } } } if ($perms != BLOG_PERMS_DENY) { $SORT = array($arParams["SORT_BY1"] => $arParams["SORT_ORDER1"], $arParams["SORT_BY2"] => $arParams["SORT_ORDER2"]); if ($arParams["MESSAGE_COUNT"] > 0) { $COUNT = array("nTopCount" => $arParams["MESSAGE_COUNT"]); } else { $COUNT = false; } $ids = array(); $dbPosts = CBlogPost::GetList($SORT, $arFilter, false, $COUNT, $arSelectedFields); $p = new blogTextParser(false, $arParams["PATH_TO_SMILE"]); $itemCnt = 0; while ($arPost = $dbPosts->GetNext()) { if (IntVal($arPost["ATTACH_IMG"]) <= 0) { $dbImage = CBlogImage::GetList(array("ID" => "ASC"), array("BLOG_ID" => $arPost["BLOG_ID"], "POST_ID" => $arPost["ID"], "IS_COMMENT" => "N")); if ($arImage = $dbImage->Fetch()) { if ($file = CFile::ResizeImageGet($arImage["FILE_ID"], array("width" => $arParams["PREVIEW_WIDTH"], "height" => $arParams["PREVIEW_HEIGHT"]))) { $arPost["IMG"] = CFile::ShowImage($file["src"], false, false, 'align="left" hspace="2" vspace="2"'); } } } else { $arPost["IMG"] = CFile::ShowImage($arPost["ATTACH_IMG"], false, false, 'align="left" hspace="2" vspace="2"'); } $arTmp = $arPost; if ($arTmp["AUTHOR_ID"] == $arTmp["BLOG_OWNER_ID"]) {
private function InstallBlogComment() { global $USER; $arBlogComments = $this->arResult["INSTALLATION"]["BLOG_COMMENT_ID"] = array(); if ($this->arResult["INSTALLATION"]["BLOG_POST_ID"]["NY"]) { $arBlogComments["COMMON"] = array("TITLE" => '', "POST_TEXT" => GetMessage("IDEA_BLOG_COMMENT_TEXT_1"), "BLOG_ID" => $this->arResult["INSTALLATION"]["BLOG_ID"], "POST_ID" => $this->arResult["INSTALLATION"]["BLOG_POST_ID"]["NY"], "PARENT_ID" => 0, "AUTHOR_ID" => $USER->GetID(), "DATE_CREATE" => ConvertTimeStamp(false, "FULL"), "PATH" => $this->PublicDir . "#post_id#/?commentId=#comment_id###comment_id#"); } if ($this->arResult["INSTALLATION"]["BLOG_POST_ID"]["NY"]) { $arBlogComments["OFFICIAL"] = array("TITLE" => '', "POST_TEXT" => GetMessage("IDEA_BLOG_COMMENT_TEXT_2"), "BLOG_ID" => $this->arResult["INSTALLATION"]["BLOG_ID"], "POST_ID" => $this->arResult["INSTALLATION"]["BLOG_POST_ID"]["NY"], "PARENT_ID" => 0, "AUTHOR_ID" => $USER->GetID(), "DATE_CREATE" => ConvertTimeStamp(false, "FULL"), "PATH" => $this->PublicDir . "#post_id#/"); } foreach ($arBlogComments as $key => $BlogComment) { $this->arResult["INSTALLATION"]["BLOG_COMMENT_ID"][$key] = CBlogComment::Add($BlogComment); //Make offical answer if ($key == "OFFICIAL" && $this->arResult["INSTALLATION"]["BLOG_COMMENT_ID"][$key] > 0) { if ($arBlogPost = CBlogPost::GetList(array(), array("BLOG_ID" => $this->arResult["INSTALLATION"]["BLOG_ID"], "ID" => $this->arResult["INSTALLATION"]["BLOG_POST_ID"]["NY"]), false, false, array("ID", CIdeaManagment::UFAnswerIdField, CIdeaManagment::UFStatusField))->Fetch()) { //if Empty value make an array if (!is_array($arBlogPost[CIdeaManagment::UFAnswerIdField])) { $arBlogPost[CIdeaManagment::UFAnswerIdField] = array(); } $arBlogPost[CIdeaManagment::UFAnswerIdField][] = $this->arResult["INSTALLATION"]["BLOG_COMMENT_ID"][$key]; unset($arBlogPost["ID"]); CBlogPost::Update($this->arResult["INSTALLATION"]["BLOG_POST_ID"]["NY"], $arBlogPost); } } } }
function DeletePost($params) { global $USER; $postId = IntVal(CBlogMetaWeblog::DecodeParams($params[1]["#"]["value"][0]["#"])); $user = CBlogMetaWeblog::DecodeParams($params[2]["#"]["value"][0]["#"]); $password = CBlogMetaWeblog::DecodeParams($params[3]["#"]["value"][0]["#"]); if (CBlogMetaWeblog::Authorize($user, $password)) { $result = ''; $userId = $USER->GetID(); if (IntVal($postId) > 0) { $dbPost = CBlogPost::GetList(array(), array("AUTHOR_ID" => $userId, "ID" => $postId), false, array("nTopCount" => 1), array("ID", "BLOG_ID", "AUTHOR_ID")); if ($arPost = $dbPost->Fetch()) { CBlogPost::Delete($postId); $arBlog = CBlog::GetByID($arPost["BLOG_ID"]); if (intval($arBlog["SOCNET_GROUP_ID"]) > 0 && CModule::IncludeModule("socialnetwork") && method_exists("CSocNetGroup", "GetSite")) { $arSites = array(); $rsGroupSite = CSocNetGroup::GetSite($arBlog["SOCNET_GROUP_ID"]); while ($arGroupSite = $rsGroupSite->Fetch()) { $arSites[] = $arGroupSite["LID"]; } } else { $arSites = array(SITE_ID); } foreach ($arSites as $site_id_tmp) { BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/first_page/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/pages/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/calendar/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/post/" . $postId . "/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/last_messages/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/commented_posts/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/popular_posts/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/last_comments/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/groups/" . $arResult["BLOG"]["GROUP_ID"] . "/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/trackback/" . $postId . "/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/rss_out/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/rss_all/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/rss_sonet/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/rss_all/"); } } } return '<params> <param> <value> <boolean>1</boolean> </value> </param> </params>'; } else { return '<fault> <value> <struct> <member> <name>faultCode</name> <value><int>3</int></value> </member> <member> <name>faultString</name> <value><string>' . $arAuthResult["MESSAGE"] . '</string></value> </member> </struct> </value> </fault>'; } }
********************************************************************/ if ($_REQUEST["return"] == "users") { include str_replace(array("\\", "//"), "/", __DIR__ . "/") . "users.php"; } elseif ($PAGEN == null && $arParams["CACHE_TIME"] > 0) { if ($cache->InitCache($arParams["CACHE_TIME"], $cache_id, $cache_path)) { $arRes = $cache->GetVars(); $arResult["POST"] = $arRes["POST"]; $arResult["IDS"] = $arRes["IDS"]; $arResult["userCache"] = $arRes["userCache"]; $arResult["NAV_RESULT"] = $arRes["NAV_RESULT"]; $arResult["NAV_STRING"] = $arRes["NAV_STRING"]; $arResult["USER"] = $arRes["USER"]; } } if (empty($arResult["NAV_RESULT"]) && CModule::IncludeModule("blog")) { $dbPost = CBlogPost::GetList($arParams["SORT"], $arParams["FILTER"], false, $arParams["PAGE_SETTINGS"], array("ID", "TITLE", "BLOG_ID", "AUTHOR_ID", "DETAIL_TEXT", "DETAIL_TEXT_TYPE", "DATE_PUBLISH", "PUBLISH_STATUS", "ENABLE_COMMENTS", "VIEWS", "NUM_COMMENTS", "CATEGORY_ID", "CODE", "BLOG_OWNER_ID", "BLOG_GROUP_ID", "BLOG_GROUP_SITE_ID", "MICRO")); $arResult["NAV_RESULT"] = $dbPost; $arResult["NAV_STRING"] = $dbPost->GetPageNavString(GetMessage("MESSAGE_COUNT"), $arParams["NAV_TEMPLATE"]); $p = new blogTextParser(false, $arParams["PATH_TO_SMILE"]); $p->MaxStringLen = 20; $patt = array(); $repl = array(); $patt[] = "#\\[img\\](.+?)\\[/img\\]#i"; $repl[] = ""; $patt[] = "/\\[document id=\\d+([^\\]]*)\\]/is"; $repl[] = ""; $patt[] = "#\\[url(.+?)\\](.*?)\\[/url\\]#is"; $repl[] = "\\2"; $patt[] = "#\\[video(.+?)\\](.+?)\\[/video\\]#i"; $repl[] = ""; $patt[] = "#^(.+?)<cut[\\s]*(/>|>).*?\$#is";