[Cartoweb-users] Plugin search not working

Véro Herzl - Bluewin veroh at bluewin.ch
Tue Apr 17 08:21:20 EDT 2007


OK, well, I am in the development mode but with Ajax on and 
cartoclient.Ajaxheader,tpl, so the error message is for the Ajay part

--- Action Search.DoIt triggered ---

Calling Search.DoIt onBeforeAjaxCall()

Calling AjaxPlugins.Common.onBeforeAjaxCall()
Initiating AJAX request
Pending actions: 1
GET params:
ajaxActionRequest=Search.DoIt&
POST params:

posted=1&js_folder_idx=5&js_toolbar_idx=&selection_type=&selection_coords=&features=&js_accounting=version=0;
hasJava=true;winInnerWidth=1024;winInnerHeight=578;screenWidth=1024;
screenHeight=768;screenColorDepth=32&outline_label_text=votre 
titre&tool=zoomin&project=n16&recenter_x=&recenter_y=&recenter_doit=0&shortcut_doit=0&openNodes=&layers
[]=OPA&layers[]=OPB&layers[]=OPC&layers[]=OPD&layers[]=OPE&layers[]
=OPF&layers[]=OPG&layers[]=OPH&layers[]=N16&layers[]
=POSTGIS_MAJ&layers[]=EDITPOINT&layers[]=EDITPOLY&layers[]
=EDITLINE&pdfMarginX=20&pdfMarginY=20&pdfA4x=210&pdfA4y=297&pdfA3x=297&pdfA3y=420&pdfOrientation=portrait&pdfMapAngle=&pdfMapCenterX=&pdfMapCenterY=&pdfTitle=&pdfNote=&pdfScalebar=&pdfLegend=0&viewTitle=&author=&handleView=0&locate_MAJ=&locate_MAJ2=&id_recenter_ids=&search_mandat_n16=N2354&search_travaux=&search_date_txt=&search_en_cours=&search_config=&search_sort_column=&search_sort_direction=asc&search_number=&outline_mask=no&outline_point_symbol=circle&outline_point_size=10&outline_line_size=3&outline_line_transparency=100&outline_polygon_transparency=60&edit_validate_all=0&recenter_scale=0&shortcut_id=-
1&mapsize=1&pdfFormat=A4&pdfResolution=96&pdfScale=2500&id_recenter_layer=MAJ&edit_layer=0&
Waiting for response...
Response received!
Error: AjaxHandler.actionRequest(): received response is 
malformed!


And below it, I got the following failure :

Failure

 

CartoWeb version: 3.3.0 [$Revision: 1.2 $]

class:   CartoclientException

message:   Empty config or config not found

Backtrace:

 

file: UNKNOWN - UNKNOWN

call: ClientSearch->handleHttpPostRequest(Array(62))

 

file: 270 - C:\wamp\www\cartoweb3\common\PluginManager.php

call: call_user_func_array(Array(2), Array(1))

 

file: 320 - C:\wamp\www\cartoweb3\common\PluginManager.php

call: PluginManager->callPluginImplementing(Object(ClientSearch), 
"GuiProvider", "handleHttpPostRequest", Array(1))

 

file: 685 - C:\wamp\www\cartoweb3\client\Cartoclient.php

call: PluginManager->callEnabledPluginsImplementing(1, "GuiProvider", 
"handleHttpPostRequest", Array(1))

 

file: 995 - C:\wamp\www\cartoweb3\client\Cartoclient.php

call: Cartoclient->callEnabledPluginsImplementing(1, "GuiProvider", 
"handleHttpPostRequest", Array(62))

 

file: 1220 - C:\wamp\www\cartoweb3\client\Cartoclient.php

call: Cartoclient->doMain()

 

file: 38 - C:\wamp\www\cartoweb3\htdocs\client.php

call: Cartoclient->main()

 

file: 3 - C:\wamp\www\cartoweb3\htdocs\n16.php

call: require_once("C:\wamp\www\cartoweb3\htdocs\client.php")

 

 




