Your IP : 3.147.63.208


Current Path : /home/bitrix/ext_www/ballu.in.ua/bitrix/components/bitrix/socialnetwork.group_create/
Upload File :
Current File : /home/bitrix/ext_www/ballu.in.ua/bitrix/components/bitrix/socialnetwork.group_create/component.php

<?
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

if (!CModule::IncludeModule("socialnetwork"))
{
	ShowError(GetMessage("SONET_MODULE_NOT_INSTALL"));
	return;
}

$arParams["GROUP_ID"] = IntVal($arParams["GROUP_ID"]);

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

if (strLen($arParams["USER_VAR"]) <= 0)
	$arParams["USER_VAR"] = "user_id";
if (strLen($arParams["PAGE_VAR"]) <= 0)
	$arParams["PAGE_VAR"] = "page";
if (strLen($arParams["GROUP_VAR"]) <= 0)
	$arParams["GROUP_VAR"] = "group_id";

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

$arParams["PATH_TO_GROUP"] = trim($arParams["PATH_TO_GROUP"]);
if (strlen($arParams["PATH_TO_GROUP"]) <= 0)
	$arParams["PATH_TO_GROUP"] = htmlspecialchars($APPLICATION->GetCurPage()."?".$arParams["PAGE_VAR"]."=group&".$arParams["GROUP_VAR"]."=#group_id#");

$arParams["PATH_TO_GROUP_EDIT"] = trim($arParams["PATH_TO_GROUP_EDIT"]);
if (strlen($arParams["PATH_TO_GROUP_EDIT"]) <= 0)
	$arParams["PATH_TO_GROUP_EDIT"] = htmlspecialchars($APPLICATION->GetCurPage()."?".$arParams["PAGE_VAR"]."=group_edit&".$arParams["GROUP_VAR"]."=#group_id#");

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

$arResult["GROUP_PROPERTIES"] = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFields("SONET_GROUP", 0, LANGUAGE_ID);

foreach($arResult["GROUP_PROPERTIES"] as $field => $arUserField)
{
	$arResult["GROUP_PROPERTIES"][$field]["EDIT_FORM_LABEL"] = StrLen($arUserField["EDIT_FORM_LABEL"]) > 0 ? $arUserField["EDIT_FORM_LABEL"] : $arUserField["FIELD_NAME"];
	$arResult["GROUP_PROPERTIES"][$field]["EDIT_FORM_LABEL"] = htmlspecialcharsEx($arResult["GROUP_PROPERTIES"][$field]["EDIT_FORM_LABEL"]);
	$arResult["GROUP_PROPERTIES"][$field]["~EDIT_FORM_LABEL"] = $arResult["GROUP_PROPERTIES"][$field]["EDIT_FORM_LABEL"];
}

$arResult["bVarsFromForm"] = false;

