Index: openacs-4/packages/lars-blogger/lars-blogger.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/lars-blogger.info,v diff -u -r1.25 -r1.26 --- openacs-4/packages/lars-blogger/lars-blogger.info 10 Nov 2003 16:36:31 -0000 1.25 +++ openacs-4/packages/lars-blogger/lars-blogger.info 8 Dec 2003 05:15:04 -0000 1.26 @@ -24,6 +24,7 @@ <callbacks> <callback type="after-instantiate" proc="lars_blogger::install::package_instantiate"/> + <callback type="before-uninstantiate" proc="lars_blogger::install::package_uninstantiate"/> </callbacks> <parameters> <parameter datatype="number" min_n_values="1" max_n_values="1" name="DisplayUsersP" default="0" description="Should we display a list of bloggers on the index page."/> Index: openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-drop.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-drop.sql,v diff -u -r1.5 -r1.6 --- openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-drop.sql 17 Oct 2003 00:39:22 -0000 1.5 +++ openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-drop.sql 8 Dec 2003 05:15:04 -0000 1.6 @@ -22,12 +22,6 @@ begin for blog_entry in (select entry_id from pinds_blog_entries) loop - -- delete comments (which are acs_message's) - for comment in (select comment_id from general_comments - where object_id = blog_entry.entry_id) loop - acs_message.del(comment.comment_id); - end loop; - pinds_blog_entry.del(blog_entry.entry_id); end loop; Index: openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-package-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-package-create.sql,v diff -u -r1.5 -r1.6 --- openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-package-create.sql 31 Oct 2003 14:12:55 -0000 1.5 +++ openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-package-create.sql 8 Dec 2003 05:15:04 -0000 1.6 @@ -96,6 +96,11 @@ ) is begin + -- delete comments associated with this entry + for comment in (select comment_id from general_comments + where object_id = pinds_blog_entry.del.entry_id) loop + acs_message.del(comment.comment_id); + end loop; delete from pinds_blog_entries @@ -190,6 +195,11 @@ ) is begin + -- delete rss_gen_subscrs which relate to this channel + for subscr in (select subscr_id from rss_gen_subscrs + where summary_context_id = weblogger_channel.del.channel_id) loop + rss_gen_subscr.del(subscr.subscr_id); + end loop; delete from weblogger_channels Index: openacs-4/packages/lars-blogger/tcl/install-procs-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/tcl/install-procs-oracle.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/tcl/install-procs-oracle.xql 8 Dec 2003 05:15:04 -0000 1.1 @@ -0,0 +1,28 @@ +<?xml version="1.0"?> + +<queryset> + <rdbms><type>oracle</type><version>8.1.6</version></rdbms> + + <fullquery name="lars_blogger::install::package_uninstantiate.clear_content"> + <querytext> + + begin + -- delete weblogger_channels + for channel in (select channel_id from weblogger_channels + where package_id = :package_id) loop + weblogger_channel.del(channel.channel_id); + end loop; + + -- delete weblog entries + for entry in (select entry_id from pinds_blog_entries + where package_id = :package_id) loop + pinds_blog_entry.del(entry.entry_id); + end loop; + + return 0; + end; + + </querytext> + </fullquery> + +</queryset> Index: openacs-4/packages/lars-blogger/tcl/install-procs-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/tcl/install-procs-postgresql.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/tcl/install-procs-postgresql.xql 8 Dec 2003 05:15:04 -0000 1.1 @@ -0,0 +1,31 @@ +<?xml version="1.0"?> + +<queryset> + <rdbms><type>postgresql</type><version>7.1</version></rdbms> + + <fullquery name="lars_blogger::install::package_uninstantiate.clear_content"> + <querytext> + + declare + channel_rec record; + entry_rec record; + begin + -- delete weblogger_channels + for channel_rec in select channel_id from weblogger_channels + where package_id = :package_id loop + perform weblogger_channel__delete(channel_rec.channel_id); + end loop; + + -- delete weblog entries + for entry_rec in select entry_id from pinds_blog_entries + where package_id = :package_id loop + perform pinds_blog_entry__delete(entry_rec.entry_id); + end loop; + + return 0; + end; + + </querytext> + </fullquery> + +</queryset> Index: openacs-4/packages/lars-blogger/tcl/install-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/tcl/install-procs.tcl,v diff -u -r1.2 -r1.3 --- openacs-4/packages/lars-blogger/tcl/install-procs.tcl 1 Oct 2003 13:00:00 -0000 1.2 +++ openacs-4/packages/lars-blogger/tcl/install-procs.tcl 8 Dec 2003 05:15:04 -0000 1.3 @@ -20,3 +20,15 @@ -party_id $party_id \ -privilege "general_comments_create" } + +ad_proc -private lars_blogger::install::package_uninstantiate { + {-package_id:required} +} { + Package un-instantiation callback proc. Permanently delete all the + content associated with a blog. Deletes all entries, comments and rss + feeds. + + @author Vinod Kurup +} { + db_exec_plsql clear_content {} +}