[Cartoweb-users] Plugin search not working

Véro Herzl - Bluewin veroh at bluewin.ch
Tue Apr 17 09:04:35 EDT 2007


Well yes, you got it right, it is empty. So to fill it, what do I have 
to put in ?

Véronique


Oliver Christen a écrit :
> I forgot to say the most important:
> be sure the value of that input is not empty
>  
> regards
> Oliver
>
>     Hi
>      
>     there are no search_config parameter set in the post request. I
>     think the main search input name must be search_config
>     do you have a <input type="hidden" id="search_config"
>     name="search_config"  element in your search template ?
>      
>     regards
>     Oliver
>      
>
>         ----- Original Message -----
>         *From:* Véro Herzl - Bluewin <mailto:veroh at bluewin.ch>
>         *To:* Damien Corpataux
>         <mailto:damien.corpataux at camptocamp.com> ;
>         cartoweb-users at lists.maptools.org
>         <mailto:cartoweb-users at lists.maptools.org>
>         *Sent:* Tuesday, April 17, 2007 2:21 PM
>         *Subject:* Re: [Cartoweb-users] Plugin search not working
>
>         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?
>
>         ------------------------------------------------------------------------
>         _______________________________________________
>         Cartoweb-users mailing list
>         Cartoweb-users at lists.maptools.org
>         http://lists.maptools.org/mailman/listinfo/cartoweb-users
>
>     ------------------------------------------------------------------------
>     _______________________________________________
>     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/20070417/abef9e99/attachment-0001.html


More information about the Cartoweb-users mailing list