%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /proc/self/root/home/bitrix/www/bitrix/components/bitrix/socialnetwork/include/
Upload File :
Create Path :
Current File : //proc/self/root/home/bitrix/www/bitrix/components/bitrix/socialnetwork/include/photogallery.php

<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
$file = trim(preg_replace("'[\\\\/]+'", "/", (dirname(__FILE__)."/../lang/".LANGUAGE_ID."/include/photogallery.php")));
__IncludeLang($file);

$object = (strPos($componentPage, "group_photo")!== false ? "group" : "user");

$arParams["SHOW_LINK_TO_FORUM"] = "N";
$arParams["PHOTO_PREORDER"] = "Y";
$arParams["PHOTO_GALLERY_AVATAR_THUMBS_SIZE"] = 150;
$arParams["PHOTO_GALLERY_AVATAR_SIZE"] = 150;
$arParams["GALLERY_AVATAR_SIZE"] = $arParams["PHOTO_GALLERY_AVATAR_SIZE"];

if (array_key_exists("PHOTO_PATH_TO_FONT", $arParams) && is_array($arParams["PHOTO_PATH_TO_FONT"]))
	$arParams["PHOTO_PATH_TO_FONT"] = $arParams["PHOTO_PATH_TO_FONT"][0];

if ($componentPage == "user_photo_gallery")
	$componentPage = "user_photo";
elseif ($componentPage == "group_photo_gallery")
	$componentPage = "group_photo";
