Forum OpenACS Q&A: Re: Search 5.2.3 fails with more than one FAQ package

The problem seems to be with the implementation of the "faq__url" operation which binds to the "url" operation of the FtsContentProvider package. I don't see why apm_package_id_from_key is being called (apm_package_url_from_id would do the trick).

Check your faq-sc-pros.tcl, where does faq::sc::register_faq_q_and_a_fts_impl *aliases* the "url" operation. The current cvs code points to the proc faq::fts::url which does not seem to have this problem

(disclaimer: only by checking/reading the code -- have not tried it).

Collapse
Posted by Ryan Gallimore on
Thanks, Neophytos. Some the queries are working now, but I can't get any faq objects to show. I'm using a /sql/postgresql/faq-sc-create.sql script I wrote myself and don't fully trust - but I don't see that file in cvs.

My faq-sc-procs.tcl (that I wrote) looks very different than the one in cvs. I tried both and changed apm_package_url_from_key to apm_package_url_from_id, but I still get this error for some keywords:

can't read "datasource(content)": no such element in array
    while executing
"search::content_get txt $datasource(content) $datasource(mime) $datasource(storage_type)"
    ("for" body line 6)
    invoked from within
"for { set __i 0 } { $__i < [expr $high - $low +1] } { incr __i } {

    set object_id [lindex $result(ids) $__i]
    set object_type [acs_object_type ..."
    ("uplevel" body line 121)
    invoked from within
"uplevel {
ad_page_contract {
    @author Neophytos Demetriou
    @creation-date September 01, 2001
    @cvs-id $Id: search.tcl,..."
    (procedure "code::tcl::/var/lib/aolserver/service1/packages/search/www/s..." line 2)
    invoked from within
"code::tcl::$__adp_stub"
    invoked from within
"if { [file exists $__adp_stub.tcl] } {

      # ensure that data source preparation procedure exists and is up-to-date
      adp_init tcl $__adp_stub
..."
    ("uplevel" body line 3)
    invoked from within
"uplevel {

    if { [file exists $__adp_stub.tcl] } {

      # ensure that data source preparation procedure exists and is up-to-date
      adp_init t..."
    (procedure "adp_prepare" line 2)
    invoked from within
"adp_prepare "
    (procedure "template::adp_parse" line 30)
    invoked from within
"template::adp_parse [file root [ad_conn file]] {}"
    (procedure "adp_parse_ad_conn_file" line 5)
    invoked from within
"$handler"
    ("uplevel" body line 2)
    invoked from within
"uplevel $code"
    invoked from within
"ad_try {
                $handler
            } ad_script_abort val {
                # do nothing
            }"
    invoked from within
"rp_serve_concrete_file [ad_conn file]"
    (procedure "rp_serve_abstract_file" line 60)
    invoked from within
"rp_serve_abstract_file "$root/$path""
    ("uplevel" body line 2)
    invoked from within
"uplevel $code"
    invoked from within
"ad_try {
            rp_serve_abstract_file "$root/$path"
            set tcl_url2file([ad_conn url]) [ad_conn file]
            set tcl_url2path_info..."