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) {
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; }
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; }