/********************************************************************
				Permission
********************************************************************/
if (
	(
		$object == "user" 
		&& !CSocNetFeaturesPerms::CanPerformOperation($USER->GetID(), SONET_ENTITY_USER, $arResult["VARIABLES"]["user_id"], "photo", "view", CSocNetUser::IsCurrentUserModuleAdmin())
	) 
	|| (
		$object == "group" 
		&& !CSocNetFeaturesPerms::CanPerformOperation($USER->GetID(), SONET_ENTITY_GROUP, $arResult["VARIABLES"]["group_id"], "photo", "view", CSocNetUser::IsCurrentUserModuleAdmin())
	)
)
{
	$arParams["ERROR_MESSAGE"] = ($object == "user" ? GetMessage("SONET_USER_PHOTO_ACCESS_DENIED") : GetMessage("SONET_GROUP_PHOTO_ACCESS_DENIED"));
	return -1;
}
/********************************************************************
				/Permission
********************************************************************/
/************** Navigation *****************************************/
$strTitle = "";
if ($arParams["SET_NAV_CHAIN"] == "Y" || $arParams["SET_TITLE"] == "Y")
{

	$feature = "photo";
	$arEntityActiveFeatures = CSocNetFeatures::GetActiveFeaturesNames((($object == 'group') ? SONET_ENTITY_GROUP : SONET_ENTITY_USER), (($object == 'group') ? $arResult["VARIABLES"]["group_id"] : $arResult["VARIABLES"]["user_id"]));
	$strFeatureTitle = ((array_key_exists($feature, $arEntityActiveFeatures) && StrLen($arEntityActiveFeatures[$feature]) > 0) ? $arEntityActiveFeatures[$feature] : GetMessage("SONET_PHOTO"));

	if($object == "group")
	{
		$arGroup = CSocNetGroup::GetByID($arResult["VARIABLES"]["group_id"]);
		if ($arParams["SET_NAV_CHAIN"] == "Y")
		{
			$APPLICATION->AddChainItem($arGroup["NAME"],
				CComponentEngine::MakePathFromTemplate($arResult["PATH_TO_GROUP"], array("group_id" => $arGroup["ID"])));
			$APPLICATION->AddChainItem($strFeatureTitle,
				CComponentEngine::MakePathFromTemplate($arResult["PATH_TO_GROUP_PHOTO"],
					array("group_id" => $arGroup["ID"], "path" => "")));
		}
		$strTitle = $arGroup["NAME"].": ".$strFeatureTitle;
		$arResult["GROUP"] = $arGroup;
	}
	else
	{
		if (strlen($arParams["NAME_TEMPLATE"]) <= 0)
			$arParams["NAME_TEMPLATE"] = CSite::GetNameFormat();

		$arParams["TITLE_NAME_TEMPLATE"] = str_replace(
			array("#NOBR#", "#/NOBR#"),
			array("", ""),
			$arParams["NAME_TEMPLATE"]
		);
		$bUseLogin = $arParams['SHOW_LOGIN'] != "N" ? true : false;

		$name = "";
		if ($USER->IsAuthorized() && $arResult["VARIABLES"]["user_id"] == $USER->GetID())
		{
			$arTmpUser = array(
				"NAME" => $USER->GetFirstName(),
				"LAST_NAME" => $USER->GetLastName(),
				"SECOND_NAME" => $USER->GetParam("SECOND_NAME"),
				"LOGIN" => $USER->GetLogin(),
			);
			$name = CUser::FormatName($arParams['TITLE_NAME_TEMPLATE'], $arTmpUser, $bUseLogin);
		}
		else
		{
			$dbUser = CUser::GetByID($arResult["VARIABLES"]["user_id"]);
			$arUser = $dbUser->Fetch();
			$name = CUser::FormatName($arParams['TITLE_NAME_TEMPLATE'], $arUser, $bUseLogin);
		}

		$strTitle = $name.": ".$strFeatureTitle;
		if ($arParams["SET_NAV_CHAIN"] == "Y")
		{
			$APPLICATION->AddChainItem($name,
				CComponentEngine::MakePathFromTemplate($arResult["PATH_TO_USER"], array("user_id" => $arResult["VARIABLES"]["user_id"])));
			$APPLICATION->AddChainItem($strFeatureTitle,
				CComponentEngine::MakePathFromTemplate($arResult["PATH_TO_USER_PHOTO"],
					array("user_id" => $arResult["VARIABLES"]["user_id"], "path" => "")));
		}
	}
}
if (
	$arParams["SET_TITLE"] == "Y" 
	&& !empty($strTitle)
)
{
	if ($arParams["HIDE_OWNER_IN_TITLE"] == "Y")
	{
		$APPLICATION->SetPageProperty("title", $strTitle);
		$APPLICATION->SetTitle($strFeatureTitle);
	}
	else
	{
		$APPLICATION->SetTitle($strTitle);
	}

	if ($componentPage == "user_photo")
	{
		$arParams["SET_TITLE"] = "N";
	}
	elseif (
		$componentPage == "user_photo_gallery" 
		&& empty($arResult["VARIABLES"]["section_id"])
	)
	{
		$arParams["SET_TITLE"] = "N";
	}
}
/************** Navigation/*****************************************/
/********************************************************************
				Fatal errors
********************************************************************/
if (($object == "user" && !CSocNetFeatures::IsActiveFeature(SONET_ENTITY_USER, $arResult["VARIABLES"]["user_id"], "photo")) || ($object == "group" && !CSocNetFeatures::IsActiveFeature(SONET_ENTITY_GROUP, $arResult["VARIABLES"]["group_id"], "photo")))
{
	$arParams["ERROR_MESSAGE"] = GetMessage("SONET_PHOTO_IS_NOT_ACTIVE");
	return 0;
}
elseif (!CModule::IncludeModule("photogallery"))
{
	$arParams["ERROR_MESSAGE"] = GetMessage("SONET_P_MODULE_IS_NOT_INSTALLED");
	return 0;
}
elseif (!CModule::IncludeModule("iblock"))
{
	$arParams["ERROR_MESSAGE"] = GetMessage("SONET_IB_MODULE_IS_NOT_INSTALLED");
	return 0;
}
elseif (($object == "user" && $arParams["PHOTO_USER_IBLOCK_ID"] <= 0) || ($object == "group" && $arParams["PHOTO_GROUP_IBLOCK_ID"] <= 0))
{
	$arParams["ERROR_MESSAGE"] = GetMessage("SONET_IBLOCK_ID_EMPTY");
	return 0;
}

/********************************************************************
				/Fatal errors
********************************************************************/

