コード例 #1
0
ファイル: grids.php プロジェクト: Satariall/izurit
 public function GetFilter($arFilter)
 {
     $aRes = array();
     foreach ($arFilter as $field) {
         //date
         if (isset($_REQUEST[$field["id"] . "_datesel"])) {
             if ($_REQUEST[$field["id"] . "_datesel"] != '') {
                 $aRes[$field["id"] . "_datesel"] = $_REQUEST[$field["id"] . "_datesel"];
                 CGridOptions::CalcDates($field["id"], $_REQUEST, $aRes);
             } else {
                 unset($_SESSION["main.interface.grid"][$this->grid_id]["filter"][$field["id"] . "_datesel"]);
                 unset($_SESSION["main.interface.grid"][$this->grid_id]["filter"][$field["id"] . "_from"]);
                 unset($_SESSION["main.interface.grid"][$this->grid_id]["filter"][$field["id"] . "_to"]);
                 unset($_SESSION["main.interface.grid"][$this->grid_id]["filter"][$field["id"] . "_days"]);
             }
             continue;
         }
         //quick
         if ($_REQUEST[$field["id"] . "_list"] != '' && $_REQUEST[$field["id"]] != '') {
             $aRes[$field["id"] . "_list"] = $_REQUEST[$field["id"] . "_list"];
         }
         //number interval
         if (isset($_REQUEST[$field["id"] . "_from"])) {
             if ($_REQUEST[$field["id"] . "_from"] != '') {
                 $aRes[$field["id"] . "_from"] = $_REQUEST[$field["id"] . "_from"];
             } else {
                 unset($_SESSION["main.interface.grid"][$this->grid_id]["filter"][$field["id"] . "_from"]);
             }
         }
         if (isset($_REQUEST[$field["id"] . "_to"])) {
             if ($_REQUEST[$field["id"] . "_to"] != '') {
                 $aRes[$field["id"] . "_to"] = $_REQUEST[$field["id"] . "_to"];
             } else {
                 unset($_SESSION["main.interface.grid"][$this->grid_id]["filter"][$field["id"] . "_to"]);
             }
         }
         //filtered outside, we don't control the filter field value
         if ($field["filtered"] == true) {
             if (isset($field["filter_value"])) {
                 $aRes[$field["id"]] = $field["filter_value"];
             } else {
                 $aRes[$field["id"]] = true;
             }
             continue;
         }
         //list or string
         if (isset($_REQUEST[$field["id"]])) {
             if (is_array($_REQUEST[$field["id"]]) && !empty($_REQUEST[$field["id"]]) && reset($_REQUEST[$field["id"]]) != '' || !is_array($_REQUEST[$field["id"]]) && $_REQUEST[$field["id"]] != '') {
                 $aRes[$field["id"]] = $_REQUEST[$field["id"]];
             } else {
                 unset($_SESSION["main.interface.grid"][$this->grid_id]["filter"][$field["id"]]);
             }
         }
     }
     //Check for filter ID -->
     if (isset($_REQUEST["apply_filter"]) && $_REQUEST["apply_filter"] === 'Y' && isset($_REQUEST["grid_filter_id"])) {
         $aRes["GRID_FILTER_APPLIED"] = true;
         $aRes["GRID_FILTER_ID"] = $_REQUEST["grid_filter_id"];
     }
     //<-- Check for filter ID
     if (!empty($aRes)) {
         $_SESSION["main.interface.grid"][$this->grid_id]["filter"] = $aRes;
     } elseif ($_REQUEST["clear_filter"] != '') {
         $_SESSION["main.interface.grid"][$this->grid_id]["filter"] = array();
     } elseif (is_array($_SESSION["main.interface.grid"][$this->grid_id]["filter"])) {
         return $_SESSION["main.interface.grid"][$this->grid_id]["filter"];
     } else {
         $this->InitFilter();
         if (!empty($this->filter)) {
             foreach ($arFilter as $field) {
                 if ($this->filter[$field["id"] . "_datesel"] != '') {
                     $aRes[$field["id"] . "_datesel"] = $this->filter[$field["id"] . "_datesel"];
                     CGridOptions::CalcDates($field["id"], $this->filter, $aRes);
                     continue;
                 }
                 if ($this->filter[$field["id"] . "_list"] != '' && $this->filter[$field["id"]] != '') {
                     $aRes[$field["id"] . "_list"] = $this->filter[$field["id"] . "_list"];
                 }
                 if ($this->filter[$field["id"] . "_from"] != '') {
                     $aRes[$field["id"] . "_from"] = $this->filter[$field["id"] . "_from"];
                 }
                 if ($this->filter[$field["id"] . "_to"] != '') {
                     $aRes[$field["id"] . "_to"] = $this->filter[$field["id"] . "_to"];
                 }
                 if (is_array($this->filter[$field["id"]]) && !empty($this->filter[$field["id"]]) && reset($this->filter[$field["id"]]) != '' || !is_array($this->filter[$field["id"]]) && $this->filter[$field["id"]] != '') {
                     $aRes[$field["id"]] = $this->filter[$field["id"]];
                 }
             }
             if (!empty($aRes)) {
                 $_SESSION["main.interface.grid"][$this->grid_id]["filter"] = $aRes;
             }
         }
     }
     return $aRes;
 }
コード例 #2
0
 $campaignId = intval($_REQUEST['campaign']);
 $loadingSession = $_REQUEST['loading_session'];
 $gaps = array();
 if ($loadingSession) {
     if (isset($_SESSION[$loadingSession]) && $_SESSION[$loadingSession]['CAMPAIGN_ID'] == $campaignId) {
         $dateStart = new Date($_SESSION[$loadingSession]['DATE_START']);
         $dateFinish = new Date($_SESSION[$loadingSession]['DATE_FINISH']);
         $gaps = $_SESSION[$loadingSession]['GAPS'];
     } else {
         $res = array('error' => array('message' => 'loading session broken'));
         break;
     }
 } else {
     if (in_array($_REQUEST["type"], array("week_ago", "month_ago", "interval"))) {
         $period = array();
         \CGridOptions::CalcDates("", array("_datesel" => $_REQUEST["type"], "_days" => 1, "_from" => $_REQUEST["date_from"], "_to" => $_REQUEST["date_to"]), $period);
         if (Date::isCorrect($period['_from'])) {
             $dateStart = new Date($period['_from']);
         } else {
             $res = array('error' => array('message' => Loc::getMessage('SEO_ERROR_INCORRECT_DATE') . ': ' . $period['_from']));
             break;
         }
         if (Date::isCorrect($period['_to'])) {
             $dateFinish = new Date($period['_to']);
         } else {
             $res = array('error' => array('message' => Loc::getMessage('SEO_ERROR_INCORRECT_DATE') . ': ' . $period['_to']));
             break;
         }
         $statsData = Adv\YandexStatTable::getCampaignStat($campaignId, $dateStart, $dateFinish);
         $gaps = Adv\YandexStatTable::getMissedPeriods($statsData, $dateStart, $dateFinish);
     } else {