%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/components/bitrix/socialnetwork_user/include/ |
| Current File : /home/bitrix/www/bitrix/components/bitrix/socialnetwork_user/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" => "",
"NAME_TEMPLATE" => $arParams["NAME_TEMPLATE"],
"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;
?>