[Chameleon] Custom Query Results
Paul Spencer
pagameba at magma.ca
Mon May 10 08:07:38 EDT 2004
Tracy,
I've cc'd Jason, he's customized the query widget for this kind of thing
before. His approach was to write a function to test a string value and
turn it from text into a hyperlink if it started with http://
This function was inserted into the query widget at the point that each
attribute is written out so that every linkable field is automagically
turned into a hyperlink.
Cheers,
Paul
Tracy Howlett wrote:
> Thanks Paul - that did just the trick.
>
> And now for more questions...is there a way to have the query result contain
> a URL to a document? If I include the URL in a field can I have the display
> results say 'Click here for more info' instead of actually listing the URL?
>
> Tracy
>
> -----Original Message-----
> From: chameleon-bounces at lists.maptools.org
> [mailto:chameleon-bounces at lists.maptools.org] On Behalf Of Paul Spencer
> Sent: Tuesday, April 20, 2004 1:09 PM
> To: thowlett at whistlermuseum.org
> Cc: chameleon at lists.maptools.org
> Subject: Re: [Chameleon] Custom Query Results
>
> Tracy,
>
> I think that the important part of QueryResults.phtml starts around line
> 376 (in my version which is the latest from CVS) and looks like this:
>
> // loop and use key for titles
> foreach ($aRows[0] as $key => $value)
> {
> $szReturnValue .= "<td class=\"subContentArea2\"><p
> class=\"text\">".$key."</p></td>\n";
> }
> $szReturnValue .= "</tr>\n";
>
> // loop through the results and format each row
> foreach ( $aRows as $aRow )
> {
> // add a row for each
> $szReturnValue .= "<tr>\n";
>
> // loop and add a cell for each result
> foreach ( $aRow as $xCell )
> {
> $szReturnValue .= "<td class=\"subContentArea1\"><p
> class=\"text\">". $xCell."</p></td>\n";
> }
>
> $szReturnValue .= "</tr>\n";
> }
>
> I think you want to put something like this:
>
> // loop and use key for titles
> foreach ($aRows[0] as $key => $value)
> {
> if (strcasecmp($key, "SHAPE_INDEX") == 0 ||
> strcasecmp($key, "TILE_INDEX") == 0 ||
> strcasecmp($key, "LAYER_INDEX") == 0)
> continue;
> $szReturnValue .= "<td class=\"subContentArea2\"><p
> class=\"text\">".$key."</p></td>\n";
> }
> $szReturnValue .= "</tr>\n";
>
> // loop through the results and format each row
> foreach ( $aRows as $aRow )
> {
> // add a row for each
> $szReturnValue .= "<tr>\n";
>
> // loop and add a cell for each result
> foreach ( $aRow as $key => $xCell )
> {
> if (strcasecmp($key, "SHAPE_INDEX") == 0 ||
> strcasecmp($key, "TILE_INDEX") == 0 ||
> strcasecmp($key, "LAYER_INDEX") == 0)
> continue;
> $szReturnValue .= "<td class=\"subContentArea1\"><p
> class=\"text\">". $xCell."</p></td>\n";
> }
>
> $szReturnValue .= "</tr>\n";
> }
>
> I just tried this and it seems to work.
>
> Alternately you could invert the logic and restrict the query results to
> exactly what you do want ...
>
> // loop and use key for titles
> foreach ($aRows[0] as $key => $value)FID; Shape; Name; Detail
> {
> if (strcasecmp($key, "FID") != 0 ||
> strcasecmp($key, "Shape") != 0 ||
> strcasecmp($key, "Name") != 0 ||
> strcasecmp($key, "Detail") != 0)
> {
> $szReturnValue .= "<td class=\"subContentArea2\"><p
> class=\"text\">".$key."</p></td>\n";
> }
> }
> $szReturnValue .= "</tr>\n";
>
> // loop through the results and format each row
> foreach ( $aRows as $aRow )
> {
> // add a row for each
> $szReturnValue .= "<tr>\n";
>
> // loop and add a cell for each result
> foreach ( $aRow as $key => $xCell )
> {
> if (strcasecmp($key, "FID") != 0 ||
> strcasecmp($key, "Shape") != 0 ||
> strcasecmp($key, "Name") != 0 ||
> strcasecmp($key, "Detail") != 0)
> {
> $szReturnValue .= "<td
> class=\"subContentArea1\"><p class=\"text\">". $xCell."</p></td>\n";
> }
> }
>
> $szReturnValue .= "</tr>\n";
> }
>
> Cheers,
>
> Paul
>
> Tracy Howlett wrote:
>
>
>>>Pardon the duplicate post - just wanted to make sure the subject heading
>>
>>wasn't misleading!
>>
>>Hello All,
>>
>>My application is pretty much finished now but I do have a couple of
>
> tweaks
>
>>I'd like to get done.
>>
>>My query tool works well but in my query results I always get these three
>>additional fields:
>>
>>SHAPE_INDEX; TILE_INDEX; LAYER_INDEX
>>
>>I'd like to suppress this information as it means nothing to the user. In
>>order to try and streamline my query results all of my shapefiles contain
>>only the following fields:
>>
>>FID; Shape; Name; Detail
>>
>>I've dug around and I think that the table is being written out in the
>>QueryResults.phtml file. I see a number of arrays in there which I assume
>>are populated with my layers and the fields for each layer. Could someone
>>give me some hint as to how I can tell the array to ignore the above named
>>fields??? The part I can't figure out is how the names of the fields are
>>being changed from FID in my shapefile to SHAPE_INDEX in the results. Is
>>there a file I'm missing which includes this name switch?
>>
>>Any help would be appreciated. I'm guessing that I'm not the only person
>>who'd like to have these ID fields be invisible!
>>
>>Cheers!
>>
>>Tracy
>>
>>
>>_______________________________________________
>>Chameleon mailing list
>>Chameleon at lists.maptools.org
>>http://lists.maptools.org/mailman/listinfo/chameleon
>>
>>
>>_______________________________________________
>>Chameleon mailing list
>>Chameleon at lists.maptools.org
>>http://lists.maptools.org/mailman/listinfo/chameleon
>>
>
>
--
-----------------------------------------------------------------
|Paul Spencer pspencer at dmsolutions.ca |
|-----------------------------------------------------------------|
|Applications & Software Development |
|DM Solutions Group Inc http://www.dmsolutions.ca/|
-----------------------------------------------------------------
More information about the Chameleon
mailing list