[Cartoweb-users] Search plugin failure

Oliver Christen oliver.christen at camptocamp.com
Tue Dec 4 04:00:57 EST 2007


Hi

your code look ok for what I see.
if you do a view page source in your browser, do you have also see <input 
type="hidden" id="search_config" name="search_config" value="buoy" /> ?

just to be safe, do a cw3setup --clean and recall your application with 
?reset_session parameter in the url

regards
Oliver

>
> Dear all,
>
> I am using CartoWeb 3.4 and got a failure message when trying to add the
> search plugin in my project.
> I have set the followings:
>
> 1)  included 'search' in the loadplugins parameter on both client and 
> server
> side
>
> 2)  in client_conf/search.ini :
> dbType = pgsql
> dsn = pgsql://myname:mypwd@myhost:5432/mydb
> encodingContext = searchDb
>
> config.buoy.provider.type = fulltextTable
> config.buoy.provider.table = buoy2
> config.buoy.provider.aliases = objnam, Name
> config.buoy.provider.id = gid
> config.buoy.provider.columns = objnam
> config.buoy.provider.fulltextColumns = objnam
> config.buoy.provider.sortColumn = objnam
> config.buoy.provider.sortDirection = asc
> config.buoy.provider.sortPriorities = objnam
> config.buoy.provider.labels = objnam
> config.buoy.formatter.type = smarty
> config.buoy.formatter.template = search_results
>
> 3)  in search.tpl :
>  <div id="search_div">
>        <fieldset><legend>{t}SearchBuoy{/t}</legend> <br/>
>            <table width="100%">
>                <tr>
>                    <td>
>                      {t}objnam: {/t}
>                    </td>
>                    <td>
>                        <input type="text" id="search_objnam"
> name="search_objnam" size="13"/>
>                    </td>
>                </tr>
>            </table>
>            <p>
>              <input type="submit" value="{t}Search{/t}"
> onclick="JavaScript: CartoWeb.trigger('Search.DoIt'); return false;"/>
>              <input type="hidden" id="search_config" name="search_config"
> value="buoy" />
>              <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>
>
> 4)  in search_results.tpl :
>       {if $table->numRows > 0}
>     <table >
>         <tr>
>           <th>{t}Id{/t}</th>
>           {foreach from=$table->columnIds item=column}
>           <th>  JavaScript: order('{$column}'); {t}{$column}{/t} </th>
>           {/foreach}
>         </tr>
>         {foreach from=$table->rows item=row}
>         <tr>
>            <td>{$row->rowId}</td>
>            {foreach from=$row->cells item=value}
>            <td> "JavaScript: recenter('{$row- rowId}');">{$value} </td>
>            {/foreach}
>         </tr>
>         {/foreach}
>     </table>
>     {else}
>     {t}No results{/t}
>     {/if}
>
> 5)  in search.ajax.js :
>  AjaxPlugins.Search = {
>
>      handleResponse: function(pluginOutput) {
>        //should be the same value as the input search_config
>        if (pluginOutput.htmlCode.buoy)
>          $('search_results_div').innerHTML = pluginOutput.htmlCode.buoy;
>      }
>    };
>
>    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 == 'buoy') {
>        $('id_recenter_ids').value = id;
>        $('id_recenter_layer').value = $('search_config').value;
>
>        CartoWeb.trigger('Location.Recenter');
>      }
>    }
>
> 6)  in cartoclient.tpl, I added:
>     i)  {if $search_active|default:''}<script type="text/javascript"
> src="{r type=js plugin=search}Search.ajax.js{/r}"></script>{/if}   //in 
> the
> head section
>     ii)   {if $search_active|default:''}
>      {$search}
>      {/if}      //already exists
>
>
> The failure message I got is:
>
> Failure
> Class : CartoclientExceptionMessage : Empty config or config not found
> Backtrace:
>
> file: UNKNOWN - UNKNOWN
> call: ClientSearch->handleHttpPostRequest(Array(55))
>
> file: 270 - C:\ms4w\apps\cartoweb3\common\PluginManager.php
> call: call_user_func_array(Array(2), Array(1))
>
> file: 320 - C:\ms4w\apps\cartoweb3\common\PluginManager.php
> call: PluginManager->callPluginImplementing(Object(ClientSearch),
> "GuiProvider", "handleHttpPostRequest", Array(1))
>
> file: 712 - C:\ms4w\apps\cartoweb3\client\Cartoclient.php
> call: PluginManager->callEnabledPluginsImplementing(1, "GuiProvider",
> "handleHttpPostRequest", Array(1))
>
> file: 1033 - C:\ms4w\apps\cartoweb3\client\Cartoclient.php
> call: Cartoclient->callEnabledPluginsImplementing(1, "GuiProvider",
> "handleHttpPostRequest", Array(55))
>
> file: 1261 - C:\ms4w\apps\cartoweb3\client\Cartoclient.php
> call: Cartoclient->doMain()
>
> file: 33 - C:\ms4w\apps\cartoweb3\htdocs\client.php
> call: Cartoclient->main()
>
> file: 3 - C:\ms4w\apps\cartoweb3\htdocs\test_ho.php
> call: require_once("C:\ms4w\apps\cartoweb3\htdocs\client.php")
>
>
> What have I missed out or done wrong?
>
> Thank you very much for your help in advance.
>
> Best regards,
> Jady
> -- 
> View this message in context: 
> http://www.nabble.com/Search-plugin-failure-tf4940812.html#a14143585
> Sent from the cartoweb-users mailing list archive at Nabble.com.
>
> _______________________________________________
> Cartoweb-users mailing list
> Cartoweb-users at lists.maptools.org
> http://lists.maptools.org/mailman/listinfo/cartoweb-users
> 



More information about the Cartoweb-users mailing list