Пример #1
0
 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 (!CBlogImage::CheckFields("UPDATE", $arFields, $ID)) {
         return false;
     }
     $strUpdate = $DB->PrepareUpdate("b_blog_image", $arFields);
     foreach ($arFields1 as $key => $value) {
         if (strlen($strUpdate) > 0) {
             $strUpdate .= ", ";
         }
         $strUpdate .= $key . "=" . $value . " ";
     }
     if (strlen($strUpdate) > 0) {
         $strSql = "UPDATE b_blog_image SET " . "\t" . $strUpdate . " " . "WHERE ID = " . $ID . " ";
         $DB->Query($strSql, False, "File: " . __FILE__ . "<br>Line: " . __LINE__);
         unset($GLOBALS["BLOG_IMAGE"]["BLOG_IMAGE_CACHE_" . $ID]);
         return $ID;
     }
     return False;
 }
Пример #2
0
         $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") {
         $arAllow = array("HTML" => "Y", "ANCHOR" => "Y", "IMG" => "Y", "SMILES" => "Y", "NL2BR" => "N", "VIDEO" => "Y", "QUOTE" => "Y", "CODE" => "Y");
         if (COption::GetOptionString("blog", "allow_video", "Y") != "Y") {
             $arAllow["VIDEO"] = "N";
         }
         $CurPost["TEXT_FORMATED"] = $p->convert($CurPost["~DETAIL_TEXT"], true, $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 (COption::GetOptionString("blog", "allow_video", "Y") != "Y") {
             $arAllow["VIDEO"] = "N";
         }
         $CurPost["TEXT_FORMATED"] = $p->convert($CurPost["~DETAIL_TEXT"], true, $arImages, $arAllow, $arParserParams);
Пример #3
0
         $arTmp["FIRST"] = "Y";
     }
     if (!in_array($arPost["AUTHOR_ID"], $arUsrTmp)) {
         $arUsrTmp[] = $arPost["AUTHOR_ID"];
     }
     $arUsrTmpPostId[$arPost["AUTHOR_ID"]][] = $arPost["ID"];
     if (strlen($arPost["BLOG_USER_ALIAS"]) > 0) {
         $arUsrTmpAlias[$arPost["AUTHOR_ID"]] = $arPost["BLOG_USER_ALIAS"];
     }
     $itemCnt++;
     $arResult[$arTmp["ID"]] = $arTmp;
     $ids[] = $arTmp["ID"];
 }
 $arResult["IDS"] = $ids;
 if (!empty($arImgPosts)) {
     $dbImage = CBlogImage::GetList(array("ID" => "ASC"), array("POST_ID" => $arImgPosts, "IS_COMMENT" => "N"));
     while ($arImage = $dbImage->Fetch()) {
         if (empty($arResult[$arImage["POST_ID"]]["IMG"])) {
             if ($file = CFile::ResizeImageGet($arImage["FILE_ID"], array("width" => $arParams["PREVIEW_WIDTH"], "height" => $arParams["PREVIEW_HEIGHT"]))) {
                 $arResult[$arImage["POST_ID"]]["IMG"] = CFile::ShowImage($file["src"], false, false, 'align="left" hspace="2" vspace="2"');
             }
         }
     }
 }
 if (!empty($arUsrTmp)) {
     $dbUser = CUser::GetList($b = "ID", $o = "DESC", array("ID" => implode(' | ', $arUsrTmp)), array("FIELDS" => array("ID", "LOGIN", "NAME", "LAST_NAME", "SECOND_NAME", "PERSONAL_PHOTO")));
     while ($arUser = $dbUser->GetNext()) {
         $urlToAuthor = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $arUser["ID"]));
         $AuthorName = CBlogUser::GetUserName($arUsrTmpAlias[$arUser["ID"]], $arUser["NAME"], $arUser["LAST_NAME"], $arUser["LOGIN"], $arUser["SECOND_NAME"]);
         foreach ($arUsrTmpPostId[$arUser["ID"]] as $postId) {
             $arResult[$postId]["arUser"] = $arUser;
Пример #4
0
     $arResult["userCache"] = CBlogUser::GetUserInfoArray($arIdToGet, $arParams["PATH_TO_USER"], array("AVATAR_SIZE" => isset($arParams["AVATAR_SIZE_COMMON"]) ? $arParams["AVATAR_SIZE_COMMON"] : $arParams["AVATAR_SIZE"], "AVATAR_SIZE_COMMENT" => $arParams["AVATAR_SIZE_COMMENT"]));
     foreach ($arResult["userCache"] as $userId => $arUserCache) {
         $arTmpUser = array("NAME" => $arUserCache["~NAME"], "LAST_NAME" => $arUserCache["~LAST_NAME"], "SECOND_NAME" => $arUserCache["~SECOND_NAME"], "LOGIN" => $arUserCache["~LOGIN"], "NAME_LIST_FORMATTED" => "");
         $arResult["userCache"][$userId]["NAME_FORMATED"] = CUser::FormatName($arParams["NAME_TEMPLATE"], $arTmpUser, $arParams["SHOW_LOGIN"] != "N" ? true : false);
     }
 }
 $i = 0;
 if (!empty($arCommentsAll[$i])) {
     $arComment = $arCommentsAll[$i];
     $p = new blogTextParser(false, $arParams["PATH_TO_SMILE"]);
     $p->LAZYLOAD = isset($arParams["LAZYLOAD"]) && $arParams["LAZYLOAD"] == "Y" ? "Y" : "N";
     $p->bMobile = isset($arParams["MOBILE"]) && $arParams["MOBILE"] == "Y";
     $arParserParams = array("imageWidth" => $arParams["IMAGE_MAX_WIDTH"], "imageHeight" => $arParams["IMAGE_MAX_HEIGHT"], "pathToUser" => $arParams["PATH_TO_USER"]);
     $bHasImg = false;
     if ($arPost["HAS_COMMENT_IMAGES"] != "N") {
         $res = CBlogImage::GetList(array("ID" => "ASC"), array("POST_ID" => $arPost['ID'], "BLOG_ID" => $arPost['BLOG_ID'], "IS_COMMENT" => "Y"), false, false, array("ID", "FILE_ID", "POST_ID", "BLOG_ID", "USER_ID", "TITLE", "COMMENT_ID", "IS_COMMENT"));
         while ($aImg = $res->Fetch()) {
             $bHasImg = true;
             $arImages[$aImg['ID']] = $aImg['FILE_ID'];
             if ($arResult["allowImageUpload"]) {
                 $aImgNew = CFile::ResizeImageGet($aImg["FILE_ID"], array("width" => 90, "height" => 90), BX_RESIZE_IMAGE_EXACT, true);
                 $aImgNew["source"] = CFile::ResizeImageGet($aImg["FILE_ID"], array("width" => $arParams["IMAGE_MAX_WIDTH"], "height" => $arParams["IMAGE_MAX_HEIGHT"]), BX_RESIZE_IMAGE_EXACT, true);
                 $aImgNew["ID"] = $aImg["ID"];
                 $aImgNew["fileName"] = substr($aImgNew["src"], strrpos($aImgNew["src"], "/") + 1);
                 $arResult["Images"][$aImg['ID']] = $aImgNew;
             }
             $arResult["arImages"][$aImg["COMMENT_ID"]][$aImg['ID']] = array("small" => "/bitrix/components/bitrix/blog/show_file.php?fid=" . $aImg['ID'] . "&width=" . $arParams["ATTACHED_IMAGE_MAX_WIDTH_SMALL"] . "&height=" . $arParams["ATTACHED_IMAGE_MAX_HEIGHT_SMALL"] . "&type=square");
             $arResult["arImages"][$aImg["COMMENT_ID"]][$aImg['ID']]["full"] = $arParams["MOBILE"] == "Y" ? SITE_DIR . "mobile/log/blog_image.php?bfid=" . $aImg['ID'] . "&fid=" . $aImg['FILE_ID'] . "&width=" . $arParams["ATTACHED_IMAGE_MAX_WIDTH_FULL"] . "&height=" . $arParams["ATTACHED_IMAGE_MAX_HEIGHT_FULL"] : "/bitrix/components/bitrix/blog/show_file.php?fid=" . $aImg['ID'] . "&width=" . $arParams["ATTACHED_IMAGE_MAX_WIDTH_FULL"] . "&height=" . $arParams["ATTACHED_IMAGE_MAX_HEIGHT_FULL"];
         }
     }
     $arFieldsHave = array();
Пример #5
0
             }
         }
         echo CUtil::PhpToJsObject(array('SUCCESS' => 'Y', "FILE_ID" => $file_id));
     }
 }
 if (isset($_REQUEST["post_id"]) && intval($_REQUEST["post_id"]) > 0) {
     // Blog Images
     $varKey = "MFU_UPLOADED_IMAGES_" . $GLOBALS["USER"]->GetId() . "_" . intval($_REQUEST["post_id"]);
     if (in_array($file_id, $_SESSION[$varKey])) {
         $rsFile = CFile::GetByID($file_id);
         if ($arFile = $rsFile->Fetch()) {
             $bFileFound = true;
             if (CModule::IncludeModule('blog')) {
                 $rsBlogImage = CBlogImage::GetList(array(), array("FILE_ID" => $file_id));
                 if ($arBlogImage = $rsBlogImage->Fetch()) {
                     CBlogImage::Delete($arBlogImage["ID"]);
                     BXClearCache(true, "/blog/socnet_post/" . intval($_REQUEST["post_id"]) . "/");
                     BXClearCache(true, "/blog/socnet_post/gen/" . intval($_REQUEST["post_id"]) . "/");
                 }
             }
             CFile::Delete($file_id);
             foreach ($_SESSION[$varKey] as $key => $session_file_id) {
                 if ($session_file_id == $file_id) {
                     unset($_SESSION[$varKey][$key]);
                     break;
                 }
             }
             echo CUtil::PhpToJsObject(array('SUCCESS' => 'Y', "FILE_ID" => $file_id));
         }
     }
 }
