[Cartoweb-users] Plugin search problem : misconfiguration
orframewok problem
Oliver Christen
oliver.christen at camptocamp.com
Tue May 27 03:54:50 EDT 2008
well, the FROM () seems empty, thats will certainly not work.
add
print '['.$sql.']';
on line 337, just after " if (!is_null($number)) { "
and let me know what's the output
regards
Oliver
----- Original Message -----
From: thomas gratier
To: cartoweb-users at lists.maptools.org
Sent: Tuesday, May 27, 2008 9:08 AM
Subject: [Cartoweb-users] Plugin search problem : misconfiguration orframewok problem
Hello all,
I need some help. I'm configuring "basic usage" of the search plugin and I encounter this message
CartoWeb version: 3.4.0 [$Revision: 1.7 $]
class: CartocommonException
message: Failed executing total SQL query Message: DB Error: unknown error Userinfo: SELECT COUNT(*) FROM () [nativecode=ERROR: subquery in FROM must have an alias
HINT: For example, FROM (SELECT ...) [AS] foo.]
Backtrace:
file: 342 - C:\ms4w\apps\cartoweb3\plugins\search\common\Search.php
call: Utils::checkDbError(Object(DB_Error), "Failed executing total SQL query")
file: 269 - C:\ms4w\apps\cartoweb3\plugins\search\client\ClientSearch.php
call: DbResultProvider->getResult(Object(SearchRequest))
file: 265 - C:\ms4w\apps\cartoweb3\client\ClientPluginHelper.php
call: ClientSearch->initializeResult(Null)
file: UNKNOWN - UNKNOWN
call: ServerCallerHelper->initializeResultHelper(Object(ClientSearch), Object(MapResult))
....
This message seems to say for the count in Search.php I need to add an "as foo" at line 342 but I'm not supposed to touch this code : I suppose it works. (If I correct it, it doesn't work too: the GUI plugin search stop)
Someone got an idea about my problem. Does it come from from my configuration files or from a bug from the framework.
You'll find below my configuration files search.ini, search.tpl, Search.ajax.js, search_results.tpl and my *.map
I've activated search plugins on both side (server and client), I've inserted the code for the tpl and the ajax in cartoclient.tpl
############## search.ini #########################
;name search configuration
dsn = pgsql://user_name:password@localhost:5432/database_name
encodingContext = search_parc
config.parc_2.provider.type = fulltextTable
config.parc_2.provider.table = parc_2
config.parc_2.provider.aliases = idnum,idnum,ident,ident,feuille,feuille,co_se_fe,co_se_fe,lieudit,lieudit,tex2,tex2,idu,idu,nature,nature,classe,classe,tex,tex,codm,codm,coar,coar,supf,supf,indp,indp,ncompte,ncompte,proprio,proprio,surf_gra,surf_gra,ctr_surf,ctr_surf,cad_dif,cad_dif,insee,insee,comparc,comparc,touche,touche,grpro,grpro,commune,commune,numprop,numprop,trouv,trouv,plu,plu
config.parc_2.provider.id = gid
config.parc_2.provider.columns = gid,ident,ncompte,proprio,
config.parc_2.provider.fulltextColumns = ident,ncompte,proprio
config.parc_2.provider.sortColumn = ident
config.parc_2.provider.sortDirection = asc
config.parc_2.provider.sortPriorities = ident, ncompte, proprio
config.parc_2.provider.labels = ident, proprio
config.parc_2.formatter.type = smarty
config.parc_2.formatter.template = search_results
############## client.ini #########################
;!!!Do not edit this file, it is generated. Edit the .in instead!!!
cartoclientBaseUrl = "http://www.i-sig.biz:8080/cartoweb3/htdocs"
profile = development
ajaxOn = true
mapId = chapareillan
;Set encoding for files
EncoderClass.search_parc = EncoderISO
showProjectChooser = false
; ## Plugins ##
loadPlugins = layerReorder,edit,auth,locate,search
toolbarRendering = outline
langList =
toolPickerOn = true
viewOn = true
viewStorage = file
viewablePlugins = layers,query,edit,auth,search
viewMetas = author
viewAuth = all
############## extract of myproject.map #########################
LAYER
STATUS ON
NAME "parc_2"
TYPE POLYGON
CONNECTIONTYPE postgis
CONNECTION "user=user_name password=password host=localhost dbname=database_name"
DATA "the_geom from (select * from parc_2) as foo USING UNIQUE gid USING SRID=27572"
TEMPLATE "ttt"
METADATA
"wms_title" "parc_2"
"exported_values" "recenter_name_string,id_attribute_string"
"recenter_name_string" "ident"
"id_attribute_string" "gid|string" # query
"query_returned_attributes" "gid idnum ident feuille co_se_fe lieudit tex2 idu nature classe tex codm coar supf indp ncompte proprio surf_gra ctr_surf cad_dif insee comparc touche grpro commune numprop trouv"
END
STATUS DEFAULT
TRANSPARENCY 100
PROJECTION
'init=epsg:27572'
END
CLASS
NAME 'parc_2'
STYLE
SYMBOL 0
SIZE 10
OUTLINECOLOR 0 0 0
COLOR 255 255 255
END
END
END
############## search.tpl #########################
<div id="search_div">
<fieldset><legend>{t}Recherche parcellaire{/t}</legend> <br/>
<table width="100%">
<tr>
<td>
{t}Parcelle: {/t}
</td>
<td>
<input type="text" id="search_ident"
name="search_ident" size="13"/>
</td>
</tr>
<tr>
<td>
{t}Proprietaire par compte: {/t}
</td>
<td>
<input type="text" id="search_ncompte"
name="search_ncompte" size="13"/>
</td>
</tr>
<tr>
<td>
{t}Proprietaire par nom: {/t}
</td>
<td>
<input type="text" id="search_proprio"
name="search_proprio" size="13"/>
</td>
</tr>
</table>
<p>
<input type="submit" value="{t}Search{/t}" class="form_button"
onclick="javaScript: CartoWeb.trigger('Search.DoIt'); return false;"/>
<input type="hidden" id="search_config" name="search_config" value="parc_2" />
<input type="hidden" id="search_sort_column" name="search_sort_column" value="ident"/>
<input type="hidden" id="search_sort_direction" name="search_sort_direction" value="asc" />
<input type="hidden" id="search_number" name="search_number" value="10"/>
<div id="search_results_div"></div>
</p>
</fieldset>
</div>
############## search_results.tpl #########################
{if $table->numRows > 0}
<table class="yourCssClass">
<tr>
<th>{t}Id{/t}</th>
{foreach from=$table->columnIds item=column}
<th> <a href="JavaScript: order('{$column}');">{t}{$column}{/t}</a></th>
{/foreach}
</tr>
{foreach from=$table->rows item=row}
<tr>
<td>{$row->rowId}</td>
{foreach from=$row->cells item=value}
<td><a href="JavaScript: recenter('{$row->rowId}');">{$value}</a></td>
{/foreach}
</tr>
{/foreach}
</table>
{else}
{t}No results{/t}
{/if}
############## Search.ajax.js #########################
AjaxPlugins.Search = {
handleResponse: function(pluginOutput) {
//should be the same value as the input search_config
if (pluginOutput.htmlCode.parc_2)
$('search_results_div').innerHTML = pluginOutput.htmlCode.parc_2;
}
};
/*
* Search plugin's Actions
*/
AjaxPlugins.Search.Actions = {};
AjaxPlugins.Search.Actions.DoIt = {
buildPostRequest: function(argObject) {
return AjaxHandler.buildPostRequest();
}
};
function order(column) {
if (column != $('search_sort_column').value) {
$('search_sort_column').value = column;
$('search_sort_direction').value = 'asc';
} else {
if ($('search_sort_direction').value == 'asc') {
$('search_sort_direction').value = 'desc';
} else {
$('search_sort_direction').value = 'asc';
}
}
CartoWeb.trigger('Search.DoIt')
}
function recenter(id){
if ($('search_config').value == 'parc_2') {
//id to recenter, be sure there is a hidden input with that name and
//id in your template! if not, add it
$('id_recenter_ids').value = id;
/* if the search database table name is the same as the related layer
to recenter on, you can set it as below
be sure there is a hidden input with that name and id in your template!
if not, add it */
$('id_recenter_layer').value = $('search_config').value;
/* do not use the recenter_scale parameter if you recenter on ids,
only use it with recenter on x,y.
you can set the recenter scale in location.ini on server side */
/* do not use the recenter_doit parameter if you recenter on ids,
only use it with recenter on x,y. */
CartoWeb.trigger('Location.Recenter');
}
}
function search(config) {
$('search_config').value = config;
if (config == 'parc_2') {
$('search_number').value = 10;
}
CartoWeb.trigger('Search.DoIt');
Thanks for any help
Thomas G
------------------------------------------------------------------------------
_______________________________________________
Cartoweb-users mailing list
Cartoweb-users at lists.maptools.org
http://lists.maptools.org/mailman/listinfo/cartoweb-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.maptools.org/pipermail/cartoweb-users/attachments/20080527/b6423a2f/attachment-0001.html
More information about the Cartoweb-users
mailing list