[Mapbender-commits] r1178 - trunk/mapbender/http/php

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Fri Mar 2 13:10:28 EST 2007


Author: christoph
Date: 2007-03-02 13:10:28 -0500 (Fri, 02 Mar 2007)
New Revision: 1178

Added:
   trunk/mapbender/http/php/mod_gazetteerMetadata_search.php
Modified:
   trunk/mapbender/http/php/mod_gazetteerMetadata.php
Log:
rewrote the module, now with ajax

Modified: trunk/mapbender/http/php/mod_gazetteerMetadata.php
===================================================================
--- trunk/mapbender/http/php/mod_gazetteerMetadata.php	2007-03-02 18:08:04 UTC (rev 1177)
+++ trunk/mapbender/http/php/mod_gazetteerMetadata.php	2007-03-02 18:10:28 UTC (rev 1178)
@@ -25,16 +25,6 @@
 
 ///* user authorization */
 $user_id = $_SESSION["mb_user_id"]; 
-$n = new administration();
-$myguis = $n->getGuisByPermission($user_id,true);
-$mywms = $n->getWmsByOwnGuis($myguis);
-$mylayer = array();
-for($i=0; $i<count($mywms); $i++){
-  $mylayer = array_merge($mylayer,$n->getLayerByWms($mywms[$i]));
-}
-if($mywms == false){
-  $mywms = array();	
-}
 session_start();
 $con = db_connect($DBSERVER,$OWNER,$PW);
 db_select_db(DB,$con);
@@ -50,7 +40,7 @@
 <meta http-equiv="expires" content="0">
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 <meta name="DC.Rights" content="WhereGroup GmbH & Co.KG, Bonn">
-<title>Suche</title>
+<title>Metadata search</title>
 <?
 $gui_id = $_SESSION["mb_user_gui"];
  include_once("../include/dyn_css.php");
@@ -106,25 +96,21 @@
 		color: #000000;
 		width: 100px;
 		position: absolute;
-		left: 75px
+		left: 5px
 	}
 	
 	.sbutton{
 	font-size : 10px;
-		width: 28px;
+		width: 60px;
 		height: 22px;
 		position: absolute;
-		left: 192px;
+		left: 110px;
 	}
 	
-	.resultFrame{
-	width: 480px;
-	height: 430px;
-	border: 1px;
+	.result{
 	position: absolute;
-	top: 25px;
-	left: 5px;
-	overflow-x : hidden;
+	top: 40px;
+	left: 0px;
 	}
 -->
 </style>
@@ -140,9 +126,11 @@
       return false;
    }
    else{   
-      text = "mod_gazetteerMetadata.php?&search=" + document.form1.search.value;
-      window.frames["result"].location.href = text;
-      return false;
+		document.getElementById("resultDivTag").innerHTML = "<table><tr><td><img src='../img/indicator_wheel.gif></td><td>Searching...</td></tr></table>";
+		parent.mb_ajax_post("mod_gazetteerMetadata_search.php", {"search":document.form1.search.value}, function(text, status){
+			document.getElementById("resultDivTag").innerHTML = text;
+		});
+		return false;
    }
 }
 
@@ -253,145 +241,13 @@
 </head>
 <body leftmargin="2" topmargin="0" bgcolor="#ffffff">
 <?php
-function mb_utf8_encode($text) {
-	if(CHARSET=="UTF-8") return utf8_encode($text);
-	return $text;
-}
-function mb_utf8_decode($text) {
-	if(CHARSET=="UTF-8") return utf8_decode($text);
-	return $text;
-}
 
-$res_container_wms = array();
-$res_container_layer = array();
+echo "<form name='form1' target='result' onsubmit='return validate();'>";
+echo "<input class='textfield' name='search' type='text'> ";
+echo "<input class='sbutton' type='submit' name='send'  value='search'>";
+echo "</form>";
+echo "<div id='resultDivTag' class='result'></div>";
 
