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