Your IP : 13.59.27.102
<?php
/**
* Bitrix Framework
* @package bitrix
* @subpackage main
* @copyright 2001-2013 Bitrix
*/
/**
* Bitrix vars
* @global CUser $USER
* @global CMain $APPLICATION
* @global CDatabase $DB
* @param array $arParams
* @param array $arResult
* @param CBitrixComponent $this
*/
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)
die();
$this->setFrameMode(false);
include_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/components/bitrix/desktop/include.php');
$arParams["ID"] = (isset($arParams["ID"])? preg_replace("/[^a-z0-9_]/i", "", $arParams["ID"]) : "gdholder1");
if ($arParams["MULTIPLE"] == "Y")
$arParams["DESKTOP_PAGE"] = intval($_REQUEST["dt_page"]);
if (
in_array($arParams["MODE"], array("SU", "SG"))
&& strlen($arParams["DEFAULT_ID"]) > 0
)
{
$arUserOptionsDefault = CUserOptions::GetOption("intranet", "~gadgets_".$arParams["DEFAULT_ID"], false, 0);
if (!$arUserOptionsDefault)
{
$arTmp = explode("_", $arParams["DEFAULT_ID"]);
if (count($arTmp) == 3)
{
$DefaultIDWOS = implode("_", array_slice($arTmp, 0, 2));
$arUserOptionsDefaultWOS = CUserOptions::GetOption("intranet", "~gadgets_".$DefaultIDWOS, false, 0);
if ($arUserOptionsDefaultWOS)
CUserOptions::SetOption("intranet", "~gadgets_".$arParams["DEFAULT_ID"], $arUserOptionsDefaultWOS, false, 0);
}
}
$arUserOptionsEntity = CUserOptions::GetOption("intranet", "~gadgets_".$arParams["ID"], false, 0);
if (!$arUserOptionsEntity)
{
$arTmp = explode("_", $arParams["ID"]);
if (count($arTmp) == 4)
{
$IDWOS = implode("_", array_merge(array_slice($arTmp, 0, 2), array($arTmp[3])));
$arUserOptionsDefaultWOS = CUserOptions::GetOption("intranet", "~gadgets_".$IDWOS, false, 0);
if ($arUserOptionsDefaultWOS)
CUserOptions::SetOption("intranet", "~gadgets_".$arParams["ID"], $arUserOptionsDefaultWOS, false, 0);
}
}
}
if (array_key_exists("DEFAULT_ID", $arParams) && strlen(trim($arParams["DEFAULT_ID"])) > 0)
{
$user_option_id = 0;
$arUserOptionsDefault = CUserOptions::GetOption("intranet", "~gadgets_".$arParams["DEFAULT_ID"], false, 0);
}
else
{
$user_option_id = false;
$arParams["DEFAULT_ID"] = false;
$arUserOptionsDefault = false;
}
if (IsModuleInstalled('intranet'))
{
if (strlen(trim($arParams["NAME_TEMPLATE"])) <= 0)
$arParams["NAME_TEMPLATE"] = CSite::GetNameFormat();
$arParams['SHOW_LOGIN'] = $arParams['SHOW_LOGIN'] != "N" ? "Y" : "N";
if (!array_key_exists("PM_URL", $arParams))
$arParams["PM_URL"] = "/company/personal/messages/chat/#USER_ID#/";
if (!array_key_exists("PATH_TO_CONPANY_DEPARTMENT", $arParams))
$arParams["PATH_TO_CONPANY_DEPARTMENT"] = "/company/structure.php?set_filter_structure=Y&structure_UF_DEPARTMENT=#ID#";
if (IsModuleInstalled("video") && !array_key_exists("PATH_TO_VIDEO_CALL", $arParams))
$arParams["PATH_TO_VIDEO_CALL"] = "/company/personal/video/#USER_ID#/";
}
if (
!array_key_exists("GADGETS_FIXED", $arParams)
|| !is_array($arParams["GADGETS_FIXED"])
)
{
$arParams["GADGETS_FIXED"] = array();
}
$arParams["DATE_TIME_FORMAT"] = trim(empty($arParams["DATE_TIME_FORMAT"]) ? $DB->DateFormatToPHP(CSite::GetDateFormat("FULL")) : $arParams["DATE_TIME_FORMAT"]);
$arParams["DATE_FORMAT"] = trim(empty($arParams["DATE_FORMAT"]) ? $DB->DateFormatToPHP(CSite::GetDateFormat("SHORT")) : $arParams["DATE_FORMAT"]);
$arResult = Array();
if($USER->IsAuthorized() && $APPLICATION->GetFileAccessPermission($APPLICATION->GetCurPage(true)) > "R" && !$arParams["DEFAULT_ID"])
{
$arResult["PERMISSION"] = "X";
}
elseif(
$USER->IsAuthorized()
&& $arParams["DEFAULT_ID"]
&& (
$USER->IsAdmin()
|| (
CModule::IncludeModule('socialnetwork')
&& CSocNetUser::IsCurrentUserModuleAdmin()
)
)
)
{
$arResult["PERMISSION"] = "X";
}
elseif($USER->IsAuthorized() && $arParams["CAN_EDIT"]=="Y")
{
$arResult["PERMISSION"] = "W";
}
else
{
$arResult["PERMISSION"] = "R";
}
$arParams["PERMISSION"] = $arResult["PERMISSION"];
if($USER->IsAuthorized() && $arResult["PERMISSION"]>"R" && check_bitrix_sessid())
{
if($_SERVER['REQUEST_METHOD']=='POST')
{
if($_POST['holderid'] == $arParams["ID"])
{
$gdid = $_POST['gid'];
$p = strpos($gdid, "@");
if($p === false)
{
$gadget_id = $gdid;
$gdid = $gdid."@".rand();
}
else
{
$gadget_id = substr($gdid, 0, $p);
}
$arGadget = BXGadget::GetById($gadget_id);
if (
$arGadget
&& (
!is_array($arParams["GADGETS"])
|| in_array($arGadget["ID"], $arParams["GADGETS"])
|| in_array("ALL", $arParams["GADGETS"])
)
)
{
$arUserOptions = array();
if (
$_POST['action'] == 'add'
|| $_POST['action'] == 'update'
)
{
$arUserOptions = CUserOptions::GetOption("intranet", "~gadgets_".$arParams["ID"], $arUserOptionsDefault, $user_option_id);
if (
$arParams["MULTIPLE"] == "Y"
&& array_key_exists($arParams["DESKTOP_PAGE"], $arUserOptions)
)
{
$arUserOptionsTmp = $arUserOptions;
$arUserOptions = $arUserOptions[$arParams["DESKTOP_PAGE"]];
}
if (!$arUserOptions && !$user_option_id)
{
if (in_array($APPLICATION->GetCurPage(), array(SITE_DIR."index.php", SITE_DIR, "/")))
{
$tmp_desktop_id = "mainpage";
}
elseif (in_array($APPLICATION->GetCurPage(), array(SITE_DIR."desktop.php", "/desktop.php")))
{
$tmp_desktop_id = "dashboard";
}
if ($tmp_desktop_id)
{
$arUserOptions = CUserOptions::GetOption("intranet", "~gadgets_".$tmp_desktop_id, false, false);
}
}
if (!is_array($arUserOptions["GADGETS"]))
{
$arUserOptions["GADGETS"] = Array();
}
}
if ($_POST['action'] == 'add')
{
foreach($arUserOptions["GADGETS"] as $tempid => $tempgadget)
{
$p = strpos($tempid, "@");
$gadget_id_tmp = ($p === false ? $tempid : substr($tempid, 0, $p));
if ($gadget_id_tmp == $gadget_id)
{
$arGadget = BXGadget::GetById($gadget_id_tmp);
if (
array_key_exists("UNIQUE", $arGadget)
&& $arGadget["UNIQUE"]
)
{
$bUniqueGadgetAlreadyUsed = true;
}
}
if($tempgadget["COLUMN"] == 0)
{
$arUserOptions["GADGETS"][$tempid]["ROW"]++;
}
}
if (!$bUniqueGadgetAlreadyUsed)
{
$arUserOptions["GADGETS"][$gdid] = Array("COLUMN" => 0, "ROW" => 0);
if ($arParams["MULTIPLE"] == "Y")
{
$arUserOptionsTmp[$arParams["DESKTOP_PAGE"]] = $arUserOptions;
$arUserOptions = $arUserOptionsTmp;
}
CUserOptions::SetOption("intranet", "~gadgets_".$arParams["ID"], $arUserOptions, false, $user_option_id);
}
LocalRedirect($_SERVER['REQUEST_URI']);
}
elseif ($_POST['action'] == 'update')
{
$arUserOptions["GADGETS"][$gdid]["SETTINGS"] = $_POST["settings"];
if ($arParams["MULTIPLE"] == "Y")
{
$arUserOptionsTmp[$arParams["DESKTOP_PAGE"]] = $arUserOptions;
$arUserOptions = $arUserOptionsTmp;
}
CUserOptions::SetOption("intranet", "~gadgets_".$arParams["ID"], $arUserOptions, false, $user_option_id);
LocalRedirect($_SERVER['REQUEST_URI']);
}
}
}
}
}
if($_REQUEST['gd_ajax']==$arParams["ID"])
{
if($USER->IsAuthorized() && $arResult["PERMISSION"]>"R" && check_bitrix_sessid())
{
$APPLICATION->RestartBuffer();
switch($_REQUEST['gd_ajax_action'])
{
case 'get_settings':
$gdid = $_REQUEST['gid'];
$p = strpos($gdid, "@");
if($p === false)
break;
$gadget_id = substr($gdid, 0, $p);
// closed by an admin
if(is_array($arParams["GADGETS"]) && !in_array($gadget_id, $arParams["GADGETS"]) && !in_array("ALL", $arParams["GADGETS"]))
break;
// get user settings of the gadget
$arGadget = BXGadget::GetById($gadget_id, true, $arParams);
if($arGadget)
{
// get params values
$arGadgetParams = $arGadget["USER_PARAMETERS"];
foreach($arParams as $id=>$p)
{
$pref = "GU_".$gadget_id."_";
if(strpos($id, $pref)===0 && is_set($arGadgetParams, substr($id, strlen($pref))))
$arGadgetParams[substr($id, strlen($pref))]["VALUE"] = $p;
}
$arUserOptions = CUserOptions::GetOption("intranet", "~gadgets_".$arParams["ID"], $arUserOptionsDefault, $user_option_id);
if (
$arParams["MULTIPLE"] == "Y"
&& array_key_exists($arParams["DESKTOP_PAGE"], $arUserOptions)
)
{
$arUserOptionsTmp = $arUserOptions;
$arUserOptions = $arUserOptions[$arParams["DESKTOP_PAGE"]];
}
if (!$arUserOptions && !$user_option_id)
{
if (in_array($APPLICATION->GetCurPage(), array(SITE_DIR."index.php", SITE_DIR, "/")))
$tmp_desktop_id = "mainpage";
elseif (in_array($APPLICATION->GetCurPage(), array(SITE_DIR."desktop.php", "/desktop.php")))
$tmp_desktop_id = "dashboard";
if ($tmp_desktop_id)
$arUserOptions = CUserOptions::GetOption("intranet", "~gadgets_".$tmp_desktop_id, false, false);
}
if(is_array($arUserOptions) && is_array($arUserOptions["GADGETS"]) && is_array($arUserOptions["GADGETS"][$gdid]) && is_array($arUserOptions["GADGETS"][$gdid]["SETTINGS"]))
{
foreach($arUserOptions["GADGETS"][$gdid]["SETTINGS"] as $p=>$v)
if(is_set($arGadgetParams, $p))
$arGadgetParams[$p]["VALUE"] = $v;
}
echo CUtil::PhpToJSObject($arGadgetParams);
}
break;
case 'clear_settings':
CUserOptions::DeleteOption("intranet", "~gadgets_".$arParams["ID"], false, $user_option_id);
if (
in_array($arParams["MODE"], array("SU", "SG"))
&& strlen($arParams["DEFAULT_ID"]) > 0
)
{
$arTmp = explode("_", $arParams["ID"]);
if (count($arTmp) == 4)
{
$IDWOS = implode("_", array_merge(array_slice($arTmp, 0, 2), array($arTmp[3])));
CUserOptions::DeleteOption("intranet", "~gadgets_".$IDWOS, false, 0);
}
}
break;
case 'save_default':
GDCSaveSettings($arParams, $_REQUEST['POS']);
if ($arResult["PERMISSION"] > "W")
{
$arUserOptions = CUserOptions::GetOption("intranet", "~gadgets_".$arParams["ID"], $arUserOptionsDefault, $user_option_id);
if (!$arUserOptions && !$user_option_id)
{
if (in_array($APPLICATION->GetCurPage(), array(SITE_DIR."index.php", SITE_DIR, "/")))
$tmp_desktop_id = "mainpage";
elseif (in_array($APPLICATION->GetCurPage(), array(SITE_DIR."desktop.php", "/desktop.php")))
$tmp_desktop_id = "dashboard";
if ($tmp_desktop_id)
$arUserOptions = CUserOptions::GetOption("intranet", "~gadgets_".$tmp_desktop_id, false, false);
}
if (array_key_exists("DEFAULT_ID", $arParams) && strlen(trim($arParams["DEFAULT_ID"])) > 0)
CUserOptions::SetOption("intranet", "~gadgets_".$arParams["DEFAULT_ID"], $arUserOptions, false, 0);
else
CUserOptions::SetOption("intranet", "~gadgets_".$arParams["ID"], $arUserOptions, true);
}
break;
case 'update_position':
GDCSaveSettings($arParams, $_REQUEST['POS']);
break;
}
}
else
echo GetMessage("CMDESKTOP_AUTH_ERR");
die();
}
$arResult["GADGETS"] = Array();
$arResult["ID"] = $arParams["ID"];
$arParams["UPD_URL"] = $arResult["UPD_URL"] = POST_FORM_ACTION_URI;
$parts = explode("?", $arResult['UPD_URL'], 2);
if (count($parts) == 2)
{
$string = $parts[0]."?";
$arTmp = array();
$params = explode("&", $parts[1]);
foreach ($params as $param)
{
$tmp = explode("=", $param);
if (count($tmp) == 2)
{
if ($tmp[0] != "logout")
$arTmp[] = $param;
}
else
$arTmp[] = $param;
}
$string .= implode("&", $arTmp);
$arParams["UPD_URL"] = $arResult["UPD_URL"] = $string;
}
$arGDList = Array();
$arUserOptions = false;
if(($USER->IsAuthorized() && $arResult["PERMISSION"]>"R") || $user_option_id !== false)
$arUserOptions = CUserOptions::GetOption("intranet", "~gadgets_".$arParams["ID"], $arUserOptionsDefault, $user_option_id);
else
$arUserOptions = CUserOptions::GetOption("intranet", "~gadgets_".$arParams["ID"], $arUserOptionsDefault, 99999999);
if (!$arUserOptions)
{
if (in_array($APPLICATION->GetCurPage(), array(SITE_DIR."index.php", SITE_DIR, "/")))
$tmp_desktop_id = "mainpage";
elseif (in_array($APPLICATION->GetCurPage(), array(SITE_DIR."desktop.php", "/desktop.php")))
$tmp_desktop_id = "dashboard";
if ($tmp_desktop_id)
{
if(($USER->IsAuthorized() && $arResult["PERMISSION"]>"R") || $user_option_id !== false)
$arUserOptions = CUserOptions::GetOption("intranet", "~gadgets_".$tmp_desktop_id, $arUserOptionsDefault, $user_option_id);
else
$arUserOptions = CUserOptions::GetOption("intranet", "~gadgets_".$tmp_desktop_id, $arUserOptionsDefault, 99999999);
}
}
$arResult["DESKTOPS"] = array();
if ($arParams["MULTIPLE"] == "Y")
{
if (!is_array($arUserOptions) || !array_key_exists($arParams["DESKTOP_PAGE"], $arUserOptions))
$arParams["DESKTOP_PAGE"] = 0;
$arUserOptionsTmp = $arUserOptions;
$arUserOptions = $arUserOptions[$arParams["DESKTOP_PAGE"]];
if (is_array($arUserOptions))
foreach($arUserOptionsTmp as $i => $arDesktop)
$arResult["DESKTOPS"][] = array("NAME" => $arDesktop["NAME"]);
}
if (is_array($arUserOptions) && array_key_exists("COLS", $arUserOptions))
$arResult["COLS"] = $arUserOptions["COLS"];
if (intval($arResult["COLS"]) <= 0)
$arResult["COLS"] = (
intval($arParams["COLUMNS"])>0
&& intval($arParams["COLUMNS"])<10
)
? intval($arParams["COLUMNS"])
: 3;
if (
is_array($arUserOptions)
&& array_key_exists("arCOLUMN_WIDTH", $arUserOptions)
&& is_array($arUserOptions["arCOLUMN_WIDTH"])
)
{
for($i = 0, $intCount = count($arUserOptions["arCOLUMN_WIDTH"]); $i < $intCount; $i++)
$arResult["COLUMN_WIDTH"][$i] = htmlspecialcharsbx($arUserOptions["arCOLUMN_WIDTH"][$i]);
}
else
{
for($i = 0; $i < $arResult["COLS"]; $i++)
$arResult["COLUMN_WIDTH"][$i] = htmlspecialcharsbx($arParams["COLUMN_WIDTH_".$i]);
}
if (
is_array($arUserOptions)
&& array_key_exists("NAME", $arUserOptions)
&& strlen($arUserOptions["NAME"]) > 0
)
{
$arResult["DESKTOP_NAME"] = $arUserOptions["NAME"];
}
$arGroups = Array(
"personal" => Array(
"NAME" => GetMessage("CMDESKTOP_GROUP_PERSONAL"),
"DESCRIPTION" =>GetMessage("CMDESKTOP_GROUP_PERSONAL_DESCR"),
"GADGETS" => Array(),
),
"employees" => Array(
"NAME" => GetMessage("CMDESKTOP_GROUP_EMPL"),
"DESCRIPTION" => GetMessage("CMDESKTOP_GROUP_EMPL_DESCR"),
"GADGETS" => Array(),
),
"communications" => Array(
"NAME" => GetMessage("CMDESKTOP_GROUP_COMMUN"),
"DESCRIPTION" => GetMessage("CMDESKTOP_GROUP_COMMUN_DESCR"),
"GADGETS" => Array(),
),
"company" => Array(
"NAME" => GetMessage("CMDESKTOP_GROUP_COMPANY"),
"DESCRIPTION" => GetMessage("CMDESKTOP_GROUP_COMPANY_DESCR"),
"GADGETS" => Array(),
),
"services" => Array(
"NAME" => GetMessage("CMDESKTOP_GROUP_SERVICES"),
"DESCRIPTION" => GetMessage("CMDESKTOP_GROUP_SERVICES_DESCR"),
"GADGETS" => Array(),
),
"other" => Array(
"NAME" => GetMessage("CMDESKTOP_GROUP_OTHER"),
"DESCRIPTION" => GetMessage("CMDESKTOP_GROUP_OTHER_DESCR"),
"GADGETS" => Array(),
),
"sonet" => Array(
"NAME" => ($arParams["MODE"] == "SG" ? GetMessage("CMDESKTOP_GROUP_SONET_GROUP") : GetMessage("CMDESKTOP_GROUP_SONET_USER")),
"DESCRIPTION" => ($arParams["MODE"] == "SG" ? GetMessage("CMDESKTOP_GROUP_SONET_GROUP_DESCR") : GetMessage("CMDESKTOP_GROUP_SONET_USER_DESCR")),
"GADGETS" => Array(),
),
"admin_content" => Array(
"NAME" => GetMessage("CMDESKTOP_GROUP_ADMIN_CONTENT"),
"DESCRIPTION" => GetMessage("CMDESKTOP_GROUP_ADMIN_CONTENT_DESCR"),
"GADGETS" => Array(),
),
"admin_services" => Array(
"NAME" => GetMessage("CMDESKTOP_GROUP_ADMIN_SERVICES"),
"DESCRIPTION" => GetMessage("CMDESKTOP_GROUP_ADMIN_SERVICES_DESCR"),
"GADGETS" => Array(),
),
"admin_store" => Array(
"NAME" => GetMessage("CMDESKTOP_GROUP_ADMIN_STORE"),
"DESCRIPTION" => GetMessage("CMDESKTOP_GROUP_ADMIN_STORE_DESCR"),
"GADGETS" => Array(),
),
"admin_statistics" => Array(
"NAME" => GetMessage("CMDESKTOP_GROUP_ADMIN_STATISTICS"),
"DESCRIPTION" => GetMessage("CMDESKTOP_GROUP_ADMIN_STATISTICS_DESCR"),
"GADGETS" => Array(),
),
"admin_settings" => Array(
"NAME" => GetMessage("CMDESKTOP_GROUP_ADMIN_SETTINGS"),
"DESCRIPTION" => GetMessage("CMDESKTOP_GROUP_ADMIN_SETTINGS_DESCR"),
"GADGETS" => Array(),
),
"crm" => Array(
"NAME" => GetMessage("CMDESKTOP_GROUP_CRM"),
"DESCRIPTION" => GetMessage("CMDESKTOP_GROUP_CRM_DESCR"),
"GADGETS" => Array(),
)
);
foreach (GetModuleEvents("main", "OnFillGadgetGroups", true) as $arEvent)
{
ExecuteModuleEventEx($arEvent, array(&$arGroups));
}
$arResult["ALL_GADGETS"] = Array();
$arGadgets = BXGadget::GetList();
foreach($arGadgets as $gadget)
{
// skip if prohibited by settings
if(is_array($arParams["GADGETS"]) && !in_array($gadget["ID"], $arParams["GADGETS"]) && !in_array("ALL", $arParams["GADGETS"]))
continue;
if ($arParams["MODE"] != "SU" && $arParams["MODE"] != "SG" && ($gadget["SU_ONLY"] == true || $gadget["SG_ONLY"] == true))
continue;
if ($gadget["OO_ONLY"] == true && !$USER->CanDoOperation('view_other_settings'))
continue;
if ($arParams["MODE"] != "AI" && $gadget["AI_ONLY"] == true)
continue;
if ($arParams["MODE"] == "SU" && $gadget["SU_ONLY"] != true && $gadget["SU"] != true)
continue;
if ($arParams["MODE"] == "SG" && $gadget["SG_ONLY"] != true && $gadget["SG"] != true)
continue;
if ($arParams["MODE"] == "AI" && $gadget["AI_ONLY"] != true && $gadget["AI"] != true)
continue;
if ($gadget["EXTRANET_ONLY"] == true && (!CModule::IncludeModule('extranet') || !CExtranet::IsExtranetSite()))
continue;
if ($gadget["SEARCH_ONLY"] == true && !IsModuleInstalled("search"))
continue;
if ($gadget["FORUM_ONLY"] == true && !IsModuleInstalled("forum"))
continue;
if ($gadget["BLOG_ONLY"] == true && !IsModuleInstalled("blog"))
continue;
if ($gadget["PHOTOGALLERY_ONLY"] == true && !IsModuleInstalled("photogallery"))
continue;
if ($gadget["WEBDAV_ONLY"] == true && !IsModuleInstalled("webdav"))
continue;
if ($gadget["DISK_ONLY"] == true && !IsModuleInstalled("disk"))
continue;
if ($gadget["SALE_ONLY"] == true && !IsModuleInstalled("sale"))
continue;
if ($gadget["SALE_ONLY"] == true && $gadget["AI_ONLY"] == true && $APPLICATION->GetGroupRight("sale") == "D")
continue;
if ($gadget["STATISTIC_ONLY"] == true && !IsModuleInstalled("statistic"))
continue;
if ($gadget["STATISTIC_ONLY"] == true && $gadget["AI_ONLY"] == true && $APPLICATION->GetGroupRight("statistic") == "D")
continue;
if ($gadget["IBLOCK_ONLY"] == true && !IsModuleInstalled("iblock"))
continue;
if ($gadget["LANGUAGE_ONLY_RU"] == true && LANGUAGE_ID != "ru")
continue;
if ($gadget["IBLOCK_ONLY"] == true && $gadget["AI_ONLY"] == true)
{
if(CModule::IncludeModule('iblock'))
{
$dbIBlock = CIBlock::GetList(Array(), array("MIN_PERMISSION" => (IsModuleInstalled("workflow")?"U":"W")));
$arIBlock = $dbIBlock->Fetch();
}
else
$arIBlock = false;
if (!$arIBlock)
continue;
}
if ($gadget["SECURITY_ONLY"] == true)
{
$aGlobalOpt = CUserOptions::GetOption("global", "settings", array());
$bShowSecurity = (file_exists($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/security/install/index.php") && $aGlobalOpt['messages']['security'] <> 'N');
if (!$bShowSecurity)
continue;
}
if ($gadget["PERFMON_ONLY"] == true)
{
$aGlobalOpt = CUserOptions::GetOption("global", "settings", array());
$bShowPerfmon = (file_exists($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/perfmon/install/index.php") && $aGlobalOpt['messages']['perfmon'] <> 'N');
if (!$bShowPerfmon)
continue;
}
if (
$gadget["SUPPORT_ONLY"] == true
&&
(
!CModule::IncludeModule("support")
|| !$USER->IsAuthorized()
|| (!CTicket::IsSupportClient() && !CTicket::IsAdmin() && !CTicket::IsSupportTeam())
)
)
continue;
if ($gadget["WIKI_ONLY"] == true && !IsModuleInstalled("wiki"))
continue;
if ($gadget["CRM_ONLY"] == true && !IsModuleInstalled("crm"))
continue;
if ($gadget["VOTE_ONLY"] == true && (!IsModuleInstalled("vote") || !CBXFeatures::IsFeatureEnabled("Vote")))
continue;
if ($gadget["TASKS_ONLY"] == true && !CBXFeatures::IsFeatureEnabled("Tasks"))
continue;
if ($gadget["MESSENGER_ONLY"] == true && !CBXFeatures::IsFeatureEnabled("WebMessenger"))
continue;
if ($gadget["ABSENCE_ONLY"] == true && !CBXFeatures::IsFeatureEnabled("StaffAbsence"))
continue;
if ($gadget["STAFF_CHANGES_ONLY"] == true && !CBXFeatures::IsFeatureEnabled("StaffChanges"))
continue;
if ($gadget["COMMON_DOCS_ONLY"] == true && !CBXFeatures::IsFeatureEnabled("CommonDocuments"))
continue;
if ($gadget["COMPANY_PHOTO_ONLY"] == true && !CBXFeatures::IsFeatureEnabled("CompanyPhoto"))
continue;
if ($gadget["COMPANY_CALENDAR_ONLY"] == true && !CBXFeatures::IsFeatureEnabled("CompanyCalendar"))
continue;
if ($gadget["CALENDAR_ONLY"] == true && !CBXFeatures::IsFeatureEnabled("Calendar"))
continue;
if ($gadget["COMPANY_VIDEO_ONLY"] == true && !CBXFeatures::IsFeatureEnabled("CompanyVideo"))
continue;
if ($gadget["WORKGROUPS_ONLY"] == true && !CBXFeatures::IsFeatureEnabled("Workgroups"))
continue;
if ($gadget["FRIENDS_ONLY"] == true && !CBXFeatures::IsFeatureEnabled("Friends"))
continue;
if ($USER->IsAuthorized() && $arResult["PERMISSION"] < "W" && $gadget["SELF_PROFILE_ONLY"] == true && $arParams["MODE"] == "SU" && intval($arParams["USER_ID"]) > 0 && $arParams["USER_ID"] != $USER->GetID())
continue;
if ($gadget["BLOG_ONLY"] == true && $gadget["SU_ONLY"] == true && intval($arParams["USER_ID"]) > 0 && CModule::IncludeModule('socialnetwork') && !CSocNetFeatures::IsActiveFeature(SONET_ENTITY_USER, $arParams["USER_ID"], "blog"))
continue;
if ($gadget["BLOG_ONLY"] == true && $gadget["SG_ONLY"] == true && intval($arParams["SOCNET_GROUP_ID"]) > 0 && CModule::IncludeModule('socialnetwork') && !CSocNetFeatures::IsActiveFeature(SONET_ENTITY_GROUP, $arParams["SOCNET_GROUP_ID"], "blog"))
continue;
if ($gadget["FORUM_ONLY"] == true && $gadget["SU_ONLY"] == true && intval($arParams["USER_ID"]) > 0 && CModule::IncludeModule('socialnetwork') && !CSocNetFeatures::IsActiveFeature(SONET_ENTITY_USER, $arParams["USER_ID"], "forum"))
continue;
if ($gadget["FORUM_ONLY"] == true && $gadget["SG_ONLY"] == true && intval($arParams["SOCNET_GROUP_ID"]) > 0 && CModule::IncludeModule('socialnetwork') && !CSocNetFeatures::IsActiveFeature(SONET_ENTITY_GROUP, $arParams["SOCNET_GROUP_ID"], "forum"))
continue;
if ($gadget["SEARCH_ONLY"] == true && $gadget["SU_ONLY"] == true && intval($arParams["USER_ID"]) > 0 && CModule::IncludeModule('socialnetwork') && !CSocNetFeatures::IsActiveFeature(SONET_ENTITY_USER, $arParams["USER_ID"], "search"))
continue;
if ($gadget["SEARCH_ONLY"] == true && $gadget["SG_ONLY"] == true && intval($arParams["SOCNET_GROUP_ID"]) > 0 && CModule::IncludeModule('socialnetwork') && !CSocNetFeatures::IsActiveFeature(SONET_ENTITY_GROUP, $arParams["SOCNET_GROUP_ID"], "search"))
continue;
if (
$gadget["WIKI_ONLY"] == true
&& $gadget["SG_ONLY"] == true
&& intval($arParams["SOCNET_GROUP_ID"]) > 0
&& CModule::IncludeModule('socialnetwork')
&& (
!CSocNetFeatures::IsActiveFeature(SONET_ENTITY_GROUP, $arParams["SOCNET_GROUP_ID"], "wiki")
|| !CSocNetFeaturesPerms::CanPerformOperation($USER->GetID(), SONET_ENTITY_GROUP, $arParams["SOCNET_GROUP_ID"], "wiki", "view", CSocNetUser::IsCurrentUserModuleAdmin())
)
)
{
continue;
}
if($gadget["GROUP"]["ID"] == "")
{
$gadget["GROUP"]["ID"] = "other";
}
if (
!isset($gadget["TOTALLY_FIXED"])
|| !$gadget["TOTALLY_FIXED"]
)
{
if (!is_array($gadget["GROUP"]["ID"]))
{
$arGroups[$gadget["GROUP"]["ID"]]["GADGETS"][] = $gadget["ID"];
}
else
{
foreach($gadget["GROUP"]["ID"] as $group_id)
{
if (
(
in_array($arParams["MODE"], array("SU", "SG"))
&& $group_id != "sonet"
)
|| (
!in_array($arParams["MODE"], array("SU", "SG"))
&& $group_id == "sonet"
)
|| (
$arParams["MODE"] == "AI"
&& $group_id != "admin"
)
|| (
$arParams["MODE"] != "AI"
&& $group_id == "admin"
)
)
{
continue;
}
$arGroups[$group_id]["GADGETS"][] = $gadget["ID"];
}
}
}
$arResult["ALL_GADGETS"][$gadget['ID']] = $gadget;
}
$arResult["GROUPS"] = Array();
foreach($arGroups as $arGroup)
{
if(count($arGroup['GADGETS'])>0)
{
$arResult['GROUPS'][] = $arGroup;
}
}
$arResult["GADGETS"] = Array();
$arResult["GADGETS_LIST"] = Array();
for($i=0; $i<$arResult["COLS"]; $i++)
$arResult["GADGETS"][$i] = Array();
// saved layout
if(is_array($arUserOptions))
{
$bForceRedirect = false;
if (array_key_exists("GADGETS", $arUserOptions) && is_array($arUserOptions["GADGETS"]))
{
foreach($arUserOptions["GADGETS"] as $gdid=>$gadgetUserSettings)
{
$gadgetUserSettings = $arUserOptions["GADGETS"][$gdid];
$p = strpos($gdid, "@");
if($p === false)
{
$gadget_id = $gdid;
$gdid = $gdid."@".rand();
}
else
{
$gadget_id = substr($gdid, 0, $p);
}
if($arResult["ALL_GADGETS"][$gadget_id])
{
$arGadgetParams = $gadgetUserSettings["SETTINGS"];
$arGadget = $arResult["ALL_GADGETS"][$gadget_id];
foreach($arParams as $id=>$p)
{
$pref = "G_".$gadget_id."_";
if(strpos($id, $pref)===0)
$arGadgetParams[substr($id, strlen($pref))]=$p;
$pref = "GU_".$gadget_id."_";
if(strpos($id, $pref)===0 && !isset($arGadgetParams[substr($id, strlen($pref))]))
$arGadgetParams[substr($id, strlen($pref))]=$p;
}
if(intval($gadgetUserSettings["COLUMN"])<=0 || intval($gadgetUserSettings["COLUMN"])>=$arResult["COLS"])
{
$gadgetUserSettings["COLUMN"] = 0;
}
$arGCol = &$arResult["GADGETS"][$gadgetUserSettings["COLUMN"]];
if(isset($arGCol[$gadgetUserSettings["ROW"]]))
{
ksort($arGCol, SORT_NUMERIC);
$ks = array_keys($arGCol);
$gadgetUserSettings["ROW"] = $ks[count($ks)-1] + 1;
}
$arGadget["ID"] = $gdid;
$arGadget["GADGET_ID"] = $arResult["GADGETS_LIST"][] = $gadget_id;
$arGadget["TITLE"] = htmlspecialcharsbx($arGadget["NAME"]);
$arGadget["SETTINGS"] = $arGadgetParams;
if (
is_array($arGadgetParams)
&& array_key_exists("TITLE_STD", $arGadgetParams)
&& strlen($arGadgetParams["TITLE_STD"]) > 0
)
{
$arGadget["TITLE"] = htmlspecialcharsbx($arGadgetParams["TITLE_STD"]);
}
$arGadget["HIDE"] = $gadgetUserSettings["HIDE"];
if($arParams["PERMISSION"]>"R")
$arGadget["USERDATA"] = &$arUserOptions["GADGETS"][$gdid]["USERDATA"];
else
$arGadget["USERDATA"] = $arUserOptions["GADGETS"][$gdid]["USERDATA"];
$arGadget["CONTENT"] = BXGadget::GetGadgetContent($arGadget, $arParams);
$arResult["GADGETS"][$gadgetUserSettings["COLUMN"]][$gadgetUserSettings["ROW"]] = $arGadget;
if($arGadget["FORCE_REDIRECT"])
{
$bForceRedirect = true;
}
}
else
{
unset($arUserOptions["GADGETS"][$gdid]);
}
}
}
for($i=0; $i<$arResult["COLS"]; $i++)
ksort($arResult["GADGETS"][$i], SORT_NUMERIC);
$arResult["GADGETS_LIST"] = array_unique($arResult["GADGETS_LIST"]);
if($bForceRedirect)
{
if ($arParams["MULTIPLE"] == "Y")
{
$arUserOptionsTmp[$arParams["DESKTOP_PAGE"]] = $arUserOptions;
$arUserOptions = $arUserOptionsTmp;
}
CUserOptions::SetOption("intranet", "~gadgets_".$arParams["ID"], $arUserOptions, false, $user_option_id);
LocalRedirect($APPLICATION->GetCurPageParam(($arParams["MULTIPLE"]=="Y"?"dt_page=".$arParams["DESKTOP_PAGE"]:""), array("dt_page")));
}
}
$APPLICATION->AddHeadScript('/bitrix/js/main/utils.js');
$APPLICATION->AddHeadScript('/bitrix/js/main/popup_menu.js');
$APPLICATION->AddHeadScript('/bitrix/js/main/ajax.js');
CUtil::InitJSCore(array("ajax"));
$this->IncludeComponentTemplate();