if (!$GLOBALS["USER"]->IsAuthorized())
{	
	$arResult["NEED_AUTH"] = "Y";
}
else
{
	$arResult["POST"] = array();

	if ($arParams["GROUP_ID"] > 0)
	{
		$arGroup = CSocNetGroup::GetByID($arParams["GROUP_ID"]);
		if ($arGroup && ($arGroup["OWNER_ID"] == $GLOBALS["USER"]->GetID() || CSocNetUser::IsCurrentUserModuleAdmin()))
		{
			$arResult["POST"]["NAME"] = $arGroup["NAME"];
			$arResult["POST"]["DESCRIPTION"] = $arGroup["DESCRIPTION"];
			$arResult["POST"]["IMAGE_ID_DEL"] = "N";
			$arResult["POST"]["SUBJECT_ID"] = $arGroup["SUBJECT_ID"];
			$arResult["POST"]["VISIBLE"] = $arGroup["VISIBLE"];
			$arResult["POST"]["OPENED"] = $arGroup["OPENED"];
			$arResult["POST"]["CLOSED"] = $arGroup["CLOSED"];
			$arResult["POST"]["KEYWORDS"] = $arGroup["KEYWORDS"];
			$arResult["POST"]["OWNER_ID"] = $arGroup["OWNER_ID"];
			$arResult["POST"]["INITIATE_PERMS"] = $arGroup["INITIATE_PERMS"];
			$arResult["POST"]["SPAM_PERMS"] = $arGroup["SPAM_PERMS"];

			$arResult["POST"]["IMAGE_ID"] = $arGroup["IMAGE_ID"];
			$arResult["POST"]["IMAGE_ID_FILE"] = CFile::GetFileArray($arGroup["IMAGE_ID"]);
			$arResult["POST"]["IMAGE_ID_IMG"] = (($arResult["POST"]["IMAGE_ID_FILE"] != false) ? CFile::ShowImage($arResult["POST"]["IMAGE_ID_FILE"]["SRC"], 100, 100, "border=0", false, true) : false);
			
			foreach($arResult["GROUP_PROPERTIES"] as $field => $arUserField)
				if (array_key_exists($field, $arGroup))
				{
					$arResult["GROUP_PROPERTIES"][$field]["VALUE"] = $arGroup["~".$field];
					$arResult["GROUP_PROPERTIES"][$field]["ENTITY_VALUE_ID"] = $arGroup["ID"];
				}
		}
		else
		{
			$arParams["GROUP_ID"] = 0;
			$arResult["POST"]["VISIBLE"] = "Y";
		}
	}
	else
	{
		$arParams["GROUP_ID"] = 0;
		$arResult["POST"]["VISIBLE"] = "Y";
		if (CModule::IncludeModule('extranet') && CExtranet::IsExtranetSite())
			$arResult["POST"]["INITIATE_PERMS"] = "E";
		else
			$arResult["POST"]["INITIATE_PERMS"] = "K";
		$arResult["POST"]["SPAM_PERMS"] = "K";
	}

	$arResult["Urls"]["User"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $GLOBALS["USER"]->GetID()));
	$arResult["Urls"]["Group"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_GROUP"], array("group_id" => $arParams["GROUP_ID"]));
	$arResult["Urls"]["GroupEdit"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_GROUP_EDIT"], array("group_id" => $arParams["GROUP_ID"]));
	$arResult["Urls"]["GroupCreate"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_GROUP_CREATE"], array("user_id" => $GLOBALS["USER"]->GetID()));

	
	
	if ($arParams["GROUP_ID"] <= 0 && $arParams["SET_TITLE"] == "Y")
	{
		if (strlen($arParams["NAME_TEMPLATE"]) <= 0)		
			$arParams["NAME_TEMPLATE"] = '#NOBR##NAME# #LAST_NAME##/NOBR#';
					
		$arParams["TITLE_NAME_TEMPLATE"] = str_replace(
			array("#NOBR#", "#/NOBR#"), 
			array("", ""), 
			$arParams["NAME_TEMPLATE"]
		);
		$bUseLogin = $arParams['SHOW_LOGIN'] != "N" ? true : false;
		
		$arTmpUser = array(
			"NAME" => $GLOBALS["USER"]->GetFirstName(),
			"LAST_NAME" => $GLOBALS["USER"]->GetLastName(),
			"SECOND_NAME" => $GLOBALS["USER"]->GetParam("SECOND_NAME"),
			"LOGIN" => $GLOBALS["USER"]->GetLogin()
		);
		$strTitleFormatted = CUser::FormatName($arParams['TITLE_NAME_TEMPLATE'], $arTmpUser, $bUseLogin);
	}	
	
	
	if ($arParams["SET_TITLE"] == "Y")
	{
		if ($arParams["GROUP_ID"] > 0)
			$APPLICATION->SetTitle($arResult["POST"]["NAME"].": ".GetMessage("SONET_C8_GROUP_EDIT"));
		else
			$APPLICATION->SetTitle($strTitleFormatted.": ".GetMessage("SONET_C8_GROUP_CREATE"));
	}

	if ($arParams["SET_NAV_CHAIN"] != "N")
	{
		if ($arParams["GROUP_ID"] > 0)
		{
			$APPLICATION->AddChainItem($arResult["POST"]["NAME"], $arResult["Urls"]["Group"]);
			$APPLICATION->AddChainItem(GetMessage("SONET_C8_GROUP_EDIT"));
		}
		else
		{
			$APPLICATION->AddChainItem(GetMessage("SONET_C8_GROUP_CREATE"));
		}
	}

	if ($arParams["GROUP_ID"] <= 0)
	{
		if (!CSocNetUser::IsCurrentUserModuleAdmin() && $GLOBALS["APPLICATION"]->GetGroupRight("socialnetwork") < "K")
			$arResult["FatalError"] = GetMessage("SONET_C8_ERR_CANT_CREATE").". ";
	}
	else
	{
		if ($arResult["POST"]["OWNER_ID"] != $GLOBALS["USER"]->GetID() && !CSocNetUser::IsCurrentUserModuleAdmin())
			$arResult["FatalError"] = GetMessage("SONET_C8_ERR_SECURITY").". ";
	}

	if (StrLen($arResult["FatalError"]) <= 0)
	{
		$arResult["ShowForm"] = "Input";

		if ($_SERVER["REQUEST_METHOD"]=="POST" && strlen($_POST["save"]) > 0 && check_bitrix_sessid())
		{
			$errorMessage = "";

			$arImageID = $GLOBALS["HTTP_POST_FILES"]["GROUP_IMAGE_ID"];

			if (StrLen($arImageID["tmp_name"]) > 0)
				CFile::ResizeImage($arImageID, array("width" => 300, "height" => 300), BX_RESIZE_IMAGE_PROPORTIONAL);
			$arImageID["old_file"] = $arResult["POST"]["IMAGE_ID"];
			$arImageID["del"] = ($_POST["GROUP_IMAGE_ID_DEL"] == "Y" ? "Y" : "N");

			$arResult["POST"]["NAME"] = $_POST["GROUP_NAME"];
			$arResult["POST"]["DESCRIPTION"] = $_POST["GROUP_DESCRIPTION"];
			$arResult["POST"]["IMAGE_ID_DEL"] = ($_POST["GROUP_IMAGE_ID_DEL"] == "Y" ? "Y" : "N");
			$arResult["POST"]["SUBJECT_ID"] = $_POST["GROUP_SUBJECT_ID"];
			$arResult["POST"]["VISIBLE"] = ($_POST["GROUP_VISIBLE"] == "Y" ? "Y" : "N");
			$arResult["POST"]["OPENED"] = ($_POST["GROUP_OPENED"] == "Y" ? "Y" : "N");
			$arResult["POST"]["CLOSED"] = ($_POST["GROUP_CLOSED"] == "Y" ? "Y" : "N");
			$arResult["POST"]["KEYWORDS"] = $_POST["GROUP_KEYWORDS"];
			$arResult["POST"]["INITIATE_PERMS"] = $_POST["GROUP_INITIATE_PERMS"];
			$arResult["POST"]["SPAM_PERMS"] = $_POST["GROUP_SPAM_PERMS"];

			foreach($arResult["GROUP_PROPERTIES"] as $field => $arUserField)
				if (array_key_exists($field, $_POST))
					$arResult["POST"]["PROPERTIES"][$field] = $_POST[$field];

			if (strlen($_POST["GROUP_NAME"]) <= 0)
				$errorMessage .= GetMessage("SONET_C8_ERR_NAME").".<br />";
			if (strlen($_POST["GROUP_DESCRIPTION"]) <= 0)
				$errorMessage .= GetMessage("SONET_C8_ERR_DESCR").".<br />";
			if (IntVal($_POST["GROUP_SUBJECT_ID"]) <= 0)
				$errorMessage .= GetMessage("SONET_C8_ERR_SUBJECT").".<br />";
			if (strlen($_POST["GROUP_INITIATE_PERMS"]) <= 0)
				$errorMessage .= GetMessage("SONET_C8_ERR_PERMS").".<br />";
			if (strlen($_POST["GROUP_SPAM_PERMS"]) <= 0)
				$errorMessage .= GetMessage("SONET_C8_ERR_SPAM_PERMS").".<br />";

			if (strlen($errorMessage) <= 0)
			{
				if ($arParams["GROUP_ID"] > 0)
					if ($arResult["POST"]["OWNER_ID"] != $GLOBALS["USER"]->GetID() && !CSocNetUser::IsCurrentUserModuleAdmin())
						$errorMessage .= GetMessage("SONET_C8_ERR_SECURITY").". ";
			}

			$bCreate = false;

			if (strlen($errorMessage) <= 0)
			{
				$arFields = array(
					"SITE_ID" => SITE_ID,
					"NAME" => $_POST["GROUP_NAME"],
					"DESCRIPTION" => $_POST["GROUP_DESCRIPTION"],
					"VISIBLE" => ($_POST["GROUP_VISIBLE"] == "Y" ? "Y" : "N"),
					"OPENED" => ($_POST["GROUP_OPENED"] == "Y" ? "Y" : "N"),
					"CLOSED" => ($_POST["GROUP_CLOSED"] == "Y" ? "Y" : "N"),
					"SUBJECT_ID" => $_POST["GROUP_SUBJECT_ID"],
					"KEYWORDS" => $_POST["GROUP_KEYWORDS"],
					"IMAGE_ID" => $arImageID,
					"INITIATE_PERMS" => $_POST["GROUP_INITIATE_PERMS"],
					"SPAM_PERMS" => $_POST["GROUP_SPAM_PERMS"],
				);
				
				foreach($arResult["GROUP_PROPERTIES"] as $field => $arUserField)
					if (array_key_exists($field, $_POST))
						$arFields[$field] = $_POST[$field];

				$GLOBALS["USER_FIELD_MANAGER"]->EditFormAddFields("SONET_GROUP", $arFields);
				
				if ($arParams["GROUP_ID"] <= 0)
				{
					$arResult["MEW_GROUP_ID"] = CSocNetGroup::CreateGroup($GLOBALS["USER"]->GetID(), $arFields);
					if (!$arResult["MEW_GROUP_ID"])
					{
						if ($e = $APPLICATION->GetException())
							$errorMessage .= $e->GetString();
					}
					else
						$bCreate = true;

				}
				else
				{
					$arFields["=DATE_UPDATE"] = $GLOBALS["DB"]->CurrentTimeFunction();
					$arFields["=DATE_ACTIVITY"] = $GLOBALS["DB"]->CurrentTimeFunction();
					$arResult["MEW_GROUP_ID"] = CSocNetGroup::Update($arParams["GROUP_ID"], $arFields);
					if (!$arResult["MEW_GROUP_ID"])
					{
						if ($e = $APPLICATION->GetException())
							$errorMessage .= $e->GetString();
					}
				}
			}

			if (StrLen($arImageID["tmp_name"]) > 0)
				CFile::ResizeImageDeleteCache($arImageID);

			$arResult["POST"]["NAME"] = htmlspecialcharsex($arResult["POST"]["NAME"]);
			$arResult["POST"]["DESCRIPTION"] = htmlspecialcharsex($arResult["POST"]["DESCRIPTION"]);
			$arResult["POST"]["KEYWORDS"] = htmlspecialcharsex($arResult["POST"]["KEYWORDS"]);

			if (strlen($errorMessage) > 0)
			{
				$arResult["ErrorMessage"] = $errorMessage;
				$arResult["bVarsFromForm"] = true;
			}
			else
			{

				if ($bCreate && $arParams["ALLOW_REDIRECT_REQUEST"] == "Y" && strlen($arParams["REDIRECT_REQUEST"]) > 0)
				{
					$arResult["REDIRECT_REQUEST"] = CComponentEngine::MakePathFromTemplate($arParams["REDIRECT_REQUEST"], array("group_id" => $arResult["MEW_GROUP_ID"]));
					LocalRedirect($arResult["REDIRECT_REQUEST"]);
				}

				$arResult["ShowForm"] = "Confirm";
				$arResult["Urls"]["NewGroup"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_GROUP"], array("group_id" => $arResult["MEW_GROUP_ID"]));
				if (strlen($arParams["REDIRECT_CONFIRM"]) > 0)
				{
					$arResult["REDIRECT_CONFIRM"] = CComponentEngine::MakePathFromTemplate($arParams["REDIRECT_CONFIRM"], array("group_id" => $arResult["MEW_GROUP_ID"]));
					LocalRedirect($arResult["REDIRECT_CONFIRM"]);
				}

			}
		}

		if ($arResult["ShowForm"] == "Input")
		{
			$arResult["Subjects"] = array();
			$dbSubjects = CSocNetGroupSubject::GetList(
				array("SORT"=>"ASC", "NAME" => "ASC"),
				array("SITE_ID" => SITE_ID),
				false,
				false,
				array("ID", "NAME")
			);
			while ($arSubject = $dbSubjects->GetNext())
				$arResult["Subjects"][$arSubject["ID"]] = $arSubject["NAME"];

			$arResult["InitiatePerms"] = array(
				SONET_ROLES_OWNER => GetMessage("SONET_C8_IP_OWNER"),
				SONET_ROLES_MODERATOR => GetMessage("SONET_C8_IP_MOD"),
				SONET_ROLES_USER => GetMessage("SONET_C8_IP_USER"),
			);

			$arResult["SpamPerms"] = array(
				SONET_ROLES_OWNER => GetMessage("SONET_C8_IP_OWNER"),
				SONET_ROLES_MODERATOR => GetMessage("SONET_C8_IP_MOD"),
				SONET_ROLES_USER => GetMessage("SONET_C8_IP_USER"),
				SONET_ROLES_ALL => GetMessage("SONET_C8_IP_ALL"),
			);
		}
	}
}
$this->IncludeComponentTemplate();
?>