function CalcSearchParam($webreportsMode = false) { global $sessPrefix, $strSQL, $strTableName; $sWhere = ""; if (!$webreportsMode) { $cipherer = new RunnerCipherer($strTableName); $params = array(); $params['tName'] = $strTableName; $params['cipherer'] = $cipherer; $params['searchFieldsArr'] = WRGetFieldsList($strTableName); $searchClauseObj = new SearchClause($params); $searchClauseObj->parseRequest(); return $searchClauseObj->buildItegratedWhere(WRGetFieldsList($strTableName)); } if (@$_SESSION[$sessPrefix . "_search"] == 2) { foreach (@$_SESSION[$sessPrefix . "_asearchfor"] as $f => $sfor) { $strSearchFor = trim($sfor); $strSearchFor2 = ""; $type = @$_SESSION[$sessPrefix . "_asearchfortype"][$f]; if (array_key_exists($f, @$_SESSION[$sessPrefix . "_asearchfor2"])) { $strSearchFor2 = trim(@$_SESSION[$sessPrefix . "_asearchfor2"][$f]); } if ($strSearchFor != "" || true) { if (!$sWhere) { if ($_SESSION[$sessPrefix . "_asearchtype"] == "and") { $sWhere = "1=1"; } else { $sWhere = "1=0"; } } $strSearchOption = trim($_SESSION[$sessPrefix . "_asearchopt"][$f]); $where = GenericStrWhereAdv(@$_SESSION[$sessPrefix . "_asearchtable"][$f], $f, $strSearchFor, $strSearchOption, $strSearchFor2, $type); if ($where) { if ($_SESSION[$sessPrefix . "_asearchnot"][$f]) { $where = "not (" . $where . ")"; } if ($_SESSION[$sessPrefix . "_asearchtype"] == "and") { $sWhere .= " and " . $where; } else { $sWhere .= " or " . $where; } } } } } return $sWhere; }
if (!$qResult || !($data = $cipherer->DecryptFetchedArray($qResult->fetchAssoc()))) { $returnJSON = array("success" => false, "error" => 'Error: Wrong SQL query'); echo printJSON($returnJSON); return; } $fieldValue = $data[$field]; $sessionPrefix = $pSet->getOriginalTableName(); if ($mode == LIST_DASHBOARD) { //set the session prefix for the dashboard list page $sessionPrefix = "Dashboard_" . $pSet->getOriginalTableName(); } if ($lookup) { //set the session prefix for the lookup list page $sessionPrefix = $pSet->getOriginalTableName() . "_lookup_" . $mainTable . '_' . $mainField; } $searchClauseObj = SearchClause::UnserializeObject($_SESSION[$sessionPrefix . "_advsearch"]); $container = new ViewControlsContainer($pSet, PAGE_LIST, null); $cViewControl = $container->getControl($field); if ($cViewControl->localControlsContainer && !$cViewControl->linkAndDisplaySame) { $cViewControl->localControlsContainer->fullText = true; } else { $cViewControl->container->fullText = true; } if ($searchClauseObj) { if ($searchClauseObj->bIsUsedSrch || $useViewControl) { $cViewControl->searchClauseObj = $searchClauseObj; $cViewControl->searchHighlight = true; } } $htmlEncodedValue = $cViewControl->showDBValue($data, ""); $returnJSON = array("success" => true, "textCont" => nl2br($htmlEncodedValue));
return; } $sessionPrefix = $strTableName; // array of fields which were added in wizard for search $allSearchFields = GetTableData($strTableName, '.allSearchFields', array()); // SearchClause class stuff if (isset($_SESSION[$sessionPrefix . '_advsearch'])) { $searchClauseObj = unserialize($_SESSION[$sessionPrefix . '_advsearch']); } else { $params = array(); $params['tName'] = $strTableName; $params['searchFieldsArr'] = $allSearchFields; $params['sessionPrefix'] = $sessionPrefix; $params['panelSearchFields'] = GetTableData($strTableName, ".panelSearchFields", array()); $params['googleLikeFields'] = GetTableData($strTableName, ".googleLikeFields", array()); $searchClauseObj = new SearchClause($params); } // array of vals $response = array(); if (postvalue("start")) { $suggestAllContent = false; } $searchFor = postvalue('searchFor'); $searchField = GoodFieldName(postvalue('searchField')); $strSecuritySql = SecuritySQL("Search", $strTableName); if ($searchField == "") { $allSearchFields = GetTableData($strTableName, '.googleLikeFields', array()); } // proccess fields and create sql foreach ($allSearchFields as $f) { $fType = GetFieldType($f, $strTableName);
function Chart(&$ch_array, $param) { global $field_labels; if ($this->webchart) { $this->chrt_array = Convert_Old_Chart($ch_array); } else { $this->chrt_array = $ch_array; } $this->setConnection(); $this->pSet = new ProjectSettings($this->chrt_array['tables'][0]); $this->showDetails = $param['showDetails']; if ($this->showDetails) { $this->detailTablesData = $this->pSet->getDetailTablesArr(); } $this->hasFlash = $param["hasFlash"]; $this->pageId = $param["pageId"]; $this->chrt_array["appearance"]["autoupdate"] = false; $this->numRecordsToShow = $this->chrt_array['appearance']['maxbarscroll']; if ($this->numRecordsToShow < 1) { $this->numRecordsToShow = 1; } $this->table_type = $this->chrt_array["table_type"]; if (!$this->table_type) { $this->table_type = "project"; } $this->webchart = $param["webchart"]; $this->cname = $param["cname"]; $this->chartPreview = $param["chartPreview"]; $this->dashChart = $param["dashChart"]; $this->sessionPrefix = $this->chrt_array['tables'][0]; if ($this->dashChart) { $this->dashTName = $param["dashTName"]; $this->dashElementName = $param["dashElementName"]; $this->sessionPrefix = $this->dashTName . "_" . $this->sessionPrefix; } $this->gstrOrderBy = $param["gstrOrderBy"]; $TableName = GoodFieldName($this->chrt_array['tables'][0]); // #10461, $this->setConnection(); needs to be called after value is assigned to $this->webchart $this->setConnection(); if ($this->isProjectDB()) { $this->cipherer = new RunnerCipherer($this->chrt_array['tables'][0]); } $this->header = $this->chrt_array['appearance']['head']; $this->footer = $this->chrt_array['appearance']['foot']; $this->y_axis_label = $this->chrt_array['appearance']['y_axis_label']; for ($i = 0; $i < count($this->chrt_array['parameters']) - 1; $i++) { if (isset($this->chrt_array['parameters'][$i]['currencyFormat'])) { $this->arrFormatCurrency[] = $this->chrt_array['parameters'][$i]['currencyFormat']; } else { if ($this->chrt_array['appearance']['scur'] == "false") { $this->arrFormatCurrency[] = ""; } else { $this->arrFormatCurrency[] = $this->chrt_array['appearance']['scur']; } } if (isset($this->chrt_array['parameters'][$i]['decimalFormat'])) { $this->arrFormatDecimal[] = $this->chrt_array['parameters'][$i]['decimalFormat']; } else { $this->arrFormatDecimal[] = $this->chrt_array['appearance']['dec']; } $this->arrFormatCustomer[] = $this->chrt_array['parameters'][$i]['customFormat']; $this->arrFormatCustomerStr[] = $this->chrt_array['parameters'][$i]['customFormatStr']; if ($this->chrt_array["chart_type"]["type"] == "ohlc" || $this->chrt_array["chart_type"]["type"] == "candlestick") { $this->arrOHLC_color[] = "#" . $this->chrt_array['parameters'][$i]['ohlcColor']; if ($this->table_type != "db") { $this->arrOHLC_open[] = $this->chrt_array['parameters'][$i]['ohlcOpen']; $this->arrOHLC_high[] = $this->chrt_array['parameters'][$i]['ohlcHigh']; $this->arrOHLC_low[] = $this->chrt_array['parameters'][$i]['ohlcLow']; $this->arrOHLC_close[] = $this->chrt_array['parameters'][$i]['ohlcClose']; } else { if ($this->chrt_array['parameters'][$i]['agr_func']) { $this->arrOHLC_open[] = $this->chrt_array['parameters'][$i]['agr_func'] . "_" . $this->chrt_array['parameters'][$i]['table'] . "_" . $this->chrt_array['parameters'][$i]['ohlcOpen']; $this->arrOHLC_high[] = $this->chrt_array['parameters'][$i]['agr_func'] . "_" . $this->chrt_array['parameters'][$i]['table'] . "_" . $this->chrt_array['parameters'][$i]['ohlcHigh']; $this->arrOHLC_low[] = $this->chrt_array['parameters'][$i]['agr_func'] . "_" . $this->chrt_array['parameters'][$i]['table'] . "_" . $this->chrt_array['parameters'][$i]['ohlcLow']; $this->arrOHLC_close[] = $this->chrt_array['parameters'][$i]['agr_func'] . "_" . $this->chrt_array['parameters'][$i]['table'] . "_" . $this->chrt_array['parameters'][$i]['ohlcClose']; } else { $this->arrOHLC_open[] = $this->chrt_array['parameters'][$i]['table'] . "_" . $this->chrt_array['parameters'][$i]['ohlcOpen']; $this->arrOHLC_high[] = $this->chrt_array['parameters'][$i]['table'] . "_" . $this->chrt_array['parameters'][$i]['ohlcHigh']; $this->arrOHLC_low[] = $this->chrt_array['parameters'][$i]['table'] . "_" . $this->chrt_array['parameters'][$i]['ohlcLow']; $this->arrOHLC_close[] = $this->chrt_array['parameters'][$i]['table'] . "_" . $this->chrt_array['parameters'][$i]['ohlcClose']; } } if ($this->chrt_array["chart_type"]["type"] == "candlestick") { $this->arrOHLC_candle[] = "#" . $this->chrt_array['parameters'][$i]['ohlcCandleColor']; } } elseif ($this->chrt_array['parameters'][$i]['name'] != "") { if ($this->table_type != "db") { $this->arrDataSeries[] = $this->chrt_array['parameters'][$i]['agr_func'] ? $this->chrt_array['parameters'][$i]['label'] : $this->chrt_array['parameters'][$i]['name']; if ($this->chrt_array["chart_type"]["type"] == "bubble") { $this->arrDataSize[] = $this->chrt_array['parameters'][$i]['size']; } } else { $this->arrDataSeries[] = $this->chrt_array['parameters'][$i]['agr_func'] ? $this->chrt_array['parameters'][$i]['agr_func'] . "_" . $this->chrt_array['parameters'][$i]['table'] . "_" . $this->chrt_array['parameters'][$i]['name'] : $this->chrt_array['parameters'][$i]['table'] . "_" . $this->chrt_array['parameters'][$i]['name']; if ($this->chrt_array["chart_type"]["type"] == "bubble") { $this->arrDataSize[] = $this->chrt_array['parameters'][$i]['table'] . "_" . $this->chrt_array['parameters'][$i]['size']; } } if (isset($this->chrt_array['appearance']['scolor' . ($i + 1) . '1'])) { $this->arrDataColor[] = $this->chrt_array['appearance']['scolor' . ($i + 1) . '1']; } else { $this->arrDataColor[] = $this->chrt_array['parameters'][$i]['series_color']; } if ($this->chrt_array["chart_type"]["type"] == "gauge") { for ($k = 0; is_array($this->chrt_array["parameters"][$i]["gaugeColorZone"]) && $k < count($this->chrt_array["parameters"][$i]["gaugeColorZone"]); $k++) { $beginColor = (double) @$this->chrt_array["parameters"][$i]["gaugeColorZone"][$k]["gaugeBeginColor"]; $endColor = (double) @$this->chrt_array["parameters"][$i]["gaugeColorZone"][$k]["gaugeEndColor"]; $gColor = "#" . @$this->chrt_array["parameters"][$i]["gaugeColorZone"][$k]["gaugeColor"]; $this->arrGaugeColor[count($this->arrDataSeries) - 1][] = array($beginColor, $endColor, $gColor); } } } if ($this->table_type == "project" && !$this->webchart) { if ($this->chrt_array["chart_type"]["type"] != "candlestick" && $this->chrt_array["chart_type"]["type"] != "ohlc") { $this->arrDataLabels[] = $this->chart_xmlencode(GetFieldLabel(GoodFieldName($TableName), GoodFieldName($this->chrt_array['parameters'][$i]['name']))); } else { $this->arrDataLabels[] = $this->chart_xmlencode(GetFieldLabel(GoodFieldName($TableName), GoodFieldName($this->chrt_array['parameters'][$i]['ohlcOpen']))); } } else { if (!$this->chart_xmlencode($this->chrt_array['parameters'][$i]['label'])) { if ($this->chrt_array["chart_type"]["type"] != "candlestick" && $this->chrt_array["chart_type"]["type"] != "ohlc") { $this->arrDataLabels[] = $this->chart_xmlencode($this->chrt_array['parameters'][$i]['name']); } else { $this->arrDataLabels[] = $this->chart_xmlencode($this->chrt_array['parameters'][$i]['ohlcOpen']); } } else { $this->arrDataLabels[] = $this->chart_xmlencode($this->chrt_array['parameters'][$i]['label']); } } } if ($this->chrt_array["chart_type"]["type"] != "gauge") { if ($this->table_type != "db") { $this->strLabel = $this->chrt_array['parameters'][count($this->chrt_array['parameters']) - 1]['name']; } else { $this->strLabel = $this->chrt_array['parameters'][count($this->chrt_array['parameters']) - 1]['agr_func'] ? $this->chrt_array['parameters'][count($this->chrt_array['parameters']) - 1]['agr_func'] . "_" . $this->chrt_array['parameters'][count($this->chrt_array['parameters']) - 1]['table'] . "_" . $this->chrt_array['parameters'][count($this->chrt_array['parameters']) - 1]['name'] : $this->chrt_array['parameters'][count($this->chrt_array['parameters']) - 1]['table'] . "_" . $this->chrt_array['parameters'][count($this->chrt_array['parameters']) - 1]['name']; } for ($j = 0; $j < count($this->chrt_array['fields']); $j++) { if ($this->chrt_array['parameters'][count($this->chrt_array['parameters']) - 1]['name'] == $this->chrt_array['fields'][$j]['name']) { if ($this->table_type == "project") { $this->label2 = $this->chart_xmlencode(GetFieldLabel($TableName, GoodFieldName($this->chrt_array['parameters'][count($this->chrt_array['parameters']) - 1]['name']))); } else { $this->label2 = $this->chart_xmlencode($this->chrt_array['parameters'][count($this->chrt_array['parameters']) - 1]['name']); } } } } if ($this->chrt_array["chart_type"]["type"] != "ohlc" && $this->chrt_array["chart_type"]["type"] != "candlestick") { foreach ($this->arrDataColor as $ind => $val) { if ($ind == 0) { $this->arrAxesColor = "#000000"; } else { $this->arrAxesColor = "#" . $this->arrDataColor[$ind]; } } } else { foreach ($this->arrOHLC_color as $ind => $val) { if ($ind == 0) { $this->arrAxesColor = "#000000"; } else { $this->arrAxesColor = "#" . $this->arrOHLC_color[$ind]; } } } // prepare search params $gQuery = $this->pSet->getSQLQuery(); $masterWhere = ""; if (!$this->dashChart) { $masterTable = $_SESSION[$this->sessionPrefix . "_mastertable"]; $detailKeysByM = $this->pSet->getDetailKeysByMasterTable($masterTable); if (count($detailKeysByM)) { for ($i = 0; $i < count($detailKeysByM); $i++) { if ($i != 0) { $masterWhere .= " and "; } if ($this->cipherer && isEncryptionByPHPEnabled()) { $mValue = $this->cipherer->MakeDBValue($detailKeysByM[$i], $_SESSION[$this->sessionPrefix . "_masterkey" . ($i + 1)]); } else { $mValue = make_db_value($detailKeysByM[$i], $_SESSION[$this->sessionPrefix . "_masterkey" . ($i + 1)]); } if (strlen($mValue) != 0) { $masterWhere .= RunnerPage::_getFieldSQLDecrypt($detailKeysByM[$i], $this->connection, $this->pSet, $this->cipherer) . "=" . $mValue; } else { $masterWhere .= "1=0"; } } } } $strWhereClause = ""; $searchHavingClause = ""; $strSearchCriteria = "and"; global $strTableName; // search where for basic charts if (!$this->webchart) { if (!$this->chartPreview && isset($_SESSION[$this->sessionPrefix . '_advsearch'])) { $searchClauseObj = SearchClause::UnserializeObject($_SESSION[$this->sessionPrefix . '_advsearch']); include_once getabspath('classes/controls/EditControlsContainer.php'); $editControls = new EditControlsContainer(null, $this->pSet, PAGE_SEARCH, $this->cipherer); $whereComponents = RunnerPage::sGetWhereComponents($gQuery, $this->pSet, $searchClauseObj, $editControls, $this->connection); $strWhereClause = $whereComponents["searchWhere"]; foreach ($whereComponents["filterWhere"] as $fWhere) { $strWhereClause = whereAdd($strWhereClause, $fWhere); } $searchHavingClause = $whereComponents["searchHaving"]; foreach ($whereComponents["filterHaving"] as $fHaving) { $searchHavingClause = whereAdd($searchHavingClause, $fHaving); } $strSearchCriteria = $whereComponents["searchUnionRequired"] ? "or" : "and"; } } else { if ($this->table_type != "project") { $strTableName = "webchart" . $this->cname; } $strWhereClause = CalcSearchParam($this->table_type != "project"); } if ($strWhereClause) { $this->chrt_array['where'] .= $this->chrt_array['where'] ? " AND (" . $strWhereClause . ")" : " WHERE (" . $strWhereClause . ")"; } if ($this->table_type == "project") { if (SecuritySQL("Search", $this->chrt_array['tables'][0])) { $strWhereClause = whereAdd($strWhereClause, SecuritySQL("Search", $strTableName)); } $this->strSQL = $gQuery->gSQLWhere($strWhereClause, $searchHavingClause, $strSearchCriteria); $strOrderBy = $this->gstrOrderBy; $this->strSQL .= " " . $strOrderBy; if ($masterWhere) { $strWhereClause = whereAdd($strWhereClause, $masterWhere); } $strSQLbak = $this->strSQL; if (tableEventExists("BeforeQueryChart", $strTableName)) { $tstrSQL = $this->strSQL; $eventObj = getEventObject($strTableName); $eventObj->BeforeQueryChart($tstrSQL, $strWhereClause, $strOrderBy); $this->strSQL = $tstrSQL; } if ($strSQLbak == $this->strSQL) { $this->strSQL = $gQuery->gSQLWhere($strWhereClause, $searchHavingClause, $strSearchCriteria); $this->strSQL .= " " . $strOrderBy; } } if ($this->cname && $this->table_type == "db") { $this->strSQL = $this->chrt_array['sql'] . $this->chrt_array['where'] . $this->chrt_array['group_by'] . $this->chrt_array['order_by']; } elseif ($this->cname && $this->table_type == "custom") { if (!IsStoredProcedure($this->chrt_array['sql'])) { $sql_query = $this->chrt_array['sql']; if ($this->connection->dbType == nDATABASE_MSSQLServer) { $pos = strrpos(strtoupper($sql_query), "ORDER BY"); if ($pos) { $sql_query = substr($sql_query, 0, $pos); } } if ($this->connection->dbType != nDATABASE_Oracle) { $this->strSQL = "select * from (" . $sql_query . ") as " . $this->connection->addFieldWrappers("custom_query") . $this->chrt_array['where']; } else { $this->strSQL = "select * from (" . $sql_query . ")" . $this->chrt_array['where']; } } else { $this->strSQL = $this->chrt_array['sql']; } } if (tableEventExists("UpdateChartSettings", $strTableName)) { $eventObj = getEventObject($strTableName); $eventObj->UpdateChartSettings($this); } }
/** * Set session variables * @intellisense */ function setSessionVariables() { //clear session keys $this->clearSessionKeys(); // Process master table value if ($this->masterTable != "") { $_SESSION[$this->sessionPrefix . "_mastertable"] = $this->masterTable; } else { $this->masterTable = $_SESSION[$this->sessionPrefix . "_mastertable"]; } // SearchClause class stuff $allSearchFields = $this->pSetSearch->getAllSearchFields(); if ($this->needSearchClauseObj && !$this->searchClauseObj) { if (isset($_SESSION[$this->sessionPrefix . '_advsearch'])) { $this->searchClauseObj = SearchClause::UnserializeObject($_SESSION[$this->sessionPrefix . '_advsearch']); } else { $params = array(); $params['tName'] = $this->tName; $params['cipherer'] = $this->cipherer; $params['searchFieldsArr'] = $allSearchFields; $params['sessionPrefix'] = $this->sessionPrefix; $params['panelSearchFields'] = $this->pSetSearch->getPanelSearchFields(); $params['googleLikeFields'] = $this->pSetSearch->getGoogleLikeFields(); $params['requiredSearchFields'] = $this->pSetSearch->getSearchRequiredFields(); $params['searchSavingEnabled'] = $this->searchSavingEnabled; $params['dashTName'] = $this->dashTName; $params['dashElementName'] = $this->dashElementName; $this->searchClauseObj = new SearchClause($params); } $this->searchClauseObj->parseRequest(); } if ($this->searchSavingEnabled && $this->searchClauseObj) { $this->searchClauseObj->storeSearchParamsForLogging(); } //set session page size if (@$_REQUEST["pagesize"]) { $_SESSION[$this->sessionPrefix . "_pagesize"] = @$_REQUEST["pagesize"]; $_SESSION[$this->sessionPrefix . "_pagenumber"] = 1; } //set page size $this->pageSize = (int) $_SESSION[$this->sessionPrefix . "_pagesize"]; }
/** * Parse form with union search REQUEST (for new versions: 6.2 and newest) * Params are common for advanced search and search panel on list * Use in new projects * * @protected * @return string */ function parseItegratedRequest() { $this->dashElementHasSearch = false; if ($this->dashTName && !postvalue('qs') && !postvalue('q') && !postvalue('criteria')) { if (isset($_SESSION[$this->dashTName . '_advsearch'])) { $this->dashboardSearchClause = SearchClause::UnserializeObject($_SESSION[$this->dashTName . '_advsearch']); $this->dashElementHasSearch = $this->dashboardSearchClause->bIsUsedSrch; } } if (postvalue('qs') == "" && postvalue('q') == "" && !$this->dashElementHasSearch) { return $this->parseItegratedRequestOld(); } global $suggestAllContent; // parse global options $this->fieldsUsedForSearch = array(); $this->_where[$this->sessionPrefix . "_simpleSrch"] = ''; $this->simpleSearchActive = false; $this->_where[$this->sessionPrefix . "simpleSrchTypeComboOpt"] = $suggestAllContent ? "Contains" : "Starts with"; $this->_where[$this->sessionPrefix . "simpleSrchTypeComboNot"] = false; $this->_where[$this->sessionPrefix . "simpleSrchFieldsComboOpt"] = ''; $tempArr = $this->parseStringToArray(postvalue('qs')); $simpleQueryArr = $tempArr[0]; if ($this->dashElementHasSearch) { $simpleQueryArr = $this->getSimpleSearchFromDashboard(); } $this->_where[$this->sessionPrefix . "_simpleSrch"] = $this->searchUnEscape($simpleQueryArr[0]); $this->simpleSearchActive = $simpleQueryArr[0] != ''; if ($this->simpleSearchActive && $this->dashElementHasSearch) { $this->googleLikeFields = $this->getGoogleLikeFieldsFromDashboard(); } if (isset($this->searchOptions[$this->getArrayValueByIndex($simpleQueryArr, 2, true)])) { $simpleSrchTypeComboNot = $this->searchOptions[$simpleQueryArr[2]]["not"]; $this->_where[$this->sessionPrefix . "simpleSrchTypeComboOpt"] = $this->searchOptions[$simpleQueryArr[2]]["option"]; if (!strlen($this->_where[$this->sessionPrefix . "simpleSrchTypeComboOpt"])) { $this->_where[$this->sessionPrefix . "simpleSrchTypeComboOpt"] = $suggestAllContent ? "Contains" : "Starts with"; } } $fieldName = trim($this->getArrayValueByIndex($simpleQueryArr, 1, true)); $this->_where[$this->sessionPrefix . "simpleSrchFieldsComboOpt"] = $fieldName; if ($fieldName) { $this->fieldsUsedForSearch[$fieldName] = true; } $srchCriteriaCombineType = postvalue("criteria"); if ($this->dashElementHasSearch) { $srchCriteriaCombineType = $this->getCriteriaFromDashboard(); } if (!$srchCriteriaCombineType) { $srchCriteriaCombineType = "and"; } $_SESSION[$this->sessionPrefix . "_criteria"] = $srchCriteriaCombineType; $this->_where[$this->sessionPrefix . "_srchCriteriaCombineType"] = $srchCriteriaCombineType; // prepare vars $this->_where[$this->sessionPrefix . "_srchFields"] = array(); // scan all srch fields $this->advancedSearchActive = false; $pSet = new ProjectSettings($this->tName, PAGE_SEARCH); $searchFieldsArr = $this->parseStringToArray(postvalue('q'), true); if ($this->dashElementHasSearch) { $searchFieldsArr = $this->getSearchFieldsFromDashboard(); } foreach ($searchFieldsArr as $searchItemArr) { if (count($searchItemArr) < 2) { continue; } $fName = $this->searchUnEscape($searchItemArr[0]); if (false == in_array($fName, $this->searchFieldsArr)) { continue; } $this->advancedSearchActive = true; $srchF = array(); $srchF['fName'] = $fName; $srchF['eType'] = $this->getArrayValueByIndex($searchItemArr, 3); $srchF['value1'] = $this->getArrayValueByIndex($searchItemArr, 2, true); $opt = $this->getArrayValueByIndex($searchItemArr, 1); $srchF['not'] = false; if (isset($this->searchOptions[$opt])) { $srchF['not'] = $this->searchOptions[$opt]["not"]; $srchF['opt'] = $this->searchOptions[$opt]["option"]; } else { $srchF['opt'] = $this->getDefaultSearchTypeOption($fName, $pSet); } $srchF['value2'] = $this->getArrayValueByIndex($searchItemArr, 4, true); $this->_where[$this->sessionPrefix . "_srchFields"][] = $srchF; $this->fieldsUsedForSearch[$fName] = true; } // process srch panel attrs, better then use coockies. $this->_where[$this->sessionPrefix . "_srchOptShowStatus"] = postvalue('srchOptShowStatus') === '1'; // || count($this->_where[$this->sessionPrefix."_srchFields"])>0; $this->_where[$this->sessionPrefix . "_ctrlTypeComboStatus"] = postvalue('ctrlTypeComboStatus') === '1'; $this->_where[$this->sessionPrefix . "srchWinShowStatus"] = postvalue('srchWinShowStatus') === '1'; }
$cipherer = new RunnerCipherer($strTableName); $pSet = new ProjectSettings($strTableName, PAGE_SEARCH); // array of fields which were added in wizard for search $allSearchFields = $pSet->getAllSearchFields(); // SearchClause class stuff if (isset($_SESSION[$sessionPrefix . '_advsearch'])) { $searchClauseObj = unserialize($_SESSION[$sessionPrefix . '_advsearch']); } else { $params = array(); $params['tName'] = $strTableName; $params['cipherer'] = $cipherer; $params['searchFieldsArr'] = $allSearchFields; $params['sessionPrefix'] = $sessionPrefix; $params['panelSearchFields'] = $pSet->getPanelSearchFields(); $params['googleLikeFields'] = $pSet->getGoogleLikeFields(); $searchClauseObj = new SearchClause($params); } // array of vals $response = array(); if (postvalue("start")) { $suggestAllContent = false; } $searchFor = postvalue('searchFor'); $searchField = GoodFieldName(postvalue('searchField')); $strSecuritySql = SecuritySQL("Search", $strTableName); $detailKeys = array(); $masterWhere = ""; if ($searchField == "") { $allSearchFields = $pSet->getGoogleLikeFields(); } require_once getabspath('classes/controls/EditControlsContainer.php');