Пример #6
0
 function BuildRSSAll($GroupId = 0, $type = "RSS .92", $numPosts = 10, $siteID = SITE_ID, $postTemplate = "", $userTemplate = "", $arAvBlog = array(), $arPathTemplates = array(), $arGroupID = array(), $bUserSocNet = "N")
 {
     $GroupId = IntVal($GroupId);
     $numPosts = IntVal($numPosts);
     $user_id = IntVal($GLOBALS["USER"]->GetID());
     $type = strtolower(preg_replace("/[^a-zA-Z0-9.]/is", "", $type));
     if ($type != "rss2.0" && $type != "atom.03") {
         $type = "rss.92";
     }
     $rssText = False;
     $groupIdArray = array();
     $arGroup = array();
     if ($GroupId > 0) {
         if (!empty($arGroupID) && in_array($GroupId, $arGroupID) || empty($arGroupID)) {
             $arGroup = CBlogGroup::GetByID($GroupId);
         }
     }
     $now = date("r");
     $nowISO = date("Y-m-d\\TH:i:s") . substr(date("O"), 0, 3) . ":" . substr(date("O"), -2, 2);
     $serverName = "";
     $charset = "";
     $language = "";
     $dbSite = CSite::GetList($b = "sort", $o = "asc", array("LID" => SITE_ID));
     if ($arSite = $dbSite->Fetch()) {
         $serverName = $arSite["SERVER_NAME"];
         $charset = $arSite["CHARSET"];
         $language = $arSite["LANGUAGE_ID"];
     }
     if (strlen($serverName) <= 0) {
         if (defined("SITE_SERVER_NAME") && strlen(SITE_SERVER_NAME) > 0) {
             $serverName = SITE_SERVER_NAME;
         } else {
             $serverName = COption::GetOptionString("main", "server_name", "");
         }
     }
     if (strlen($charset) <= 0) {
         if (defined("SITE_CHARSET") && strlen(SITE_CHARSET) > 0) {
             $charset = SITE_CHARSET;
         } else {
             $charset = "windows-1251";
         }
     }
     $blogURL = "http://" . $serverName;
     if ($GroupId > 0) {
         $blogName = GetMessage("BLG_RSS_ALL_GROUP_TITLE") . " \"" . htmlspecialcharsbx($arGroup["NAME"]) . "\" (" . $serverName . ")";
     } else {
         $blogName = GetMessage("BLG_RSS_ALL_TITLE") . " \"" . htmlspecialcharsbx($arSite["NAME"]) . "\" (" . $serverName . ")";
     }
     $rssText = "";
     if ($type == "rss.92") {
         $rssText .= "<" . "?xml version=\"1.0\" encoding=\"" . $charset . "\"?" . ">\n\n";
         $rssText .= "<rss version=\".92\">\n";
         $rssText .= " <channel>\n";
         $rssText .= "\t<title>" . $blogName . "</title>\n";
         $rssText .= "\t<link>" . $blogURL . "</link>\n";
         $rssText .= "\t<guid>" . $blogURL . "</guid>\n";
         $rssText .= "\t<language>" . $language . "</language>\n";
         $rssText .= "\t<docs>http://backend.userland.com/rss092</docs>\n";
         $rssText .= "\n";
     } elseif ($type == "rss2.0") {
         $rssText .= "<" . "?xml version=\"1.0\" encoding=\"" . $charset . "\"?" . ">\n\n";
         $rssText .= "<rss version=\"2.0\">\n";
         $rssText .= " <channel>\n";
         $rssText .= "\t<title>" . $blogName . "</title>\n";
         $rssText .= "\t<description>" . $blogName . "</description>\n";
         $rssText .= "\t<link>" . $blogURL . "</link>\n";
         $rssText .= "\t<language>" . $language . "</language>\n";
         $rssText .= "\t<docs>http://backend.userland.com/rss2</docs>\n";
         $rssText .= "\t<pubDate>" . $now . "</pubDate>\n";
         $rssText .= "\n";
     } elseif ($type == "atom.03") {
         $atomID = "tag:" . htmlspecialcharsbx($serverName) . "," . date("Y-m-d");
         $rssText .= "<" . "?xml version=\"1.0\" encoding=\"" . $charset . "\"?" . ">\n\n";
         $rssText .= "<feed version=\"0.3\" xmlns=\"http://purl.org/atom/ns#\" xml:lang=\"" . $language . "\">\n";
         $rssText .= "  <title>" . $blogName . "</title>\n";
         $rssText .= "  <tagline>" . $blogURL . "</tagline>\n";
         $rssText .= "  <id>" . $atomID . "</id>\n";
         $rssText .= "  <link rel=\"alternate\" type=\"text/html\" href=\"" . $blogURL . "\" />\n";
         $rssText .= "  <copyright>Copyright (c) " . $blogURL . "</copyright>\n";
         $rssText .= "  <modified>" . $nowISO . "</modified>\n";
         $rssText .= "\n";
     }
     $parser = new blogTextParser();
     $arParserParams = array("imageWidth" => $arPathTemplates["IMAGE_MAX_WIDTH"], "imageHeight" => $arPathTemplates["IMAGE_MAX_HEIGHT"]);
     $arFilter = array("<=DATE_PUBLISH" => ConvertTimeStamp(false, "FULL", false), "PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_PUBLISH, "BLOG_ENABLE_RSS" => "Y", "MICRO" => "N");
     $arSelFields = array("ID", "TITLE", "DETAIL_TEXT", "DATE_PUBLISH", "AUTHOR_ID", "BLOG_USER_ALIAS", "BLOG_ID", "DETAIL_TEXT_TYPE", "BLOG_URL", "BLOG_OWNER_ID", "BLOG_SOCNET_GROUP_ID", "BLOG_GROUP_SITE_ID", "CODE", "PATH");
     if (!empty($arGroup)) {
         $arFilter["BLOG_GROUP_ID"] = $arGroup["ID"];
     } elseif (count($arGroupID) > 0) {
         $arFilter["BLOG_GROUP_ID"] = $arGroupID;
     }
     if (count($arAvBlog) > 0) {
         $arFilter["BLOG_ID"] = $arAvBlog;
     }
     if ($siteID !== false) {
         $arFilter["BLOG_GROUP_SITE_ID"] = $siteID;
     }
     if ($bUserSocNet == "Y") {
         $arFilter["BLOG_USE_SOCNET"] = "Y";
         $arFilter["FOR_USER"] = $user_id;
         unset($arFilter["MICRO"]);
     }
     CTimeZone::Disable();
     $dbPosts = CBlogPost::GetList(array("DATE_PUBLISH" => "DESC"), $arFilter, false, array("nTopCount" => $numPosts), $arSelFields);
     CTimeZone::Enable();
     while ($arPost = $dbPosts->Fetch()) {
         $perms = CBlogPost::GetBlogUserPostPerms($arPost["ID"], $GLOBALS["USER"]->IsAuthorized() ? $GLOBALS["USER"]->GetID() : 0);
         if ($perms < BLOG_PERMS_READ) {
             continue;
         }
         $dbUser = CUser::GetByID($arPost["AUTHOR_ID"]);
         $arUser = $dbUser->Fetch();
         $author = CBlogUser::GetUserName($arPost["BLOG_USER_ALIAS"], $arUser["NAME"], $arUser["LAST_NAME"], $arUser["LOGIN"], $arUser["SECOND_NAME"]);
         $title = str_replace(array("&", "<", ">", "\""), array("&amp;", "&lt;", "&gt;", "&quot;"), $author . ": " . $arPost["TITLE"]);
         $arImages = array();
         $res = CBlogImage::GetList(array("ID" => "ASC"), array("POST_ID" => $arPost["ID"], "BLOG_ID" => $arPost["BLOG_ID"], "IS_COMMENT" => "N"));
         while ($arImage = $res->Fetch()) {
             $arImages[$arImage['ID']] = $arImage['FILE_ID'];
         }
         $arDate = ParseDateTime($arPost["DATE_PUBLISH"], CSite::GetDateFormat("FULL", $arPost["BLOG_GROUP_SITE_ID"]));
         $date = date("r", mktime($arDate["HH"], $arDate["MI"], $arDate["SS"], $arDate["MM"], $arDate["DD"], $arDate["YYYY"]));
         if (strlen($arPost["PATH"]) > 0) {
             $url = htmlspecialcharsbx("http://" . $serverName . str_replace("#post_id#", CBlogPost::GetPostID($arPost["ID"], $arPost["CODE"], $arParams["ALLOW_POST_CODE"]), $arPost["PATH"]));
         } elseif (!empty($arPathTemplates)) {
             if (IntVal($arPost["BLOG_SOCNET_GROUP_ID"]) > 0 && strlen($arPathTemplates["GROUP_BLOG_POST"]) > 0) {
                 $url = htmlspecialcharsbx("http://" . $serverName . CComponentEngine::MakePathFromTemplate($arPathTemplates["GROUP_BLOG_POST"], array("blog" => $arPost["BLOG_URL"], "post_id" => CBlogPost::GetPostID($arPost["ID"], $arPost["CODE"], $arPathTemplates["ALLOW_POST_CODE"]), "user_id" => $arPost["BLOG_OWNER_ID"], "group_id" => $arPost["BLOG_SOCNET_GROUP_ID"])));
             } else {
                 $url = htmlspecialcharsbx("http://" . $serverName . CComponentEngine::MakePathFromTemplate($arPathTemplates["BLOG_POST"], array("blog" => $arPost["BLOG_URL"], "post_id" => CBlogPost::GetPostID($arPost["ID"], $arPost["CODE"], $arPathTemplates["ALLOW_POST_CODE"]), "user_id" => $arPost["BLOG_OWNER_ID"], "group_id" => $arPost["BLOG_SOCNET_GROUP_ID"])));
             }
         } elseif (strLen($postTemplate) > 0) {
             $url = htmlspecialcharsbx("http://" . $serverName . CComponentEngine::MakePathFromTemplate($postTemplate, array("blog" => $arPost["BLOG_URL"], "post_id" => $arPost["ID"], "user_id" => $arPost["BLOG_OWNER_ID"], "group_id" => $arPost["BLOG_SOCNET_GROUP_ID"])));
         } else {
             $url = htmlspecialcharsbx("http://" . $serverName . CBlogPost::PreparePath(htmlspecialcharsbx($arPost["BLOG_URL"]), $arPost["ID"], $arPost["BLOG_GROUP_SITE_ID"]));
         }
         $category = htmlspecialcharsbx($arPost["CATEGORY_NAME"]);
         if (strlen($arPathTemplates["USER"]) > 0) {
             $authorURL = htmlspecialcharsbx("http://" . $serverName . CComponentEngine::MakePathFromTemplate($arPathTemplates["USER"], array("user_id" => $arPost["AUTHOR_ID"], "group_id" => $arPost["BLOG_SOCNET_GROUP_ID"])));
         } elseif (strLen($userTemplate) > 0) {
             $authorURL = htmlspecialcharsbx("http://" . $serverName . CComponentEngine::MakePathFromTemplate($userTemplate, array("user_id" => $arPost["AUTHOR_ID"], "group_id" => $arPost["BLOG_SOCNET_GROUP_ID"])));
         } else {
             $authorURL = htmlspecialcharsbx("http://" . $serverName . CBlogUser::PreparePath($arPost["AUTHOR_ID"], $arPost["BLOG_GROUP_SITE_ID"]));
         }
         if ($arPost["DETAIL_TEXT_TYPE"] == "html") {
             $text = $parser->convert_to_rss($arPost["DETAIL_TEXT"], $arImages, array("HTML" => "Y", "ANCHOR" => "Y", "IMG" => "Y", "SMILES" => "Y", "NL2BR" => "N", "QUOTE" => "Y", "CODE" => "Y"), true, $arParserParams);
         } else {
             $text = $parser->convert_to_rss($arPost["DETAIL_TEXT"], $arImages, false, true, $arParserParams);
         }
         if ($bUserSocNet != "Y") {
             $text .= "<br /><a href=\"" . $url . "\">" . GetMessage("BLG_GB_RSS_DETAIL") . "</a>";
         }
         $text = "<![CDATA[" . $text . "]]>";
         if ($type == "rss.92") {
             $rssText .= "    <item>\n";
             $rssText .= "      <title>" . $title . "</title>\n";
             $rssText .= "      <description>" . $text . "</description>\n";
             $rssText .= "      <link>" . $url . "</link>\n";
             $rssText .= "    </item>\n";
             $rssText .= "\n";
         } elseif ($type == "rss2.0") {
             $rssText .= "    <item>\n";
             $rssText .= "      <title>" . $title . "</title>\n";
             $rssText .= "      <description>" . $text . "</description>\n";
             $rssText .= "      <link>" . $url . "</link>\n";
             $rssText .= "      <guid>" . $url . "</guid>\n";
             $rssText .= "      <pubDate>" . $date . "</pubDate>\n";
             if (strlen($category) > 0) {
                 $rssText .= "      <category>" . $category . "</category>\n";
             }
             $rssText .= "    </item>\n";
             $rssText .= "\n";
         } elseif ($type == "atom.03") {
             $atomID = "tag:" . htmlspecialcharsbx($serverName) . ":" . $arBlog["URL"] . "/" . $arPost["ID"];
             $timeISO = mktime($arDate["HH"], $arDate["MI"], $arDate["SS"], $arDate["MM"], $arDate["DD"], $arDate["YYYY"]);
             $dateISO = date("Y-m-d\\TH:i:s", $timeISO) . substr(date("O", $timeISO), 0, 3) . ":" . substr(date("O", $timeISO), -2, 2);
             $titleRel = htmlspecialcharsbx($arPost["TITLE"]);
             $rssText .= "<entry>\n";
             $rssText .= "  <title type=\"text/html\">" . $title . "</title>\n";
             $rssText .= "  <link rel=\"alternate\" type=\"text/html\" href=\"" . $url . "\"/>\n";
             $rssText .= "  <issued>" . $dateISO . "</issued>\n";
             $rssText .= "  <modified>" . $nowISO . "</modified>\n";
             $rssText .= "  <id>" . $atomID . "</id>\n";
             $rssText .= "  <content type=\"text/html\" mode=\"escaped\" xml:lang=\"" . $language . "\" xml:base=\"" . $blogURL . "\">\n";
             $rssText .= $text . "\n";
             $rssText .= "  </content>\n";
             $rssText .= "  <link rel=\"related\" type=\"text/html\" href=\"" . $url . "\" title=\"" . $titleRel . "\"/>\n";
             $rssText .= "  <author>\n";
             $rssText .= "    <name>" . htmlspecialcharsbx($author) . "</name>\n";
             $rssText .= "    <url>" . $authorURL . "</url>\n";
             $rssText .= "  </author>\n";
             $rssText .= "</entry>\n";
             $rssText .= "\n";
         }
     }
     if ($type == "rss.92") {
         $rssText .= "  </channel>\n</rss>";
     } elseif ($type == "rss2.0") {
         $rssText .= "  </channel>\n</rss>";
     } elseif ($type == "atom.03") {
         $rssText .= "\n\n</feed>";
     }
     return $rssText;
 }
Пример #7
0
     }
 }
 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"]) {
             $arTmp["urlToBlog"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("blog" => $arPost["BLOG_URL"], "user_id" => $arPost["AUTHOR_ID"]));
         } else {
             if ($arParams["USE_SOCNET"] == "Y" && IntVal($arParams["SOCNET_GROUP_ID"]) > 0) {
                 $arTmp["urlToBlog"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $arPost["AUTHOR_ID"]));
             } else {
Пример #8
0
                     $arPostField["EDIT_FORM_LABEL"] = htmlspecialcharsEx($arPostField["EDIT_FORM_LABEL"]);
                     $arPostField["~EDIT_FORM_LABEL"] = $arPostField["EDIT_FORM_LABEL"];
                     $arResult["POST_PROPERTIES"]["DATA"][$FIELD_NAME] = $arPostField;
                     if (!empty($arPostField["VALUE"])) {
                         $bHasProps = true;
                     }
                 }
             }
         }
         if (!empty($arResult["POST_PROPERTIES"]["DATA"])) {
             $arResult["POST_PROPERTIES"]["SHOW"] = "Y";
         }
     }
 }
 if ($arPost["HAS_IMAGES"] != "N") {
     $res = CBlogImage::GetList(array("ID" => "ASC"), array("POST_ID" => $arPost['ID'], "IS_COMMENT" => "N"));
     while ($arImage = $res->Fetch()) {
         $bHasImg = true;
         $arImages[$arImage['ID']] = $arImage['FILE_ID'];
         $arResult["images"][$arImage['ID']] = array("small" => "/bitrix/components/bitrix/blog/show_file.php?fid=" . $arImage['ID'] . "&width=" . $arParams["ATTACHED_IMAGE_MAX_WIDTH_SMALL"] . "&height=" . $arParams["ATTACHED_IMAGE_MAX_HEIGHT_SMALL"] . "&type=square");
         $arResult["images"][$arImage['ID']]["full"] = "/bitrix/components/bitrix/blog/show_file.php?fid=" . $arImage['ID'] . "&width=" . $arParams["ATTACHED_IMAGE_MAX_WIDTH_FULL"] . "&height=" . $arParams["ATTACHED_IMAGE_MAX_HEIGHT_FULL"];
     }
 }
 $arParserParams = array("imageWidth" => $arParams["IMAGE_MAX_WIDTH"], "imageHeight" => $arParams["IMAGE_MAX_HEIGHT"], "pathToUser" => $arParams["PATH_TO_USER"]);
 $arAllow = array("HTML" => "N", "ANCHOR" => "Y", "BIU" => "Y", "IMG" => "Y", "QUOTE" => "Y", "CODE" => "Y", "FONT" => "Y", "LIST" => "Y", "SMILES" => "Y", "NL2BR" => "N", "VIDEO" => "Y", "USER" => "Y", "TAG" => "Y", "SHORT_ANCHOR" => "Y");
 if (COption::GetOptionString("blog", "allow_video", "Y") != "Y") {
     $arAllow["VIDEO"] = "N";
 }
 if (is_array($arResult["POST_PROPERTIES"]["DATA"]["UF_BLOG_POST_FILE"])) {
     $p->arUserfields = array("UF_BLOG_POST_FILE" => array_merge($arResult["POST_PROPERTIES"]["DATA"]["UF_BLOG_POST_FILE"], array("TAG" => "DOCUMENT ID")));
 }
