Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
 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"));
             }
         }
     }
 }
Ejemplo n.º 3
0
 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']);
         }
     }
 }
Ejemplo n.º 4
0
 //@::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") {
Ejemplo n.º 5
0
$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"]));
Ejemplo n.º 6
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"];
 }
Ejemplo n.º 7
0
 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;
     }
 }
Ejemplo n.º 8
0
 //@::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");
Ejemplo n.º 9
0
<?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;
    }
}
Ejemplo n.º 10
0
             }
         }
     }
 }
 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);
Ejemplo n.º 11
0
 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;
 }
Ejemplo n.º 12
0
            /*Неэффективный кусок кода*/
            $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();
}
Ejemplo n.º 13
0
 }
 $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"])) {
Ejemplo n.º 14
0
			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;
Ejemplo n.º 15
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>&nbsp;<a href='javascript:category_edit(0)' class=blogtext title='<?php 
Ejemplo n.º 16
0
                                $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 {
Ejemplo n.º 17
0
 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;
 }
Ejemplo n.º 18
0
    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"];
Ejemplo n.º 19
0
    $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"]);
Ejemplo n.º 20
0
     $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";
         }
Ejemplo n.º 21
0
 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;
 }
Ejemplo n.º 22
0
         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")) {
Ejemplo n.º 23
0
 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;
 }
Ejemplo n.º 24
0
 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);
 }
Ejemplo n.º 25
0
}
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();
Ejemplo n.º 26
0
         $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"]));
Ejemplo n.º 27
0
                 $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"]) {
Ejemplo n.º 28
0
 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);
             }
         }
     }
 }
Ejemplo n.º 29
0
    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>';
        }
    }
Ejemplo n.º 30
0
********************************************************************/
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";