Your IP : 3.144.103.115


Current Path : /home/bitrix/ext_www/dev.shuft.com.ua/bitrix/components/bitrix/blog.post.edit/
Upload File :
Current File : /home/bitrix/ext_www/dev.shuft.com.ua/bitrix/components/bitrix/blog.post.edit/component.php

<?
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
if (!CModule::IncludeModule("blog"))
{
	ShowError(GetMessage("BLOG_MODULE_NOT_INSTALL"));
	return;
}

$arParams["ID"] = IntVal($arParams["ID"]);
$arParams["BLOG_URL"] = preg_replace("/[^a-zA-Z0-9_-]/is", "", Trim($arParams["BLOG_URL"]));
if(!is_array($arParams["GROUP_ID"]))
	$arParams["GROUP_ID"] = array($arParams["GROUP_ID"]);
foreach($arParams["GROUP_ID"] as $k=>$v)
	if(IntVal($v) <= 0)
		unset($arParams["GROUP_ID"][$k]);
		
if(strLen($arParams["BLOG_VAR"])<=0)
	$arParams["BLOG_VAR"] = "blog";
if(strLen($arParams["PAGE_VAR"])<=0)
	$arParams["PAGE_VAR"] = "page";
if(strLen($arParams["USER_VAR"])<=0)
	$arParams["USER_VAR"] = "id";
if(strLen($arParams["POST_VAR"])<=0)
	$arParams["POST_VAR"] = "id";
	
$arParams["PATH_TO_BLOG"] = trim($arParams["PATH_TO_BLOG"]);
if(strlen($arParams["PATH_TO_BLOG"])<=0)
	$arParams["PATH_TO_BLOG"] = htmlspecialcharsbx($APPLICATION->GetCurPage()."?".$arParams["PAGE_VAR"]."=blog&".$arParams["BLOG_VAR"]."=#blog#");

$arParams["PATH_TO_POST"] = trim($arParams["PATH_TO_POST"]);
if(strlen($arParams["PATH_TO_POST"])<=0)
	$arParams["PATH_TO_POST"] = htmlspecialcharsbx($APPLICATION->GetCurPage()."?".$arParams["PAGE_VAR"]."=post&".$arParams["BLOG_VAR"]."=#blog#&".$arParams["POST_VAR"]."=#post_id#");

$arParams["PATH_TO_POST_EDIT"] = trim($arParams["PATH_TO_POST_EDIT"]);
if(strlen($arParams["PATH_TO_POST_EDIT"])<=0)
	$arParams["PATH_TO_POST_EDIT"] = htmlspecialcharsbx($APPLICATION->GetCurPage()."?".$arParams["PAGE_VAR"]."=post_edit&".$arParams["BLOG_VAR"]."=#blog#&".$arParams["POST_VAR"]."=#post_id#");

$arParams["PATH_TO_USER"] = trim($arParams["PATH_TO_USER"]);
if(strlen($arParams["PATH_TO_USER"])<=0)
	$arParams["PATH_TO_USER"] = htmlspecialcharsbx($APPLICATION->GetCurPage()."?".$arParams["PAGE_VAR"]."=user&".$arParams["USER_VAR"]."=#user_id#");

$arParams["PATH_TO_DRAFT"] = trim($arParams["PATH_TO_DRAFT"]);
if(strlen($arParams["PATH_TO_DRAFT"])<=0)
	$arParams["PATH_TO_DRAFT"] = htmlspecialcharsbx($APPLICATION->GetCurPage()."?".$arParams["PAGE_VAR"]."=draft&".$arParams["BLOG_VAR"]."=#blog#");

$arParams["PATH_TO_GROUP_BLOG"] = trim($arParams["PATH_TO_GROUP_BLOG"]);
if(strlen($arParams["PATH_TO_GROUP_BLOG"])<=0)
{
	$arParams["PATH_TO_GROUP_BLOG"] = "/workgroups/group/#group_id#/blog/";
	if($arParams["MICROBLOG"])
		$arParams["PATH_TO_GROUP_BLOG"] = "/workgroups/group/#group_id#/microblog/";
}
if(strlen($arParams["PATH_TO_GROUP_POST"])<=0)
{
	$arParams["PATH_TO_GROUP_POST"] = "/workgroups/group/#group_id#/blog/#post_id#/";
	if($arParams["MICROBLOG"])
		$arParams["PATH_TO_GROUP_POST"] = "/workgroups/group/#group_id#/microblog/#post_id#/";
}
if(strlen($arParams["PATH_TO_GROUP_POST_EDIT"])<=0)
{
	$arParams["PATH_TO_GROUP_POST_EDIT"] = "/workgroups/group/#group_id#/blog/edit/#post_id#/";
	if($arParams["MICROBLOG"])
		$arParams["PATH_TO_GROUP_POST_EDIT"] = "/workgroups/group/#group_id#/microblog/edit/#post_id#/?microblog=Y";
}
if(strlen($arParams["PATH_TO_GROUP_DRAFT"])<=0)
	$arParams["PATH_TO_GROUP_DRAFT"] = "/workgroups/group/#group_id#/blog/draft/";

if(!is_array($arParams["POST_PROPERTY"]))
	$arParams["POST_PROPERTY"] = Array("UF_BLOG_POST_DOC");
else
	$arParams["POST_PROPERTY"][] = "UF_BLOG_POST_DOC";
	
$arParams["PATH_TO_SMILE"] = strlen(trim($arParams["PATH_TO_SMILE"]))<=0 ? false : trim($arParams["PATH_TO_SMILE"]);
$arParams["DATE_TIME_FORMAT"] = trim(empty($arParams["DATE_TIME_FORMAT"]) ? $DB->DateFormatToPHP(CSite::GetDateFormat("FULL")) : $arParams["DATE_TIME_FORMAT"]);

$arParams["SMILES_COUNT"] = IntVal($arParams["SMILES_COUNT"]);
if(IntVal($arParams["SMILES_COUNT"]) <= 0)
	$arParams["SMILES_COUNT"] = 5;

$arParams["ALLOW_POST_MOVE"] = ($arParams["ALLOW_POST_MOVE"] == "Y") ? "Y" : "N";

$arParams["IMAGE_MAX_WIDTH"] = IntVal($arParams["IMAGE_MAX_WIDTH"]);
$arParams["IMAGE_MAX_HEIGHT"] = IntVal($arParams["IMAGE_MAX_HEIGHT"]);

$arParams["EDITOR_RESIZABLE"] = $arParams["EDITOR_RESIZABLE"] !== "N";
$arParams["EDITOR_CODE_DEFAULT"] = $arParams["EDITOR_CODE_DEFAULT"] === "Y";
$arParams["EDITOR_DEFAULT_HEIGHT"] = intVal($arParams["EDITOR_DEFAULT_HEIGHT"]);
if(IntVal($arParams["EDITOR_DEFAULT_HEIGHT"]) <= 0)
	$arParams["EDITOR_DEFAULT_HEIGHT"] = 300;

$user_id = $USER->GetID();
$arResult["UserID"] = $user_id;
$arResult["enable_trackback"] = COption::GetOptionString("blog","enable_trackback", "Y");
$arResult["allowVideo"] = COption::GetOptionString("blog","allow_video", "Y");
$blogModulePermissions = $APPLICATION->GetGroupRight("blog");

$arParams["ALLOW_POST_CODE"] = $arParams["ALLOW_POST_CODE"] !== "N";
$arParams["USE_GOOGLE_CODE"] = $arParams["USE_GOOGLE_CODE"] === "Y";
$arParams["SEO_USE"] = ($arParams["SEO_USE"] == "Y") ? "Y" : "N";

$arResult["preview"] = (strlen($_POST["preview"]) > 0) ? "Y" : "N";

$arBlog = CBlog::GetByUrl($arParams["BLOG_URL"], $arParams["GROUP_ID"]);
if(IntVal($arParams["ID"]) > 0)
	$arResult["perms"] = CBlogPost::GetBlogUserPostPerms($arParams["ID"], $arResult["UserID"]);
else
	$arResult["perms"] = CBlog::GetBlogUserPostPerms($arBlog["ID"], $arResult["UserID"]);

if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_REQUEST['mfi_mode']) && ($_REQUEST['mfi_mode'] == "upload"))
{
	CBlogImage::AddImageResizeHandler(array("width" => 400, "height" => 400));
}

