[Chameleon-dev] [Bug 1132] New: WMS browser fails on invalid structure of capabilities DBF

bugzilla-daemon at bugzilla.maptools.org bugzilla-daemon at bugzilla.maptools.org
Thu Aug 25 20:39:26 EDT 2005


http://bugzilla.maptools.org/show_bug.cgi?id=1132

           Summary: WMS browser fails on invalid structure of capabilities
                    DBF
           Product: Chameleon
           Version: 2.2
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Widget
        AssignedTo: chameleon-dev at lists.maptools.org
        ReportedBy: jacob.delfos at maunsell.com


Mentioned this on the list a while ago. Not sure if others ran into it....

In server_data_manager.php, an array is built which is added to capab.dbf as a
new record. Elements are added to this array, on the basis of whether or not
certain information is available. This is perhaps a bit risky, because unless
the array contains the right number of elements, it cannot be added. Also, if an
element is missing, the other elements end up in the wrong field.
 
When I added my WMS layer (from a Mapserver WMS server), the following elements
were NOT added to the array, which WERE created as fields in the dbf:
 
mdu_type
mdu_fmt
mdu_url
minscale
maxscale

Bart mentioned these elements were added as enhancement for Geodan.
 
Because no values for these fields are added to the new_rec array, the values
are offset, and the new_rec array does not contain the correct amount of
elements. Looking at the area starting at line 1783 in server_data_manager, it
seems the elements added to the array match the structure of the dbf very poorly
(a lot seems to depend on EXTRACTABLE_LAYER being true, which if it were, would
make more things go wrong; EXTRACTABLE_LAYER seems to be initiated as false, and
never changed to true anywhere).

To fix it, I commented out line 240,241,242.252,253 in dbf.php
 
Those lines say:
 
 
            //array_push( $defs, array( "mdu_type",  "C", 50 ) );
            //array_push( $defs, array( "mdu_fmt",   "C", 50 ) );
            //array_push( $defs, array( "mdu_url",   "C", 255 ) );
[...]
            //array_push( $defs, array( "minscale",  "N", 16, 5 ) );
            //array_push( $defs, array( "maxscale",  "N", 16, 5 ) );
 
That makes the structure of capab.dbf match what is being done in
server_data_manager.php

I do not have CVS update access to php_utils, but either way I'd be hesitant to
make these changes, as I'm not too familiar with this widget.

Jacob



------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.


Please do NOT reply to this email, use the link above instead to 
login to bugzilla and submit your comment. Any email reply to this
address will be lost.


More information about the Chameleon-dev mailing list