[Mapbender-commits] r4943 - in trunk/mapbender/http: classes php

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Thu Nov 5 08:51:22 EST 2009


Author: christoph
Date: 2009-11-05 08:51:21 -0500 (Thu, 05 Nov 2009)
New Revision: 4943

Modified:
   trunk/mapbender/http/classes/class_wmc.php
   trunk/mapbender/http/php/mod_loadwmc_server.php
Log:


Modified: trunk/mapbender/http/classes/class_wmc.php
===================================================================
--- trunk/mapbender/http/classes/class_wmc.php	2009-11-05 13:43:03 UTC (rev 4942)
+++ trunk/mapbender/http/classes/class_wmc.php	2009-11-05 13:51:21 UTC (rev 4943)
@@ -154,15 +154,13 @@
 			return false;
 		}
 		$this->createObjFromWMC_xml($doc);
-        // FIXME:too hackisch to be proper
         $sql = "SELECT wmc_timestamp, wmc_title, wmc_public " . 
 			"FROM mb_user_wmc WHERE wmc_id = $1 AND fkey_user_id = $2";
         $v = array($wmcId, Mapbender::session()->get("mb_user_id"));
-        $t = array("i", "i");
+        $t = array("s", "i");
         
-        // FIXME: might as well fetch title too, as long as we ŕe here  
         $res = db_prep_query($sql,$v,$t);
-        if(db_error()) { return false; } //FIXME: no really need erromessage when this fails
+        if(db_error()) { return false; }
         if($row = db_fetch_row($res))
         {
           $this->wmc_Id = $wmcId;
@@ -228,13 +226,29 @@
 	// ---------------------------------------------------------------------------
 	// DATABASE FUNCTIONS
 	// ---------------------------------------------------------------------------
+	public function getOtherUsersPublicWmcIds () {
+		$sql = "SELECT wmc_id FROM mb_user_wmc ";
+		$sql .= "WHERE fkey_user_id <> $1 AND wmc_public = 1 GROUP BY wmc_id";
+		$v = array($this->id);
+		$t = array("i");
+		$res_wmc = db_prep_query($sql, $v, $t);
 
+  		$wmcArray = array();
+		while($row = db_fetch_array($res_wmc)){
+			array_push($wmcArray, $row["wmc_id"]);
+		}
+		return $wmcArray;
+	}
+
 	public function selectByUser ($user) {
 		$wmcArray = array();
 		
 		// get WMC ids 
 		$wmcIdArray = $user->getWmcByOwner();
 		
+		$publicWmcIdArray = $this->getOtherUsersPublicWmcIds();
+		
+		$wmcIdArray = array_merge($wmcIdArray, $publicWmcIdArray);
 		// get WMC data
 		$v = array();
 		$t = array();
@@ -262,6 +276,8 @@
 				$currentResult["timestamp"] = date("M d Y H:i:s", $row["wmc_timestamp"]); 
 				$currentResult["timestamp_create"] = date("M d Y H:i:s", $row["wmc_timestamp_create"]); 
 				$currentResult["public"] = $row["wmc_public"] == 1? true: false;
+				$currentResult["disabled"] = (in_array($currentResult["id"], $publicWmcIdArray)) ?
+					true : false;
 				array_push($wmcArray, $currentResult);
 			}
 		}
@@ -480,10 +496,14 @@
     */
     public function setPublic($public)
     {
+		$currentUser = new User(Mapbender::session()->get("mb_user_id"));
+	  if ($currentUser->isPublic()) {
+			return false;
+	  }
       $wmcId = $this->wmc_Id;
       $public = $public ? 1 :0;
       $sql = "UPDATE mb_user_wmc SET wmc_public = $1 WHERE wmc_id = $2 AND fkey_user_id = $2;";
-      $v = array($public,$wmcId, Mapbender::session()->get("mb_user_id"));
+      $v = array($public,$wmcId, $currentUser->id);
       $t = array("i","s","i");
       $res = db_prep_query($sql,$v,$t);
       if(db_error()){

Modified: trunk/mapbender/http/php/mod_loadwmc_server.php
===================================================================
--- trunk/mapbender/http/php/mod_loadwmc_server.php	2009-11-05 13:43:03 UTC (rev 4942)
+++ trunk/mapbender/http/php/mod_loadwmc_server.php	2009-11-05 13:51:21 UTC (rev 4943)
@@ -137,7 +137,7 @@
 
     case 'setWMCPublic':
 	  $wmcId = $ajaxResponse->getParameter("id");
-	  $public = $ajaxResponse->getParameter("public") == 1  ? true : false;
+	  $public = $ajaxResponse->getParameter("isPublic") == 1  ? true : false;
       $wmc = new wmc();
       $wmc->createFromDb($wmcId);
       if($wmc->setPublic($public)){



More information about the Mapbender_commits mailing list