Пример #9
0
 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("&amp;", "&lt;", "&gt;", "&quot;"), $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"];
 }
Пример #10
0
 function FormatEvent_Blog($arFields, $arParams, $bMail = false)
 {
     if ($bMail && strlen($arFields["MAIL_LANGUAGE_ID"]) > 0) {
         IncludeModuleLangFile(__FILE__, $arFields["MAIL_LANGUAGE_ID"]);
     }
     $arResult = array("EVENT" => $arFields, "CREATED_BY" => CSocNetLogTools::FormatEvent_GetCreatedBy($arFields, $arParams, $bMail), "ENTITY" => CSocNetLogTools::FormatEvent_GetEntity($arFields, $arParams, $bMail), "EVENT_FORMATTED" => array());
     $arResult["CREATED_BY"]["ACTION_TYPE"] = "wrote";
     if (!$bMail) {
         $arResult["AVATAR_SRC"] = CSocNetLogTools::FormatEvent_CreateAvatar($arFields, $arParams);
     }
     if ($bMail) {
         $title_tmp = GetMessage("SONET_GL_EVENT_TITLE_" . ($arFields["ENTITY_TYPE"] == SONET_SUBSCRIBE_ENTITY_GROUP ? "GROUP" : "USER") . "_BLOG_POST_MAIL");
         //if the title duplicates message, don't show it
         $arFields["TITLE"] = strpos($arFields["MESSAGE"], $arFields["TITLE"]) === 0 ? "" : ' "' . $arFields["TITLE"] . '"';
     } else {
         $title_tmp = GetMessage("SONET_GL_EVENT_TITLE_BLOG_POST");
     }
     $post_tmp = !$bMail && array_key_exists("URL", $arFields) && strlen($arFields["URL"]) > 0 ? '<a href="' . $arFields["URL"] . '">' . $arFields["TITLE"] . '</a>' : $arFields["TITLE"];
     $title = str_replace(array("#TITLE#", "#ENTITY#", "#CREATED_BY#"), array($post_tmp, $arResult["ENTITY"]["FORMATTED"], $bMail ? $arResult["CREATED_BY"]["FORMATTED"] : ""), $title_tmp);
     $title = trim(preg_replace('/\\s+/', ' ', $title));
     $arResult["EVENT_FORMATTED"] = array("TITLE" => $title, "TITLE_24" => GetMessage("SONET_GL_EVENT_TITLE_BLOG_POST_24"), "TITLE_24_2" => $arFields["TITLE"], "MESSAGE" => $bMail ? $arFields["TEXT_MESSAGE"] : $arFields["~MESSAGE"]);
     if (!$bMail) {
         if ($arParams["NEW_TEMPLATE"] != "Y" || $arFields["EVENT_ID"] == "idea") {
             if (CModule::IncludeModule("blog")) {
                 $parserLog = new blogTextParser(false, $arParams["PATH_TO_SMILE"]);
                 $arImages = array();
                 $arBlogPost = CBlogPost::GetByID($arFields["SOURCE_ID"]);
                 if ($arBlogPost["HAS_IMAGES"] != "N") {
                     $res = CBlogImage::GetList(array("ID" => "ASC"), array("POST_ID" => $arBlogPost['ID'], "IS_COMMENT" => "N"));
                     while ($arImage = $res->Fetch()) {
                         $arImages[$arImage['ID']] = $arImage['FILE_ID'];
                     }
                 }
             } else {
                 $parserLog = new logTextParser(false, $arParams["PATH_TO_SMILE"]);
             }
             $arAllow = array("HTML" => "N", "ANCHOR" => "Y", "BIU" => "Y", "IMG" => "Y", "QUOTE" => "Y", "CODE" => "Y", "FONT" => "Y", "LIST" => "Y", "SMILES" => "Y", "NL2BR" => "N", "MULTIPLE_BR" => "N", "VIDEO" => "Y", "LOG_VIDEO" => "N", "SHORT_ANCHOR" => "Y");
             if (get_class($parserLog) == "blogTextParser") {
                 $arResult["EVENT_FORMATTED"]["MESSAGE"] = $parserLog->html_cut($parserLog->convert(htmlspecialcharsback($arResult["EVENT_FORMATTED"]["MESSAGE"]), true, $arImages, $arAllow), 10000);
             } else {
                 $arResult["EVENT_FORMATTED"]["MESSAGE"] = htmlspecialcharsbx($parserLog->convert(htmlspecialcharsback($arResult["EVENT_FORMATTED"]["MESSAGE"]), array(), $arAllow));
             }
             $arResult["EVENT_FORMATTED"]["MESSAGE"] = str_replace("#CUT#", '<br><a href="' . $arFields["URL"] . '">' . GetMessage("SONET_GL_EVENT_BLOG_MORE") . '</a>', $arResult["EVENT_FORMATTED"]["MESSAGE"]);
             $arResult["EVENT_FORMATTED"]["IS_MESSAGE_SHORT"] = CSocNetLogTools::FormatEvent_IsMessageShort($arResult["EVENT_FORMATTED"]["MESSAGE"], $arResult["EVENT_FORMATTED"]["SHORT_MESSAGE"]);
             if ($arFields["ENTITY_TYPE"] == SONET_SUBSCRIBE_ENTITY_GROUP) {
                 $arResult["EVENT_FORMATTED"]["DESTINATION"] = array(array("STYLE" => "sonetgroups", "TITLE" => $arResult["ENTITY"]["FORMATTED"]["NAME"], "URL" => $arResult["ENTITY"]["FORMATTED"]["URL"]));
             }
         }
         $dbRight = CSocNetLogRights::GetList(array(), array("LOG_ID" => $arFields["ID"]));
         while ($arRight = $dbRight->Fetch()) {
             $arRights[] = $arRight["GROUP_CODE"];
         }
         if ($arParams["MOBILE"] == "Y") {
             $arResult["EVENT_FORMATTED"]["DESTINATION"] = CSocNetLogTools::FormatDestinationFromRights($arRights, array_merge($arParams, array("CREATED_BY" => $arFields["USER_ID"], "USE_ALL_DESTINATION" => true)), $iMoreCount);
             if (intval($iMoreCount) > 0) {
                 $arResult["EVENT_FORMATTED"]["DESTINATION_MORE"] = $iMoreCount;
             }
         } else {
             $arResult["EVENT_FORMATTED"]["DESTINATION_CODE"] = CSocNetLogTools::GetDestinationFromRights($arRights, array_merge($arParams, array("CREATED_BY" => $arFields["USER_ID"])));
         }
     } else {
         $url = CSocNetLogTools::FormatEvent_GetURL($arFields);
         if (strlen($url) > 0) {
             $arResult["EVENT_FORMATTED"]["URL"] = $url;
         }
     }
     $arResult["HAS_COMMENTS"] = intval($arFields["SOURCE_ID"]) > 0 ? "Y" : "N";
     if ($bMail && strlen($arFields["MAIL_LANGUAGE_ID"]) > 0) {
         IncludeModuleLangFile(__FILE__, LANGUAGE_ID);
     }
     return $arResult;
 }
