Opened 19 years ago

Closed 19 years ago

Last modified 19 years ago

#1057 closed defect (fixed)

Obsolete [get_layers] doesn't return expected value

Reported by: dmorissette Owned by: sdlime
Priority: high Milestone:
Component: MapServer CGI Version: 4.3
Severity: normal Keywords:
Cc: nsavard@…

Description

Norm was working with an old copy of the Itasca demo and noticed that the
[get_layers] template tag doesn't return the value that it used to. In the code
and in the docs it is marked as obsolete, but it should either be removed, or be
fixed to return the value that it should.

According to docs:

----------------
  [get_layers]

    All active layers formated for inclusion in a URL. (i.e.
    layer=layer1&layer=layer2 and so on...). Used for a "GET" request.

    This template is obsolete, use [layers_esc] instead. 

  [layers] | [layers_esc]

    All active layers space delimited. Used for a "POST" request.
----------------

In the mapserv.c we have:

----------------
  outstr = gsub(outstr, "[layers]", repstr);
  encodedstr = msEncodeUrl(repstr);
  outstr = gsub(outstr, "[layers_esc]", encodedstr);
  outstr = gsub(outstr, "[get_layers]", repstr); // obsolete
----------------

So what is returned now for [get_layers] is the unencoded version of
[layers_esc] (the same value as [layers]) which is missing the GET url parameter
names.

This used to work fine 3.6. We confirmed that this problem is present in at
least 4.2 and 4.4.

What should we do? Fix [get_layers] or take it out completely?

Change History (2)

comment:1 by sdlime, 19 years ago

Resolution: fixed
Status: newclosed
Even though the fix in the code is trivial I think we should simply remove it.
Since the bug was only just now reported I don't think users are using that tag.
I've done just that...

Steve

comment:2 by dmorissette, 19 years ago

Let's not forget the docs. I have removed [get_layers] in the template-reference.xml
Note: See TracTickets for help on using tickets.