kenken999/php
0
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?>