Hello,

currently, Mapbender pollutes the global namespace with a lot of variables. We have already introduced the object Mapbender, which will serve as our namespace.

First of all we should move all modules under this namespace, in order to avoid modules overwriting their variables (it has happened in the past).

I have done some experiments today,
* In map.php, where each javascript is included, I wrapped the code (<js>) around sth. like

Mapbender.Modules.<elementId>.init = function () {<js>}

Mapbender.Modules.<elementId> can also hold other data like id, target etc, which by then had to be imported from PHP. By this, we can achieve to convert most modules to pure JS, which will make Mapbender less vulnerable (no server side interaction).

We could have an array with modules that work with this modular approach. For others, we would simply skip the wrapping process and leave them in the global namespace. This improves backwards compatibility and allows a gradual change.

* changed the button class and allowed it to store closures in addition to strings


I came across the following problems:

* most modules (buttons) use a hard wired mouse event (database), that links to a function in the global scope. The event handlers would have to be set in the module itself, not the administration. Although this means work, it will keep the JavaScript in the source code which is a good thing.

- old string-type events (mb_registerInitFunctions) will no longer work. However, most have already been changed to the new syntax, and it should not be any problem.

- all hard wired mouse events will fail. We will need to use closures instead. This is a good thing.


I guess this is an important step for Mapbender to become a solid framework. I'm glad that this change seems to be possible. Please comment. I would like to include this in Mapbender 2.6.

Happy weekend

Christoph

--

_______________________________________

W h e r e G r o u p GmbH & Co. KG

Siemensstraße 8
53121 Bonn
Germany

Christoph Baudson
Anwendungsentwickler

Fon: +49 (0)228 / 90 90 38 - 15
Fax: +49 (0)228 / 90 90 38 - 11
[email protected]
www.wheregroup.com
Amtsgericht Bonn, HRA 6788
_______________________________________

Komplementärin:
WhereGroup Verwaltungs GmbH
vertreten durch:
Olaf Knopp, Peter Stamm
_______________________________________

_______________________________________________
Mapbender_dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/mapbender_dev

Reply via email to