[mapguide-users] What is %24CurrentSelection???
Kenneth Skovhede, GEOGRAF A/S
ks at geograf.dk
Tue Mar 17 06:22:17 EDT 2009
The %24 is an UrlEncoded $ sign, so you just get ID=$CurrenctSelection.
$CurrentSelection is likely a PHP variable that is supposed to hold the
current selection (xml).
For some reason you get the variable name and not the variable contents.
Regards, Kenneth Skovhede, GEOGRAF A/S
achectl skrev:
> I would like to delineate how I do the invokeURL command as below:
>
> My system:
> MapGuide 2009
> PHP bundle option
> Window XP Pro
> MapGuide Studio 2009
>
> http://n2.nabble.com/file/n2490302/1.jpg
> 1. I use Sheboygan demo data
> 2. create the invokeurl commands of flexible web layout
> 3. URL to invoke is http://127.0.0.1/date.php
> 4. Key is the ID; Value is $CurrentSelection
> 5. Layer is the Buildings (SDF)
>
> http://n2.nabble.com/file/n2490302/2.jpg
> 1. Building selected
> 2. InvokeURL command highlighted
>
> http://n2.nabble.com/file/n2490302/3.jpg
> 1. New window prompted
> 2. The url is http://127.0.0.1/date.php?ID=%24CurrentSelection
>
> My question is why the ID value is %24CurrentSelection, it is not the ID of
> the building layer attribute?
> Or I have do wrong setting?
>
> Notes: I have amended a little of invokeURL.js. I coped it as below:
>
> /**
> * Fusion.Widget.InvokeURL
> *
> * $Id: $
> *
> * Copyright (c) 2007, DM Solutions Group Inc.
> * Permission is hereby granted, free of charge, to any person obtaining a
> * copy of this software and associated documentation files (the
> "Software"),
> * to deal in the Software without restriction, including without limitation
> * the rights to use, copy, modify, merge, publish, distribute, sublicense,
> * and/or sell copies of the Software, and to permit persons to whom the
> * Software is furnished to do so, subject to the following conditions:
> *
> * The above copyright notice and this permission notice shall be included
> * in all copies or substantial portions of the Software.
> *
> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
> OR
> * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
> * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
> OTHER
> * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
> * DEALINGS IN THE SOFTWARE.
> */
>
>
> /***************************************************************************
> * Class: Fusion.Widget.InvokeURL
> *
> * A widget that will open the configured URL in the target element.
> *
> * If the Target property points to TaskPane widget, the task will be listed
> in
> * the menu list of the TaskPane and loaded there.
> * Otherwise if the target is an existing HTML elementt in the page it will
> be
> * loaded there, otherwise it will open a new window with that name.
> *
> * **********************************************************************/
>
> Fusion.Widget.InvokeURL = Class.create();
> Fusion.Widget.InvokeURL.prototype = {
> sFeatures : 'menubar=yes,location=no,resizable=yes,status=yes',
>
> initialize : function(widgetTag) {
> //console.log('InvokeURL.initialize');
> Object.inheritFrom(this, Fusion.Widget.prototype, [widgetTag,
> false]);
> Object.inheritFrom(this, Fusion.Tool.ButtonBase.prototype, []);
>
> var json = widgetTag.extension;
> this.sTarget = json.Target ? json.Target[0] : "InvokeUrlWindow";
> this.sBaseUrl = json.Url[0]; //must be supplied
>
> this.bSelectionOnly = (json.DisableIfSelectionEmpty &&
> (json.DisableIfSelectionEmpty[0] == 'true' ||
> json.DisableIfSelectionEmpty[0] == '1')) ? true
> : false;
>
> this.additionalParameters = [];
> if (json.AdditionalParameter) {
> for (var i=0; i<json.AdditionalParameter.length; i++) {
> var p = json.AdditionalParameter[i];
> var k = p.Key[0];
> var v = p.Value[0];
> this.additionalParameters.push(k+'='+encodeURIComponent(v));
> }
> }
>
> this.enable = Fusion.Widget.InvokeURL.prototype.enable;
> this.getMap().registerForEvent(Fusion.Event.MAP_SELECTION_ON,
> this.enable.bind(this));
> this.getMap().registerForEvent(Fusion.Event.MAP_SELECTION_OFF,
> this.enable.bind(this));
> this.disable();
> },
>
> enable: function() {
> var map = this.getMap();
> if (this.bSelectionOnly || !map) {
> if (map && map.hasSelection()) {
> if (this.action) {
> this.action.setEnabled(true);
> } else {
> Fusion.Tool.ButtonBase.prototype.enable.apply(this,[]);
> }
> } else {
> if (this.action) {
> this.action.setEnabled(false);
> } else {
> this.disable();
> }
> }
> } else {
> if (this.action) {
> this.action.setEnabled(true);
> } else {
> Fusion.Tool.ButtonBase.prototype.enable.apply(this,[]);
> }
> }
> },
>
> execute : function() {
> var url = this.sBaseUrl;
> //add in other parameters to the url here
>
> var map = this.getMap();
> var params = [];
> //params.push('LOCALE='+Fusion.locale);
> //params.push('SESSION='+map.getSessionID());
> //params.push('MAPNAME='+map.getMapName());
> params = params.concat(this.additionalParameters);
> if (url.indexOf('?') < 0) {
> url += '?';
> } else if (url.slice(-1) != '&') {
> url += '&';
> }
> url += params.join('&');
> var taskPaneTarget = Fusion.getWidgetById(this.sTarget);
> if ( taskPaneTarget ) {
> taskPaneTarget.setContent(url);
> } else {
> var pageElement = $(this.sTarget);
> if ( pageElement ) {
> pageElement.src = url;
> } else {
> window.open(url, this.sTarget, this.sFeatures);
> }
> }
> }
> };
>
>
More information about the mapguide-users
mailing list