Author:   Lars Michelsen <[email protected]>
Date:     Sat Mar 17 21:06:06 2012 +0100
Committer:   Lars Michelsen <[email protected]>
Commit-Date: Sat Mar 17 21:06:06 2012 +0100

Reimplemented "to static map" functionality

---

 TODO                                       |    1 -
 share/server/core/classes/CoreModMap.php   |   60 +++++++++++++++-------------
 share/server/core/classes/GlobalMapCfg.php |    5 ++-
 3 files changed, 36 insertions(+), 30 deletions(-)

diff --git a/TODO b/TODO
index ce08af0..d15885c 100644
--- a/TODO
+++ b/TODO
@@ -11,7 +11,6 @@ Zu tun:
       - Speichern testen (Nur nötigste Attribute schreiben)
       - Werden die korrekt übernommen?
       - margin abziehen?
-    - Export To Map umziehen
   - Geomap:
     - Max. resolution (limit of OSM/API?)
     - bbox Limit?
diff --git a/share/server/core/classes/CoreModMap.php 
b/share/server/core/classes/CoreModMap.php
index f71343c..be6b277 100644
--- a/share/server/core/classes/CoreModMap.php
+++ b/share/server/core/classes/CoreModMap.php
@@ -271,7 +271,7 @@ class CoreModMap extends CoreModule {
                         // Is called on form submission
                         $this->toStaticMap();
                     } else {
-                        $VIEW = new NagVisViewtoStaticMap($this->CORE);
+                        $VIEW = new NagVisViewToStaticMap($this->CORE);
                         $sReturn = json_encode(Array('code' => 
$VIEW->parse()));
                     }
                 break;
@@ -283,35 +283,39 @@ class CoreModMap extends CoreModule {
 
     /**
      * Converts maps using sources to static maps
-     * FIXME: Not implemented yet
      */
     private function toStaticMap() {
-        throw new NagVisException(l('Needs to be migrated.'));
-//        $MAPCFG = new NagVisAutomapCfg($this->CORE, $this->name);
-//        $MAPCFG->readMapConfig();
-//
-//        $MAP = new NagVisAutoMap($this->CORE, $MAPCFG, false, IS_VIEW);
-//
-//        if($this->sAction == 'parseAutomap') {
-//            $MAP->renderMap();
-//            return json_encode(true);
-//        } else {
-//            $FHANDLER = new CoreRequestHandler($_POST);
-//            if($FHANDLER->match('target', MATCH_MAP_NAME)) {
-//                $target = $FHANDLER->get('target');
-//
-//                if($MAP->toClassicMap($target)) {
-//                    throw new Success(l('The map has been created.'),
-//                                      null,
-//                                      1,
-//                                      
cfg('paths','htmlbase').'/frontend/nagvis-js/index.php?mod=Map&show='.$target);
-//                }  else {
-//                    throw new NagVisException(l('Unable to create map 
configuration file.'));
-//                }
-//            } else {
-//                throw new NagVisException(l('Invalid target option given.'));
-//            }
-//        }
+        $FHANDLER = new CoreRequestHandler($_POST);
+        if(!$FHANDLER->match('target', MATCH_MAP_NAME)) {
+            throw new NagVisException(l('Invalid target option given.'));
+        }
+
+        $target = $FHANDLER->get('target');
+        // "true" negates the check
+        $this->verifyMapExists($target, true);
+
+        // Read the old config
+        $this->verifyMapExists($this->name);
+        $MAPCFG = new GlobalMapCfg($this->CORE, $this->name);
+        $MAPCFG->readMapConfig();
+
+        // Create a new map config
+        $NEW = new GlobalMapCfg($this->CORE, $target);
+        $NEW->createMapConfig();
+        foreach($MAPCFG->getMapObjects() AS $object_id => $cfg) {
+            // Remove "sources" from the global section. Cause this makes the 
maps dynamic
+            if($cfg['type'] == 'global') {
+                unset($cfg['sources']);
+            }
+            $NEW->addElement($cfg['type'], $cfg, $perm = true, $object_id);
+        }
+
+        throw new Success(
+            l('The map has been created.'),
+            null,
+            1,
+            
cfg('paths','htmlbase').'/frontend/nagvis-js/index.php?mod=Map&show='.$target
+        );
     }
 
 
diff --git a/share/server/core/classes/GlobalMapCfg.php 
b/share/server/core/classes/GlobalMapCfg.php
index a77475d..7b9b0a5 100644
--- a/share/server/core/classes/GlobalMapCfg.php
+++ b/share/server/core/classes/GlobalMapCfg.php
@@ -1112,7 +1112,10 @@ class GlobalMapCfg {
 
         foreach($keys AS $key)
             if($key !== 'type' && isset($this->mapConfig[$id][$key]) && 
$this->mapConfig[$id][$key] !== '')
-                $a[] = $key.'='.$this->mapConfig[$id][$key]."\n";
+                if(is_array($this->mapConfig[$id][$key]))
+                    $a[] = $key.'='.implode(',', 
$this->mapConfig[$id][$key])."\n";
+                else
+                    $a[] = $key.'='.$this->mapConfig[$id][$key]."\n";
 
         $a[] = "}\n";
         $a[] = "\n";


------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
Nagvis-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/nagvis-checkins

Reply via email to