PageRenderTime 52ms CodeModel.GetById 23ms RepoModel.GetById 1ms app.codeStats 0ms

/components/bitrix/blog.friends/component.php

https://gitlab.com/alexprowars/bitrix
PHP | 208 lines | 182 code | 25 blank | 1 comment | 56 complexity | a8db014d880661d8bd5908ed58c682d4 MD5 | raw file
  1. <?
  2. if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
  3. if (!CModule::IncludeModule("blog"))
  4. {
  5. ShowError(GetMessage("BLOG_MODULE_NOT_INSTALL"));
  6. return;
  7. }
  8. $arParams["ID"] = intval($arParams["ID"]);
  9. if(!is_array($arParams["GROUP_ID"]))
  10. $arParams["GROUP_ID"] = array($arParams["GROUP_ID"]);
  11. foreach($arParams["GROUP_ID"] as $k=>$v)
  12. if(intval($v) <= 0)
  13. unset($arParams["GROUP_ID"][$k]);
  14. if($arParams["SET_TITLE"]=="Y")
  15. $APPLICATION->SetTitle(GetMessage("B_B_FR_TITLE"));
  16. $arParams["MESSAGE_COUNT"] = intval($arParams["MESSAGE_COUNT"])>0 ? intval($arParams["MESSAGE_COUNT"]): 20;
  17. if($arParams["BLOG_VAR"] == '')
  18. $arParams["BLOG_VAR"] = "blog";
  19. if($arParams["PAGE_VAR"] == '')
  20. $arParams["PAGE_VAR"] = "page";
  21. if($arParams["USER_VAR"] == '')
  22. $arParams["USER_VAR"] = "id";
  23. if($arParams["POST_VAR"] == '')
  24. $arParams["POST_VAR"] = "id";
  25. $arParams["PATH_TO_BLOG"] = trim($arParams["PATH_TO_BLOG"]);
  26. if($arParams["PATH_TO_BLOG"] == '')
  27. $arParams["PATH_TO_BLOG"] = htmlspecialcharsbx($APPLICATION->GetCurPage()."?".$arParams["PAGE_VAR"]."=blog&".$arParams["BLOG_VAR"]."=#blog#");
  28. $arParams["PATH_TO_BLOG_CATEGORY"] = trim($arParams["PATH_TO_BLOG_CATEGORY"]);
  29. if($arParams["PATH_TO_BLOG_CATEGORY"] == '')
  30. $arParams["PATH_TO_BLOG_CATEGORY"] = htmlspecialcharsbx($APPLICATION->GetCurPage()."?".$arParams["PAGE_VAR"]."=blog&".$arParams["BLOG_VAR"]."=#blog#"."&calegory=#category#");
  31. $arParams["PATH_TO_POST"] = trim($arParams["PATH_TO_POST"]);
  32. if($arParams["PATH_TO_POST"] == '')
  33. $arParams["PATH_TO_POST"] = htmlspecialcharsbx($APPLICATION->GetCurPage()."?".$arParams["PAGE_VAR"]."=post&".$arParams["BLOG_VAR"]."=#blog#&".$arParams["POST_VAR"]."=#post_id#");
  34. $arParams["PATH_TO_USER"] = trim($arParams["PATH_TO_USER"]);
  35. if($arParams["PATH_TO_USER"] == '')
  36. $arParams["PATH_TO_USER"] = htmlspecialcharsbx($APPLICATION->GetCurPage()."?".$arParams["PAGE_VAR"]."=user&".$arParams["USER_VAR"]."=#user_id#");
  37. $arParams["PATH_TO_SMILE"] = trim($arParams["PATH_TO_SMILE"]) == '' ? false : trim($arParams["PATH_TO_SMILE"]);
  38. $arParams["DATE_TIME_FORMAT"] = trim(empty($arParams["DATE_TIME_FORMAT"]) ? $DB->DateFormatToPHP(CSite::GetDateFormat("FULL")) : $arParams["DATE_TIME_FORMAT"]);
  39. $arParams["IMAGE_MAX_WIDTH"] = intval($arParams["IMAGE_MAX_WIDTH"]);
  40. $arParams["IMAGE_MAX_HEIGHT"] = intval($arParams["IMAGE_MAX_HEIGHT"]);
  41. $arParams["ALLOW_POST_CODE"] = $arParams["ALLOW_POST_CODE"] !== "N";
  42. if(!is_array($arParams["POST_PROPERTY_LIST"]))
  43. $arParams["POST_PROPERTY_LIST"] = Array("UF_BLOG_POST_DOC");
  44. else
  45. $arParams["POST_PROPERTY_LIST"][] = "UF_BLOG_POST_DOC";
  46. // activation rating
  47. CRatingsComponentsMain::GetShowRating($arParams);
  48. if(intval($arParams["ID"])>0)
  49. {
  50. $arBlogUser = CBlogUser::GetByID($arParams["ID"], BLOG_BY_USER_ID);
  51. $arBlogUser = CBlogTools::htmlspecialcharsExArray($arBlogUser);
  52. if ($arBlogUser)
  53. {
  54. if ($USER->IsAuthorized()
  55. && $USER->GetID() == $arBlogUser["USER_ID"])
  56. {
  57. if($arParams["SET_TITLE"]=="Y")
  58. $APPLICATION->SetTitle(GetMessage("B_B_FR_TITLES"));
  59. }
  60. else
  61. {
  62. $dbUser = CUser::GetByID($arBlogUser["USER_ID"]);
  63. $arUser = $dbUser->GetNext();
  64. if($arParams["SET_TITLE"]=="Y")
  65. $APPLICATION->SetTitle(str_replace("#NAME#", CBlogUser::GetUserName($arBlogUser["ALIAS"], $arUser["NAME"], $arUser["LAST_NAME"], $arUser["LOGIN"]), GetMessage("B_B_FR_TITLE_OF")));
  66. }
  67. $dbList = CBlogUser::GetUserFriendsList($arParams["ID"], $USER->GetID(), $USER->IsAuthorized(), $arParams["MESSAGE_COUNT"], $arParams["GROUP_ID"]);
  68. $arResult["FRIENDS_POSTS"] = Array();
  69. $arResult["IDS"] = Array();
  70. $p = new blogTextParser(false, $arParams["PATH_TO_SMILE"]);
  71. $arParserParams = Array(
  72. "imageWidth" => $arParams["IMAGE_MAX_WIDTH"],
  73. "imageHeight" => $arParams["IMAGE_MAX_HEIGHT"],
  74. );
  75. while($arList = $dbList->Fetch())
  76. {
  77. $arResult["IDS"][] = $arList["ID"];
  78. $arPost = CBlogPost::GetByID($arList["ID"]);
  79. $arPost = CBlogTools::htmlspecialcharsExArray($arPost);
  80. $arBlog = CBlog::GetByID($arPost["BLOG_ID"]);
  81. $arBlog = CBlogTools::htmlspecialcharsExArray($arBlog);
  82. $arPost["urlToPost"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_POST"], array("blog" => $arBlog["URL"], "post_id"=>CBlogPost::GetPostID($arPost["ID"], $arPost["CODE"], $arParams["ALLOW_POST_CODE"])));
  83. $arPost["urlToAuthor"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $arPost["AUTHOR_ID"]));
  84. if($arPost["AUTHOR_ID"] == $arBlog["OWNER_ID"])
  85. {
  86. $arPost["urlToBlog"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("blog" => $arBlog["URL"]));
  87. }
  88. else
  89. {
  90. if($arOwnerBlog = CBlog::GetByOwnerID($arPost["AUTHOR_ID"], $arParams["GROUP_ID"]))
  91. $arPost["urlToBlog"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("blog" => $arOwnerBlog["URL"]));
  92. }
  93. $arImages = array();
  94. $dbImage = CBlogImage::GetList(array("ID"=>"ASC"),array("POST_ID"=>$arPost["ID"], "BLOG_ID"=>$arBlog["ID"], "IS_COMMENT" => "N"));
  95. while ($arImage = $dbImage->Fetch())
  96. {
  97. $arImages[$arImage['ID']] = $arImage['FILE_ID'];
  98. $arPost["arImages"][$arImage['ID']] = Array(
  99. "small" => "/bitrix/components/bitrix/blog/show_file.php?fid=".$arImage['ID']."&width=70&height=70&type=square",
  100. "full" => "/bitrix/components/bitrix/blog/show_file.php?fid=".$arImage['ID']."&width=1000&height=1000"
  101. );
  102. }
  103. if($arPost["DETAIL_TEXT_TYPE"] == "html" && COption::GetOptionString("blog","allow_html", "N") == "Y")
  104. {
  105. $arAllow = array("HTML" => "Y", "ANCHOR" => "Y", "IMG" => "Y", "SMILES" => "Y", "NL2BR" => "N", "VIDEO" => "Y", "QUOTE" => "Y", "CODE" => "Y");
  106. if(COption::GetOptionString("blog","allow_video", "Y") != "Y")
  107. $arAllow["VIDEO"] = "N";
  108. $arPost["TEXT_FORMATED"] = $p->convert($arPost["~DETAIL_TEXT"], true, $arImages, $arAllow, $arParserParams);
  109. }
  110. else
  111. {
  112. $arAllow = array("HTML" => "N", "ANCHOR" => "Y", "BIU" => "Y", "IMG" => "Y", "QUOTE" => "Y", "CODE" => "Y", "FONT" => "Y", "LIST" => "Y", "SMILES" => "Y", "NL2BR" => "N", "VIDEO" => "Y");
  113. if(COption::GetOptionString("blog","allow_video", "Y") != "Y")
  114. $arAllow["VIDEO"] = "N";
  115. $arPost["TEXT_FORMATED"] = $p->convert($arPost["~DETAIL_TEXT"], true, $arImages, $arAllow, $arParserParams);
  116. }
  117. $arPost["IMAGES"] = $arImages;
  118. if(!empty($p->showedImages))
  119. {
  120. foreach($p->showedImages as $val)
  121. {
  122. if(!empty($arPost["arImages"][$val]))
  123. unset($arPost["arImages"][$val]);
  124. }
  125. }
  126. $arPost["POST_PROPERTIES"] = array("SHOW" => "N");
  127. if (!empty($arParams["POST_PROPERTY_LIST"]))
  128. {
  129. $arPostFields = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFields("BLOG_POST", $arPost["ID"], LANGUAGE_ID);
  130. if (count($arParams["POST_PROPERTY_LIST"]) > 0)
  131. {
  132. foreach ($arPostFields as $FIELD_NAME => $arPostField)
  133. {
  134. if (!in_array($FIELD_NAME, $arParams["POST_PROPERTY_LIST"]))
  135. continue;
  136. $arPostField["EDIT_FORM_LABEL"] = $arPostField["EDIT_FORM_LABEL"] <> '' ? $arPostField["EDIT_FORM_LABEL"] : $arPostField["FIELD_NAME"];
  137. $arPostField["EDIT_FORM_LABEL"] = htmlspecialcharsEx($arPostField["EDIT_FORM_LABEL"]);
  138. $arPostField["~EDIT_FORM_LABEL"] = $arPostField["EDIT_FORM_LABEL"];
  139. $arPost["POST_PROPERTIES"]["DATA"][$FIELD_NAME] = $arPostField;
  140. }
  141. }
  142. if (!empty($arPost["POST_PROPERTIES"]["DATA"]))
  143. $arPost["POST_PROPERTIES"]["SHOW"] = "Y";
  144. }
  145. $arPost["BlogUser"] = CBlogUser::GetByID($arPost["AUTHOR_ID"], BLOG_BY_USER_ID);
  146. $arPost["BlogUser"] = CBlogTools::htmlspecialcharsExArray($arPost["BlogUser"]);
  147. $dbUser = CUser::GetByID($arPost["AUTHOR_ID"]);
  148. $arPost["arUser"] = $dbUser->GetNext();
  149. $arPost["AuthorName"] = CBlogUser::GetUserName($arPost["BlogUser"]["ALIAS"], $arPost["arUser"]["NAME"], $arPost["arUser"]["LAST_NAME"], $arPost["arUser"]["LOGIN"]);
  150. if (preg_match("/(\[CUT\])/i",$arPost["DETAIL_TEXT"]) || preg_match("/(<CUT>)/i",$arPost["DETAIL_TEXT"]))
  151. $arPost["CUT"] = "Y";
  152. if($arPost["CATEGORY_ID"] <> '')
  153. {
  154. $arCategory = explode(",",$arPost["CATEGORY_ID"]);
  155. foreach($arCategory as $v)
  156. {
  157. if(intval($v)>0)
  158. {
  159. $arCatTmp = CBlogTools::htmlspecialcharsExArray(CBlogCategory::GetByID($v));
  160. $arCatTmp["urlToCategory"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG_CATEGORY"], array("blog" => $arBlog["URL"], "category_id" => $v));
  161. $arPost["Category"][] = $arCatTmp;
  162. }
  163. }
  164. }
  165. $arPost["DATE_PUBLISH_FORMATED"] = FormatDate($arParams["DATE_TIME_FORMAT"], MakeTimeStamp($arPost["DATE_PUBLISH"], CSite::GetDateFormat("FULL")));
  166. $arResult["FRIENDS_POSTS"][] = array("POST" => $arPost, "BLOG" => $arBlog);
  167. }
  168. if($arParams["SHOW_RATING"] == "Y" && !empty($arResult["IDS"]))
  169. $arResult['RATING'] = CRatings::GetRatingVoteResult('BLOG_POST', $arResult["IDS"]);
  170. }
  171. else
  172. {
  173. $arResult["FATAL_MESSAGE"] = GetMessage("B_B_FR_NO_USER");
  174. CHTTP::SetStatus("404 Not Found");
  175. }
  176. }
  177. else
  178. {
  179. $arResult["FATAL_MESSAGE"] = GetMessage("B_B_FR_NO_USER");
  180. CHTTP::SetStatus("404 Not Found");
  181. }
  182. $this->IncludeComponentTemplate();
  183. ?>