/********************************************************************
				Input params
********************************************************************/
$arParams["PHOTO"] = array(
/***************** BASE ********************************************/
	"USER" => array(
		"IBLOCK_TYPE" => trim($arParams["PHOTO_USER_IBLOCK_TYPE"]),
		"IBLOCK_ID" => intVal($arParams["PHOTO_USER_IBLOCK_ID"])),
	"GROUP" => array(
		"IBLOCK_TYPE" => trim($arParams["PHOTO_GROUP_IBLOCK_TYPE"]),
		"IBLOCK_ID" => intVal($arParams["PHOTO_GROUP_IBLOCK_ID"])),

	"ALL" => array(
		"GALLERY_GROUPS" => array(2),
		"ONLY_ONE_GALLERY" => "Y",
		"SECTION_SORT_BY" => trim($arParams["PHOTO_SECTION_SORT_BY"]),
		"SECTION_SORT_ORD" => trim($arParams["PHOTO_SECTION_SORT_ORD"]),
		"ELEMENT_SORT_FIELD" => trim($arParams["PHOTO_ELEMENT_SORT_FIELD"]),
		"ELEMENT_SORT_ORDER" => trim($arParams["PHOTO_ELEMENT_SORT_ORDER"]),

		"PROPERTY_CODE" => array(),
		"MODERATION" => ($arParams["PHOTO_MODERATION"] == "Y" ? "Y" : "N"),
/***************** ADDITIONAL **************************************/
		"SECTION_PAGE_ELEMENTS" => intVal($arParams["PHOTO_SECTION_PAGE_ELEMENTS"]),
		"ELEMENTS_PAGE_ELEMENTS" => intVal($arParams["PHOTO_ELEMENTS_PAGE_ELEMENTS"]),
		"PAGE_NAVIGATION_TEMPLATE" => trim($arParams["PHOTO_PAGE_NAVIGATION_TEMPLATE"]),
		"ELEMENTS_USE_DESC_PAGE" => "Y",
		"DATE_TIME_FORMAT_SECTION" => "",
		"DATE_TIME_FORMAT_DETAIL" => "",
		"USE_PERMISSIONS" => "N",
		"GROUP_PERMISSIONS" => array(),
		"TEMPLATE_LIST" => ($arParams["PHOTO_TEMPLATE_LIST"] == "table" ? "table" : ".default"),
/***************** UPLOAD ******************************************/
		"UPLOAD_MAX_FILE_SIZE" => intVal($arParams["PHOTO_UPLOAD_MAX_FILESIZE"]),
		"UPLOAD_MAX_FILE" => intVal($arParams["PHOTO_UPLOAD_MAX_FILE"]),

		"GALLERY_AVATAR_SIZE" => intVal($arParams["PHOTO_GALLERY_AVATAR_SIZE"]),
		"GALLERY_AVATAR_THUMBS_SIZE" => intVal($arParams["PHOTO_GALLERY_AVATAR_THUMBS_SIZE"]),

		"ALBUM_PHOTO_THUMBS_SIZE" => intVal($arParams["PHOTO_ALBUM_PHOTO_THUMBS_SIZE"]),
		"ALBUM_PHOTO_SIZE" => intVal($arParams["PHOTO_ALBUM_PHOTO_SIZE"]),

		"THUMBNAIL_SIZE" => intVal($arParams["PHOTO_THUMBNAIL_SIZE"]),
		"JPEG_QUALITY1" => intVal($arParams["PHOTO_JPEG_QUALITY1"]),
		"PREVIEW_SIZE" => intVal($arParams["PHOTO_PREVIEW_SIZE"]),
		"JPEG_QUALITY2" => intVal($arParams["PHOTO_JPEG_QUALITY2"]),
		"ORIGINAL_SIZE" => intVal($arParams["PHOTO_ORIGINAL_SIZE"]),
		"JPEG_QUALITY" => intVal($arParams["PHOTO_JPEG_QUALITY"]),

		"ADDITIONAL_SIGHTS" => array(),
		"WATERMARK_RULES" => $arParams["PHOTO_WATERMARK_RULES"],
		"WATERMARK_TYPE" => $arParams["PHOTO_WATERMARK_TYPE"],
		"WATERMARK_TEXT" => $arParams["PHOTO_WATERMARK_TEXT"],
		"WATERMARK_COLOR" => $arParams["PHOTO_WATERMARK_COLOR"],
		"WATERMARK_SIZE" => $arParams["PHOTO_WATERMARK_SIZE"],
		"WATERMARK_FILE" => $arParams["PHOTO_WATERMARK_FILE"],
		"WATERMARK_FILE_ORDER" => $arParams["PHOTO_WATERMARK_FILE_ORDER"],
		"WATERMARK_POSITION" => $arParams["PHOTO_WATERMARK_POSITION"],
		"WATERMARK_TRANSPARENCY" => $arParams["PHOTO_WATERMARK_TRANSPARENCY"],
		"WATERMARK_MIN_PICTURE_SIZE" => intVal($arParams["PHOTO_WATERMARK_MIN_PICTURE_SIZE"]),
		"PATH_TO_FONT" => trim($arParams["PHOTO_PATH_TO_FONT"]),
/***************** RATING ******************************************/
		"USE_RATING" => ($arParams["PHOTO_USE_RATING"] == "Y" || $arParams["SHOW_RATING"] == "Y" ? "Y" : "N"),
		"MAX_VOTE" => intVal($arParams["PHOTO_MAX_VOTE"]),
		"VOTE_NAMES" => $arParams["PHOTO_VOTE_NAMES"],
		"DISPLAY_AS_RATING" => $arParams["SHOW_RATING"] == "Y"? "rating_main": $arParams["PHOTO_DISPLAY_AS_RATING"],
		"RATING_MAIN_TYPE" => $arParams["SHOW_RATING"] == "Y"? $arParams["RATING_TYPE"]: "",
/***************** COMMENTS ****************************************/
		"USE_COMMENTS" => ($arParams["PHOTO_USE_COMMENTS"] == "Y" && $arResult["GROUP"]["CLOSED"] != "Y" ? "Y" : "N"),
		"COMMENTS_TYPE" => ($arParams["PHOTO_COMMENTS_TYPE"] == "blog" ? "BLOG" : "FORUM"),
		"BLOG_URL" => $arParams["PHOTO_BLOG_URL"],
		"COMMENTS_COUNT" => $arParams["PHOTO_COMMENTS_COUNT"],
		"PATH_TO_USER" => isset($arResult["PATH_TO_USER"]) ? $arResult["PATH_TO_USER"] : $arParams["PATH_TO_USER"],
		"PATH_TO_BLOG" => $arParams["PHOTO_PATH_TO_BLOG"],
		"FORUM_ID" => $arParams["PHOTO_FORUM_ID"],
		"URL_TEMPLATES_READ" => $arParams["PHOTO_URL_TEMPLATES_READ"],
		"USE_CAPTCHA" => $arParams["PHOTO_USE_CAPTCHA"],
		"PREORDER" => $arParams["PHOTO_PREORDER"],
/***************** TAGS ******************************************/
		"SHOW_TAGS" => "N",
		),
	"TEMPLATE" => array(
		"SHOW_PHOTO_USER" => "N",
		"SHOW_SHOWS" => "",
		"CELL_COUNT" => intVal($arParams["PHOTO_COUNT_CELL"] > 0 ? $arParams["PHOTO_COUNT_CELL"] : 0),
		"TEMPLATE_LIST" => ($arParams["PHOTO_TEMPLATE_LIST"] == "table" ? "table" : ".default"),
		"SLIDER_COUNT_CELL" => intVal($arParams["PHOTO_SLIDER_COUNT_CELL"] > 0 ? $arParams["PHOTO_SLIDER_COUNT_CELL"] : 3),
		"GALLERY_AVATAR_SIZE" => intVal($arParams["PHOTO_GALLERY_AVATAR_SIZE"]),
		"WATERMARK" => ($arParams["PHOTO_SHOW_WATERMARK"] == "N" ? "N" : "Y"),
		"WATERMARK_COLORS" => array(),
		)
	);

	if ($arParams["PHOTO"]["ALL"]["THUMBNAIL_SIZE"] <= 0 && intVal($arParams["PHOTO_THUMBS_SIZE"]) > 0)
		$arParams["PHOTO"]["ALL"]["THUMBNAIL_SIZE"] = round(intVal($arParams["PHOTO_THUMBS_SIZE"]) * 0.6);