Пример #11
0
 function Delete($ID)
 {
     global $DB;
     $ID = IntVal($ID);
     unset($GLOBALS["BLOG_IMAGE"]["BLOG_IMAGE_CACHE_" . $ID]);
     if ($res = CBlogImage::GetByID($ID)) {
         CFile::Delete($res['FILE_ID']);
         return $DB->Query("DELETE FROM b_blog_image WHERE ID = " . $ID, true);
     }
     return false;
 }
Пример #12
0
	function convert_blog_image($p1 = "", $imageId = "", $p2 = "", $type = "html", $serverName="")
	{
		$imageId = IntVal($imageId);
		if($imageId <= 0)
			return;

		$res = "";
		if(IntVal($this->arImages[$imageId]) > 0)
		{
			$this->showedImages[] = $imageId;
			if($f = CBlogImage::GetByID($imageId))
			{
				if(COption::GetOptionString("blog", "use_image_perm", "N") == "N")
				{
					if($db_img_arr = CFile::GetFileArray($this->arImages[$imageId]))
					{
						if(substr($db_img_arr["SRC"], 0, 1) == "/")
							$strImage = $this->serverName.$db_img_arr["SRC"];
						else
							$strImage = $db_img_arr["SRC"];
						$sourceImage = $strImage;

						$strPar = "";
						preg_match("/width\=([0-9]+)/is".BX_UTF_PCRE_MODIFIER, $p1, $width);
						preg_match("/height\=([0-9]+)/is".BX_UTF_PCRE_MODIFIER, $p1, $height);
						$width = intval($width[1]);
						$height = intval($height[1]);

						if($width <= 0)
						{
							preg_match("/width\=([0-9]+)/is".BX_UTF_PCRE_MODIFIER, $p2, $width);
							$width = intval($width[1]);
						}
						if($height <= 0)
						{
							preg_match("/height\=([0-9]+)/is".BX_UTF_PCRE_MODIFIER, $p2, $height);
							$height = intval($height[1]);
						}

						if(IntVal($width) <= 0)
							$width = $db_img_arr["WIDTH"];
						if(IntVal($height) <= 0)
							$height= $db_img_arr["HEIGHT"];

						if($width > $this->imageWidth || $height > $this->imageHeight)
						{
							$arFileTmp = CFile::ResizeImageGet(
								$db_img_arr,
								array("width" => $this->imageWidth, "height" => $this->imageHeight),
								BX_RESIZE_IMAGE_PROPORTIONAL,
								true
							);
							if(substr($arFileTmp["src"], 0, 1) == "/")
								$strImage = $this->serverName.$arFileTmp["src"];
							else
								$strImage = $arFileTmp["src"];
							$width = $arFileTmp["width"];
							$height = $arFileTmp["height"];
						}

						$strPar = ' width="'.$width.'" height="'.$height.'"';
						$strImage = preg_replace("'(?<!:)/+'s", "/", $strImage);
						$sourceImage = preg_replace("'(?<!:)/+'s", "/", $sourceImage);

						if(strlen($this->authorName) > 0)
							$strPar .= " data-bx-title=\"".$this->authorName."\"";

						if ($this->isSonetLog)
						{
							$strImage = preg_replace("'(?<!:)/+'s", "/", $strImage);
							$res = '[IMG]'.$strImage.'[/IMG]';
						}
						else
						{

							if($type == "mail")
								$res = htmlspecialcharsbx($f["TITLE"])." (IMAGE: ".$strImage." )";
							else
								$res = '<img src="'.$strImage.'" title="" alt="'.htmlspecialcharsbx($f["TITLE"]).'" border="0"'.$strPar.' data-bx-image="'.$sourceImage.'" />';
						}
					}
				}
				else
				{
					preg_match("/width\=([0-9]+)/is".BX_UTF_PCRE_MODIFIER, $p1, $width);
					preg_match("/height\=([0-9]+)/is".BX_UTF_PCRE_MODIFIER, $p1, $height);
					$width = intval($width[1]);
					$height = intval($height[1]);

					if($width <= 0)
					{
						preg_match("/width\=([0-9]+)/is".BX_UTF_PCRE_MODIFIER, $p2, $width);
						$width = intval($width[1]);
					}
					if($height <= 0)
					{
						preg_match("/height\=([0-9]+)/is".BX_UTF_PCRE_MODIFIER, $p2, $height);
						$height = intval($height[1]);
					}

					if(IntVal($width) <= 0)
						$width = $this->imageWidth;
					if(IntVal($height) <= 0)
						$height = $this->imageHeight;

					if($width > $this->imageWidth)
						$width = $this->imageWidth;
					if($height > $this->imageHeight)
						$height = $this->imageHeight;

					$strImage = $this->serverName."/bitrix/components/bitrix/blog/show_file.php?fid=".$imageId."&width=".$width."&height=".$height;
					$sourceImage = $this->serverName."/bitrix/components/bitrix/blog/show_file.php?fid=".$imageId;

					$db_img_arr = CFile::GetFileArray($this->arImages[$imageId]);

					CFile::ScaleImage($db_img_arr["WIDTH"], $db_img_arr["HEIGHT"], Array("width" => $width, "height" => $height), BX_RESIZE_IMAGE_PROPORTIONAL, $bNeedCreatePicture, $arSourceSize, $arDestinationSize);

					if ($this->isSonetLog)
					{
						$strImage = preg_replace("'(?<!:)/+'s", "/", $strImage);
						$res = '[IMG]'.$strImage.'[/IMG]';
					}
					else
					{
						if($type == "mail")
							$res = htmlspecialcharsbx($f["TITLE"])." (IMAGE: ".$strImage." )";
						else
						{
							$strPar = ' width="'.$arDestinationSize["width"].'" height="'.$arDestinationSize["height"].'"';
							if(strlen($this->authorName) > 0)
								$strPar .= " data-bx-title=\"".$this->authorName."\"";

							$res = '<img src="'.$strImage.'" title="" alt="'.htmlspecialcharsbx($f["TITLE"]).'" border="0" data-bx-image="'.$sourceImage.'"'.$strPar.' />';
							if(!empty($this->blogImageSizeEvents))
							{
								foreach($this->blogImageSizeEvents as $arEvent)
									ExecuteModuleEventEx($arEvent, Array(&$res, $strImage, $db_img_arr, $f, $arDestinationSize));
							}
						}
					}
				}
				return $res;
			}
		}
		return $res;
	}