Damien Corpataux a écrit :
> Hello,
>
> if you are in development mode, when an error occurs, an alert box is 
> displayed and allows you to print the cartoweb error message. Can you 
> post this error message?
>
> Regards,
> Damien
>
>
> veroh at bluewin.ch wrote:
>> Hello,
>>
>> I am trying to implement the plugin search in my project but I got 
>> the following error
>>
>> --- Action Search.DoIt triggered ---
>>
>> Calling Search.DoIt onBeforeAjaxCall()
>>
>> Calling AjaxPlugins.Common.onBeforeAjaxCall()
>> Initiating AJAX request
>> Pending actions: 1
>> GET params:
>> ajaxActionRequest=Search.DoIt&
>> POST params:
>>
>> posted=1&js_folder_idx=5&js_toolbar_idx=&selection_type=&selection_coords=&features=&js_accounting=version=0;
>> hasJava=true;winInnerWidth=1024;winInnerHeight=578;screenWidth=1024;
>> screenHeight=768;screenColorDepth=32&outline_label_text=votre 
>> titre&tool=zoomin&project=n16&recenter_x=&recenter_y=&recenter_doit=0&shortcut_doit=0&openNodes=&layers
>> []=OPA&layers[]=OPB&layers[]=OPC&layers[]=OPD&layers[]=OPE&layers[]
>> =OPF&layers[]=OPG&layers[]=OPH&layers[]=N16&layers[]
>> =POSTGIS_MAJ&layers[]=EDITPOINT&layers[]=EDITPOLY&layers[]
>> =EDITLINE&pdfMarginX=20&pdfMarginY=20&pdfA4x=210&pdfA4y=297&pdfA3x=297&pdfA3y=420&pdfOrientation=portrait&pdfMapAngle=&pdfMapCenterX=&pdfMapCenterY=&pdfTitle=&pdfNote=&pdfScalebar=&pdfLegend=0&viewTitle=&author=&handleView=0&locate_MAJ=&locate_MAJ2=&id_recenter_ids=&search_mandat_n16=N2354&search_travaux=&search_date_txt=&search_en_cours=&search_config=&search_sort_column=&search_sort_direction=asc&search_number=&outline_mask=no&outline_point_symbol=circle&outline_point_size=10&outline_line_size=3&outline_line_transparency=100&outline_polygon_transparency=60&edit_validate_all=0&recenter_scale=0&shortcut_id=-
>> 1&mapsize=1&pdfFormat=A4&pdfResolution=96&pdfScale=2500&id_recenter_layer=MAJ&edit_layer=0&
>> Waiting for response...
>> Response received!
>> Error: AjaxHandler.actionRequest(): received response is 
>> malformed!
>>
>> I have a search.ini file in my client_conf :
>>
>> config.POSTGIS_MAJ.provider.type = fulltextTable
>> config.POSTGIS_MAJ.provider.table = maj2
>> config.POSTGIS_MAJ.provider.id = gid
>> config.POSTGIS_MAJ.provider.columns = mandat_n16, travaux, 
>> date_txt, en_cours
>> config.POSTGIS_MAJ.provider.fulltextColumns = mandat_n16, travaux, 
>> date_txt, en_cours
>> config.POSTGIS_MAJ.provider.sortColumn = date_txt
>> config.POSTGIS_MAJ.provider.sortDirection = asc
>> config.POSTGIS_MAJ.provider.sortPriorities = date_txt, mandat_n16, 
>> travaux, en_cours
>> config.POSTGIS_MAJ.provider.labels = mandat_n16, travaux, date_txt, 
>> en_cours
>>
>> config.POSTGIS_MAJ.formatter.type = smarty
>> config.POSTGIS_MAJ.formatter.template = search_results
>>
>> Where POSTGIS is the layer I declared in my MAP file which is a 
>> POSTGRESQL/POSTGIS table (maj2) and gid is the 'id_attribute_string'
>>
>> I have also one in the server_side :
>>
>> dbType = pgsql
>> dsn = pgsql://postgres:afgan6@localhost:5432/demo_n16
>>
>> config.POSTGIS_MAJ.provider.type = fulltextTable
>> config.POSTGIS_MAJ.provider.table = maj2
>> config.POSTGIS_MAJ.provider.id = gid
>> config.POSTGIS_MAJ.provider.columns = mandat_n16, travaux, 
>> date_txt, en_cours
>> config.POSTGIS_MAJ.provider.fulltextColumns = mandat_n16, travaux, 
>> date_txt, en_cours
>> config.POSTGIS_MAJ.provider.sortColumn = date_txt
>> config.POSTGIS_MAJ.provider.sortDirection = asc
>> config.POSTGIS_MAJ.provider.sortPriorities = date_txt, mandat_n16, 
>> travaux, en_cours
>> config.POSTGIS_MAJ.provider.labels = mandat_n16, travaux, date_txt, 
>> en_cours
>>
>> config.POSTGIS_MAJ.formatter.type = smarty
>> config.POSTGIS_MAJ.formatter.template = search_results
>>
>> I modified my cartoclient.tpl by adding two lines
>>
>> {if $search_active|default:''}<script type="text/javascript" src="
>> {r type=js plugin=search}Search.ajax.js{/r}"></script>{/if}
>> which is just after the one for the Ajax ({if $ajaxOn|default:''} 
>> etc..)
>> and in the div="container", I added in one of my div=folder : 
>> {if $search_active|default:''} {$search} {/if}
>>
>> I got in templates, two files :
>>
>> search.tpl:
>>
>> <div id="search_div">
>> 	<fieldset>
>> 		<legend>{t}Search{/t}
>> 		</legend>
>> 		<br/>
>> 		<table width="100%">
>> 			<tr>
>> 			<td>
>> 				{t}Mandat: {/t}
>> 			</td>
>> 			
>> 			<td>
>> 				<input type="text" id="search_mandat_n16" name="
>> search_mandat_n16" size="13"/>
>> 			</td>
>> 			</tr>
>> 			
>> 			<tr>
>> 			<td>
>> 				{t}Type de travaux: {/t}
>> 			</td>
>> 			
>> 			<td>
>> 				<input type="text" id="search_travaux" name="search_travaux" 
>> size="13"/>
>> 			</td>
>> 			</tr>
>>
>> 			<tr>
>> 			<td>
>> 				{t}Date: {/t}
>> 			</td>
>> 			
>> 			<td>
>> 				<input type="text" id="search_date_txt" name="search_date_txt" 
>> size="13"/>
>> 			</td>
>> 			</tr>			
>> 			
>> 			<tr>
>> 			<td>
>> 				{t}En cours ou non: {/t}
>> 			</td>
>> 			
>> 			<td>
>> 				<input type="text" id="search_en_cours" name="search_en_cours" 
>> 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" />
>> 			<input type="hidden" id="search_sort_column" name="
>> search_sort_column" />
>> 			<input type="hidden" id="search_sort_direction" name="
>> search_sort_direction" value="asc" />
>> 			<input type="hidden" id="search_number" name="search_number" />
>> 					
>> 			<div id="search_results_div">
>> 			</div>
>> 		</p>
>> 	</fieldset>
>> </div>
>>
>> and search_results.tpl
>>
>> {if $table->numRows > 0}
>> 	<table class="n16table">
>> 		<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>
>> 		{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}
>>
>>
>> Last but not least, I got the js ! Namely Search.ajax.js
>>
>> AjaxPlugins.Search = {
>>   
>>     handleResponse: function(pluginOutput) {
>>         
>>         if (pluginOutput.htmlCode.POSTGIS_MAJ)
>>             $('search_results').innerHTML = pluginOutput.htmlCode.
>> POSTGIS_MAJ;
>> 			}
>> 			};
>>
>>
>> /*
>>  * 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 == 'POSTGIS_MAJ') {
>>     $('id_recenter_ids').value = gid; //id to recenter
>> 	$('recenter_scale').value = 1000; //scale for recentering
>> 	$('recenter_doit').value = '1';
>>     
>>     CartoWeb.trigger('Location.Recenter');
>> }
>>
>> I guess you now know all I did. Could someone please tell me what 
>> is wrong.
>>
>> Apparently, someone else asked the same thing last month but no 
>> final answer was given on the mail list.
>>
>> PS : Yes, I did clean all the file before trying
>>
>> Véronique
>>
>> _______________________________________________
>> Cartoweb-users mailing list
>> Cartoweb-users at lists.maptools.org
>> http://lists.maptools.org/mailman/listinfo/cartoweb-users
>>   
>
>
> -- 
> Camptocamp SA
> Damien Corpataux
> PSE A
> CH-1015 Lausanne
> +41 21 619 10 22 (Direct)
> +41 21 619 10 10 (Centrale)
> +41 21 619 10 00 (Fax)
> P Please consider the environment
> Do you really need to print this email?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.maptools.org/pipermail/cartoweb-users/attachments/20070417/22bf3c03/attachment-0001.html


More information about the Cartoweb-users mailing list