/***************** ADDITIONAL **************************************/
	if(!isset($arParams["CACHE_TIME"]))
		$arParams["CACHE_TIME"] = 3600;
	if ($arParams["CACHE_TYPE"] == "Y" || ($arParams["CACHE_TYPE"] == "A" && COption::GetOptionString("main", "component_cache_on", "Y") == "Y"))
		$arParams["CACHE_TIME"] = intval($arParams["CACHE_TIME"]);
	else
		$arParams["CACHE_TIME"] = 0;
	$arParams["SET_TITLE"] = ($arParams["SET_TITLE"] == "N" ? "N" : "Y");
	$arParams["DISPLAY_PANEL"] = ($arParams["DISPLAY_PANEL"]=="Y" ? "Y" : "N"); //Turn off by default
	$arParams["SET_NAV_CHAIN"] = ($arParams["SET_NAV_CHAIN"] == "N" ? "N" : "Y");
/********************************************************************
				/Input params
********************************************************************/

/********************************************************************
				Default params
********************************************************************/
$arParams["IBLOCK_ID"] = intVal($object == "user" ? $arParams["PHOTO_USER_IBLOCK_ID"] : $arParams["PHOTO_GROUP_IBLOCK_ID"]);
$cache = new CPHPCache;
/************** Permission *****************************************/
$arParams["PERMISSION"]	= "D";
if ($object == "user")
{
	if (CSocNetFeaturesPerms::CanPerformOperation($USER->GetID(), SONET_ENTITY_USER, $arResult["VARIABLES"]["user_id"], "photo", "write", CSocNetUser::IsCurrentUserModuleAdmin()))
		$arParams["PERMISSION"]	= "W";
	elseif (CSocNetFeaturesPerms::CanPerformOperation($USER->GetID(), SONET_ENTITY_USER, $arResult["VARIABLES"]["user_id"], "photo", "view", CSocNetUser::IsCurrentUserModuleAdmin()))
		$arParams["PERMISSION"]	= "R";
}
else
{
	if (CSocNetFeaturesPerms::CanPerformOperation($USER->GetID(), SONET_ENTITY_GROUP, $arResult["VARIABLES"]["group_id"], "photo", "write", CSocNetUser::IsCurrentUserModuleAdmin()))
		$arParams["PERMISSION"]	= "W";
	elseif (CSocNetFeaturesPerms::CanPerformOperation($USER->GetID(), SONET_ENTITY_GROUP, $arResult["VARIABLES"]["group_id"], "photo", "view", CSocNetUser::IsCurrentUserModuleAdmin()))
		$arParams["PERMISSION"]	= "R";
}