Пример #13
0
             }
             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);
         }
     }
 }
 // IMAGES UPDATE
 if (!empty($arImagesToUpdate)) {
     foreach ($arImagesToUpdate as $imgID) {
         CBlogImage::Update($imgID, array("POST_ID" => $postID));
     }
 }
 // category update
 foreach ($iCategory as $iCategoryValue) {
     CBlogPostCategory::Add(array("BLOG_ID" => $blogID, "POST_ID" => $postID, "CATEGORY_ID" => $iCategoryValue));
 }
 // COMMENTS
 if (!empty($arComments)) {
     if (!function_exists("__blog_add_comments")) {
         function __blog_add_comments($arComments, $parentID, $arParams)
         {
             if (!is_array($arComments) || empty($arComments)) {
                 return;
             }
             foreach ($arComments as $res) {
Пример #14
0
}
$arParams["WIDTH"] = isset($_REQUEST['width']) && intval($_REQUEST['width']) > 0 ? intval($_REQUEST['width']) : 0;
$arParams["HEIGHT"] = isset($_REQUEST['height']) && intval($_REQUEST['height']) > 0 ? intval($_REQUEST['height']) : 0;
$arParams["FILE_ID"] = IntVal($_REQUEST["fid"]);
$arParams["BP_FILE_ID"] = IntVal($_REQUEST["bp_fid"]);
$arParams["PERMISSION"] = false;
$arParams["QUALITY"] = isset($_REQUEST['mobile']) && $_REQUEST["mobile"] == "y" ? "50" : false;
$arResult = array();
$arResult["MESSAGE"] = array();
$arResult["FILE"] = array();
$arResult["POST"] = array();
$arResult["FILE_INFO"] = array();
$user_id = IntVal($USER->GetID());
$arError = array();
if (intVal($arParams["FILE_ID"]) > 0) {
    if ($res = CBlogImage::GetByID($arParams["FILE_ID"])) {
        $arResult["FILE_INFO"] = $res;
        $arResult["FILE"] = CFile::GetFileArray($arResult["FILE_INFO"]["FILE_ID"]);
    }
} elseif (intVal($arParams["BP_FILE_ID"]) > 0) {
    $arResult["FILE"] = CFile::GetFileArray(intVal($arParams['BP_FILE_ID']));
    if (!empty($arResult["FILE"])) {
        $dbPost = CBlogPost::GetList(array(), array('UF_BLOG_POST_DOC' => intVal($arParams['BP_FILE_ID'])));
        if ($dbPost && ($arPost = $dbPost->Fetch())) {
            $arResult["FILE_INFO"] = array('POST_ID' => $arPost['ID'], 'BLOG_ID' => $arPost['BLOG_ID']);
        } else {
            $dbPost = CBlogComment::GetList(array(), array('UF_BLOG_COMMENT_DOC' => intVal($arParams['BP_FILE_ID'])));
            if ($dbPost && ($arPost = $dbPost->Fetch())) {
                $arResult["FILE_INFO"] = array('POST_ID' => $arPost['POST_ID'], 'BLOG_ID' => $arPost['BLOG_ID']);
            }
        }
Пример #15
0
     $arOwnerBlog = CBlog::GetByOwnerID($arTmp["AUTHOR_ID"]);
     if (!empty($arOwnerBlog)) {
         $arTmp["urlToBlog"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("blog" => $arOwnerBlog["URL"], "user_id" => $arOwnerBlog["OWNER_ID"]));
     } else {
         $arTmp["urlToBlog"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("blog" => $arPost["BLOG_URL"], "user_id" => $arPost["AUTHOR_ID"]));
     }
 }
 if (IntVal($arPost["BLOG_SOCNET_GROUP_ID"]) > 0) {
     $arTmp["urlToPost"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_GROUP_BLOG_POST"], array("blog" => $arPost["BLOG_URL"], "post_id" => $arPost["ID"], "group_id" => $arPost["BLOG_SOCNET_GROUP_ID"]));
 } else {
     $arTmp["urlToPost"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_POST"], array("blog" => $arPost["BLOG_URL"], "post_id" => $arPost["ID"], "user_id" => $arPost["BLOG_OWNER_ID"]));
 }
 $arTmp["urlToAuthor"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $arPost["AUTHOR_ID"]));
 $arTmp["AuthorName"] = CBlogUser::GetUserName($arPost["BLOG_USER_ALIAS"], $arPost["AUTHOR_NAME"], $arPost["AUTHOR_LAST_NAME"], $arPost["AUTHOR_LOGIN"]);
 $arImage = array();
 $res = CBlogImage::GetList(array("ID" => "ASC"), array("POST_ID" => $arPost['ID']));
 while ($arImage = $res->Fetch()) {
     $arImages[$arImage['ID']] = $arImage['FILE_ID'];
 }
 if (preg_match("/(\\[CUT\\])/i", $arTmp['DETAIL_TEXT']) || preg_match("/(<CUT>)/i", $arTmp['DETAIL_TEXT'])) {
     $arTmp["CUT"] = "Y";
 }
 if ($arTmp["DETAIL_TEXT_TYPE"] == "html") {
     $arTmp["TEXT_FORMATED"] = $p->convert($arTmp["~DETAIL_TEXT"], true, $arImages, array("HTML" => "Y", "ANCHOR" => "Y", "IMG" => "Y", "SMILES" => "Y", "NL2BR" => "N", "VIDEO" => "Y", "QUOTE" => "Y", "CODE" => "Y"));
 } else {
     $arTmp["TEXT_FORMATED"] = $p->convert($arTmp["~DETAIL_TEXT"], true, $arImages);
 }
 $arTmp["IMAGES"] = $arImages;
 $arTmp["DATE_PUBLISH_FORMATED"] = date($arParams["DATE_TIME_FORMAT"], MakeTimeStamp($arTmp["DATE_PUBLISH"], CSite::GetDateFormat("FULL")));
 $dbCategory = CBlogPostCategory::GetList(array("NAME" => "ASC"), array("POST_ID" => $arTmp["ID"], "BLOG_ID" => $arPost["BLOG_ID"]));
 while ($arCategory = $dbCategory->GetNext()) {
Пример #16
0
                $type = str_replace("'", "\\'", $type);
                print "\n<td align=center><img src='/bitrix/images/blog/smile/{$arSmiles[$i]['IMAGE']}' width='{$arSmiles[$i]['IMAGE_WIDTH']}' height='{$arSmiles[$i]['IMAGE_HEIGHT']}' title='{$arSmiles[$i]['LANG_NAME']}' OnClick=\"emoticon('{$type}')\" style='cursor:pointer'></td>";
            }
            ?>
									</tr>
								</table>
							</td>
						</table>
					</td>
				</tr>
		<?php 
            $arFilter = array("POST_ID" => $ID, "BLOG_ID" => $BLOG_ID);
            if ($ID == 0) {
                $arFilter['USER_ID'] = $USER_ID;
            }
            $res = CBlogImage::GetList(array("ID" => "ASC"), $arFilter);
            if ($aImg = $res->Fetch()) {
                print " <tr>\n\t\t\t\t\t<td class=\"blogtablehead\" valign=top align=right nowrap>\n\t\t\t\t\t\t<font class=\"blogheadtext\"><b>" . GetMessage("BLOG_P_IMAGES") . "</b></font>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td class=blogtablebody>\n\t\t\t\t\t\t<table cellspacing=0 cellpadding=4 border=0 id=img_TABLE align=left>\n\t\t\t\t\t\t";
                $i = 0;
                do {
                    if ($i == 0) {
                        print "<tr>";
                    } elseif ($i % 4 == 0) {
                        print "</tr><tr>";
                    }
                    print "\n\t\t\t\t\t\t\t<td valign='top'>\n\t\t\t\t\t\t\t" . CFile::ShowImage($aImg['FILE_ID'], 100, 100, "border=0 style=cursor:pointer onclick=\"doInsert('[IMG ID=" . $aImg['ID'] . "]','',false)\" title='" . GetMessage("BLOG_P_INSERT") . "'") . "<br><input class=inputtext name=IMAGE_ID_title[" . $aImg['ID'] . "] value=\"" . htmlspecialchars($aImg['TITLE']) . "\" style=\"width:100px\" title=\"" . GetMessage("BLOG_BLOG_IN_IMAGES_TITLE") . "\"><br><input type=checkbox name=IMAGE_ID_del[" . $aImg['ID'] . "] id=img_del_{$aImg['ID']}> <label for=img_del_{$aImg['ID']} class=tablebodytext>" . GetMessage("BLOG_DELETE") . "</label>\n\t\t\t\t\t\t\t";
                    $i++;
                } while ($aImg = $res->Fetch());
                print "\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>";
            }
            ?>
Пример #17
0
	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."&amp;";
							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("&amp;", "&lt;", "&gt;", "&quot;"),
								$title);
							*/
							//$text1 = HTMLToTxt($text, "", Array("\&nbsp;"), 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;
	}
Пример #18
0
 function convert_blog_image($p1 = "", $imageId = "", $p2 = "", $type = "html", $serverName = "")
 {
     $imageId = IntVal($imageId);
     if ($imageId <= 0) {
         return;
     }
     $res = "";
     if (IntVal($this->arImages[$imageId]) > 0) {
         if ($f = CBlogImage::GetByID($imageId)) {
             if ($db_img_arr = CFile::GetFileArray($this->arImages[$imageId])) {
                 $strImage = $db_img_arr["SRC"];
                 $strPar = "";
                 preg_match("/width\\=([0-9]+)/is" . BX_UTF_PCRE_MODIFIER, $p1, $width);
                 preg_match("/height\\=([0-9]+)/is" . BX_UTF_PCRE_MODIFIER, $p1, $height);
                 $width = intval($width[1]);
                 $height = intval($height[1]);
                 if ($width <= 0) {
                     preg_match("/width\\=([0-9]+)/is" . BX_UTF_PCRE_MODIFIER, $p2, $width);
                     $width = intval($width[1]);
                 }
                 if ($height <= 0) {
                     preg_match("/height\\=([0-9]+)/is" . BX_UTF_PCRE_MODIFIER, $p2, $height);
                     $height = intval($height[1]);
                 }
                 if (IntVal($width) <= 0) {
                     $width = $db_img_arr["WIDTH"];
                 }
                 if (IntVal($height) <= 0) {
                     $height = $db_img_arr["HEIGHT"];
                 }
                 if ($width > $this->imageWidth || $height > $this->imageHeight) {
                     $arFileTmp = CFile::ResizeImageGet($db_img_arr, array("width" => $this->imageWidth, "height" => $this->imageHeight), BX_RESIZE_IMAGE_PROPORTIONAL, true);
                     if (substr($arFileTmp["src"], 0, 1) == "/") {
                         $strImage = $serverName . $arFileTmp["src"];
                     } else {
                         $strImage = $arFileTmp["src"];
                     }
                     $width = $arFileTmp["width"];
                     $height = $arFileTmp["height"];
                 }
                 $strPar = ' width="' . $width . '" height="' . $height . '"';
                 $res = '<img src="' . $strImage . '" title="' . $f["TITLE"] . '" border="0"' . $strPar . '/>';
             }
         }
     }
     return $res;
 }
Пример #19
0
 function UpdateLog($postID, $arPost, $arBlog, $arParams)
 {
     if (!CModule::IncludeModule('socialnetwork')) {
         return;
     }
     global $DB;
     $parserBlog = new blogTextParser(false, $arParams["PATH_TO_SMILE"]);
     preg_match("#^(.*?)<cut[\\s]*(/>|>).*?\$#is", $arPost["DETAIL_TEXT"], $arMatches);
     if (count($arMatches) <= 0) {
         preg_match("#^(.*?)\\[cut[\\s]*(/\\]|\\]).*?\$#is", $arPost["DETAIL_TEXT"], $arMatches);
     }
     if (count($arMatches) > 0) {
         $cut_suffix = "#CUT#";
     } else {
         $cut_suffix = "";
     }
     $arImages = array();
     $res = CBlogImage::GetList(array("ID" => "ASC"), array("POST_ID" => $postID, "BLOG_ID" => $arBlog["ID"], "IS_COMMENT" => "N"));
     while ($arImage = $res->Fetch()) {
         $arImages[$arImage['ID']] = $arImage['FILE_ID'];
     }
     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"], true, $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"], true, $arImages, $arAllow, array("isSonetLog" => true));
     }
     $text4message .= $cut_suffix;
     $arSoFields = array("TITLE_TEMPLATE" => "#USER_NAME# " . GetMessage("BLG_SONET_TITLE"), "TITLE" => $arPost["TITLE"], "MESSAGE" => $text4message, "TEXT_MESSAGE" => $text4mail, "ENABLE_COMMENTS" => array_key_exists("ENABLE_COMMENTS", $arPost) && $arPost["ENABLE_COMMENTS"] == "N" ? "N" : "Y", "=LOG_UPDATE" => 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());
     $dbRes = CSocNetLog::GetList(array("ID" => "DESC"), array("EVENT_ID" => "blog_post", "SOURCE_ID" => $postID), false, false, array("ID", "ENTITY_TYPE", "ENTITY_ID"));
     if ($arRes = $dbRes->Fetch()) {
         CSocNetLog::Update($arRes["ID"], $arSoFields);
         $socnetPerms = CBlogPost::GetSocNetPermsCode($postID);
         if (!in_array("U" . $arPost["AUTHOR_ID"], $socnetPerms)) {
             $socnetPerms[] = "U" . $arPost["AUTHOR_ID"];
         }
         if (CModule::IncludeModule("extranet")) {
             $arSiteID = CExtranet::GetSitesByLogDestinations($socnetPerms);
             CSocNetLog::Update($arRes["ID"], array("SITE_ID" => $arSiteID));
         }
         $socnetPerms[] = "SA";
         // socnet admin
         CSocNetLogRights::DeleteByLogID($arRes["ID"]);
         CSocNetLogRights::Add($arRes["ID"], $socnetPerms);
     }
 }
