public static function getFilters($type = "event_query", $rid = "new") { $data = array("event_query" => array("eventmanagementActions", "sf_admin/event/filters"), "netflow_query" => array("netflowActions", "sf_admin/log_firewall/filters"), "log_query" => array("loganalysisActions", "sf_admin/log_search/filters")); $isReporting = is_numeric($rid); $specialActions = false; if (!$isReporting) { // The report id is not provided, let's work online. $context = sfContext::getInstance(); $filters = $context->getUser()->getAttributeHolder()->getAll($data[$type][1]); if (strstr($context->getActionName(), "pdf") || strstr($context->getActionName(), "run") || $context->getActionName() == "getCustomLog") { $specialActions = true; } } else { if (!self::$filters) { $report = PdfReportsPeer::retrieveByPk($rid); $query = $report->getByName($type, BasePeer::TYPE_FIELDNAME); $tmp = explode("&", $query); foreach ($tmp as $pair) { $key = str_replace("_value", "", strtok($pair, "=")); self::$filters[$key] = strtok("="); } } } if ($isReporting || $specialActions) { $filters = self::$filters; foreach ($filters as $key => $item) { if (is_string($item) && !trim($item) || $item === false) { $filters[$key] = ""; } } } return $filters; }
public static function updateSession($step = false, $key = "parser/wizard", $data = null, $datastore = null, $process = null) { $context = sfContext::getInstance(); $session = $context->getUser()->getAttributeHolder()->getAll($key); $add = $context->getRequest()->getParameter("add"); $actionInstance = $context->getActionStack()->getLastEntry()->getActionInstance(); $attribute_holder = $actionInstance->getVarHolder()->getAll(); // Put xml data if ($key == "parser/wizard") { if (!isset($session["skip"])) { $session["skip"] = array(); } if (isset($attribute_holder["init"]) && $datastore) { $session["datastore"] = $process["parses"][0]["datastore"]; } if ($context->getRequest()->getMethod() === sfRequest::POST) { $post = $context->getRequest()->getParameterHolder()->getAll(); $empty = true; // Is empty post? if (isset($post["edit"][2])) { foreach ($post["edit"][2] as $k => $value) { if ($k == "id") { continue; } if (trim($value)) { $empty = false; break; } } } else { $post["edit"][2] = array(); if (isset($_FILES["edit"])) { $empty = false; } } if ($step === false) { $step = $attribute_holder["step"]; } // Put post data if ($add === "true") { // Is a duplicate? $duplicate = false; if (isset($session[$step])) { foreach ($session[$step] as $item) { $cnt = 0; foreach ($post["edit"][2] as $k => $v) { if (isset($item["fields"][$k]) && $v == $item["fields"][$k]) { $cnt++; } if ($cnt == sizeof($post["edit"][2])) { $duplicate = true; break; } } } } if (!$empty && !$duplicate) { $session[$step][] = array(); $sk = max(array_keys($session[$step])); foreach ($post["edit"][2] as $k => $value) { $session[$step][$sk]["fields"][$k] = $value; } } } else { if (isset($post["edit"][2])) { foreach ($post["edit"][2] as $k => $value) { if ($k != "associated_widgets") { $session[$step]["fields"][$k] = $value; } else { $session = PdfReportsPeer::updateWidgets($value); } } } if (isset($_FILES["edit"])) { $session[$step]["file"] = true; foreach ($_FILES["edit"] as $k => $value) { if ($k == "error") { if ($value[2][key($value[2])] != 0) { $tmp_data = afAuthenticDatamaker::decode($post["af_formcfg"]); $field_data = $tmp_data["validators"]["edit[2][file]"]; if ($value[2][key($value[2])] == 4) { if (array_key_exists("immValidatorRequired", $field_data) || array_key_exists("sfValidatorFile", $field_data) && $field_data["sfValidatorFile"]["params"]["required"] === "true") { return 4; } else { return 0; } } return $value[2][key($value[2])]; } } if ($k == "type" || $k == "error") { continue; } if ($k == "tmp_name") { $tmp_dir = sfConfig::get('app_tmp_dir') ? sfConfig::get('app_tmp_dir') : '/usr/www/tmp/'; $tx = substr($value[2][key($value[2])], strrpos($value[2][key($value[2])], "/") + 1); copy($value[2][key($value[2])], $tmp_dir . $tx); $txval = $tmp_dir . $tx; } else { $txval = $value[2][key($value[2])]; } $k = "file_" . $k; $session[$step]["fields"][$k] = $txval; } } } } } $context->getUser()->getAttributeHolder()->removeNamespace($key); $context->getUser()->getAttributeHolder()->add($session, $key); return true; }