$user_alias = $arResult["VARIABLES"]["user_alias"];
if (empty($user_alias)):
	$arFilter = array(
		"IBLOCK_ID" => $arParams["IBLOCK_ID"],
		"IBLOCK_ACTIVE" => "Y",
		"SECTION_ID" => 0,
		"SOCNET_GROUP_ID" => false
	);
	if ($object == "user")
	{
		$uid = $arResult["VARIABLES"]["user_id"];
		if ($uid <= 0 && $componentPage == "user_photo_my" && $GLOBALS["USER"]->IsAuthorized())
			$uid = $GLOBALS["USER"]->GetId();
		if ($uid <= 0)
		{
			$arParams["ERROR_MESSAGE"] = "User is not exists.";
			return 0;
		}
		$arFilter["CREATED_BY"] = $uid;
	}
	else
	{
		$arFilter["SOCNET_GROUP_ID"] = $arResult["VARIABLES"]["group_id"];
	}

	$cache_id = 'socnet_'.serialize($arFilter).$object;
	$cache_path = "/".SITE_ID."/photogallery/".$arParams["IBLOCK_ID"];

	if ($arParams["CACHE_TIME"] > 0 && $cache->InitCache($arParams["CACHE_TIME"], $cache_id, $cache_path))
	{
		$res = $cache->GetVars();
		$arResult["VARIABLES"]["GALLERY"] = $res["MY_GALLERY"];
		$arResult["VARIABLES"]["GALLERIES"] = $res["MY_GALLERIES"];
	}
	if (!is_array($arResult["VARIABLES"]["GALLERY"]) || empty($arResult["VARIABLES"]["GALLERY"]))
	{
		CModule::IncludeModule("iblock");
		$db_res = CIBlockSection::GetList(
			array($arParams["PHOTO"]["ALL"]["SECTION_SORT_BY"] => $arParams["PHOTO"]["ALL"]["SECTION_SORT_ORD"], "ID" => "DESC"),
			$arFilter, false, array("UF_DEFAULT", "UF_GALLERY_SIZE", "UF_GALLERY_RECALC", "UF_DATE"));
		if ($db_res)
		{
			while ($res = $db_res->GetNext())
			{
				if (preg_match("/[^a-z0-9_]/is", $res["~CODE"]))
					$res["CODE"] = "";
				$res["ELEMENTS_CNT"] = intVal(CIBlockSection::GetSectionElementsCount($res["ID"], Array("CNT_ALL"=>"Y")));
				$res["PICTURE"] = CFile::GetFileArray($res["PICTURE"]);
				if ($res["UF_DEFAULT"] == "Y" && $res["ACTIVE"] == "Y")
					$arResult["VARIABLES"]["GALLERY"] = $res;

				$arResult["VARIABLES"]["GALLERIES"][] = $res;
			};
			if (empty($arResult["VARIABLES"]["GALLERY"]) && $arResult["VARIABLES"]["GALLERIES"][0]["ACTIVE"] == "Y")
				$arResult["VARIABLES"]["GALLERY"] = $arResult["VARIABLES"]["GALLERIES"][0];
		}
		if ($arParams["CACHE_TIME"] > 0)
		{
			$cache->StartDataCache($arParams["CACHE_TIME"], $cache_id, $cache_path);
			$cache->EndDataCache(
				array(
					"MY_GALLERY" => $arResult["VARIABLES"]["GALLERY"],
					"MY_GALLERIES" => $arResult["VARIABLES"]["GALLERIES"]));
		}
	}
	if (empty($arResult["VARIABLES"]["GALLERY"]) && !empty($arResult["VARIABLES"]["GALLERIES"]))
	{
		$count = 0;
		foreach ($arResult["VARIABLES"]["GALLERIES"] as $key => $res)
		{
			if ($res["ACTIVE"] == "Y")
			{
				$arResult["VARIABLES"]["GALLERY"] = $res;
				break;
			}
			else
			{
				$count++;
			}
		}
		if (empty($arResult["VARIABLES"]["GALLERY"]) &&
			$count == count($arResult["VARIABLES"]["GALLERIES"]))
		{
			if ($count == 1)
				$arParams["ERROR_MESSAGE"] = GetMessage("SONET_GALLERY_IS_NOT_ACTIVE");
			else
				$arParams["ERROR_MESSAGE"] = GetMessage("SONET_GALLERIES_IS_NOT_ACTIVE");
			return 0;
		}
	}
	if (empty($arResult["VARIABLES"]["GALLERY"]))
	{
		if ($arParams["PERMISSION"] >= "W" && ($object == "group" || ($object == "user" && $arResult["VARIABLES"]["user_id"] == $USER->GetID())))
		{
			$arFiles = array();

			if ($object == "user")
			{
				$dbUser = CUser::GetByID($USER->GetID());
				$arResult["USER"] = $dbUser->GetNext();
				$arResult["USER"]["PERSONAL_PHOTO"] = intVal($arResult["USER"]["PERSONAL_PHOTO"]);

				if ($arResult["USER"]["PERSONAL_PHOTO"] > 0)
				{
					$arFile = CFile::MakeFileArray($arResult["USER"]["PERSONAL_PHOTO"]);
					if (is_array($arFile))
					{
						$arFile["name"] = preg_replace("/[^a-z_.1-9]/is", "_", $arFile["name"]);

						include_once($_SERVER["DOCUMENT_ROOT"]."/".BX_PERSONAL_ROOT."/components/bitrix/photogallery.upload/functions.php");
						$arAlbumSights = array(
							"DETAIL_PICTURE" => array(
								"code" => "album",
								"notes" => "for_album",
								"width" => $arParams["PHOTO"]["ALL"]["GALLERY_AVATAR_SIZE"],
								"height" => $arParams["PHOTO"]["ALL"]["GALLERY_AVATAR_SIZE"]),
							"PICTURE" => array(
								"code" => "album_thumbs",
								"notes" => "for_album",
								"width" => $arParams["PHOTO"]["ALL"]["GALLERY_AVATAR_THUMBS_SIZE"],
								"height" => $arParams["PHOTO"]["ALL"]["GALLERY_AVATAR_THUMBS_SIZE"]));
						foreach ($arAlbumSights as $key => $Sight)
						{
							$File = $arFile;
							$File["name"] = "avatar_".$Sight["code"].$arFile["name"];
							$File["tmp_name"] = CTempFile::GetFileName($File["name"]);
							CheckDirPath($File["tmp_name"]);
							$res = CFile::ResizeImageFile(CBXVirtualIo::GetInstance()->GetLogicalName($arFile["tmp_name"]), $File["tmp_name"], $Sight, BX_RESIZE_IMAGE_PROPORTIONAL);
							$File["MODULE_ID"] = "iblock";
							$arFiles[$key] = $File;
						}
						if ($arFile["image"])
							@imagedestroy($arFile["image"]);
					}
				}
			}

			$arUserFields = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFields("IBLOCK_".$arParams["IBLOCK_ID"]."_SECTION", 0, LANGUAGE_ID);
			if (empty($arUserFields) || empty($arUserFields["UF_DEFAULT"]))
			{
				$db_res = CUserTypeEntity::GetList(array($by=>$order),
					array("ENTITY_ID" => "IBLOK_".$arParams["IBLOCK_ID"]."_SECTION", "FIELD_NAME" => "UF_DEFAULT"));
				if (!$db_res || !($res = $db_res->GetNext()))
				{
					$arFields = Array(
						"ENTITY_ID" => "IBLOCK_".$arParams["IBLOCK_ID"]."_SECTION",
						"FIELD_NAME" => "UF_DEFAULT",
						"USER_TYPE_ID" => "string",
						"MULTIPLE" => "N",
						"MANDATORY" => "N");
					$arFieldName = array();
					$rsLanguage = CLanguage::GetList($by, $order, array());
					while($arLanguage = $rsLanguage->Fetch()):
						if (LANGUAGE_ID == $arLanguage["LID"])
							$arFieldName[$arLanguage["LID"]] = GetMessage("IBLOCK_DEFAULT_UF");
						if (empty($arFieldName[$arLanguage["LID"]]))
							$arFieldName[$arLanguage["LID"]] = "Default gallery";
					endwhile;
					$arFields["EDIT_FORM_LABEL"] = $arFieldName;
					$obUserField  = new CUserTypeEntity;
					$obUserField->Add($arFields);
					$APPLICATION->GetException();
					$GLOBALS["USER_FIELD_MANAGER"]->arFieldsCache = array();
				}
			}
			$arFields = Array(
				"ACTIVE" => "Y",
				"IBLOCK_ID" => $arParams["IBLOCK_ID"],
				"NAME" => "",
				"CODE" => "",
				"DESCRIPTION" => "",
				"UF_DEFAULT" => "Y",
				"SOCNET_GROUP_ID" => false,
				"IBLOCK_SECTION_ID" => "0");

			if ($object == "user")
			{
				$arFields["NAME"] = trim($USER->GetLastName()." ".$USER->GetFirstName());
				$arFields["NAME"] = trim(!empty($arFields["NAME"]) ? $arFields["NAME"] : $USER->GetLogin());
				$arFields["CODE"] = "user_".$arResult["VARIABLES"]["user_id"];
			}
			else
			{
				$res = CSocNetGroup::GetByID($arResult["VARIABLES"]["group_id"]);
				if (!$res)
				{
					$arParams["ERROR_MESSAGE"] = GetMessage("SONET_GROUP_NOT_EXISTS");
					return 0;
				}
				$arFields["SOCNET_GROUP_ID"] = $arResult["VARIABLES"]["group_id"];
				$arFields["NAME"] = GetMessage("SONET_GROUP_PREFIX").$res["NAME"];
				$arFields["CODE"] = "group_".$arResult["VARIABLES"]["group_id"];
			}

			if (!empty($arFiles))
			{
				$arFields["PICTURE"] = $arFiles["PICTURE"];
			}
			$bs = new CIBlockSection();
			if ($bs->CheckFields($arFields))
			{
				if (!empty($arFiles))
				{
					$arFields["DETAIL_PICTURE"] = $arFiles["DETAIL_PICTURE"];
				}
				$GLOBALS["UF_DEFAULT"] = $arFields["UF_DEFAULT"];
				$GLOBALS["USER_FIELD_MANAGER"]->EditFormAddFields("IBLOCK_".$arParams["IBLOCK_ID"]."_SECTION", $arFields);
				$res = $bs->Add($arFields);
				$db_res = $bs->GetByID($res);
				if ($db_res && $res = $db_res->Fetch())
				{
					$arResult["VARIABLES"]["GALLERY"] = $res;
					$arUserIds = array();
					if ($object == "user")
						$arUserIds[] = $USER->GetId();
					PClearComponentCacheEx($arParams["IBLOCK_ID"], array(0, $res['ID']), array(0, $res['CODE']), $arUserIds);
				}

				if (!empty($arFiles))
				{
					@unlink($arFiles["PICTURE"]["tmp_name"]);
					@unlink($arFiles["DETAIL_PICTURE"]["tmp_name"]);
				}
			}
		}
	}
	"";