if(!empty($arBlog) && $arBlog["ACTIVE"] == "Y")
{
	$arGroup = CBlogGroup::GetByID($arBlog["GROUP_ID"]);
	if($arGroup["SITE_ID"] == SITE_ID)
	{
		$arResult["Blog"] = $arBlog;
		$arResult["urlToBlog"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("blog" => $arBlog["URL"], "user_id" => $arBlog["OWNER_ID"]));

		if(IntVal($arParams["ID"])>0 && $arPost = CBlogPost::GetByID($arParams["ID"]))
		{
			$arPost = CBlogTools::htmlspecialcharsExArray($arPost);
			$arResult["Post"] = $arPost;
			if($arParams["SET_TITLE"]=="Y" && !$arParams["MICROBLOG"])
				$APPLICATION->SetTitle(str_replace("#BLOG#", $arBlog["NAME"], "".GetMessage("BLOG_POST_EDIT").""));
		}
		else
		{
			$arParams["ID"] = 0;
			if($arParams["SET_TITLE"]=="Y" && !$arParams["MICROBLOG"])
				$APPLICATION->SetTitle(str_replace("#BLOG#", $arBlog["NAME"], "".GetMessage("BLOG_NEW_MESSAGE").""));
		}
		if (($arResult["perms"] >= BLOG_PERMS_MODERATE || ($arResult["perms"] >= BLOG_PERMS_PREMODERATE && ($arParams["ID"]==0 || $arPost["AUTHOR_ID"] == $arResult["UserID"]))) && (IntVal($arParams["ID"]) <= 0 || $arPost["BLOG_ID"]==$arBlog["ID"]))
		{
			if(IntVal($arParams["ID"]) > 0 && $arPost["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_READY && $arResult["perms"] == BLOG_PERMS_PREMODERATE)
			{
				$arResult["MESSAGE"] = GetMessage("BPE_HIDDEN_POSTED");
			}

			if (($_POST["apply"] || $_POST["save"] || $_POST["do_upload"] || $_POST["draft"]) && $arResult["preview"] != "Y")
			{
				if(!check_bitrix_sessid())
					$arResult["ERROR_MESSAGE"] = GetMessage("BPE_SESS");
			}

			if ($_GET["image_upload_frame"] == "Y" || $_GET["image_upload"] || $_POST["do_upload"])
			{
				$arResult["imageUploadFrame"] = "Y";
				$arResult["imageUpload"] = "Y";
				$APPLICATION->RestartBuffer();
				header("Pragma: no-cache");

				if(check_bitrix_sessid() || strlen($_REQUEST["sessid"]) <= 0)
				{
					$arFields = Array();
					if ($_FILES["BLOG_UPLOAD_FILE"]["size"] > 0)
					{
						$arFields = array(
							"BLOG_ID"	=> $arBlog["ID"],
							"POST_ID"	=> $arParams["ID"],
							"USER_ID"	=> $arResult["UserID"],
							"=TIMESTAMP_X"	=> $DB->GetNowFunction(),
							"TITLE"		=> $_POST["IMAGE_TITLE"],
							"IMAGE_SIZE"	=> $_FILES["BLOG_UPLOAD_FILE"]["size"]
						);
						$arImage=array_merge(
							$_FILES["BLOG_UPLOAD_FILE"],
							array(
								"MODULE_ID" => "blog",
								"del" => "Y"
							)
						);
						$arFields["FILE_ID"] = $arImage;
					}
					elseif ($_POST["do_upload"] && $_FILES["FILE_ID"]["size"] > 0)
					{
						$arFields = array(
							"BLOG_ID"	=> $arBlog["ID"],
							"POST_ID"	=> $arParams["ID"],
							"USER_ID"	=> $arResult["UserID"],
							"=TIMESTAMP_X"	=> $DB->GetNowFunction(),
							"TITLE"		=> $_POST["IMAGE_TITLE"],
							"IMAGE_SIZE"	=> $_FILES["FILE_ID"]["size"],
						);
						$arImage=array_merge(
							$_FILES["FILE_ID"],
							array(
								"MODULE_ID" => "blog",
								"del" => "Y"
							)
						);
						$arFields["FILE_ID"] = $arImage;
					}
					if(!empty($arFields))
					{
						if ($imgID = CBlogImage::Add($arFields))
						{
							$aImg = CBlogImage::GetByID($imgID);
							$aImg = CBlogTools::htmlspecialcharsExArray($aImg);

							$iMaxW = 100;
							$iMaxH = 100;
							$aImg["PARAMS"] = CFile::_GetImgParams($aImg["FILE_ID"]);
							$intWidth = $aImg["PARAMS"]['WIDTH'];
							$intHeight = $aImg["PARAMS"]['HEIGHT'];
							if(
								$iMaxW > 0 && $iMaxH > 0
								&& ($intWidth > $iMaxW || $intHeight > $iMaxH)
							)
							{
								$coeff = ($intWidth/$iMaxW > $intHeight/$iMaxH? $intWidth/$iMaxW : $intHeight/$iMaxH);
								$iHeight = intval(roundEx($intHeight/$coeff));
								$iWidth = intval(roundEx($intWidth/$coeff));
							}
							else
							{
								$coeff = 1;
								$iHeight = $intHeight;
								$iWidth = $intWidth;
							}

							$file = "<img src=\"".$aImg["PARAMS"]["SRC"]."\" width=\"".$iWidth."\" height=\"".$iHeight."\" id=\"".$aImg["ID"]."\" border=\"0\" style=\"cursor:pointer\" onclick=\"InsertBlogImage('".$aImg["ID"]."', '".$aImg["PARAMS"]['WIDTH']."');\" title=\"".GetMessage("BLOG_P_INSERT")."\">";

							//$file = CFile::ShowImage($aImg["FILE_ID"], 100, 100, "id='".$aImg["ID"]."' border=0 style=cursor:pointer onclick=\"InsertBlogImage('".$aImg["ID"]."');\" title='".GetMessage("BLOG_P_INSERT")."'");
							$file = str_replace("'","\'",$file);
							$file = str_replace("\r"," ",$file);
							$file = str_replace("\n"," ",$file);
							$arResult["ImageModified"] = $file;
							$arResult["Image"] = $aImg;
						}
						else
						{
							if ($ex = $APPLICATION->GetException())
								$arResult["ERROR_MESSAGE"] = $ex->GetString();
						}
					}
				}
			}
			else
			{
				if (($_POST["apply"] || $_POST["save"]) && $arResult["preview"] != "Y" && empty($_POST["reset"])) // Save on button click
				{
					if(check_bitrix_sessid())
					{
						if(strlen($arResult["ERROR_MESSAGE"]) <= 0)
						{
							$TRACKBACK = trim($_POST["TRACKBACK"]);
							InitBVar($_POST["ENABLE_TRACKBACK"]);

							$CATEGORYtmp = Array();
							if(!empty($_POST["TAGS"]))
							{
								$dbCategory = CBlogCategory::GetList(Array(), Array("BLOG_ID" => $arBlog["ID"]));
								while($arCategory = $dbCategory->Fetch())
								{
									$arCatBlog[ToLower($arCategory["NAME"])] = $arCategory["ID"];
								}
								$tags = explode (",", $_POST["TAGS"]);
								foreach($tags as $tg)
								{
									$tg = trim($tg);
									if(!in_array($arCatBlog[ToLower($tg)], $CATEGORYtmp))
									{
										if(IntVal($arCatBlog[ToLower($tg)]) > 0)
											$CATEGORYtmp[] = $arCatBlog[ToLower($tg)];
										else
										{
											$CATEGORYtmp[] = CBlogCategory::Add(array("BLOG_ID" => $arBlog["ID"], "NAME" => $tg));
											BXClearCache(True, "/".SITE_ID."/blog/".$arBlog["URL"]."/category/");
										}
									}
								}
							}
							elseif (!empty($_POST["CATEGORY_ID"]))
							{
								foreach($_POST["CATEGORY_ID"] as $v)
								{
									if(substr($v, 0, 4) == "new_")
									{
										$CATEGORYtmp[] = CBlogCategory::Add(array("BLOG_ID"=>$arBlog["ID"],"NAME"=>substr($v, 4
	)));
										BXClearCache(True, "/".SITE_ID."/blog/".$arBlog["URL"]."/category/");
									}
									else
										$CATEGORYtmp[] = $v;
								}
							}
							else
								$CATEGORY_ID = "";
							$CATEGORY_ID = implode(",", $CATEGORYtmp);

							$DATE_PUBLISH = "";
							if(strlen($_POST["DATE_PUBLISH_DEF"]) > 0)
								$DATE_PUBLISH = $_POST["DATE_PUBLISH_DEF"];
							elseif (strlen($_POST["DATE_PUBLISH"])<=0)
								$DATE_PUBLISH = ConvertTimeStamp(time()+CTimeZone::GetOffset(), "FULL");
							else
								$DATE_PUBLISH = $_POST["DATE_PUBLISH"];

							if(strlen($_POST["draft"]) > 0 || $_POST["PUBLISH_STATUS"] == "D")
								$PUBLISH_STATUS = BLOG_PUBLISH_STATUS_DRAFT;
							elseif($arResult["perms"] == BLOG_PERMS_PREMODERATE)
								$PUBLISH_STATUS = BLOG_PUBLISH_STATUS_READY;
							elseif(strlen($_POST["PUBLISH_STATUS"]) <= 0 || $_POST["PUBLISH_STATUS"] == "P")
								$PUBLISH_STATUS = BLOG_PUBLISH_STATUS_PUBLISH;

							$arFields=array(
								"TITLE"			=> trim($_POST["POST_TITLE"]),
								"DETAIL_TEXT"		=> trim(($_POST["POST_MESSAGE_TYPE"] == "html")? $_POST["POST_MESSAGE_HTML"] : $_POST["POST_MESSAGE"]),
								"DETAIL_TEXT_TYPE"	=> "text",
								"DATE_PUBLISH"		=> $DATE_PUBLISH,
								"PUBLISH_STATUS"	=> $PUBLISH_STATUS,
								"ENABLE_TRACKBACK"	=> $_POST["ENABLE_TRACKBACK"],
								"ENABLE_COMMENTS"	=> ($_POST["ENABLE_COMMENTS"] == "N") ? "N" : "Y",
								"CATEGORY_ID"		=> $CATEGORY_ID,
								"FAVORITE_SORT" => (IntVal($_POST["FAVORITE_SORT"]) > 0) ? IntVal($_POST["FAVORITE_SORT"]) : 0,
								"ATTACH_IMG" => "",
								"PATH" => CComponentEngine::MakePathFromTemplate(htmlspecialcharsBack($arParams["PATH_TO_POST"]), array("blog" => $arBlog["URL"], "post_id" => "#post_id#", "user_id" => $arBlog["OWNER_ID"])),
								"URL" => $arBlog["URL"],
							);

							if($arParams["SEO_USE"] == "Y")
							{
								$arFields["SEO_TITLE"] = $_POST["SEO_TITLE"];
								$arFields["SEO_TAGS"] = $_POST["SEO_TAGS"];
								$arFields["SEO_DESCRIPTION"] = $_POST["SEO_DESCRIPTION"];
							}

							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());
								}
							}
							if($_POST["POST_MESSAGE_TYPE"] == "html" && strlen($_POST["POST_MESSAGE_HTML"]) <= 0)
								$arFields["DETAIL_TEXT"] = $_POST["POST_MESSAGE"];
							if ($_POST["blog_perms"]==1)
							{
								if ($_POST["perms_p"][1] > BLOG_PERMS_READ)
									$_POST["perms_p"][1] = BLOG_PERMS_READ;
								//if ($_POST["perms_c"][1] > BLOG_PERMS_READ)
									//$_POST["perms_c"][1] = BLOG_PERMS_READ;

								$arFields["PERMS_POST"] = $_POST["perms_p"];
								$arFields["PERMS_COMMENT"] = $_POST["perms_c"];
							}
							else
							{
								$arFields["PERMS_POST"] = array();
								$arFields["PERMS_COMMENT"] = array();
							}
							if($arParams["MICROBLOG"])
							{
								$arFields["MICRO"] = "Y";
								$arFields["TITLE"] = trim(blogTextParser::killAllTags($arFields["DETAIL_TEXT"]));
								if(strlen($arFields["TITLE"]) <= 0)
									$arFields["TITLE"] = GetMessage("BLOG_EMPTY_TITLE_PLACEHOLDER");
								//$arFields["ENABLE_COMMENTS"] = "N";
							}

							if(is_array($_POST["IMAGE_ID_title"]))
							{
								foreach($_POST["IMAGE_ID_title"] as $imgID => $imgTitle)
								{
									$aImg = CBlogImage::GetByID($imgID);
									$aImg = CBlogTools::htmlspecialcharsExArray($aImg);
									if (($aImg["BLOG_ID"]==$arBlog["ID"] || $aImg["BLOG_ID"]==$arOldBlog["ID"]) && $aImg["POST_ID"]==$arParams["ID"])
									{
										if ($_POST["IMAGE_ID_del"][$imgID])
										{
											CBlogImage::Delete($imgID);
											$arFields["DETAIL_TEXT"] = str_replace("[IMG ID=$imgID]","",$arFields["DETAIL_TEXT"]);
										}
										else
										{
											CBlogImage::Update($imgID, array("TITLE"=>$imgTitle));
										}
									}
								}
							}

							$fieldName = 'UF_BLOG_POST_DOC';
							if (isset($GLOBALS[$fieldName]) && is_array($GLOBALS[$fieldName]))
							{
								$arOldFiles = array();
								if($arParams["ID"] > 0 && strlen($_POST["blog_upload_cid"]) <= 0)
								{
									$dbP = CBlogPost::GetList(array(), array("ID" => $arParams["ID"]), false, false, array("ID", "UF_BLOG_POST_DOC"));
									if($arP = $dbP->Fetch())
									{
										$arOldFiles = $arP["UF_BLOG_POST_DOC"];
									}
								}
								$arAttachedFiles = array();
								foreach($GLOBALS[$fieldName] as $fileID)
								{
									$fileID = intval($fileID);

									if ($fileID <= 0)
									{
										continue;
									}
									elseif(!is_array($_SESSION["MFI_UPLOADED_FILES_".$_POST["blog_upload_cid"]]) || !in_array($fileID, $_SESSION["MFI_UPLOADED_FILES_".$_POST["blog_upload_cid"]]))
									{
										if(empty($arOldFiles) || !in_array($fileID, $arOldFiles))
											continue;
									}

									$arFile = CFile::GetFileArray($fileID);
									if (CFile::CheckImageFile(CFile::MakeFileArray($fileID)) === null)
									{
										$arImgFields = array(
											"BLOG_ID"	=> $arBlog["ID"],
											"POST_ID"	=> 0,
											"USER_ID"	=> $arResult["UserID"],
											"=TIMESTAMP_X"	=> $DB->GetNowFunction(),
											"TITLE"		=> $arFile["FILE_NAME"],
											"IMAGE_SIZE"	=> $arFile["FILE_SIZE"],
											"FILE_ID" => $fileID,
											"IMAGE_SIZE_CHECK" => "N",
										);
										$imgID = CBlogImage::Add($arImgFields);
										if (intval($imgID) <= 0)
										{
											$GLOBALS["APPLICATION"]->ThrowException("Error Adding file by CBlogImage::Add");
										}
										else
										{
											$arFields["DETAIL_TEXT"] = str_replace("[IMG ID=".$fileID."file", "[IMG ID=".$imgID."", $arFields["DETAIL_TEXT"]);
										}
									}
									else
									{
										$arAttachedFiles[] = $fileID;
									}
								}
								$GLOBALS[$fieldName] = $arAttachedFiles;
							}

							if (count($arParams["POST_PROPERTY"]) > 0)
							{
								$GLOBALS["USER_FIELD_MANAGER"]->EditFormAddFields("BLOG_POST", $arFields);
							}

							$bAdd = false;
							if ($arParams["ID"] > 0)
							{
								$arOldPost = CBlogPost::GetByID($arParams["ID"]);
								if($_POST["apply"] && strlen($_POST["PUBLISH_STATUS"]) <= 0)
									$arFields["PUBLISH_STATUS"] = $arOldPost["PUBLISH_STATUS"];
								if(strlen($_POST["DATE_PUBLISH"]) <= 0)
									unset($arFields["DATE_PUBLISH"]);
								$newID = CBlogPost::Update($arParams["ID"], $arFields);
							}
							else
							{
								$arFields["=DATE_CREATE"] = $DB->GetNowFunction();
								$arFields["AUTHOR_ID"] = $arResult["UserID"];
								$arFields["BLOG_ID"] = $arBlog["ID"];

								if($_POST["apply"] && strlen($_POST["PUBLISH_STATUS"]) <= 0)
									$arFields["PUBLISH_STATUS"] = BLOG_PUBLISH_STATUS_DRAFT;

								$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($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(strlen($arResult["ERROR_MESSAGE"]) <= 0)
								{
									$newID = CBlogPost::Add($arFields);
									$bAdd = true;
									$bNeedMail = false;
								}
							}
							if(IntVal($newID) > 0)
							{
								CBlogPostCategory::DeleteByPostID($newID);
								foreach($CATEGORYtmp as $v)
									CBlogPostCategory::Add(Array("BLOG_ID" => $arBlog["ID"], "POST_ID" => $newID, "CATEGORY_ID"=>$v));

								$DB->Query("UPDATE b_blog_image SET POST_ID=".$newID." WHERE BLOG_ID=".$arBlog["ID"]." AND POST_ID=0", true);

								if (strlen($TRACKBACK)>0)
								{
									$arPingUrls = explode("\n",$TRACKBACK);
									CBlogTrackback::SendPing($newID, $arPingUrls);
								}
							}

							//move/copy post to another blog
							if(IntVal($newID) > 0 && IntVal($_POST["move2blog"]) > 0 && $arParams["ALLOW_POST_MOVE"] == "Y")
							{
								if($arCopyBlog = CBlog::GetByID($_POST["move2blog"]))
								{
									$copyPerms = BLOG_PERMS_DENY;
									$copyPerms = CBlog::GetBlogUserPostPerms($arCopyBlog["ID"], $user_id);
									if($copyPerms >= BLOG_PERMS_PREMODERATE)
									{
										$arCopyPost = CBlogPost::GetByID($arParams["ID"]);
										$arCopyPost["BLOG_ID"] = $arCopyBlog["ID"];
										unset($arCopyPost["ID"]);
										unset($arCopyPost["ATTACH_IMG"]);
										unset($arCopyPost["VIEWS"]);

										$pathTemplate = htmlspecialcharsBack($arParams["PATH_TO_POST"]);
										$pathTemplateEdit = htmlspecialcharsBack($arParams["PATH_TO_POST_EDIT"]);
										$pathTemplateDraft = htmlspecialcharsBack($arParams["PATH_TO_DRAFT"]);
										$pathTemplateBlog = htmlspecialcharsBack($arParams["PATH_TO_BLOG"]);
										//take from new params
										$pathTemplate = htmlspecialcharsBack($arParams["PATH_TO_BLOG_POST"]);
										$pathTemplateEdit = htmlspecialcharsBack($arParams["PATH_TO_BLOG_POST_EDIT"]);
										$pathTemplateDraft = htmlspecialcharsBack($arParams["PATH_TO_BLOG_DRAFT"]);
										$pathTemplateBlog = htmlspecialcharsBack($arParams["PATH_TO_BLOG_BLOG"]);

										$arCopyPost["PATH"] = CComponentEngine::MakePathFromTemplate($pathTemplate, array("blog" => $arCopyBlog["URL"], "post_id" => "#post_id#", "user_id" => $arCopyBlog["OWNER_ID"]));

										$arCopyPost["PERMS_POST"] = Array();
										$arCopyPost["PERMS_COMMENT"] = Array();
										if($copyPerms == BLOG_PERMS_PREMODERATE)
											$arCopyPost["PUBLISH_STATUS"] = BLOG_PUBLISH_STATUS_READY;

										if($copyID = CBlogPost::Add($arCopyPost))
										{
											$arCopyPostUpdate = Array();
											//images
											$arCopyImg = Array();
											$arPat = Array();
											$arRep = Array();

											$arFilter = array(
												"POST_ID"=>$arParams["ID"],
												"BLOG_ID"=>$arBlog["ID"],
												"IS_COMMENT" => "N",
												);
											$res = CBlogImage::GetList(array("ID"=>"ASC"), $arFilter);
											while($arImg = $res->GetNext())
											{
												$arNewImg = Array("FILE_ID" => CFile::MakeFileArray($arImg["FILE_ID"]));
												$arNewImg["BLOG_ID"] = $arCopyBlog["ID"];
												$arNewImg["POST_ID"] = $copyID;
												$arNewImg["USER_ID"] = $arImg["USER_ID"];
												$arNewImg["=TIMESTAMP_X"] = $DB->GetNowFunction();
												$arNewImg["TITLE"] = $arImg["TITLE"];
												$arNewImg["MODULE_ID"] = "blog";

												if($imgID = CBlogImage::Add($arNewImg))
												{
													$arPat[] = "[IMG ID=".$arImg["ID"]."]";
													$arRep[] = "[IMG ID=".$imgID."]";
												}
											}
											if(!empty($arRep))
											{
												$arCopyPostUpdate["DETAIL_TEXT"] = str_replace($arPat, $arRep, $arCopyPost["DETAIL_TEXT"]);
											}

											//tags
											$arCopyCat = Array();
											$dbCategory = CBlogCategory::GetList(Array(), Array("BLOG_ID" => $arCopyBlog["ID"]));
											while($arCategory = $dbCategory->Fetch())
											{
												$arCatBlogCopy[ToLower($arCategory["NAME"])] = $arCategory["ID"];
											}

											$dbCat = CBlogPostCategory::GetList(Array("NAME" => "ASC"), Array("BLOG_ID" => $arBlog["ID"], "POST_ID" => $arParams["ID"]));
											while($arCat = $dbCat->Fetch())
											{
												if(empty($arCatBlogCopy[ToLower($arCat["NAME"])]))
													$v = CBlogCategory::Add(array("BLOG_ID" => $arCopyBlog["ID"], "NAME" => $arCat["NAME"]));
												else
													$v = $arCatBlogCopy[ToLower($arCat["NAME"])];
												CBlogPostCategory::Add(Array("BLOG_ID" => $arCopyBlog["ID"], "POST_ID" => $copyID, "CATEGORY_ID"=>$v));
												$arCopyCat[] = $v;
											}
											if(!empty($arCopyCat))
												$arCopyPostUpdate["CATEGORY_ID"] = implode(",", $arCopyCat);

											if($_POST["move2blogcopy"] == "Y")
												$arCopyPostUpdate["NUM_COMMENTS"] = 0;

											if(!empty($arCopyPostUpdate))
											{
												$copyID = CBlogPost::Update($copyID, $arCopyPostUpdate);
												$arCopyPost = CBlogPost::GetByID($copyID);
											}

											if($_POST["move2blogcopy"] != "Y")
											{
												if(CBlogPost::CanUserDeletePost($arParams["ID"], $user_id))
												{
													$dbC = CBlogComment::GetList(Array("ID" => "ASC"), Array("BLOG_ID" => $arBlog["ID"], "POST_ID" => $arParams["ID"]), false, false, Array("PATH" , "PUBLISH_STATUS" , "POST_TEXT" , "TITLE" , "DATE_CREATE" , "AUTHOR_IP1" , "AUTHOR_IP" , "AUTHOR_EMAIL" , "AUTHOR_NAME" , "AUTHOR_ID" , "PARENT_ID" , "POST_ID" , "BLOG_ID" , "ID"));
													while($arC = $dbC->Fetch())
													{
														$arCTmp = Array(
															"BLOG_ID" => $arCopyBlog["ID"],
															"POST_ID" => $copyID,
															);
														CBlogComment::Update($arC["ID"], $arCTmp);
													}
													$arFilter = array(
														"POST_ID"=>$arParams["ID"],
														"BLOG_ID"=>$arBlog["ID"],
														"IS_COMMENT" => "Y",
														);
													$res = CBlogImage::GetList(array("ID"=>"ASC"), $arFilter);
													while($arImg = $res->GetNext())
													{
														$arNewImg = Array(
																"BLOG_ID" => $arCopyBlog["ID"],
																"POST_ID" => $copyID,
															);

														CBlogImage::Update($arImg["ID"], $arNewImg);
													}

													if(!CBlogPost::Delete($arParams["ID"]))
														$arResult["ERROR_MESSAGE"] = GetMessage("BPE_COPY_DELETE_ERROR");
													else
														CBlogPost::DeleteLog($arParams["ID"], $arParams["MICROBLOG"]);
												}
											}

											BXClearCache(True, "/".SITE_ID."/blog/".$arCopyBlog["URL"]."/first_page/");
											BXClearCache(True, "/".SITE_ID."/blog/".$arCopyBlog["URL"]."/calendar/");
											BXClearCache(True, "/".SITE_ID."/blog/last_messages/");
											BXClearCache(True, "/".SITE_ID."/blog/commented_posts/");
											BXClearCache(True, "/".SITE_ID."/blog/popular_posts/");
											BXClearCache(True, "/".SITE_ID."/blog/last_comments/");
											BXClearCache(True, "/".SITE_ID."/blog/groups/".$arCopyBlog["GROUP_ID"]."/");
											BXClearCache(True, "/".SITE_ID."/blog/".$arCopyBlog["URL"]."/rss_out/");
											BXClearCache(True, "/".SITE_ID."/blog/".$arCopyBlog["URL"]."/rss_all/");
											BXClearCache(True, "/".SITE_ID."/blog/rss_sonet/");
											BXClearCache(True, "/".SITE_ID."/blog/rss_all/");
											BXClearCache(True, "/".SITE_ID."/blog/".$arCopyBlog["URL"]."/favorite/");
											BXClearCache(True, "/".SITE_ID."/blog/last_messages_list_extranet/");
											BXClearCache(True, "/".SITE_ID."/blog/last_messages_list/");
										}
										else
										{
											$arResult["ERROR_MESSAGE"] = GetMessage("BPE_COPY_ERROR");
											if($ex = $APPLICATION->GetException())
												$arResult["ERROR_MESSAGE"] .= $ex->GetString();
										}
									}
									else
										$arResult["ERROR_MESSAGE"] = GetMessage("BPE_COPY_NO_PERM");
								}
								else
									$arResult["ERROR_MESSAGE"] = GetMessage("BPE_COPY_NO_BLOG");
							}

							if(
								(
									($bAdd && $newID && $arFields["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_PUBLISH)
									|| ($arOldPost["PUBLISH_STATUS"] != BLOG_PUBLISH_STATUS_PUBLISH && $arFields["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_PUBLISH)
								)
								&& (
									IntVal($copyID) <= 0
									|| (IntVal($copyID) > 0 && $_POST["move2blogcopy"] == "Y")
								)
							)
							{
								$arFields["ID"] = $newID;
								$arParamsNotify = Array(
									"bSoNet" => false,
									"UserID" => $arResult["UserID"],
									"allowVideo" => $arResult["allowVideo"],
									"bGroupMode" => false,
									"PATH_TO_SMILE" => $arParams["PATH_TO_SMILE"],
									"PATH_TO_POST" => $arParams["PATH_TO_POST"],
									"user_id" => $user_id,
									"NAME_TEMPLATE" => $arParams["NAME_TEMPLATE"],
									"SHOW_LOGIN" => $arParams["SHOW_LOGIN"],
									);

								CBlogPost::Notify($arFields, $arBlog, $arParamsNotify);

								if(COption::GetOptionString("blog","send_blog_ping", "N") == "Y")
								{
									if(strlen($serverName) <= 0)
									{
										$serverName = ((defined("SITE_SERVER_NAME") && strlen(SITE_SERVER_NAME) > 0) ? SITE_SERVER_NAME : COption::GetOptionString("main", "server_name", ""));
										if (strlen($serverName) <=0)
											$serverName = $_SERVER["SERVER_NAME"];
									}

									$blogUrl = "http://".$serverName.CComponentEngine::MakePathFromTemplate(htmlspecialcharsBack($arParams["PATH_TO_BLOG"]), array("blog" => $arBlog["URL"], "user_id" => $arBlog["OWNER_ID"]));
									CBlog::SendPing($arBlog["NAME"], $blogUrl);
								}
							}

							if(IntVal($copyID) > 0 && $arCopyPost["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_PUBLISH)
							{
								$arCopyPost["ID"] = $copyID;
								$arParamsNotify = Array(
									"bSoNet" => false,
									"UserID" => $arResult["UserID"],
									"allowVideo" => $arResult["allowVideo"],
									"bGroupMode" => false,
									"PATH_TO_SMILE" => $arParams["PATH_TO_SMILE"],
									"PATH_TO_POST" => $pathTemplate,
									"user_id" => $user_id,
									"MICROBLOG" => ($arParams["MICROBLOG"]) ? "Y" : "N",
									);

								CBlogPost::Notify($arCopyPost, $arCopyBlog, $arParamsNotify);

								if(COption::GetOptionString("blog","send_blog_ping", "N") == "Y")
								{
									if(strlen($serverName) <= 0)
									{
										$serverName = ((defined("SITE_SERVER_NAME") && strlen(SITE_SERVER_NAME) > 0) ? SITE_SERVER_NAME : COption::GetOptionString("main", "server_name", ""));
										if (strlen($serverName) <=0)
											$serverName = $_SERVER["SERVER_NAME"];
									}

									$blogUrl = "http://".$serverName.CComponentEngine::MakePathFromTemplate($pathTemplateBlog, array("blog" => $arCopyBlog["URL"], "user_id" => $arCopyBlog["OWNER_ID"]));
									CBlog::SendPing($arCopyBlog["NAME"], $blogUrl);
								}
							}

							if ($newID > 0 && strlen($arResult["ERROR_MESSAGE"]) <= 0) // Record saved successfully
							{
								$arParams["ID"] = $newID;

								BXClearCache(True, "/".SITE_ID."/blog/".$arBlog["URL"]."/first_page/");
								BXClearCache(True, "/".SITE_ID."/blog/".$arBlog["URL"]."/calendar/");
								BXClearCache(True, "/".SITE_ID."/blog/last_messages/");
								BXClearCache(True, "/".SITE_ID."/blog/commented_posts/");
								BXClearCache(True, "/".SITE_ID."/blog/popular_posts/");
								BXClearCache(True, "/".SITE_ID."/blog/last_comments/");
								BXClearCache(True, "/".SITE_ID."/blog/groups/".$arBlog["GROUP_ID"]."/");
								BXClearCache(True, "/".SITE_ID."/blog/".$arBlog["URL"]."/rss_out/");
								BXClearCache(True, "/".SITE_ID."/blog/".$arBlog["URL"]."/rss_all/");
								BXClearCache(True, "/".SITE_ID."/blog/rss_sonet/");
								BXClearCache(True, "/".SITE_ID."/blog/rss_all/");
								BXClearCache(True, "/".SITE_ID."/blog/".$arBlog["URL"]."/favorite/");
								BXClearCache(True, "/".SITE_ID."/blog/last_messages_list_extranet/");
								BXClearCache(True, "/".SITE_ID."/blog/last_messages_list/");
								BXClearCache(True, "/".SITE_ID."/blog/".$arBlog["URL"]."/comment/".$arParams["ID"]."/");
								BXClearCache(True, "/".SITE_ID."/blog/".$arBlog["URL"]."/trackback/".$arParams["ID"]."/");
								BXClearCache(True, "/".SITE_ID."/blog/".$arBlog["URL"]."/post/".$arParams["ID"]."/");

								if(IntVal($copyID) > 0 && $_POST["move2blogcopy"] != "Y")
								{
									if (strlen($_POST["apply"])<=0)
									{
										if($arCopyPost["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_DRAFT || strlen($_POST["draft"]) > 0)
											$redirectUrl = CComponentEngine::MakePathFromTemplate($pathTemplateDraft, array("blog" => $arCopyBlog["URL"], "user_id" => $arCopyBlog["OWNER_ID"]));
										elseif($arCopyPost["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_READY)
											$redirectUrl = CComponentEngine::MakePathFromTemplate($pathTemplateEdit, array("blog" => $arCopyBlog["URL"], "post_id" => $copyID, "user_id" => $arCopyBlog["OWNER_ID"]));
										else
											$redirectUrl = CComponentEngine::MakePathFromTemplate($pathTemplateBlog, array("blog" => $arCopyBlog["URL"], "user_id" => $arCopyBlog["OWNER_ID"]));
									}
									else
										$redirectUrl = CComponentEngine::MakePathFromTemplate($pathTemplateEdit, array("blog" => $arCopyBlog["URL"], "post_id" => $copyID, "user_id" => $arCopyBlog["OWNER_ID"]));
								}
								else
								{
									if (strlen($_POST["apply"])<=0)
									{
										if($arFields["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_DRAFT || strlen($_POST["draft"]) > 0)
											$redirectUrl = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_DRAFT"], array("blog" => $arBlog["URL"], "user_id" => $arBlog["OWNER_ID"]));
										elseif($arFields["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_READY)
											$redirectUrl = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_POST_EDIT"], array("blog" => $arBlog["URL"], "post_id"=>$newID, "user_id" => $arBlog["OWNER_ID"]));
										else
										{
											$redirectUrl = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("blog" => $arBlog["URL"], "user_id" => $arBlog["OWNER_ID"]));
										}
									}
									else
										$redirectUrl = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_POST_EDIT"], array("blog" => $arBlog["URL"], "post_id"=>$newID, "user_id" => $arBlog["OWNER_ID"]));
								}
								$as = new CAutoSave();
								LocalRedirect($redirectUrl);
							}
							else
							{
								if(strlen($arResult["ERROR_MESSAGE"]) <= 0)
								{
									if ($ex = $APPLICATION->GetException())
										$arResult["ERROR_MESSAGE"] = $ex->GetString()."<br />";
									else
										$arResult["ERROR_MESSAGE"] = "Error saving data to database.<br />";
								}
							}
						}
					}
					else
						$arResult["ERROR_MESSAGE"] = GetMessage("BPE_SESS");
				}
				elseif($_POST["reset"])
				{
					if($arFields["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_DRAFT)
						LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_DRAFT"], array("blog" => $arBlog["URL"], "user_id" => $arBlog["OWNER_ID"])));
					else
					{
						LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("blog" => $arBlog["URL"], "user_id" => $arBlog["OWNER_ID"])));
					}
				}

				if ($arParams["ID"] > 0 && strlen($arResult["ERROR_MESSAGE"])<=0 && $arResult["preview"] != "Y") // Edit post
				{
					$arResult["PostToShow"]["TITLE"] = $arPost["TITLE"];
					$arResult["PostToShow"]["DETAIL_TEXT"] = $arPost["DETAIL_TEXT"];
					$arResult["PostToShow"]["~DETAIL_TEXT"] = $arPost["~DETAIL_TEXT"];
					$arResult["PostToShow"]["DETAIL_TEXT_TYPE"] = $arPost["DETAIL_TEXT_TYPE"];
					$arResult["PostToShow"]["PUBLISH_STATUS"] = $arPost["PUBLISH_STATUS"];
					$arResult["PostToShow"]["ENABLE_TRACKBACK"] = $arPost["ENABLE_TRACKBACK"] == "Y";
					$arResult["PostToShow"]["ENABLE_COMMENTS"] = $arPost["ENABLE_COMMENTS"];
					$arResult["PostToShow"]["ATTACH_IMG"] = $arPost["ATTACH_IMG"];
					$arResult["PostToShow"]["DATE_PUBLISH"] = $arPost["DATE_PUBLISH"];
					$arResult["PostToShow"]["CATEGORY_ID"] = $arPost["CATEGORY_ID"];
					$arResult["PostToShow"]["FAVORITE_SORT"] = $arPost["FAVORITE_SORT"];
					if($arParams["ALLOW_POST_CODE"])
					{
						$arResult["PostToShow"]["CODE"] = $arPost["CODE"];
					}
					if($arParams["SEO_USE"] == "Y")
					{
						$arResult["PostToShow"]["SEO_TITLE"] = $arPost["SEO_TITLE"];
						$arResult["PostToShow"]["SEO_TAGS"] = $arPost["SEO_TAGS"];
						$arResult["PostToShow"]["SEO_DESCRIPTION"] = $arPost["SEO_DESCRIPTION"];
					}


					$res = CBlogUserGroupPerms::GetList(array("ID"=>"DESC"),array("BLOG_ID"=>$arBlog["ID"],"POST_ID"=>$arParams["ID"]));
					while($arPerms = $res->Fetch())
					{
						if ($arPerms["AUTOSET"]=="N")
							$arResult["PostToShow"]["ExtendedPerms"] = "Y";
						if ($arPerms["PERMS_TYPE"]=="P")
							$arResult["PostToShow"]["arUGperms_p"][$arPerms["USER_GROUP_ID"]] = $arPerms["PERMS"];
						elseif ($arPerms["PERMS_TYPE"]=="C")
							$arResult["PostToShow"]["arUGperms_c"][$arPerms["USER_GROUP_ID"]] = $arPerms["PERMS"];
					}

					if($arParams["ALLOW_POST_MOVE"] == "Y")
					{
						//copy or move post to another blog
						if($USER->IsAdmin() || $blogModulePermissions >= "W")
						{
							$arFlt = Array(
									"ACTIVE" => "Y",
									"GROUP_SITE_ID" => SITE_ID,
									"!ID" => $arBlog["ID"],
								);

							$dbBlog = CBlog::GetList(Array("NAME" => "ASC"), $arFlt, false, false, array("ID", "NAME", "OWNER_ID", "URL", "GROUP_ID", "GROUP_NAME"));
							while($arBlogS = $dbBlog->GetNext())
							{
								$arBlogS["PERMS"] = BLOG_PERMS_FULL;
								$arResult["avBlog"][$arBlogS["ID"]] = $arBlogS;
							}
						}
						else
						{
							$arFlt = Array(
									"USE_SOCNET" => "N",
									">=PERMS" => BLOG_PERMS_PREMODERATE,
									"PERMS_TYPE" => BLOG_PERMS_POST,
									"PERMS_USER_ID" => $user_id,
									"PERMS_POST_ID" => false,
									"ACTIVE" => "Y",
									"GROUP_SITE_ID" => SITE_ID,
									"!ID" => $arBlog["ID"],
								);

							$dbBlog = CBlog::GetList(Array("NAME" => "ASC"), $arFlt, false, false, array("ID", "NAME", "OWNER_ID", "URL", "PERMS", "GROUP_ID", "GROUP_NAME"));
							while($arBlogS = $dbBlog->GetNext())
							{
								$arBlogS["USE_SOCNET"] = "N";
								$arResult["avBlog"][$arBlogS["ID"]] = $arBlogS;
							}
							$arFlt = Array(
									"OWNER_ID" => $user_id,
									"ACTIVE" => "Y",
									"GROUP_SITE_ID" => SITE_ID,
									"!ID" => $arBlog["ID"],
								);

							$dbBlog = CBlog::GetList(Array("NAME" => "ASC"), $arFlt, false, false, array("ID", "NAME", "OWNER_ID", "URL", "GROUP_ID", "GROUP_NAME"));
							while($arBlogS = $dbBlog->GetNext())
							{
								$arBlogS["PERMS"] = BLOG_PERMS_FULL;
								$arResult["avBlog"][$arBlogS["ID"]] = $arBlogS;
							}
						}
						foreach($arResult["avBlog"] as $id => $blog)
						{
							$arResult["avBlogCategory"]["users_".$blog["GROUP_ID"]][$id] = $blog;
						}
					}
				}
				else
				{
					$arResult["PostToShow"]["TITLE"] = htmlspecialcharsEx($_POST["POST_TITLE"]);
					$arResult["PostToShow"]["CATEGORY_ID"] = $_POST["CATEGORY_ID"];
					$arResult["PostToShow"]["CategoryText"] = htmlspecialcharsEx($_POST["TAGS"]);
					$arResult["PostToShow"]["DETAIL_TEXT_TYPE"] = htmlspecialcharsEx($_POST["POST_MESSAGE_TYPE"]);
					$arResult["PostToShow"]["DETAIL_TEXT"] = (($_POST["POST_MESSAGE_TYPE"] == "html")? $_POST["POST_MESSAGE_HTML"] : htmlspecialcharsEx($_POST["POST_MESSAGE"]));
					$arResult["PostToShow"]["~DETAIL_TEXT"] = (($_POST["POST_MESSAGE_TYPE"] == "html")? $_POST["POST_MESSAGE_HTML"] : $_POST["POST_MESSAGE"]);
					$arResult["PostToShow"]["PUBLISH_STATUS"] = htmlspecialcharsEx($_POST["PUBLISH_STATUS"]);
					$arResult["PostToShow"]["ENABLE_TRACKBACK"] = htmlspecialcharsEx($_POST["ENABLE_TRACKBACK"]);
					$arResult["PostToShow"]["ENABLE_COMMENTS"] = htmlspecialcharsEx($_POST["ENABLE_COMMENTS"]);
					$arResult["PostToShow"]["TRACKBACK"] = htmlspecialcharsEx($_POST["TRACKBACK"]);
					$arResult["PostToShow"]["DATE_PUBLISH"] = $_POST["DATE_PUBLISH"] ? htmlspecialcharsEx($_POST["DATE_PUBLISH"]) : ConvertTimeStamp(time()+CTimeZone::GetOffset(),"FULL");
					$arResult["PostToShow"]["FAVORITE_SORT"] = htmlspecialcharsEx($_POST["FAVORITE_SORT"]);
					if($_POST["POST_MESSAGE_TYPE"] == "html" && strlen($_POST["POST_MESSAGE_HTML"]) <= 0)
					{
						$arResult["PostToShow"]["DETAIL_TEXT"] = htmlspecialcharsEx($_POST["POST_MESSAGE"]);
						$arResult["PostToShow"]["~DETAIL_TEXT"] = $_POST["POST_MESSAGE"];
					}

					if($arParams["ALLOW_POST_CODE"])
					{
						$arResult["PostToShow"]["CODE"] = htmlspecialcharsEx($_POST["CODE"]);
					}
					if($arParams["SEO_USE"] == "Y")
					{
						$arResult["PostToShow"]["SEO_TITLE"] = htmlspecialcharsEx($_POST["SEO_TITLE"]);
						$arResult["PostToShow"]["SEO_TAGS"] = htmlspecialcharsEx($_POST["SEO_TAGS"]);
						$arResult["PostToShow"]["SEO_DESCRIPTION"] = htmlspecialcharsEx($_POST["SEO_DESCRIPTION"]);
					}

					if ($_POST["apply"] || $_POST["save"] || $arResult["preview"] == "Y")
					{
						$arResult["PostToShow"]["arUGperms_p"] = $_POST["perms_p"];
						$arResult["PostToShow"]["arUGperms_c"] = $_POST["perms_c"];
						$arResult["PostToShow"]["ExtendedPerms"] = (IntVal($_POST["blog_perms"])==1 ? "Y" : "N");
					}
					else
					{
						$res = CBlogUserGroupPerms::GetList(array("ID"=>"DESC"),array("BLOG_ID"=>$arBlog["ID"],"POST_ID"=>0));
						while($arPerms = $res->Fetch())
						{
							if ($arPerms["PERMS_TYPE"]=="P")
								$arResult["PostToShow"]["arUGperms_p"][$arPerms["USER_GROUP_ID"]] = $arPerms["PERMS"];
							elseif ($arPerms["PERMS_TYPE"]=="C")
								$arResult["PostToShow"]["arUGperms_c"][$arPerms["USER_GROUP_ID"]] = $arPerms["PERMS"];
						}
					}
				}
				$arResult["BLOG_POST_PERMS"] = $GLOBALS["AR_BLOG_POST_PERMS"];
				$arResult["BLOG_COMMENT_PERMS"] = $GLOBALS["AR_BLOG_COMMENT_PERMS"];

				if(!$USER->IsAdmin() && $blogModulePermissions < "W")
				{
					$arResult["post_everyone_max_rights"] = COption::GetOptionString("blog", "post_everyone_max_rights", "");
					$arResult["comment_everyone_max_rights"] = COption::GetOptionString("blog", "comment_everyone_max_rights", "");
					$arResult["post_auth_user_max_rights"] = COption::GetOptionString("blog", "post_auth_user_max_rights", "");
					$arResult["comment_auth_user_max_rights"] = COption::GetOptionString("blog", "comment_auth_user_max_rights", "");
					$arResult["post_group_user_max_rights"] = COption::GetOptionString("blog", "post_group_user_max_rights", "");
					$arResult["comment_group_user_max_rights"] = COption::GetOptionString("blog", "comment_group_user_max_rights", "");

					foreach($arResult["BLOG_POST_PERMS"] as  $v)
					{
						if(strlen($arResult["post_everyone_max_rights"]) > 0 && $v <= $arResult["post_everyone_max_rights"])
							$arResult["ar_post_everyone_rights"][] = $v;
						if(strlen($arResult["post_auth_user_max_rights"]) > 0 && $v <= $arResult["post_auth_user_max_rights"])
							$arResult["ar_post_auth_user_rights"][] = $v;
						if(strlen($arResult["post_group_user_max_rights"]) > 0 && $v <= $arResult["post_group_user_max_rights"])
							$arResult["ar_post_group_user_rights"][] = $v;

					}

					foreach($arResult["BLOG_COMMENT_PERMS"] as  $v)
					{
						if(strlen($arResult["comment_everyone_max_rights"]) > 0 && $v <= $arResult["comment_everyone_max_rights"])
							$arResult["ar_comment_everyone_rights"][] = $v;
						if(strlen($arResult["comment_auth_user_max_rights"]) > 0 && $v <= $arResult["comment_auth_user_max_rights"])
							$arResult["ar_comment_auth_user_rights"][] = $v;
						if(strlen($arResult["comment_group_user_max_rights"]) > 0 && $v <= $arResult["comment_group_user_max_rights"])
							$arResult["ar_comment_group_user_rights"][] = $v;
					}
				}

				$arResult["UserGroups"] = array();
				$res = CBlogUserGroup::GetList(array(),$arFilter=array("BLOG_ID"=>$arBlog["ID"]));
				while ($aUGroup = $res->GetNext())
					$arResult["UserGroups"][] = $aUGroup;

				$arSelectFields = array("ID", "SMILE_TYPE", "TYPING", "IMAGE", "DESCRIPTION", "CLICKABLE", "SORT", "IMAGE_WIDTH", "IMAGE_HEIGHT", "LANG_NAME");
				$total = 0;
				$arSmiles = array();
				$res = CBlogSmile::GetList(array("SORT"=>"ASC","ID"=>"DESC"), array("SMILE_TYPE"=>"S", "LANG_LID"=>LANGUAGE_ID), false, false, $arSelectFields);
				while ($arr = $res->GetNext())
				{
					$total++;
					list($type)=explode(" ",$arr["TYPING"]);
					$arr["TYPE"]=str_replace("'","\'",$type);
					$arr["TYPE"]=str_replace("\\","\\\\",$arr["TYPE"]);
					$arSmiles[] = $arr;
				}
				$arResult["Smiles"] = $arSmiles;
				$arResult["SmilesCount"] = $total;

				$arResult["Images"] = Array();
				if(!empty($arBlog))
				{
					$arFilter = array(
							"POST_ID" => $arParams["ID"],
							"BLOG_ID" => $arBlog["ID"],
							"IS_COMMENT" => "N",
						);
					if ($arParams["ID"]==0)
						$arFilter["USER_ID"] = $arResult["UserID"];

					$iMaxW = 100;
					$iMaxH = 100;
					$res = CBlogImage::GetList(array("ID"=>"ASC"), $arFilter);
					while($aImg = $res->GetNext())
					{
						$aImg["PARAMS"] = CFile::_GetImgParams($aImg["FILE_ID"]);
						$intWidth = $aImg["PARAMS"]['WIDTH'];
						$intHeight = $aImg["PARAMS"]['HEIGHT'];
						if(
							$iMaxW > 0 && $iMaxH > 0
							&& ($intWidth > $iMaxW || $intHeight > $iMaxH)
						)
						{
							$coeff = ($intWidth/$iMaxW > $intHeight/$iMaxH? $intWidth/$iMaxW : $intHeight/$iMaxH);
							$iHeight = intval(roundEx($intHeight/$coeff));
							$iWidth = intval(roundEx($intWidth/$coeff));
						}
						else
						{
							$coeff = 1;
							$iHeight = $intHeight;
							$iWidth = $intWidth;
						}

						$aImg["FileShow"] = "<img src=\"".$aImg["PARAMS"]["SRC"]."\" width=\"".$iWidth."\" height=\"".$iHeight."\" id=\"".$aImg["ID"]."\" border=\"0\" style=\"cursor:pointer\" onclick=\"InsertBlogImage('".$aImg["ID"]."', '".$aImg["PARAMS"]['WIDTH']."');\" title=\"".GetMessage("BLOG_P_INSERT")."\">";
						$arResult["Images"][] = $aImg;
					}
				}

				if(strpos($arResult["PostToShow"]["CATEGORY_ID"], ",")!==false)
					$arResult["PostToShow"]["CATEGORY_ID"] = explode(",", trim($arResult["PostToShow"]["CATEGORY_ID"]));

				$arResult["Category"] = Array();


				if(strlen($arResult["PostToShow"]["CategoryText"]) <= 0)
				{
					$res = CBlogCategory::GetList(array("NAME"=>"ASC"),array("BLOG_ID"=>$arBlog["ID"]));
					while ($arCategory=$res->GetNext())
					{
						if(is_array($arResult["PostToShow"]["CATEGORY_ID"]))
						{
							if(in_array($arCategory["ID"], $arResult["PostToShow"]["CATEGORY_ID"]))
								$arCategory["Selected"] = "Y";
						}
						else
						{
							if(IntVal($arCategory["ID"])==IntVal($arResult["PostToShow"]["CATEGORY_ID"]))
								$arCategory["Selected"] = "Y";
						}
						if($arCategory["Selected"] == "Y")
							$arResult["PostToShow"]["CategoryText"] .= $arCategory["~NAME"].", ";

						$arResult["Category"][$arCategory["ID"]] = $arCategory;
					}
					$arResult["PostToShow"]["CategoryText"] = substr($arResult["PostToShow"]["CategoryText"], 0, strlen($arResult["PostToShow"]["CategoryText"])-2);
				}

				$arResult["POST_PROPERTIES"] = array("SHOW" => "N");

				if (!empty($arParams["POST_PROPERTY"]))
				{
					$arPostFields = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFields("BLOG_POST", $arParams["ID"], LANGUAGE_ID);

					if (count($arParams["POST_PROPERTY"]) > 0)
					{
						foreach ($arPostFields as $FIELD_NAME => $arPostField)
						{
							if (!in_array($FIELD_NAME, $arParams["POST_PROPERTY"]))
								continue;
							$arPostField["EDIT_FORM_LABEL"] = strLen($arPostField["EDIT_FORM_LABEL"]) > 0 ? $arPostField["EDIT_FORM_LABEL"] : $arPostField["FIELD_NAME"];
							$arPostField["EDIT_FORM_LABEL"] = htmlspecialcharsEx($arPostField["EDIT_FORM_LABEL"]);
							$arPostField["~EDIT_FORM_LABEL"] = $arPostField["EDIT_FORM_LABEL"];
							if(strlen($arResult["ERROR_MESSAGE"]) > 0 && !empty($_POST[$FIELD_NAME]))
							{
								$arPostField["VALUE"] = $_POST[$FIELD_NAME];
							}
							$arResult["POST_PROPERTIES"]["DATA"][$FIELD_NAME] = $arPostField;
				}
					}
					if (!empty($arResult["POST_PROPERTIES"]["DATA"]))
						$arResult["POST_PROPERTIES"]["SHOW"] = "Y";
				}

				$arResult["CUR_PAGE"] = urlencode($APPLICATION->GetCurPageParam());

				$serverName = "";
				$serverName = ((defined("SITE_SERVER_NAME") && strlen(SITE_SERVER_NAME) > 0) ? SITE_SERVER_NAME : COption::GetOptionString("main", "server_name", ""));
				if (strLen($serverName) <=0)
					$serverName = $_SERVER["HTTP_HOST"];
				$serverName = "http://".$serverName;

				$arResult["PATH_TO_POST"] = CComponentEngine::MakePathFromTemplate(htmlspecialcharsBack($arParams["PATH_TO_POST"]), array("blog" => $arBlog["URL"], "post_id" => "#post_id#", "user_id" => $arBlog["OWNER_ID"]));
				$arResult["PATH_TO_POST1"] = $serverName.substr($arResult["PATH_TO_POST"], 0, strpos($arResult["PATH_TO_POST"], "#post_id#"));
				$arResult["PATH_TO_POST2"] = substr($arResult["PATH_TO_POST"], strpos($arResult["PATH_TO_POST"], "#post_id#") + strlen("#post_id#"));

				if($arResult["preview"] == "Y")
				{
					if(check_bitrix_sessid())
					{
						$arResult["postPreview"]["TITLE"] = $arResult["PostToShow"]["TITLE"];
						$arResult["postPreview"]["CATEGORY_ID"] = $arResult["PostToShow"]["CATEGORY_ID"];
						$arResult["postPreview"]["DETAIL_TEXT"] = (($_POST["POST_MESSAGE_TYPE"] == "html")? $_POST["POST_MESSAGE_HTML"] : ($_POST["POST_MESSAGE"]));
						$arResult["postPreview"]["POST_MESSAGE_TYPE"] = htmlspecialcharsEx($_POST["POST_MESSAGE_TYPE"]);
						$arResult["postPreview"]["DATE_PUBLISH"] = $arResult["PostToShow"]["DATE_PUBLISH"];
						$arResult["postPreview"]["DATE_PUBLISH_FORMATED"] = FormatDate($arParams["DATE_TIME_FORMAT"], MakeTimeStamp($arResult["postPreview"]["DATE_PUBLISH"], CSite::GetDateFormat("FULL")));
						$arResult["postPreview"]["DATE_PUBLISH_DATE"] = ConvertDateTime($arResult["postPreview"]["DATE_PUBLISH"], FORMAT_DATE);
						$arResult["postPreview"]["DATE_PUBLISH_TIME"] = ConvertDateTime($arResult["postPreview"]["DATE_PUBLISH"], "HH:MI");
						$arResult["postPreview"]["DATE_PUBLISH_D"] = ConvertDateTime($arResult["postPreview"]["DATE_PUBLISH"], "DD");
						$arResult["postPreview"]["DATE_PUBLISH_M"] = ConvertDateTime($arResult["postPreview"]["DATE_PUBLISH"], "MM");
						$arResult["postPreview"]["DATE_PUBLISH_Y"] = ConvertDateTime($arResult["postPreview"]["DATE_PUBLISH"], "YYYY");
						$arResult["postPreview"]["FAVORITE_SORT"] = htmlspecialcharsEx($arResult["FAVORITE_SORT"]);
						if($_POST["POST_MESSAGE_TYPE"] == "html" && strlen($_POST["POST_MESSAGE_HTML"]) <= 0)
						{
							$arResult["postPreview"]["DETAIL_TEXT"] = htmlspecialcharsEx($_POST["POST_MESSAGE"]);
							$arResult["postPreview"]["~DETAIL_TEXT"] = $_POST["POST_MESSAGE"];
						}

						if (!empty($_POST["CATEGORY_ID"]))
						{
							foreach($_POST["CATEGORY_ID"] as $v)
							{

								if(substr($v, 0, 4) == "new_")
									$arResult["Category"][$v] = Array("ID" => $v, "NAME" => substr($v, 4), "Selected" => "Y");
							}
						}

						$p = new blogTextParser(false, $arParams["PATH_TO_SMILE"]);
						$arParserParams = Array(
							"imageWidth" => $arParams["IMAGE_MAX_WIDTH"],
							"imageHeight" => $arParams["IMAGE_MAX_HEIGHT"],
						);

						$res = CBlogImage::GetList(array("ID"=>"ASC"),array("POST_ID"=>$arPost['ID'], "BLOG_ID"=>$arBlog['ID'], "IS_COMMENT" => "N"));
						while ($arImage = $res->Fetch())
							$arImages[$arImage['ID']] = $arImage['FILE_ID'];

						if($arResult["postPreview"]["POST_MESSAGE_TYPE"] == "html" && $arResult["allowHTML"] == "Y")
						{
							$arAllow = array("HTML" => "Y", "ANCHOR" => "Y", "IMG" => "Y", "SMILES" => "Y", "NL2BR" => "N", "VIDEO" => "Y", "QUOTE" => "Y", "CODE" => "Y");
							if($arResult["allowVideo"] != "Y")
								$arAllow["VIDEO"] = "N";

							$arResult["postPreview"]["textFormated"] = $p->convert($arResult["postPreview"]["~DETAIL_TEXT"], false, $arImages, $arAllow, $arParserParams);
						}
						else
						{
							$arAllow = array("HTML" => "N", "ANCHOR" => "Y", "BIU" => "Y", "IMG" => "Y", "QUOTE" => "Y", "CODE" => "Y", "FONT" => "Y", "LIST" => "Y", "SMILES" => "Y", "NL2BR" => "N", "VIDEO" => "Y");
							if($arResult["allowVideo"] != "Y")
								$arAllow["VIDEO"] = "N";
							$arResult["postPreview"]["textFormated"] = $p->convert($arResult["postPreview"]["DETAIL_TEXT"], false, $arImages, $arAllow, $arParserParams);
						}
						$arResult["postPreview"]["BlogUser"] = CBlogUser::GetByID($arResult["UserID"], BLOG_BY_USER_ID);
						$arResult["postPreview"]["BlogUser"] = CBlogTools::htmlspecialcharsExArray($arResult["postPreview"]["BlogUser"]);
						$dbUser = CUser::GetByID($arResult["UserID"]);
						$arResult["postPreview"]["arUser"] = $dbUser->GetNext();
						$arResult["postPreview"]["AuthorName"] = CBlogUser::GetUserName($arResult["postPreview"]["BlogUser"]["ALIAS"], $arResult["postPreview"]["arUser"]["NAME"], $arResult["postPreview"]["arUser"]["LAST_NAME"], $arResult["postPreview"]["arUser"]["LOGIN"]);

						$arResult["postPreview"]["BlogUser"]["AVATAR_file"] = CFile::GetFileArray($arResult["postPreview"]["BlogUser"]["AVATAR"]);
						if ($arResult["postPreview"]["BlogUser"]["AVATAR_file"] !== false)
						{
							$arResult["postPreview"]["BlogUser"]["Avatar_resized"] = CFile::ResizeImageGet(
									$arResult["postPreview"]["BlogUser"]["AVATAR_file"],
									array("width" => 100, "height" => 100),
									BX_RESIZE_IMAGE_EXACT,
									false
								);

							$arResult["postPreview"]["BlogUser"]["AVATAR_img"] = CFile::ShowImage($arResult["postPreview"]["BlogUser"]["Avatar_resized"]["src"], 100, 100, "border=0 align='right'");
						}

						if(strlen($arResult["PostToShow"]["CategoryText"]) > 0)
						{
							$arCatTmp = explode(",", $arResult["PostToShow"]["CategoryText"]);
							if(is_array($arCatTmp))
							{
								foreach($arCatTmp as $v)
									$arResult["postPreview"]["Category"][] = Array("NAME" => htmlspecialcharsbx(trim($v)));
							}
						}
						elseif(strlen($arResult["postPreview"]["CATEGORY_ID"])>0)
						{
							foreach($arResult["postPreview"]["CATEGORY_ID"] as $v)
							{
								if(strlen($v)>0)
								{
									$arResult["postPreview"]["Category"][] = $arResult["Category"][$v];
								}
							}
						}
					}
					else
						$arResult["preview"] = "N";
				}
			}
		}
		else
			$arResult["FATAL_MESSAGE"] = GetMessage("BLOG_ERR_NO_RIGHTS");
	}
	else
	{
		$arResult["FATAL_MESSAGE"] = GetMessage("B_B_MES_NO_BLOG");
		CHTTP::SetStatus("404 Not Found");
	}
}
else
{
	$arResult["FATAL_MESSAGE"] = GetMessage("B_B_MES_NO_BLOG");
	CHTTP::SetStatus("404 Not Found");
}
	
$this->IncludeComponentTemplate();
?>