<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40"
xmlns:ns0="urn:schemas-microsoft-com:office:smarttags">

<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
h4
        {mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman";
        font-weight:bold;}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
p
        {mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman";}
pre
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
p.terra, li.terra, div.terra
        {margin:0in;
        margin-bottom:.0001pt;
        line-height:15.0pt;
        font-size:11.0pt;
        font-family:Arial;}
span.EmailStyle18
        {mso-style-type:personal-compose;
        font-family:Arial;
        color:windowtext;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
-->
</style>

</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1>

<h4><b><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial;
font-weight:normal'>Hi all,<br>
I&#8217;m working on customizing the tools for my cartoweb3.4 project. I
started off with the CartoWeb3 Demo and added my data and metadata for the
layers I wanted to enable queries for. However, with this projects
template/set-up the queries always seem to run onto all layers - no matter
whether I check the &#8220;query all layers&#8221; checkbox. Thus I usually get
an error since some of my layers (which I didn&#8217;t configure with metadata
and didn&#8217;t intend to use for queries) don&#8217;t have values for<br>
&quot;id_attribute_string&quot; and<br>
&quot;query_returned_attributes&quot;.<br>
My goal is to have a dropdown list of all queriable layers and the user can
select the layer she wants to query, then click on the map to query by point. Only
the attributes of the user selected layer should be returned and displayed.<br>
My questions are<br>
1. How and where would I start doing this modification. At this point I&#8217;m
not sure whether that functionality is readily available or need some customization
of the query/and table plugin? And as well as for the smarty template to change
the location where the results are displayed?.<br>
2. How would I include a new tool in the template &#8211; I guess that would be
a javascript calling a php function? Is there a place where the other tools and
their js code is located?<br>
3. I found the example below in the documentation ( 2.4.2.3.&nbsp;Example)&#8211;
copied below. This seems like a class I could modify to suit my need and send a
request from a new tool to ?<o:p></o:p></span></font></b></h4>

<h4><b><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial;
font-weight:normal'>Cheers<br>
Karsten<o:p></o:p></span></font></b></h4>

<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>The
following class implements a filter which allows to recenter on an object while
hilighting it: <o:p></o:p></span></font></p>

<pre><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>class ClientFilterIdrecenter extends ClientPlugin<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; implements FilterProvider {<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;public function filterPostRequest(FilterRequestModifier $request) {}<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>&nbsp;&nbsp;&nbsp; <o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;public function filterGetRequest(FilterRequestModifier $request) {<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$id = $request-&gt;getValue('id');<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!is_null($id)) {<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $layer = 'grid_classhilight';<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $request-&gt;setValue('query_layer', $layer);<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $request-&gt;setValue('query_maskmode', '1');<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $request-&gt;setValue('query_select', $id);<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><o:p>&nbsp;</o:p></span></font></pre><pre><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $request-&gt;setValue('id_recenter_layer', $layer);&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$request-&gt;setValue('id_recenter_ids', $id);<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>}<o:p></o:p></span></font></pre>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Verdana><span style='font-size:11.0pt;font-family:Verdana'>Karsten </span></font><o:p></o:p></p>

<p class=MsoNormal><font size=3 face=Arial><span style='font-size:12.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

</div>

</body>

</html>