elseif ($user_alias != "NEW_ALIAS"):
	$cache_id = serialize(array(
		"IBLOCK_ID" => $arParams["IBLOCK_ID"],
		"USER_ALIAS" => $user_alias,
		"SECTION_ID" => 0
	));

	$cache_path = "/".SITE_ID."/photogallery/".$arParams["IBLOCK_ID"]."/gallery".$user_alias;
	if ($arParams["CACHE_TIME"] > 0 && $cache->InitCache($arParams["CACHE_TIME"], $cache_id, $cache_path))
	{
		$res = $cache->GetVars();
		$arResult["VARIABLES"]["GALLERY"] = $res["GALLERY"];
	}
	if (!is_array($arResult["VARIABLES"]["GALLERY"]) || empty($arResult["VARIABLES"]["GALLERY"]))
	{
		CModule::IncludeModule("iblock");
		$arFilter = array(
			"IBLOCK_ID" => $arParams["IBLOCK_ID"],
			"IBLOCK_ACTIVE" => "Y",
			"SECTION_ID" => 0,
			"SOCNET_GROUP_ID" => ($object != "user" ? $arResult["VARIABLES"]["group_id"] : false),
			"CODE" => $user_alias
		);
		if ($object == "user")
			$arFilter["CREATED_BY"] = $arResult["VARIABLES"]["user_id"];
		$db_res = CIBlockSection::GetList(array($arParams["SORT_BY"] => $arParams["SORT_ORD"], "ID" => "DESC"),
			$arFilter, false, array("UF_DEFAULT", "UF_GALLERY_SIZE", "UF_GALLERY_RECALC", "UF_DATE"));
		if ($db_res && $res = $db_res->GetNext())
		{
			$res["ELEMENTS_CNT"] = intVal(CIBlockSection::GetSectionElementsCount($res["ID"], array("CNT_ALL"=>"Y")));
			$res["PICTURE"] = CFile::GetFileArray($res["PICTURE"]);
			$arResult["VARIABLES"]["GALLERY"] = $res;
		}
		if ($arParams["CACHE_TIME"] > 0)
		{
			$cache->StartDataCache($arParams["CACHE_TIME"], $cache_id, $cache_path);
			$cache->EndDataCache(array("GALLERY" => $arResult["VARIABLES"]["GALLERY"]));
		}
	}
	if ($arResult["VARIABLES"]["GALLERY"]["ACTIVE"] == "N")
	{
		$arParams["NOTE_MESSAGE"] = GetMessage("SONET_GALLERY_IS_NOT_ACTIVE");
		return 0;
	}