-if(!isset($_REQUEST["search"]) || $_REQUEST["search"] == ""){
-   echo "<form name='form1' target='result' onsubmit='return validate();'>";
-   echo "Suchen: &nbsp;&nbsp;&nbsp;<input class='textfield' name='search' type='text'> ";
-   echo "<input class='sbutton' type='submit' name='send'  value='ok'>";
-    echo "<iframe frameborder='1' name='result' src='../html/mod_blank.html' class='resultFrame' scrolling='auto'></iframe>";
-   echo "</form>";
-}
-else{
-   if(preg_match("/\*/",$_REQUEST["search"])){
-        $search = trim(preg_replace("/\*/i","", $_REQUEST["search"]));
-   }
-   
-
-	if (count($mywms) > 0) {
-		$v = array();   
-		$t = array();   
-		
-		// get wms_id, _title, _abstract, _getCapabilities, layer_id
-		$sql = "SELECT DISTINCT wms.wms_id, wms.wms_title, wms.wms_abstract, wms.wms_getcapabilities, wms.wms_version, l.layer_id FROM wms, layer AS l WHERE l.layer_pos = 0 AND wms.wms_id = l.fkey_wms_id AND wms.wms_id IN (";
-		for($i=0; $i<count($mywms); $i++){
-			if ($i > 0) {$sql .= ",";}
-			$sql .= "$".($i+1);
-			array_push($v, $mywms[$i]);
-			array_push($t, 'i');   
-		}
-		$sql .= ") ORDER BY wms.wms_title";
-		$res = db_prep_query($sql,$v,$t);
-	}
-	if (count($mylayer) > 0) {
-		$v = array();   
-		$t = array();   
-		$sql2 = "SELECT DISTINCT l.layer_id, l.layer_title, l.layer_abstract, l.layer_name, kw.keyword FROM layer l";
-		$sql2 .= " LEFT JOIN layer_keyword lkw ON lkw.fkey_layer_id=l.layer_id";
-		$sql2 .= " LEFT JOIN keyword kw ON kw.keyword_id=lkw.fkey_keyword_id WHERE l.layer_id IN (";
-		for($i = 0; $i < count($mylayer); $i++){
-			if ($i > 0) {$sql2 .= ",";}
-			$sql2 .= "$".($i+1);
-			array_push($v, $mylayer[$i]);
-			array_push($t, 'i');   
-		}
-		$sql2 .= ") ORDER BY l.layer_title";
-		$res2 = db_prep_query($sql2,$v,$t);
-	}
-
-   
-   $cnt = 0;
-   
-   while(db_fetch_row($res) || db_fetch_row($res2)){
-   	
-     //displayed result titles   	
-   	 $result_title1 = db_result($res,$cnt,"wms_title"); # Ergebnisspalte1
-   	 $result_title2 = db_result($res2,$cnt,"layer_title"); # Ergebnisspalte2
-   	 $result_title3 = db_result($res2,$cnt,"layer_name"); # Ergebnisspalte3
-   	 
-   	 //result_ids for identification of wms & layers
-   	 $result_id1 = db_result($res,$cnt,"wms_id"); # Ergebnis-ID 1
-   	 $result_id2 = db_result($res2,$cnt,"layer_id"); # Ergebnis-ID 2
-     $result_id3 = db_result($res,$cnt,"layer_id"); # Ergebnis-ID 3 --> layer_id des nullten Layers für wms-Metadatenaufruf per URL
-     
-     //wms_getcapabilities & wms_version for function add_wms
-     $result_column1 = db_result($res,$cnt,"wms_getcapabilities"); # Ergebnis-Spalte 1: wms_getcapabilities
-     $result_column2 = db_result($res,$cnt,"wms_version"); # Ergebnis-Spalte 2: wms_version
-     
-     //search columns 
-     $search_column1 = db_result($res,$cnt,"wms_abstract"); # Suchspalte1
-     $search_column2 = db_result($res,$cnt,"wms_title"); # Suchspalte2
-     $search_column3 = db_result($res2,$cnt,"layer_title"); # Suchspalte3
-     $search_column4 = db_result($res2,$cnt,"layer_abstract"); # Suchspalte4
-     $search_column5 = db_result($res2,$cnt,"keyword"); # Suchspalte5
-     
-     $num = 0;
-     
-     if($search_column1 != '' || $search_column2 != ''){ 
-     	//put search_columns db results in array 
-     	$array_search_keywords = array_merge(explode(",", $search_column1), explode(",", $search_column2));
-     	     	     	
-     	for ($p=0 ; $p<count($array_search_keywords);$p++){							
-     	 if(preg_match("/".$_REQUEST["search"]."/i",$array_search_keywords[$p]) && array_search($result_id1, $res_container_wms)==FALSE){
-     	 	 echo "<br><a href='#' onClick='mod_addWMSfromfilteredList(\"".$result_column1."\",\"".$result_column2."\")'>".
-	       	      "<img align='top' name='add_wms' src='../img/button_gray/add_off.png' border='1' style='width:24px; height:24px'></a> ".
-	       	      "<img align='top' name='wms_gif' src='../img/wms.gif' border='0'><a href='#' onmouseover='javascript:showHighlight();' ".
-	       	      "onmouseout='javascript:hideHighlight();' ".
-	       	      "onClick='javascript:window.open(\"mod_layerMetadata.php?id=".$result_id3."\", \"metadata\", \"width=450, height=600\");'> ".mb_utf8_decode($result_title1)."</a>"; #  = WMS-ID: ".$result_id1."
-	       	 $num++;
-	       	 $res_container_wms[$num] = $result_id1;
-	       	 
-       	 }
-       	}
-     }
-     elseif($search_column3 != '' || $search_column4 != ''|| $search_column5 != ''){
-     	
-     	//put search_columns db results in array 
-     	$array_search_keywords2 = array_merge(explode(",", $search_column3),explode(",", $search_column4), explode(",", $search_column5));
-     	
-     	for ($q=0 ; $q<count($array_search_keywords2);$q++){
-         if(preg_match("/".$_REQUEST["search"]."/i",$array_search_keywords2[$q]) && array_search($result_id2, $res_container_layer)==FALSE){
-             $sql_wms  = "SELECT DISTINCT wms.wms_getcapabilities, wms.wms_version FROM wms, gui_layer gl";
-		     $sql_wms .= " WHERE gl.fkey_layer_id = $1";
-		     $sql_wms .= " AND gl.gui_layer_wms_id = wms.wms_id";
-		     $v = array($result_id2);
-		     $t = array('i'); 
-		     $res_wms = db_prep_query($sql_wms,$v,$t);
-		     $row = db_fetch_array($res_wms);
-		     $wms_cap = $row['wms_getcapabilities'];
-		     $wms_version = $row['wms_version'];
-		   
-         	 echo "<br><a href='#' onClick='mod_addWMSLayerfromfilteredList(\"".$wms_cap."\",\"".$wms_version."\", \"".$result_title3."\")'>".
-	       	      "<img align='top' name='add_wms' src='../img/button_gray/add_off.png' border='1' style='width:24px; height:24px'></a> ".
-	       	      "<img align='top' name='layer_gif' src='../img/layer.gif' border='0'><a href='#' onmouseover='javascript:showHighlight();' ".
-	       	      "onmouseout='javascript:hideHighlight();' ".
-	       	      "onClick='javascript:window.open(\"mod_layerMetadata.php?id=".$result_id2."\", \"metadata\", \"width=450, height=600\");'> ".mb_utf8_decode($result_title2)."</a>";   #  = LAYER-ID (aus Suche layer_abstract): ".$result_id2."
-	       	 $num++;
-	       	 $res_container_layer[$num] = $result_id2;
-       	 }
-        }
-     } 
-     $cnt++;
-   }
-   //echo the message below if there is no search result for wms, layer & keywords 
-   if(count($res_container_wms)==0 && count($res_container_layer)==0){
-   	echo "Kein Ergebnis!";
-   }
-   
-   echo "<form action='" . $PHP_SELF . "?".SID."' method='post'>";
-        
-   echo "</form>";
-}
 ?>
 </body>
 </html>

