public static function GetList($bWithParameters = false, $arAllCurrentValues = false) { $arGadgets = array(); $folders = array("/bitrix/gadgets", "/local/gadgets"); foreach ($folders as $folder) { // Find all namespaces of gadgets $arGdNS = array("bitrix"); $gdDir = $_SERVER["DOCUMENT_ROOT"] . $folder; if (is_dir($gdDir) && ($handle = opendir($gdDir))) { while (false !== ($item = readdir($handle))) { if (is_dir($gdDir . "/" . $item) && $item != "." && $item != ".." && $item != "bitrix") { $arGdNS[] = $item; } } closedir($handle); } // Find all gadgets foreach ($arGdNS as $NS) { $gdDir = $_SERVER["DOCUMENT_ROOT"] . $folder . "/" . $NS; if (is_dir($gdDir) && ($handle = opendir($gdDir))) { while (false !== ($file = readdir($handle))) { if ($file == "." || $file == "..") { continue; } $arGadgetParams = BXGadget::GetById($NS . "/" . $file, $bWithParameters, $arAllCurrentValues); if ($arGadgetParams) { $arGadgets[$file] = $arGadgetParams; } else { unset($arGadgets[$file]); } } closedir($handle); } } } uasort($arGadgets, array("BXGadget", "_sort")); return $arGadgets; }
$arUserOptions["GADGETS"][$gdid]["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") {
<?php if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die; } include_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/components/bitrix/desktop/include.php'; $arGadgetsFixed = array(); $arGadgets = BXGadget::GetList(); foreach ($arGadgets as $gd) { if ($gd["SU_ONLY"] == true || $gd["SG_ONLY"] == true) { continue; } if (!array_key_exists("CAN_BE_FIXED", $gd) || !$gd["CAN_BE_FIXED"]) { continue; } if ($gd["EXTRANET_ONLY"] == true && (!CModule::IncludeModule('extranet') || !CExtranet::IsExtranetSite($_REQUEST["src_site"]))) { continue; } if ($gd["SEARCH_ONLY"] == true && !IsModuleInstalled("search")) { continue; } if ($gd["FORUM_ONLY"] == true && !IsModuleInstalled("forum")) { continue; } if ($gd["BLOG_ONLY"] == true && !IsModuleInstalled("blog")) { continue; } if ($gd["PHOTOGALLERY_ONLY"] == true && !IsModuleInstalled("photogallery")) { continue; } if ($gd["WEBDAV_ONLY"] == true && !IsModuleInstalled("webdav")) {
} $arComponentParameters["PARAMETERS"]["NAME_TEMPLATE"] = array('TYPE' => 'LIST', 'NAME' => GetMessage('CMDESKTOP_PARAMS_NAME_TEMPLATE'), 'VALUES' => CComponentUtil::GetDefaultNameTemplates(), 'MULTIPLE' => 'N', 'ADDITIONAL_VALUES' => 'Y', 'DEFAULT' => '', 'PARENT' => 'ADDITIONAL_SETTINGS'); $arComponentParameters["PARAMETERS"]["SHOW_LOGIN"] = array("NAME" => GetMessage("CMDESKTOP_PARAMS_SHOW_LOGIN"), "TYPE" => "CHECKBOX", "MULTIPLE" => "N", "VALUE" => "Y", "DEFAULT" => "Y", "PARENT" => "ADDITIONAL_SETTINGS"); $arComponentParameters["PARAMETERS"]["DATE_TIME_FORMAT"] = CComponentUtil::GetDateTimeFormatField(GetMessage("CMDESKTOP_PARAMS_DATE_TIME_FORMAT"), 'ADDITIONAL_SETTINGS'); $arComponentParameters["PARAMETERS"]["DATE_FORMAT"] = CComponentUtil::GetDateFormatField(GetMessage("CMDESKTOP_PARAMS_DATE_FORMAT"), 'ADDITIONAL_SETTINGS'); $arComponentParameters["PARAMETERS"]["DATE_FORMAT_NO_YEAR"] = CComponentUtil::GetDateFormatField(GetMessage("CMDESKTOP_PARAMS_DATE_FORMAT_NO_YEAR"), 'ADDITIONAL_SETTINGS', true); $arComponentParameters["PARAMETERS"]["SHOW_YEAR"] = array("PARENT" => "ADDITIONAL_SETTINGS", "NAME" => GetMessage("CMDESKTOP_PARAMS_SHOW_YEAR"), "TYPE" => "LIST", "VALUES" => array("Y" => GetMessage("CMDESKTOP_PARAMS_SHOW_YEAR_VALUE_Y"), "M" => GetMessage("CMDESKTOP_PARAMS_SHOW_YEAR_VALUE_M"), "N" => GetMessage("CMDESKTOP_PARAMS_SHOW_YEAR_VALUE_N")), "MULTIPLE" => "N", "DEFAULT" => "M"); } if ($arCurrentValues["COLUMNS"] > 0) { $d = intval(100 / $arCurrentValues["COLUMNS"]) . "%"; for ($i = 0; $i < $arCurrentValues["COLUMNS"]; $i++) { $arComponentParameters["PARAMETERS"]["COLUMN_WIDTH_" . $i] = array("NAME" => GetMessage("CMDESKTOP_PARAMS_COLUMN_WITH") . " #" . ($i + 1), "PARENT" => "DATA_SOURCE", "TYPE" => "STRING", "DEFAULT" => $d); } } $arComponentParameters["PARAMETERS"]["GADGETS"] = array("NAME" => GetMessage("CMDESKTOP_PARAMS_GADGETS"), "TYPE" => "LIST", "DEFAULT" => "ALL", "PARENT" => "DATA_SOURCE", "MULTIPLE" => "Y", "SIZE" => "10", "REFRESH" => "Y", "VALUES" => array("ALL" => GetMessage("CMDESKTOP_PARAMS_GADGETS_ALL"))); $arGadgets = BXGadget::GetList(true, $arCurrentValues); foreach ($arGadgets as $gd) { if ($gd["SU_ONLY"] == true || $gd["SG_ONLY"] == true) { continue; } if ($gd["EXTRANET_ONLY"] == true && (!CModule::IncludeModule('extranet') || !CExtranet::IsExtranetSite($_REQUEST["src_site"]))) { continue; } if ($gd["SEARCH_ONLY"] == true && !IsModuleInstalled("search")) { continue; } if ($gd["FORUM_ONLY"] == true && !IsModuleInstalled("forum")) { continue; } if ($gd["BLOG_ONLY"] == true && !IsModuleInstalled("blog")) { continue;
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; } } } $arFormGadgetParams = $arGadgetParams; if ($_REQUEST["refresh"] == "Y") { foreach ($_REQUEST as $key => $value) { if (strpos($key, "GP_") === 0) { $arFormGadgetParams[substr($key, 3)]["VALUE"] = $value; } } } $arGadget = BXGadget::GetById($gadget_id, true, $arFormGadgetParams); $arGadgetParams = $arGadget["USER_PARAMETERS"]; 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) && !array_key_exists("GP_" . $p, $_REQUEST)) { $arGadgetParams[$p]["VALUE"] = $v; } } } ?> <div class="bx-core-dialog-content"> <form method="POST" name="frm_desktop_settings" id="frm_desktop_settings" action="<?php echo $APPLICATION->GetCurPageParam("", array("refresh")); ?> " enctype="multipart/form-data"> <?php
function GetList($bWithParameters = false, $arAllCurrentValues = false) { // Найдем все пространства имен гаджетов $arGdNS = array("bitrix"); $gdDir = $_SERVER["DOCUMENT_ROOT"] . "/bitrix/gadgets"; if ($handle = opendir($gdDir)) { while (false !== ($item = readdir($handle))) { if (is_dir($gdDir . "/" . $item) && $item != "." && $item != ".." && $item != "bitrix") { $arGdNS[] = $item; } } } // В цикле найдем все гаджеты $arGadgets = array(); foreach ($arGdNS as $NS) { $gdDir = $_SERVER["DOCUMENT_ROOT"] . "/bitrix/gadgets/" . $NS; if ($handle = opendir($gdDir)) { while (false !== ($file = readdir($handle))) { if ($file == "." || $file == "..") { continue; } $arGadgetParams = BXGadget::GetById($NS . "/" . $file, $bWithParameters, $arAllCurrentValues); if ($arGadgetParams) { $arGadgets[$file] = $arGadgetParams; } else { unset($arGadgets[$file]); } } closedir($handle); } } uasort($arGadgets, array("BXGadget", "_sort")); return $arGadgets; }