Пример #20
0
 $arPost = CBlogPost::GetByID($arList["ID"]);
 $arPost = CBlogTools::htmlspecialcharsExArray($arPost);
 $arBlog = CBlog::GetByID($arPost["BLOG_ID"]);
 $arBlog = CBlogTools::htmlspecialcharsExArray($arBlog);
 $arPost["urlToPost"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_POST"], array("blog" => $arBlog["URL"], "post_id" => $arPost["ID"]));
 $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"]));
 } else {
     if ($arOwnerBlog = CBlog::GetByOwnerID($arPost["AUTHOR_ID"], $arParams["GROUP_ID"])) {
         $arPost["urlToBlog"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("blog" => $arOwnerBlog["URL"]));
     }
 }
 $p = new blogTextParser(false, $arParams["PATH_TO_SMILE"]);
 $arImages = array();
 $dbImage = CBlogImage::GetList(array("ID" => "ASC"), array("POST_ID" => $arPost["ID"], "BLOG_ID" => $arBlog["ID"]));
 while ($arImage = $dbImage->Fetch()) {
     $arImages[$arImage["ID"]] = $arImage["FILE_ID"];
 }
 if ($arPost["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");
     if (COption::GetOptionString("blog", "allow_video", "Y") != "Y") {
         $arAllow["VIDEO"] = "N";
     }
     $arPost["TEXT_FORMATED"] = $p->convert($arPost["~DETAIL_TEXT"], true, $arImages, $arAllow);
 } 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 (COption::GetOptionString("blog", "allow_video", "Y") != "Y") {
         $arAllow["VIDEO"] = "N";
     }
     $arPost["TEXT_FORMATED"] = $p->convert($arPost["~DETAIL_TEXT"], true, $arImages, $arAllow);