Added: trunk/mapbender/http/php/mod_gazetteerMetadata_search.php
===================================================================
--- trunk/mapbender/http/php/mod_gazetteerMetadata_search.php	                        (rev 0)
+++ trunk/mapbender/http/php/mod_gazetteerMetadata_search.php	2007-03-02 18:10:28 UTC (rev 1178)
@@ -0,0 +1,98 @@
+<?php
+session_start();
+
+$user_id = $_SESSION["mb_user_id"];
+$query = $_REQUEST["search"];
+
+require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+require_once(dirname(__FILE__)."/../classes/class_administration.php");
+
+
+
+$n = new administration();
+$myguis = $n->getGuisByPermission($user_id, true);
+$mywms = $n->getWmsByOwnGuis($myguis);
+
+if($mywms == false){
+	$mywms = array();	
+}
+$mylayer = array();
+
+for($i=0; $i<count($mywms); $i++){
+	$mylayer = array_merge($mylayer,$n->getLayerByWms($mywms[$i]));
+}
+
+$res_container_wms = array();
+$res_container_layer = array();
+
+if(preg_match("/\*/",$_REQUEST["search"])){
+	$search = trim(preg_replace("/\*/i","", $_REQUEST["search"]));
+}
+
+$resultStr = "";
+
+if (count($mywms) > 0) {
+	$v = array();   
+	$t = array();   
+
+	$sql_wms = "SELECT layer.layer_id, wms.wms_title, wms.wms_getcapabilities, wms.wms_version ";
+	$sql_wms .= "FROM wms LEFT JOIN layer ON wms.wms_id = layer.fkey_wms_id ";
+	$sql_wms .= "WHERE layer.layer_pos = 0 AND wms.wms_id IN ("; 
+	for($i=0; $i<count($mywms); $i++){
+		if ($i > 0) {$sql_wms .= ",";}
+		$sql_wms .= "$".($i+1);
+		array_push($v, $mywms[$i]);
+		array_push($t, 'i');   
+	}
+	$sql_wms .= ") AND (wms_title ILIKE '%".$query."%' OR wms_abstract ILIKE '%".$query."%') ORDER BY wms_title";
+	$res_wms = db_prep_query($sql_wms,$v,$t);
+
+	while ($row = db_fetch_array($res_wms)) {
+		$resultStr .= "<tr><td valign='top'>";
+		$resultStr .= "<a href='#' onClick='mod_addWMSfromfilteredList(\"".$row['wms_getcapabilities']."\",\"".$row['wms_version']."\")'>";
+		$resultStr .= "<img name='add_wms' src='../img/button_gray/metadata_wms.gif' border='0'></a> ";
+		$resultStr .= "</td><td>";
+		$resultStr .= "<a href='#' onmouseover='javascript:showHighlight();' onmouseout='javascript:hideHighlight();' onClick='javascript:window.open(\"mod_layerMetadata.php?id=".$row['layer_id']."\", \"metadata\", \"width=450, height=600\");'> ";
+		$resultStr .= $row['wms_title']."</a>"; #  = WMS-ID: ".$result_id1."
+		$resultStr .= "</td></tr>";
+	}
+}
+
+if (count($mylayer) > 0) {
+	$v = array();   
+	$t = array();   
+	$sql_layer = "SELECT l.layer_id, l.fkey_wms_id, l.layer_title, l.layer_name ,";
+	$sql_layer .= "w.wms_getcapabilities, w.wms_version ";
+	$sql_layer .= "FROM layer l LEFT JOIN layer_keyword lkw LEFT JOIN keyword kw ON kw.keyword_id = lkw.fkey_keyword_id ";
+	$sql_layer .= "ON l.layer_id = lkw.fkey_layer_id LEFT JOIN wms w ON  l.fkey_wms_id = w.wms_id WHERE l.layer_id IN (";
+	for($i = 0; $i < count($mylayer); $i++){
+		if ($i > 0) {$sql_layer .= ",";}
+		$sql_layer .= "$".($i+1);
+		array_push($v, $mylayer[$i]);
+		array_push($t, 'i');   
+	}
+	
+	$sql_layer .= ") AND (layer_title ILIKE '%".$query."%' OR layer_name ILIKE '%".$query."%' OR layer_abstract ILIKE '%".$query."%' OR kw.keyword ILIKE '%".$query."%') ";
+	$sql_layer .= "ORDER BY l.layer_title;";
+	
+	$res_layer = db_prep_query($sql_layer,$v,$t);
+
+	while ($row = db_fetch_array($res_layer)) {
+		$resultStr .= "<tr><td valign='top'>";
+		$resultStr .= "<a href='#' onClick='mod_addWMSLayerfromfilteredList(\"".$row['wms_getcapabilities']."\",\"".$row['wms_version']."\", \"".$row['layer_name']."\");'>";
+		$resultStr .= "<img name='add_wms' src='../img/button_gray/metadata_layer.gif' border='0'></a> ";
+		$resultStr .= "</td><td>";
+		$resultStr .= "<a href='#' onmouseover='javascript:showHighlight();' onmouseout='javascript:hideHighlight();' ";
+		$resultStr .= "onClick='javascript:window.open(\"mod_layerMetadata.php?id=".$row['layer_id']."\", \"metadata\", \"width=450, height=600\");'>";
+		$resultStr .= $row['layer_title']."</a>";   #  = LAYER-ID (aus Suche layer_abstract): ".$result_id2."
+		$resultStr .= "</td></tr>";
+	}
+}
+   
+if ($resultStr != "") {
+	echo "<table>".$resultStr."</table>";
+}
+else {   
+   	echo "&nbsp;&nbsp;No result.";
+}
+?>
\ No newline at end of file



More information about the Mapbender_commits mailing list