Index: openacs-4/packages/acs-core-docs/www/xml/developers-guide/tutorial-advanced.xml =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/developers-guide/tutorial-advanced.xml,v diff -u -N -r1.17 -r1.18 --- openacs-4/packages/acs-core-docs/www/xml/developers-guide/tutorial-advanced.xml 1 Mar 2004 21:29:29 -0000 1.17 +++ openacs-4/packages/acs-core-docs/www/xml/developers-guide/tutorial-advanced.xml 1 Mar 2004 23:06:04 -0000 1.18 @@ -720,17 +720,12 @@ You also need a drop script. This is untested for comptability with the above script. --- --- Project Manager --- --- @author jader@bread.com --- @author gwong@orchardlabs.com,ben@openforce.biz --- @creation-date 2002-05-16 --- --- This code is newly concocted by Ben, but with significant concepts and code --- lifted from Gilbert's UBB forums. Thanks Orchard Labs. --- Jade in turn lifted this from gwong and ben. --- + -- @author gwong@orchardlabs.com,ben@openforce.biz + -- @creation-date 2002-05-16 + -- + -- This code is newly concocted by Ben, but with significant concepts and code + -- lifted from Gilbert's UBB forums. Thanks Orchard Labs. + -- Lars and Jade in turn lifted this from gwong and ben. create function inline_0 () returns integer as ' @@ -739,7 +734,7 @@ begin for row in select nt.type_id from notification_types nt - where nt.short_name in (''lars_blogger_notif'') + where nt.short_name in (''lars_blogger_notif_type'',''lars_blogger_notif'') loop perform notification_type__delete(row.type_id); end loop; @@ -762,8 +757,8 @@ -- the notification type impl impl_id := acs_sc_impl__get_id ( - ''NotificationType'', -- impl_contract_name - ''lars_blogger_notif_type'' -- impl_name + ''NotificationType'', -- impl_contract_name + ''lars_blogger_notif_type'' -- impl_name ); PERFORM acs_sc_binding__delete ( @@ -772,47 +767,46 @@ ); v_foo := acs_sc_impl_alias__delete ( - ''NotificationType'', -- impl_contract_name - ''lars_blogger_notif_type'', -- impl_name - ''GetURL'' -- impl_operation_name + ''NotificationType'', -- impl_contract_name + ''lars_blogger_notif_type'', -- impl_name + ''GetURL'' -- impl_operation_name ); v_foo := acs_sc_impl_alias__delete ( - ''NotificationType'', -- impl_contract_name - ''lars_blogger_notif_type'', -- impl_name - ''ProcessReply'' -- impl_operation_name + ''NotificationType'', -- impl_contract_name + ''lars_blogger_notif_type'', -- impl_name + ''ProcessReply'' -- impl_operation_name ); - select into v_foo type_id - from notification_types - where sc_impl_id = impl_id - and short_name = ''lars_blogger_notif''; + select into v_foo type_id + from notification_types + where sc_impl_id = impl_id + and short_name = ''lars_blogger_notif''; - perform notification_type__delete (v_foo); + perform notification_type__delete (v_foo); - delete from notification_types_intervals - where type_id = v_foo - and interval_id in ( - select interval_id - from notification_intervals - where name in (''instant'',''hourly'',''daily'') - ); + delete from notification_types_intervals + where type_id = v_foo + and interval_id in ( + select interval_id + from notification_intervals + where name in (''instant'',''hourly'',''daily'') + ); - delete from notification_types_del_methods - where type_id = v_foo - and delivery_method_id in ( - select delivery_method_id - from notification_delivery_methods - where short_name in (''email'') - ); + delete from notification_types_del_methods + where type_id = v_foo + and delivery_method_id in ( + select delivery_method_id + from notification_delivery_methods + where short_name in (''email'') + ); - return (0); + return (0); end; ' language 'plpgsql'; select inline_0(); drop function inline_0(); - The next step is to setup our notification creation. A new notification must @@ -829,10 +823,17 @@ -notif_text $new_content - This code is placed in the tcl procedure that creates blog entries, right after - the entry gets created in the code. The $blog(package_id) - is the OpenACS object_id of the Weblogger instance to which the entry has been posted to - and the $new_content is the content of the entry. + This code is placed in the tcl procedure that creates blog + entries, right after the entry gets created in the code. The + $blog(package_id) is the OpenACS + object_id of the Weblogger instance to which the entry has been + posted to and the $new_content is + the content of the entry. This example uses the package_id for the + object_id, which results in setting up notifications for all + changes for blogger entries in this package. However, if you + instead used the blog_entry_id or something like that, you could + set up per-item notifications. The forums packages does this -- + you can look at it for an example. The final step is to setup the notification subscription process. In this example we want to let a user find out when a new entry has been posted to the blog. To