Index: openacs-4/packages/acs-content-repository/sql/postgresql/content-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/sql/postgresql/content-create.sql,v diff -u -r1.24 -r1.25 --- openacs-4/packages/acs-content-repository/sql/postgresql/content-create.sql 10 Sep 2001 12:43:23 -0000 1.24 +++ openacs-4/packages/acs-content-repository/sql/postgresql/content-create.sql 14 Sep 2001 04:53:02 -0000 1.25 @@ -1248,23 +1248,21 @@ ''content_revision'', v_item_id, ''public'', - ''f''); + ''t''); - PERFORM content_type__set_default_template( - ''content_revision'', - v_item_id, - ''public'' ); PERFORM content_type__register_template( ''image'', v_item_id, ''public'', - ''f''); + ''t''); - PERFORM content_type__set_default_template( - ''image'', - v_item_id, - ''public'' ); + -- testing, this may go away. DanW + PERFORM content_type__register_template( + ''content_template'', + v_item_id, + ''public'', + ''t''); return 0; end;' language 'plpgsql'; Index: openacs-4/packages/acs-content-repository/sql/postgresql/content-search.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/sql/postgresql/content-search.sql,v diff -u -r1.3 -r1.4 --- openacs-4/packages/acs-content-repository/sql/postgresql/content-search.sql 8 Sep 2001 15:20:11 -0000 1.3 +++ openacs-4/packages/acs-content-repository/sql/postgresql/content-search.sql 14 Sep 2001 04:53:02 -0000 1.4 @@ -25,6 +25,52 @@ 'TCL' -- impl_pl ); +select acs_sc_impl__new( + 'FtsContentProvider', -- impl_contract_name + 'image', -- impl_name + 'acs-content-repository' -- impl_owner_name +); + +select acs_sc_impl_alias__new( + 'FtsContentProvider', -- impl_contract_name + 'image', -- impl_name + 'datasource', -- impl_operation_name + 'image_search__datasource', -- impl_alias + 'TCL' -- impl_pl +); + +select acs_sc_impl_alias__new( + 'FtsContentProvider', -- impl_contract_name + 'image', -- impl_name + 'url', -- impl_operation_name + 'image_search__url', -- impl_alias + 'TCL' -- impl_pl +); + + +select acs_sc_impl__new( + 'FtsContentProvider', -- impl_contract_name + 'content_template', -- impl_name + 'acs-content-repository' -- impl_owner_name +); + +select acs_sc_impl_alias__new( + 'FtsContentProvider', -- impl_contract_name + 'content_template', -- impl_name + 'datasource', -- impl_operation_name + 'template_search__datasource', -- impl_alias + 'TCL' -- impl_pl +); + +select acs_sc_impl_alias__new( + 'FtsContentProvider', -- impl_contract_name + 'content_template', -- impl_name + 'url', -- impl_operation_name + 'template_search__url', -- impl_alias + 'TCL' -- impl_pl +); + + -- triggers queue search interface to modify search index after content -- changes. Index: openacs-4/packages/acs-content-repository/tcl/filter-procs-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/tcl/filter-procs-oracle.xql,v diff -u -r1.2 -r1.3 --- openacs-4/packages/acs-content-repository/tcl/filter-procs-oracle.xql 13 Sep 2001 04:59:26 -0000 1.2 +++ openacs-4/packages/acs-content-repository/tcl/filter-procs-oracle.xql 14 Sep 2001 04:53:02 -0000 1.3 @@ -45,32 +45,20 @@ - + - select - content_template.get_path( - content_item.get_template(:item_id, :context),:template_root) as template_url - from - dual - - - - - - - select item_id, content_type from cr_items where - item_id = content_item.get_id(:url, :content_root) + item_id = content_item.get_id(:url, :template_root) - + select Index: openacs-4/packages/acs-content-repository/tcl/filter-procs-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/tcl/filter-procs-postgresql.xql,v diff -u -r1.3 -r1.4 --- openacs-4/packages/acs-content-repository/tcl/filter-procs-postgresql.xql 13 Sep 2001 04:59:26 -0000 1.3 +++ openacs-4/packages/acs-content-repository/tcl/filter-procs-postgresql.xql 14 Sep 2001 04:53:02 -0000 1.4 @@ -46,6 +46,19 @@ + + + + select + item_id, content_type + from + cr_items + where + item_id = content_item__get_id(:url, :template_root, 'f') + + + + @@ -58,19 +71,6 @@ - - - - select - item_id, content_type - from - cr_items - where - item_id = content_item__get_id(:url, :content_root, 'f') - - - - Index: openacs-4/packages/acs-content-repository/tcl/filter-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/tcl/filter-procs.tcl,v diff -u -r1.5 -r1.6 --- openacs-4/packages/acs-content-repository/tcl/filter-procs.tcl 14 Sep 2001 00:47:07 -0000 1.5 +++ openacs-4/packages/acs-content-repository/tcl/filter-procs.tcl 14 Sep 2001 04:53:02 -0000 1.6 @@ -202,24 +202,33 @@ return 0 } - # Get the content ID, content type - set query " + # cache this query persistently for 1 hour + template::query get_item_info item_info onerow " select item_id, content_type from cr_items where - item_id = content_item.get_id(:url, :content_root)" + item_id = content_item.get_id(:url, :content_root)" \ + -cache "get_id_filter $url $content_root" \ + -persistent -timeout 216000 - # cache this query persistently for 1 hour - template::query get_item_info item_info onerow $query \ - -cache "get_id_filter $url $content_root" \ - -persistent -timeout 216000 - # No item found, so do not handle this request if { ![info exists item_info] } { - ns_log Notice "No content found for url $url" - return 0 + template::query get_template_info item_info onerow " + select + item_id, content_type + from + cr_items + where + item_id = content_item.get_id(:url, :template_root)" \ + -cache "get_id_filter $url $template_root" \ + -persistent -timeout 216000 + + if { ![info exists item_info] } { + ns_log Notice "No content found for url $url" + return 0 + } } variable item_url Index: openacs-4/packages/acs-content-repository/tcl/search-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/tcl/search-procs.tcl,v diff -u -r1.4 -r1.5 --- openacs-4/packages/acs-content-repository/tcl/search-procs.tcl 13 Sep 2001 04:59:26 -0000 1.4 +++ openacs-4/packages/acs-content-repository/tcl/search-procs.tcl 14 Sep 2001 04:53:02 -0000 1.5 @@ -56,6 +56,109 @@ return "[string trimright $root_url /]$url?revision_id=$object_id" } +ad_proc image_search__datasource { + object_id +} { + Provides data source for search interface. Used to access content items + after search. +} { + db_0or1row revisions_datasource { + select r.revision_id as object_id, + r.title as title, + r.description as content, + r.lob as lob, + r.mime_type as mime, + '' as keywords, + i.storage_type as storage + from cr_revisions r, cr_items i + where revision_id = :object_id + and i.item_id = r.item_id + } -column_array datasource + + return [array get datasource] +} + + +ad_proc image_search__url { + object_id +} { + Provides a url for linking to content items which show up in a search + result set. +} { + + set package_id [apm_package_id_from_key acs-content-repository] + db_1row get_url_stub " + select site_node__url(node_id) as root_url, + (select content_item__get_path(item_id,null) + from cr_revisions + where revision_id = :object_id) as url + from site_nodes n + where n.object_id = :package_id + " + + return "[string trimright $root_url /]$url?revision_id=$object_id" +} + + +ad_proc template_search__datasource { + object_id +} { + Provides data source for search interface. Used to access content items + after search. +} { + db_0or1row revisions_datasource { + select r.revision_id as object_id, + r.title as title, + r.content as content, + r.lob as lob, + r.mime_type as mime, + '' as keywords, + i.storage_type as storage + from cr_revisions r, cr_items i + where revision_id = :object_id + and i.item_id = r.item_id + } -column_array datasource + + switch $datasource(storage) { + lob { + db_with_handle db { + set datasource(content) [ns_pg blob_get $db $datasource(lob)] + } + } + + file { + set fh [open [cr_fs_path]/$content r] + fconfigure $fh -translation binary + set datasource(content) [read $fh] + close $fh + } + } + + return [array get datasource] +} + + +ad_proc template_search__url { + object_id +} { + Provides a url for linking to content items which show up in a search + result set. +} { + + set package_id [apm_package_id_from_key acs-content-repository] + db_1row get_url_stub " + select site_node__url(node_id) as root_url, + (select content_item__get_path(item_id,null) + from cr_revisions + where revision_id = :object_id) as url + from site_nodes n + where n.object_id = :package_id + " + + return "[string trimright $root_url /]$url?revision_id=$object_id" +} + + ad_proc content_search__search_ids { q { offset 0 } Index: openacs-4/packages/acs-content-repository/www/index.vuh =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/index.vuh,v diff -u -r1.3 -r1.4 --- openacs-4/packages/acs-content-repository/www/index.vuh 14 Sep 2001 00:47:07 -0000 1.3 +++ openacs-4/packages/acs-content-repository/www/index.vuh 14 Sep 2001 04:53:02 -0000 1.4 @@ -21,7 +21,6 @@ [db_string content_root "select content_item.get_root_folder from dual"] set template_root \ [db_string template_root "select content_template.get_root_folder from dual"] - # Serve the page ns_log notice "RESOLVING URL: $the_root $the_url"