endif;
if (empty($arResult["VARIABLES"]["GALLERY"]))
{
	if (!($arParams["PERMISSION"] >= "W" && $user_alias == "NEW_ALIAS" &&
		($object == "group" || ($object == "user" && $arResult["VARIABLES"]["user_id"] == $USER->GetID()))))
	{
		$arParams["NOTE_MESSAGE"] = GetMessage("SONET_GALLERY_NOT_FOUND");
		return 0;
	}
}
/********************************************************************
				/Default params
********************************************************************/
/********************************************************************
				Path
********************************************************************/
foreach ($arDefaultUrlTemplates404 as $url => $value)
{
	if (strPos($url, "user_photo") === false && strPos($url, "group_photo") === false)
		continue;

	$arResult["~PATH_TO_".strToUpper($url)] = str_replace(
		array(
			"#user_id#",
			"#group_id#",
			"#user_alias#",
			"#path#",
			"#section_id#",
			"#element_id#",
			"#element_name#",
			"#action#"),
		array(
			$arResult["VARIABLES"]["user_id"],
			$arResult["VARIABLES"]["group_id"],
			"#USER_ALIAS#",
			"#PATH#",
			"#SECTION_ID#",
			"#ELEMENT_ID#",
			"#ELEMENT_NAME#",
			"#ACTION#"),
		$arResult["PATH_TO_".strToUpper($url)]);
}
$arResult["~PATH_TO_USER_PHOTO"] = $arResult["~PATH_TO_USER_PHOTO_GALLERY"];
$arResult["~PATH_TO_USER"] = str_replace("#user_id#", "#USER_ID#", (empty($arResult["PATH_TO_USER"]) ? $arParams["PATH_TO_USER"] : $arResult["PATH_TO_USER"]));
$arResult["VARIABLES"]["SECTION_ID"] = $arResult["VARIABLES"]["section_id"];
$arResult["VARIABLES"]["ELEMENT_ID"] = $arResult["VARIABLES"]["element_id"];
$arResult["VARIABLES"]["ACTION"] = $arResult["VARIABLES"]["action"];
$arResult["VARIABLES"]["PERMISSION"] = $arParams["PERMISSION"];
if ($componentPage == "user_photo_gallery")
	$componentPage = "user_photo";
elseif ($componentPage == "group_photo_gallery")
	$componentPage = "group_photo";
/********************************************************************
				/Path
********************************************************************/
/********************************************************************
				Activity before
********************************************************************/
if (($componentPage == "group_photo_element_upload" || $componentPage == "group_files_element_upload" ||
	$componentPage == "user_photo_element_upload" || $componentPage == "user_files_element_upload") &&
	$_REQUEST["save_upload"] == "Y")
{
	$_REQUEST["FORMAT_ANSWER"] = "return";
	$arParams["ANSWER_UPLOAD_PAGE"] = array();
}
/********************************************************************
				/Activity before
********************************************************************/
return 1;
?>

Zerion Mini Shell 1.0