Пример #21
0
    function GetPost($params, $arPath)
    {
        global $USER;
        $postId = IntVal(CBlogMetaWeblog::DecodeParams($params[0]["#"]["value"][0]["#"]));
        $user = CBlogMetaWeblog::DecodeParams($params[1]["#"]["value"][0]["#"]);
        $password = CBlogMetaWeblog::DecodeParams($params[2]["#"]["value"][0]["#"]);
        if (CBlogMetaWeblog::Authorize($user, $password)) {
            $result = '';
            $userId = $USER->GetID();
            if (IntVal($postId) > 0) {
                $arSelectedFields = array("ID", "BLOG_ID", "TITLE", "DATE_PUBLISH", "AUTHOR_ID", "DETAIL_TEXT", "DETAIL_TEXT_TYPE", "BLOG_URL", "BLOG_OWNER_ID");
                $dbPost = CBlogPost::GetList(array(), array("AUTHOR_ID" => $userId, "ID" => $postId), false, array("nTopCount" => 1), $arSelectedFields);
                if ($arPost = $dbPost->Fetch()) {
                    $parser = new blogTextParser();
                    $dateISO = date("Y-m-d\\TH:i:s", MakeTimeStamp($arPost["DATE_PUBLISH"]));
                    $title = htmlspecialcharsEx($arPost["TITLE"]);
                    $arImages = array();
                    $res = CBlogImage::GetList(array("ID" => "ASC"), array("POST_ID" => $arPost["ID"], "BLOG_ID" => $arPost["BLOG_ID"], "IS_COMMENT" => "N"));
                    while ($arImage = $res->Fetch()) {
                        $arImages[$arImage['ID']] = $arImage['FILE_ID'];
                    }
                    if ($arPost["DETAIL_TEXT_TYPE"] == "html") {
                        $arAllow = array("HTML" => "Y", "ANCHOR" => "Y", "IMG" => "Y", "SMILES" => "Y", "NL2BR" => "N", "VIDEO" => "N", "QUOTE" => "N", "CODE" => "N");
                        $text = $parser->convert_to_rss($arPost["DETAIL_TEXT"], $arImages, $arAllow, false);
                    } else {
                        $arAllow = array("HTML" => "N", "ANCHOR" => "Y", "BIU" => "Y", "IMG" => "Y", "QUOTE" => "N", "CODE" => "N", "FONT" => "Y", "LIST" => "Y", "SMILES" => "Y", "NL2BR" => "N", "VIDEO" => "N");
                        $text = $parser->convert_to_rss(htmlspecialcharsEx($arPost["DETAIL_TEXT"]), $arImages, $arAllow, false);
                    }
                    $text = "<![CDATA[" . $text . "]]>";
                    $category = "";
                    $dbCategory = CBlogPostCategory::GetList(array(), array("BLOG_ID" => $arPost["BLOG_ID"], "POST_ID" => $arPost["ID"]));
                    while ($arCategory = $dbCategory->Fetch()) {
                        $category .= '<value>' . htmlspecialcharsEx($arCategory["NAME"]) . '</value>';
                    }
                    $path2Post = "";
                    if (strlen($arPath["PATH_TO_POST"]) > 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");
                        }
                        $path2Post = "http://" . $serverName . CComponentEngine::MakePathFromTemplate($arPath["PATH_TO_POST"], array("blog" => $arPost["BLOG_URL"], "user_id" => $arPost["BLOG_OWNER_ID"], "post_id" => $arPost["ID"]));
                    }
                    $result .= '
						<value>
							<struct>';
                    if (strlen($category) > 0) {
                        $result .= '<member>
									<name>categories</name>
									<value>
									<array>
									<data>
									' . $category . '
									</data>
									</array>
									</value>
								</member>
							';
                    }
                    $result .= '
								<member>
									<name>dateCreated</name>
									<value>
									<dateTime.iso8601>' . $dateISO . '</dateTime.iso8601>
									</value>
								</member>
								<member>
									<name>description</name>
									<value>' . $text . '</value>
								</member>
								<member>
									<name>link</name>
									<value>' . htmlspecialcharsEx($path2Post) . '</value>
								</member>
								<member>
									<name>postid</name>
									<value>
									<i4>' . $arPost["ID"] . '</i4>
									</value>
								</member>
								<member>
									<name>title</name>
									<value>' . $title . '</value>
								</member>
								<member>
									<name>publish</name>
									<value>
									<boolean>' . ($arPost["PUBLISH_STATUS"] == "D" ? "0" : "1") . '</boolean>
									</value>
								</member>
							</struct>
						</value>
						';
                }
            }
            return '<params>
						<param>
							<value>
								<array>
									<data>' . $result . '</data>
								</array>
							</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>';
        }
    }
