예제 #1
0
 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) {
예제 #2
0
 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;
 }
예제 #3
0
 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;
 }