CoolFace
Apppublic

kenken999/php

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
dsearch.php421 linesDownload Raw Back to public
1<?php2ini_set("display_errors","1");3ini_set("display_startup_errors","1");4include("include/dbcommon.php");5 6add_nocache_headers();7 8 9include("include/reportfunctions.php");10 11$strTableName="";12 13$xml_array=array();14 15$sessPrefix = "";16 17if (postvalue("rname")) 18{19	$xml_array = wrGetEntityArray( postvalue("rname"), WR_REPORT );20	if(!is_wr_project())21	{22		$sessPrefix = "webreport".postvalue("rname");23	}24} 25elseif (postvalue("cname")) 26{27	$xml_array = wrGetEntityArray( postvalue("cname"), WR_CHART );28	$sessPrefix = "webchart".postvalue("cname");29}30 31	if(!isLogged()) {					32		$_SESSION["MyURL"]=$_SERVER["SCRIPT_NAME"]."?".$_SERVER["QUERY_STRING"];33		header("Location: ".GetTableLink("login", "", "message=expired"));34		return;35	} elseif ( $xml_array['settings']['status'] == "private" && $xml_array['owner'] != @$_SESSION["UserID"] ) {36		echo "<p>"."You don't have permissions to view this report"."</p>";37		exit();38	}39 40if (strpos($xml_array['table_relations']['join_tables'], ",") !== false) {41	$arr_join_tables = array_slice(explode(",", $xml_array['table_relations']['join_tables']), 0, -1);	42}43$arr_join_tables[] = $xml_array['tables'][0];44 45if(is_wr_project())46{47	foreach ($arr_join_tables as $tbl) 48	{49		include_once("include/" . GetTableURL($tbl) . "_settings.php");	50	}51}52 53if (postvalue("rname")) {54	$inspect_fields = $xml_array["totals"];55} elseif (postvalue("cname")) {56	//$inspect_fields = $xml_array["parameters"];57	$inspect_fields = array();58	for ($i=0; $i < pre8count($arr_join_tables); $i++ ) {59		$t = $arr_join_tables[$i];60		$arr_fields = WRGetNBFieldsList($t);61		for ($j=0; $j < pre8count($arr_fields); $j++) {62			$slabel=$arr_fields[$j];63			for ($k=0; $k < pre8count($xml_array["parameters"])-1; $k++) 64				if($xml_array["parameters"][$k]["name"]==$slabel)65				{66					$slabel=$xml_array["parameters"][$k]["label"];67					break;68				}69			$inspect_fields[] = array("table" => $t, "name" => $arr_fields[$j], "show" => "true", "label" => $slabel);70		}71	}72}73 74//}75$pageName = GetTableLink("dsearch");76 77//Basic includes js files78$includes="";79//javascript code80$jscode="";81 82include("classes/webreportpage.php");83include('include/xtempl.php');84$xt = new Xtempl();85 86$id = postvalue_number("id");87if(intval($id)==0)88	$id = 1;89 90$params = array("pageType" => PAGE_SEARCH,"id" => $id);91$params['xt'] = &$xt;92$params['tName'] = $strTableName;93$params["needSearchClauseObj"] = false;94 95$pageObject = new WebreportPage($params);96$pageObject->init();97 98$includes = '<script type="text/javascript" src="'.GetRootPathForResources("include/js/jquery.min.js").'"></script>';99 100$jscode.="TEXT_MONTH_JAN='".jsreplace("January")."';\r\n";101$jscode.="TEXT_MONTH_FEB='".jsreplace("February")."';\r\n";102$jscode.="TEXT_MONTH_MAR='".jsreplace("March")."';\r\n";103$jscode.="TEXT_MONTH_APR='".jsreplace("April")."';\r\n";104$jscode.="TEXT_MONTH_MAY='".jsreplace("May")."';\r\n";105$jscode.="TEXT_MONTH_JUN='".jsreplace("June")."';\r\n";106$jscode.="TEXT_MONTH_JUL='".jsreplace("July")."';\r\n";107$jscode.="TEXT_MONTH_AUG='".jsreplace("August")."';\r\n";108$jscode.="TEXT_MONTH_SEP='".jsreplace("September")."';\r\n";109$jscode.="TEXT_MONTH_OCT='".jsreplace("October")."';\r\n";110$jscode.="TEXT_MONTH_NOV='".jsreplace("November")."';\r\n";111$jscode.="TEXT_MONTH_DEC='".jsreplace("December")."';\r\n";112 113$jscode.="TEXT_DAY_SU='".jsreplace("Su")."';\r\n";114$jscode.="TEXT_DAY_MO='".jsreplace("Mo")."';\r\n";115$jscode.="TEXT_DAY_TU='".jsreplace("Tu")."';\r\n";116$jscode.="TEXT_DAY_WE='".jsreplace("We")."';\r\n";117$jscode.="TEXT_DAY_TH='".jsreplace("Th")."';\r\n";118$jscode.="TEXT_DAY_FR='".jsreplace("Fr")."';\r\n";119$jscode.="TEXT_DAY_SA='".jsreplace("Sa")."';\r\n";120 121$jscode.="TEXT_TODAY='".jsreplace("today")."';\r\n";122$jscode .= '123locale_dateformat = "'.$locale_info["LOCALE_IDATE"].'";124locale_datedelimiter = "'.$locale_info["LOCALE_SDATE"].'";125bLoading = false;126TEXT_PLEASE_SELECT = "'.jsreplace("Please select").'"; 127detect = navigator.userAgent.toLowerCase();128checkIt = function(string)129{130	place = detect.indexOf(string) + 1;131	thestring = string;132	return place;133}134ShowHideControls = function ()135{';136foreach ( $inspect_fields as $fld ) {137	if(is_wr_db())138		$fld_type=WRGetFieldType($fld['table'].".".$fld['name']);139	elseif(is_wr_custom())140		$fld_type=WRCustomGetFieldType($fld['table'],$fld['name']);141	else142		$fld_type=GetFieldType($fld['name'],$fld['table']);143	if ( !IsBinaryType($fld_type)) {144		if(!is_wr_custom())145			$jscode .=	'146				document.getElementById("second_'.GoodFieldName($fld['table'])."_".GoodFieldName($fld['name']).'").style.display =  147					document.forms.editform.elements["asearchopt_'.GoodFieldName($fld['table'])."_".GoodFieldName($fld['name']).'_1"].value == "Between" ? "" : "none";148			';149		else150			$jscode .=	'151				document.getElementById("second_'.GoodFieldName($fld['name']).'").style.display =  152					document.forms.editform.elements["asearchopt_'.GoodFieldName($fld['name']).'_1"].value == "Between" ? "" : "none";153			';154	}155}156 157$jscode .= '158	return false;159}160ResetControls = function() {161	var i;162	e = document.forms[0].elements; 163	for (i=0;i<e.length;i++) 164	{165		if (e[i].name!="type" && e[i].className!="button" && e[i].type!="hidden")166		{167			if(e[i].type=="select-one")168				e[i].selectedIndex=0;169			else if(e[i].type=="select-multiple")170			{171				var j;172				for(j=0;j<e[i].options.length;j++)173					e[i].options[j].selected=false;174			}175			else if(e[i].type=="checkbox" || e[i].type=="radio")176				e[i].checked=false;177			else 178				e[i].value = ""; 179		}180		else if(e[i].name.substr(0,6)=="value_" && e[i].type=="hidden")181			e[i].value = ""; 182	}183	ShowHideControls();	184	return false;185};186OnKeyDown = function(e){187	if(!e) e = window.event; 188	if (e.keyCode == 13){189		e.cancel = true;190		document.forms[0].submit();191	}192};';193 194if(is_wr_custom())195	$jscode .= '196	$(document).ready(function(){197		$(".text").hide();198		});199	';200 201$all_checkbox = 'value="and"';202$any_checkbox = 'value="or"';203 204if(@$_SESSION[$sessPrefix."_asearchtype"]=="or") {205	$any_checkbox.=" checked";206} else {207	$all_checkbox.=" checked";208}209$xt->assign("any_checkbox", $any_checkbox);210$xt->assign("all_checkbox", $all_checkbox);211 212$editformats=array();213 214if(!is_array($_SESSION[$sessPrefix."_asearchopt"]))215	$_SESSION[$sessPrefix."_asearchopt"]=array();216if(!is_array($_SESSION[$sessPrefix."_asearchnot"]))217	$_SESSION[$sessPrefix."_asearchnot"]=array();218if(!is_array($_SESSION[$sessPrefix."_asearchfor"]))219	$_SESSION[$sessPrefix."_asearchfor"]=array();220if(!is_array($_SESSION[$sessPrefix."_asearchfor2"]))221	$_SESSION[$sessPrefix."_asearchfor2"]=array();222 223/////////////////////////////////////////////////////224$aGroupFields=array();225$ngFieldNames=array();226$arr_page_order_fields=array();227$arr_page_order_fields["data"]=array();228$arr_not_group_fields=array();229 230for ( $i=0; $i < pre8count($xml_array['group_fields'])-1; $i++ ) {231	$aGroupFields[] = $xml_array['tables'][0]."_".$xml_array['group_fields'][$i]['name'];232}233 234 235$aTotFields=array();236 237 238foreach ( $inspect_fields as $fld ) {239	if(is_wr_db())240		$fld_type=WRGetFieldType($fld['table'].".".$fld['name']);241	elseif(is_wr_custom())242		$fld_type=WRCustomGetFieldType($fld['table'],$fld['name']);243	else244		$fld_type=GetFieldType($fld['name'],$fld['table']);	245	246	if ( !IsBinaryType($fld_type)) {247		$aTotFields[] = $fld['table']."_".$fld['name'];248	}249}250 251$ngFieldNames = array_diff( $aTotFields, $aGroupFields );252 253 254$arr_alias = array();255foreach ( $aGroupFields as $gr_name  ) {256	foreach ( $inspect_fields as $fld ) {257		if ( $gr_name == $fld['table']."_".$fld['name'] && !in_array($fld['table']."_".$fld['name'], $arr_alias)) {258			$arr_alias[] = $fld['table']."_".$fld['name'];259			$arr_page_order_fields["data"][] = $fld;260		}261	}262}263 264 265foreach ( $inspect_fields as $fld ) {266	if ( in_array( $fld['table']."_".$fld['name'], $ngFieldNames ) ) {267		$arr_page_order_fields["data"][] = $fld;268		if ($fld["show"] == "true") {269			$arr_not_group_fields[] = $fld;270		}271	}272}273 274$arr_alias = array();275$arr_unset = array();276foreach ($arr_page_order_fields["data"] as $key => $value){277	$ftable = $arr_page_order_fields["data"][$key]["table"];278	$gtable= GoodFieldName($ftable);279	$fname = $arr_page_order_fields["data"][$key]["name"];280 281	if(is_wr_db())282	{283		$table_field=$ftable.".".$fname;284		$gname = $gtable."_".GoodFieldName($fname);285	}286	else287	{288		$table_field=$fname;289		$gname = GoodFieldName($fname);290	}291	// remove duplicate search parameters292	if (array_key_exists($gname, $arr_alias) || GetGenericEditFormat($ftable, $fname) == EDIT_FORMAT_DATABASE_IMAGE) {293		$arr_unset[]=$key;294		continue;295	} else {296		$arr_alias[$fname] = 1;	297	}298	//299	$opt = "";300	$not = false;301	//	edit format302	if (GetGenericEditFormat($ftable, $fname) == EDIT_FORMAT_TEXT_AREA303		|| GetGenericEditFormat($ftable, $fname) == EDIT_FORMAT_PASSWORD304		|| GetGenericEditFormat($ftable, $fname) == EDIT_FORMAT_HIDDEN305		|| GetGenericEditFormat($ftable, $fname) == EDIT_FORMAT_READONLY306		|| GetGenericEditFormat($ftable, $fname) == EDIT_FORMAT_FILE)307	{308		$editformats[$table_field]=EDIT_FORMAT_TEXT_FIELD;309	} else {310		$editformats[$table_field]=GetGenericEditFormat($ftable, $fname);311	}312 313	$editcont=array();314	$parameters = array();315	if(@$_SESSION[$sessPrefix."_search"]==2)316	{317		$opt = @$_SESSION[$sessPrefix."_asearchopt"][$table_field];318		$not = @$_SESSION[$sessPrefix."_asearchnot"][$table_field];319		$parameters["value"] = @$_SESSION[$sessPrefix."_asearchfor"][$table_field];320	}321	$parameters["field"]=$table_field;322	$parameters["mode"]="search";323	$parameters["ptype"] = PAGE_SEARCH;324	$parameters["format"]=$editformats[$table_field];325	$parameters["id"]=1;326	$parameters["pageObj"] = $pageObject;327 328	$editcont = XTempl::create_function_assignment( "xt_buildeditcontrol", $parameters );329	330	$arr_page_order_fields["data"][$key]["editcontrol"] = $editcont;331	332	//$editcont1 = $editcont;333	$editcont1 = array();334	$parameters["second"]=true;335	$parameters["fieldNum"]=1;336	337	$editcont1 = XTempl::create_function_assignment( "xt_buildeditcontrol", $parameters);338	339	if(@$_SESSION[$sessPrefix."_search"]==2) {340		$editcont1["params"]["value"] = @$_SESSION[$sessPrefix."_asearchfor2"][$table_field];341	}342	$arr_page_order_fields["data"][$key]["editcontrol1"] = $editcont1;343	if(is_wr_db())344		$arr_page_order_fields["data"][$key]["fieldblock"] = '345			<input type="hidden" name="asearchfield[]" value="'.runner_htmlspecialchars($ftable).".".runner_htmlspecialchars($fname).'">346			<input type="hidden" name="asearchtable[]" value="'.runner_htmlspecialchars($ftable).'">347		';348	else349		$arr_page_order_fields["data"][$key]["fieldblock"] = '350			<input type="hidden" name="asearchfield[]" value="'.runner_htmlspecialchars($fname).'">351			<input type="hidden" name="asearchtable[]" value="'.runner_htmlspecialchars($ftable).'">352		';353	354	$arr_page_order_fields["data"][$key]["notbox"] = ($not) ? 'name="not_'.$gname.'_1" checked' : 'name="not_'.$gname.'_1"';	355	$arr_page_order_fields["data"][$key]["second_id"] = "id=\"second_".$gname."\"";356 357	$arr_options = GetAdvSearchOptions($ftable, $fname);358	$options = "";	359	foreach ($arr_options as $arr_opt) {360		$options .= '<option value="'.$arr_opt["type"].'" '.(($opt==$arr_opt["type"])?"selected":"").'>'.$arr_opt["label"].'</option>';361	}362 363	$searchtype = '<select id="SearchOption" name="asearchopt_'.$gname.'_1" size="1" onchange="return ShowHideControls();">';364	$searchtype .= $options;365	$searchtype .= '</select>';366	367	$arr_page_order_fields["data"][$key]["searchtype"] = $searchtype;368 369}370foreach($arr_unset as $idx=>$val)371{372	unset($arr_page_order_fields["data"][$val]);373}374 375$xt->assignbyref("page_order_fields", $arr_page_order_fields);376 377$body=array();378$body["begin"]=$includes;379$jscode.="ShowHideControls();";380$body["end"]='<script type="text/javascript">'.$jscode.'</script>';381$xt->assignbyref("body",$body);382 383$contents_block=array();384$contents_block["begin"]='<form method="POST" ';385if(postvalue('rname'))386{387	$crossAttr="";388	if(postvalue("axis_x")<>"")389		$crossAttr = "&axis_x=".postvalue("axis_x")."&axis_y=".postvalue("axis_y")."&field=".postvalue("field")."&group_func=".postvalue("group_func");390	$contents_block["begin"].='action="'.GetTableLink("dreport").'?rname='.runner_htmlspecialchars(rawurlencode(postvalue("rname"))).$crossAttr.'" ';391}	392elseif (postvalue('cname'))393{394	$contents_block["begin"].='action="'.GetTableLink("dchart").'?cname='.runner_htmlspecialchars(rawurlencode(postvalue("cname"))).'" ';395}	396$contents_block["begin"] .= 'name="editform"><input type="hidden" id="a" name="a" value="advsearch">';397$contents_block["end"] = '</form>';398$xt->assignbyref("contents_block",$contents_block);399 400$xt->assign("searchbutton_attrs", 'name="SearchButton" onclick="document.forms.editform.submit();"');401$xt->assign("resetbutton_attrs", 'onclick="return ResetControls();"');402$xt->assign("backbutton_attrs", "onclick=\"document.forms.editform.a.value='return'; document.forms.editform.submit();\"");403$xt->assign("conditions_block",true);404$xt->assign("search_button",true);405$xt->assign("reset_button",true);406$xt->assign("back_button",true);407$xt->assign("wr_pagestylepath", $wr_pagestylepath);408 409$xt->assign("dynamic", "true");410if (postvalue('rname')) {411	$xt->assign("rname", postvalue('rname'));412}413if (postvalue('cname')) {414	$xt->assign("cname", postvalue('cname'));415}416	417$templatefile = GetTemplateName("", "dsearch");418 419$xt->assign( "reportTitle", runner_htmlspecialchars( $xml_array['settings']['title'] ) );420$xt->display($templatefile);421?>