Пример #22
0
    CBlogSitePath::Add(array("SITE_ID" => $siteID, "PATH" => "/communication/blog/user/#user_id#.php", "TYPE" => "U"));
    if (IsModuleInstalled("socialnetwork")) {
        $rsUser = CUser::GetByID(1);
        $arUser = $rsUser->Fetch();
        $blogID = CBlog::Add(array("NAME" => GetMessage("BLG_NAME") . " " . $arUser["NAME"] . " " . $arUser["LAST_NAME"], "DESCRIPTION" => "", "GROUP_ID" => $SocNetGroupID, "ENABLE_IMG_VERIF" => 'Y', "EMAIL_NOTIFY" => 'Y', "USE_SOCNET" => 'Y', "ENABLE_RSS" => "Y", "ALLOW_HTML" => "Y", "URL" => str_replace(" ", "_", $arUser["LOGIN"]) . "-blog", "ACTIVE" => "Y", "=DATE_CREATE" => $DB->GetNowFunction(), "=DATE_UPDATE" => $DB->GetNowFunction(), "OWNER_ID" => 1, "PERMS_POST" => array("1" => BLOG_PERMS_READ, "2" => BLOG_PERMS_READ), "PERMS_COMMENT" => array("1" => BLOG_PERMS_WRITE, "2" => BLOG_PERMS_WRITE)));
        CBlog::AddSocnetRead($blogID);
        $categoryID[] = CBlogCategory::Add(array("BLOG_ID" => $blogID, "NAME" => GetMessage("BLOG_DEMO_CATEGORY_1")));
        $categoryID[] = CBlogCategory::Add(array("BLOG_ID" => $blogID, "NAME" => GetMessage("BLOG_DEMO_CATEGORY_2")));
        $postID = CBlogPost::Add(array("TITLE" => GetMessage("BLOG_DEMO_MESSAGE_TITLE_1"), "DETAIL_TEXT" => str_replace('[IMG ID=1]', "[IMG ID=2]", GetMessage("BLOG_DEMO_MESSAGE_BODY_1")), "DETAIL_TEXT_TYPE" => "text", "BLOG_ID" => $blogID, "AUTHOR_ID" => 1, "=DATE_CREATE" => $DB->GetNowFunction(), "=DATE_PUBLISH" => $DB->GetNowFunction(), "PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_PUBLISH, "ENABLE_TRACKBACK" => 'N', "ENABLE_COMMENTS" => 'Y', "CATEGORY_ID" => implode(",", $categoryID), "PERMS_P" => array(1 => BLOG_PERMS_READ, 2 => BLOG_PERMS_READ), "PERMS_C" => array(1 => BLOG_PERMS_WRITE, 2 => BLOG_PERMS_WRITE)));
        foreach ($categoryID as $v) {
            CBlogPostCategory::Add(array("BLOG_ID" => $blogID, "POST_ID" => $postID, "CATEGORY_ID" => $v));
        }
        $arImage = CFile::MakeFileArray(dirname(__FILE__) . '/images/' . GetMessage("BLOG_DEMO_IMG"));
        $arImage["MODULE_ID"] = "blog";
        $arFields = array("BLOG_ID" => $blogID, "POST_ID" => $postID, "USER_ID" => 1, "=TIMESTAMP_X" => $DB->GetNowFunction(), "TITLE" => GetMessage("BLOG_DEMO_IMG_TITLE"), "IMAGE_SIZE" => $arImage["size"], "FILE_ID" => $arImage);
        CBlogImage::Add($arFields);
        CBlogComment::Add(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", "PERMS_P" => array(), "PERMS_C" => array()));
    }
}
DemoSiteUtil::AddMenuItem("/communication/.left.menu.php", array(GetMessage("BLOG_DEMO_LEFT_MENU_1"), "/communication/blog/", array(), array(), ""));
/*
DemoSiteUtil::AddMenuItem("/communication/blog/.left.menu.php", Array(
	GetMessage("BLOG_DEMO_LEFT_MENU_2"), 
	"/communication/blog/index.php", 
	Array(), 
	Array(), 
	"" 
));	
*/
$source_base = dirname(__FILE__);
CopyDirFiles($source_base . "/public/" . $LID, $_SERVER["DOCUMENT_ROOT"] . "/communication/blog", true, true);