[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