version = 2; $layout->blocks["top"] = array(); $layout->containers["search"] = array(); $layout->containers["search"][] = array("name"=>"srchheader", "block"=>"", "substyle"=>2 ); $layout->containers["search"][] = array("name"=>"srchconditions", "block"=>"conditions_block", "substyle"=>1 ); $layout->containers["search"][] = array("name"=>"wrapper", "block"=>"", "substyle"=>1 , "container"=>"fields" ); $layout->containers["fields"] = array(); $layout->containers["fields"][] = array("name"=>"srchfields", "block"=>"", "substyle"=>1 ); $layout->containers["fields"][] = array("name"=>"srchbuttons", "block"=>"", "substyle"=>2 ); $layout->skins["fields"] = "fields"; $layout->skins["search"] = "1"; $layout->blocks["top"][] = "search"; $page_layouts["fpi_funnel_search"] = $layout; $layout->skinsparams = array(); $layout->skinsparams["empty"] = array("button"=>"button2"); $layout->skinsparams["menu"] = array("button"=>"button1"); $layout->skinsparams["hmenu"] = array("button"=>"button1"); $layout->skinsparams["undermenu"] = array("button"=>"button1"); $layout->skinsparams["fields"] = array("button"=>"button1"); $layout->skinsparams["form"] = array("button"=>"button1"); $layout->skinsparams["1"] = array("button"=>"button1"); $layout->skinsparams["2"] = array("button"=>"button1"); $layout->skinsparams["3"] = array("button"=>"button1"); include('include/xtempl.php'); include('classes/runnerpage.php'); $xt = new Xtempl(); // id that used to add to controls names if(postvalue("id")) $id = postvalue("id"); else $id = 1; // for usual page show proccess $mode = SEARCH_SIMPLE; $templatefile = GetTemplateName("fpi_funnel", "search"); // for ajax query, used when page buffers new control if(postvalue("mode")=="inlineLoadCtrl"){ $mode = SEARCH_LOAD_CONTROL; } $params = array(); $params["id"] = $id; $params["mode"] = $mode; $params['xt'] = &$xt; $params['templatefile'] = $templatefile; $params['shortTableName'] = 'fpi_funnel'; $params['origTName'] = $strOriginalTableName; $params['sessionPrefix'] = $sessionPrefix; $params['tName'] = $strTableName; $params['locale_info'] = $locale_info; $params['pageType'] = PAGE_SEARCH; $pageObject = new RunnerPage($params); $pageObject->init(); // create reusable searchControl builder instance $searchControllerId = (postvalue('searchControllerId') ? postvalue('searchControllerId') : $pageObject->id); // Before Process event if($eventObj->exists("BeforeProcessSearch")) $eventObj->BeforeProcessSearch($conn, $pageObject); // add constants and files for simple view if ($mode==SEARCH_SIMPLE) { $searchControlBuilder = new AdvancedSearchControl($searchControllerId, $strTableName, $pageObject->searchClauseObj, $pageObject); // add button events if exist $pageObject->addButtonHandlers(); $includes .= GetBaseScriptsForPage(false); // if not simple, this div already exist on page if (!isMobile()) $includes.="
"; // search panel radio button assign $searchRadio = $searchControlBuilder->getSearchRadio(); $xt->assign_section("all_checkbox_label", $searchRadio['all_checkbox_label'][0], $searchRadio['all_checkbox_label'][1]); $xt->assign_section("any_checkbox_label", $searchRadio['any_checkbox_label'][0], $searchRadio['any_checkbox_label'][1]); $xt->assignbyref("all_checkbox",$searchRadio['all_checkbox']); $xt->assignbyref("any_checkbox",$searchRadio['any_checkbox']); // search fields data if($pageObject->pSet->getLookupTable("type")) $pageObject->settingsMap["globalSettings"]['shortTNames'][$pageObject->pSet->getLookupTable("type")] = GetTableURL($pageObject->pSet->getLookupTable("type")); $pageObject->fillFieldToolTips("type"); $srchFields = $pageObject->searchClauseObj->getSearchCtrlParams("type"); $firstFieldParams = array(); if (count($srchFields)) { $firstFieldParams = $srchFields[0]; } else { $firstFieldParams['fName'] = "type"; $firstFieldParams['eType'] = ''; $firstFieldParams['value1'] = $pageObject->pSet->getDefaultValue( "type" ); $firstFieldParams['opt'] = ''; $firstFieldParams['value2'] = ''; $firstFieldParams['not'] = false; } // create control $ctrlBlockArr = $searchControlBuilder->buildSearchCtrlBlockArr($id, $firstFieldParams['fName'], 0, $firstFieldParams['opt'], $firstFieldParams['not'], false, $firstFieldParams['value1'], $firstFieldParams['value2']); if(isEnableSection508()) $xt->assign_section("type_label",""); else $xt->assign("type_label", true); $xt->assign("type_fieldblock", true); $xt->assignbyref("type_editcontrol", $ctrlBlockArr['searchcontrol']); $xt->assign("type_notbox", $ctrlBlockArr['notbox']); // create second control, if need it $xt->assignbyref("type_editcontrol1", $ctrlBlockArr['searchcontrol1']); // create search type select $xt->assign("searchtype_type", $ctrlBlockArr['searchtype']); $isFieldNeedSecCtrl = $searchControlBuilder->isNeedSecondCtrl("type"); $ctrlInd = 0; if ($isFieldNeedSecCtrl) { $pageObject->controlsMap["search"]["searchBlocks"][] = array('fName'=>"type", 'recId'=>$id, 'ctrlsMap'=>array(0=>$ctrlInd, 1=>($ctrlInd+1))); $ctrlInd+=2; } else { $pageObject->controlsMap["search"]["searchBlocks"][] = array('fName'=>"type", 'recId'=>$id, 'ctrlsMap'=>array(0=>$ctrlInd)); $ctrlInd++; } // search fields data if($pageObject->pSet->getLookupTable("name")) $pageObject->settingsMap["globalSettings"]['shortTNames'][$pageObject->pSet->getLookupTable("name")] = GetTableURL($pageObject->pSet->getLookupTable("name")); $pageObject->fillFieldToolTips("name"); $srchFields = $pageObject->searchClauseObj->getSearchCtrlParams("name"); $firstFieldParams = array(); if (count($srchFields)) { $firstFieldParams = $srchFields[0]; } else { $firstFieldParams['fName'] = "name"; $firstFieldParams['eType'] = ''; $firstFieldParams['value1'] = $pageObject->pSet->getDefaultValue( "name" ); $firstFieldParams['opt'] = ''; $firstFieldParams['value2'] = ''; $firstFieldParams['not'] = false; } // create control $ctrlBlockArr = $searchControlBuilder->buildSearchCtrlBlockArr($id, $firstFieldParams['fName'], 0, $firstFieldParams['opt'], $firstFieldParams['not'], false, $firstFieldParams['value1'], $firstFieldParams['value2']); if(isEnableSection508()) $xt->assign_section("name_label",""); else $xt->assign("name_label", true); $xt->assign("name_fieldblock", true); $xt->assignbyref("name_editcontrol", $ctrlBlockArr['searchcontrol']); $xt->assign("name_notbox", $ctrlBlockArr['notbox']); // create second control, if need it $xt->assignbyref("name_editcontrol1", $ctrlBlockArr['searchcontrol1']); // create search type select $xt->assign("searchtype_name", $ctrlBlockArr['searchtype']); $isFieldNeedSecCtrl = $searchControlBuilder->isNeedSecondCtrl("name"); $ctrlInd = 0; if ($isFieldNeedSecCtrl) { $pageObject->controlsMap["search"]["searchBlocks"][] = array('fName'=>"name", 'recId'=>$id, 'ctrlsMap'=>array(0=>$ctrlInd, 1=>($ctrlInd+1))); $ctrlInd+=2; } else { $pageObject->controlsMap["search"]["searchBlocks"][] = array('fName'=>"name", 'recId'=>$id, 'ctrlsMap'=>array(0=>$ctrlInd)); $ctrlInd++; } // search fields data if($pageObject->pSet->getLookupTable("tel")) $pageObject->settingsMap["globalSettings"]['shortTNames'][$pageObject->pSet->getLookupTable("tel")] = GetTableURL($pageObject->pSet->getLookupTable("tel")); $pageObject->fillFieldToolTips("tel"); $srchFields = $pageObject->searchClauseObj->getSearchCtrlParams("tel"); $firstFieldParams = array(); if (count($srchFields)) { $firstFieldParams = $srchFields[0]; } else { $firstFieldParams['fName'] = "tel"; $firstFieldParams['eType'] = ''; $firstFieldParams['value1'] = $pageObject->pSet->getDefaultValue( "tel" ); $firstFieldParams['opt'] = ''; $firstFieldParams['value2'] = ''; $firstFieldParams['not'] = false; } // create control $ctrlBlockArr = $searchControlBuilder->buildSearchCtrlBlockArr($id, $firstFieldParams['fName'], 0, $firstFieldParams['opt'], $firstFieldParams['not'], false, $firstFieldParams['value1'], $firstFieldParams['value2']); if(isEnableSection508()) $xt->assign_section("tel_label",""); else $xt->assign("tel_label", true); $xt->assign("tel_fieldblock", true); $xt->assignbyref("tel_editcontrol", $ctrlBlockArr['searchcontrol']); $xt->assign("tel_notbox", $ctrlBlockArr['notbox']); // create second control, if need it $xt->assignbyref("tel_editcontrol1", $ctrlBlockArr['searchcontrol1']); // create search type select $xt->assign("searchtype_tel", $ctrlBlockArr['searchtype']); $isFieldNeedSecCtrl = $searchControlBuilder->isNeedSecondCtrl("tel"); $ctrlInd = 0; if ($isFieldNeedSecCtrl) { $pageObject->controlsMap["search"]["searchBlocks"][] = array('fName'=>"tel", 'recId'=>$id, 'ctrlsMap'=>array(0=>$ctrlInd, 1=>($ctrlInd+1))); $ctrlInd+=2; } else { $pageObject->controlsMap["search"]["searchBlocks"][] = array('fName'=>"tel", 'recId'=>$id, 'ctrlsMap'=>array(0=>$ctrlInd)); $ctrlInd++; } // search fields data if($pageObject->pSet->getLookupTable("qq")) $pageObject->settingsMap["globalSettings"]['shortTNames'][$pageObject->pSet->getLookupTable("qq")] = GetTableURL($pageObject->pSet->getLookupTable("qq")); $pageObject->fillFieldToolTips("qq"); $srchFields = $pageObject->searchClauseObj->getSearchCtrlParams("qq"); $firstFieldParams = array(); if (count($srchFields)) { $firstFieldParams = $srchFields[0]; } else { $firstFieldParams['fName'] = "qq"; $firstFieldParams['eType'] = ''; $firstFieldParams['value1'] = $pageObject->pSet->getDefaultValue( "qq" ); $firstFieldParams['opt'] = ''; $firstFieldParams['value2'] = ''; $firstFieldParams['not'] = false; } // create control $ctrlBlockArr = $searchControlBuilder->buildSearchCtrlBlockArr($id, $firstFieldParams['fName'], 0, $firstFieldParams['opt'], $firstFieldParams['not'], false, $firstFieldParams['value1'], $firstFieldParams['value2']); if(isEnableSection508()) $xt->assign_section("qq_label",""); else $xt->assign("qq_label", true); $xt->assign("qq_fieldblock", true); $xt->assignbyref("qq_editcontrol", $ctrlBlockArr['searchcontrol']); $xt->assign("qq_notbox", $ctrlBlockArr['notbox']); // create second control, if need it $xt->assignbyref("qq_editcontrol1", $ctrlBlockArr['searchcontrol1']); // create search type select $xt->assign("searchtype_qq", $ctrlBlockArr['searchtype']); $isFieldNeedSecCtrl = $searchControlBuilder->isNeedSecondCtrl("qq"); $ctrlInd = 0; if ($isFieldNeedSecCtrl) { $pageObject->controlsMap["search"]["searchBlocks"][] = array('fName'=>"qq", 'recId'=>$id, 'ctrlsMap'=>array(0=>$ctrlInd, 1=>($ctrlInd+1))); $ctrlInd+=2; } else { $pageObject->controlsMap["search"]["searchBlocks"][] = array('fName'=>"qq", 'recId'=>$id, 'ctrlsMap'=>array(0=>$ctrlInd)); $ctrlInd++; } // search fields data if($pageObject->pSet->getLookupTable("comment")) $pageObject->settingsMap["globalSettings"]['shortTNames'][$pageObject->pSet->getLookupTable("comment")] = GetTableURL($pageObject->pSet->getLookupTable("comment")); $pageObject->fillFieldToolTips("comment"); $srchFields = $pageObject->searchClauseObj->getSearchCtrlParams("comment"); $firstFieldParams = array(); if (count($srchFields)) { $firstFieldParams = $srchFields[0]; } else { $firstFieldParams['fName'] = "comment"; $firstFieldParams['eType'] = ''; $firstFieldParams['value1'] = $pageObject->pSet->getDefaultValue( "comment" ); $firstFieldParams['opt'] = ''; $firstFieldParams['value2'] = ''; $firstFieldParams['not'] = false; } // create control $ctrlBlockArr = $searchControlBuilder->buildSearchCtrlBlockArr($id, $firstFieldParams['fName'], 0, $firstFieldParams['opt'], $firstFieldParams['not'], false, $firstFieldParams['value1'], $firstFieldParams['value2']); if(isEnableSection508()) $xt->assign_section("comment_label",""); else $xt->assign("comment_label", true); $xt->assign("comment_fieldblock", true); $xt->assignbyref("comment_editcontrol", $ctrlBlockArr['searchcontrol']); $xt->assign("comment_notbox", $ctrlBlockArr['notbox']); // create second control, if need it $xt->assignbyref("comment_editcontrol1", $ctrlBlockArr['searchcontrol1']); // create search type select $xt->assign("searchtype_comment", $ctrlBlockArr['searchtype']); $isFieldNeedSecCtrl = $searchControlBuilder->isNeedSecondCtrl("comment"); $ctrlInd = 0; if ($isFieldNeedSecCtrl) { $pageObject->controlsMap["search"]["searchBlocks"][] = array('fName'=>"comment", 'recId'=>$id, 'ctrlsMap'=>array(0=>$ctrlInd, 1=>($ctrlInd+1))); $ctrlInd+=2; } else { $pageObject->controlsMap["search"]["searchBlocks"][] = array('fName'=>"comment", 'recId'=>$id, 'ctrlsMap'=>array(0=>$ctrlInd)); $ctrlInd++; } // search fields data if($pageObject->pSet->getLookupTable("date")) $pageObject->settingsMap["globalSettings"]['shortTNames'][$pageObject->pSet->getLookupTable("date")] = GetTableURL($pageObject->pSet->getLookupTable("date")); $pageObject->fillFieldToolTips("date"); $srchFields = $pageObject->searchClauseObj->getSearchCtrlParams("date"); $firstFieldParams = array(); if (count($srchFields)) { $firstFieldParams = $srchFields[0]; } else { $firstFieldParams['fName'] = "date"; $firstFieldParams['eType'] = ''; $firstFieldParams['value1'] = $pageObject->pSet->getDefaultValue( "date" ); $firstFieldParams['opt'] = ''; $firstFieldParams['value2'] = ''; $firstFieldParams['not'] = false; } // create control $ctrlBlockArr = $searchControlBuilder->buildSearchCtrlBlockArr($id, $firstFieldParams['fName'], 0, $firstFieldParams['opt'], $firstFieldParams['not'], false, $firstFieldParams['value1'], $firstFieldParams['value2']); if(isEnableSection508()) $xt->assign_section("date_label",""); else $xt->assign("date_label", true); $xt->assign("date_fieldblock", true); $xt->assignbyref("date_editcontrol", $ctrlBlockArr['searchcontrol']); $xt->assign("date_notbox", $ctrlBlockArr['notbox']); // create second control, if need it $xt->assignbyref("date_editcontrol1", $ctrlBlockArr['searchcontrol1']); // create search type select $xt->assign("searchtype_date", $ctrlBlockArr['searchtype']); $isFieldNeedSecCtrl = $searchControlBuilder->isNeedSecondCtrl("date"); $ctrlInd = 0; if ($isFieldNeedSecCtrl) { $pageObject->controlsMap["search"]["searchBlocks"][] = array('fName'=>"date", 'recId'=>$id, 'ctrlsMap'=>array(0=>$ctrlInd, 1=>($ctrlInd+1))); $ctrlInd+=2; } else { $pageObject->controlsMap["search"]["searchBlocks"][] = array('fName'=>"date", 'recId'=>$id, 'ctrlsMap'=>array(0=>$ctrlInd)); $ctrlInd++; } //-------------------------------------------------------- $pageObject->body["begin"] .= $includes; $pageObject->addCommonJs(); $xt->assignbyref("body",$pageObject->body); $xt->assign("contents_block", true); $xt->assign("conditions_block",true); $xt->assign("search_button",true); $xt->assign("reset_button",true); $xt->assign("back_button",true); $xt->assign("searchbutton_attrs","id=\"searchButton".$id."\""); $xt->assign("resetbutton_attrs","id=\"resetButton".$id."\""); $xt->assign("backbutton_attrs","id=\"backButton".$id."\""); // for crosse report if (postvalue('axis_x')!=''){ $xtCrosseElem = " "; $xt->assign("CrossElem",$xtCrosseElem); } // for crosse report if($eventObj->exists("BeforeShowSearch")) $eventObj->BeforeShowSearch($xt,$templatefile, $pageObject); // load controls for first page loading $pageObject->fillSetCntrlMaps(); $pageObject->body['end'] .= ''; $pageObject->body['end'] .= "\r\n"; $pageObject->body["end"] .= ""; $xt->assignbyref("body",$pageObject->body); $pageObject->display($templatefile); } else if($mode==SEARCH_LOAD_CONTROL) { $searchControlBuilder = new PanelSearchControl($searchControllerId, $strTableName, $pageObject->searchClauseObj, $pageObject); $ctrlField = postvalue('ctrlField'); $defaultValue = $pageObject->pSet->getDefaultValue( $ctrlField ); $ctrlBlockArr = $searchControlBuilder->buildSearchCtrlBlockArr($id, $ctrlField, 0, '', false, true, $defaultValue, ''); // build array for encode $resArr = array(); $resArr['control1'] = trim($xt->call_func($ctrlBlockArr['searchcontrol'])); $resArr['control2'] = trim($xt->call_func($ctrlBlockArr['searchcontrol1'])); $resArr['comboHtml'] = trim($ctrlBlockArr['searchtype']); $resArr['delButt'] = trim($ctrlBlockArr['delCtrlButt']); $resArr['delButtId'] = trim($searchControlBuilder->getDelButtonId($ctrlField, $id)); $resArr['divInd'] = trim($id); $resArr['fLabel'] = GetFieldLabel(GoodFieldName($strTableName),GoodFieldName($ctrlField)); $resArr['ctrlMap'] = $pageObject->controlsMap['controls']; if (postvalue('isNeedSettings') == 'true') { $pageObject->fillSettings(); $resArr['settings'] = $pageObject->jsSettings; } // return JSON echo printJSON($resArr); exit(); } ?>