- Publicity: Public Only All
news-apm-callback-procs.tcl
APM callbacks for the news package
- Location:
- packages/news/tcl/news-apm-callback-procs.tcl
- Created:
- 2005-01-20
- Author:
- Dave Bauer <dave@thedesignexperience.org>
- CVS Identification:
$Id: news-apm-callback-procs.tcl,v 1.6.2.4 2020/08/31 07:46:15 antoniop Exp $
Procedures in this file
- news::install::after_install (private)
- news::install::after_instantiate (private)
- news::install::after_upgrade (private)
- news::install::before_uninstantiate (private)
- news::install::create_news_item_impl (private)
- news::install::create_news_item_type (private)
- news::install::enable_intervals_and_methods (private)
- news::install::register_notifications (private)
- news::install::register_rss (private)
Detailed information
news::install::after_install (private)
news::install::after_install
Setup service contracts
- Returns:
- Error:
- Author:
- Dave Bauer <dave@thedesignexperience.org>
- Created:
- 2005-01-20
- Partial Call Graph (max 5 caller/called nodes):
- Testcases:
- No testcase defined.
news::install::after_instantiate (private)
news::install::after_instantiate [ -package_id package_id ] \ [ -node_id node_id ]
Setup RSS feed per package instance
- Switches:
- -package_id (optional)
- -node_id (optional)
- Returns:
- Error:
- Author:
- Dave Bauer <dave@thedesignexperience.org>
- Created:
- 2005-01-20
- Partial Call Graph (max 5 caller/called nodes):
- Testcases:
- No testcase defined.
news::install::after_upgrade (private)
news::install::after_upgrade [ -from_version_name from_version_name ] \ [ -to_version_name to_version_name ]
Upgrade procedures
- Switches:
- -from_version_name (optional)
- -to_version_name (optional)
- Partial Call Graph (max 5 caller/called nodes):
- Testcases:
- No testcase defined.
news::install::before_uninstantiate (private)
news::install::before_uninstantiate [ -package_id package_id ]
Delete RSS feed per package instance Delete News items per package instance
- Switches:
- -package_id (optional)
- Returns:
- Error:
- Author:
- Stan Kaufman <skaufman@epimetrics.com>
- Created:
- 2005-08-03
- Partial Call Graph (max 5 caller/called nodes):
- Testcases:
- No testcase defined.
news::install::create_news_item_impl (private)
news::install::create_news_item_impl
Register the service contract implementation and return the impl_id
- Returns:
- impl_id of the created implementation
- Partial Call Graph (max 5 caller/called nodes):
- Testcases:
- No testcase defined.
news::install::create_news_item_type (private)
news::install::create_news_item_type impl_id
Create the notification type for one news item
- Parameters:
- impl_id (required)
- Returns:
- the type_id of the created type
- Partial Call Graph (max 5 caller/called nodes):
- Testcases:
- No testcase defined.
news::install::enable_intervals_and_methods (private)
news::install::enable_intervals_and_methods type_id
Enable the intervals and delivery methods of a specific type
- Parameters:
- type_id (required)
- Partial Call Graph (max 5 caller/called nodes):
- Testcases:
- No testcase defined.
news::install::register_notifications (private)
news::install::register_notifications
setup notifications
- Partial Call Graph (max 5 caller/called nodes):
- Testcases:
- No testcase defined.
news::install::register_rss (private)
news::install::register_rss
setup RSS support
- Partial Call Graph (max 5 caller/called nodes):
- Testcases:
- No testcase defined.
Content File Source
ad_library { APM callbacks for the news package @author Dave Bauer (dave@thedesignexperience.org) @creation-date 2005-01-20 @cvs-id $Id: news-apm-callback-procs.tcl,v 1.6.2.4 2020/08/31 07:46:15 antoniop Exp $ } namespace eval ::news::install {} d_proc -private ::news::install::after_install { } { Setup service contracts @author Dave Bauer (dave@thedesignexperience.org) @creation-date 2005-01-20 @return @error } { news::sc::register_news_fts_impl news::install::register_rss news::install::register_notifications } d_proc -private ::news::install::register_rss { } { setup RSS support } { set spec { name "news" aliases { datasource news__rss_datasource lastUpdated news__last_updated } contract_name "RssGenerationSubscriber" owner "news" } acs_sc::impl::new_from_spec -spec $spec } d_proc -private ::news::install::register_notifications { } { setup notifications } { db_transaction { # Create the impl and aliases for a news item set impl_id [create_news_item_impl] # Create the notification type for a news item set type_id [create_news_item_type $impl_id] # Enable the delivery intervals and delivery methods for a news item enable_intervals_and_methods $type_id } } d_proc -private ::news::install::after_instantiate { -package_id -node_id } { Setup RSS feed per package instance @author Dave Bauer (dave@thedesignexperience.org) @creation-date 2005-01-20 @param package_id @return @error } { set subscr_id [rss_support::add_subscription \ -summary_context_id $package_id \ -impl_name "news" \ -owner "news" \ -lastbuild ""] } d_proc -private news::install::after_upgrade { -from_version_name -to_version_name } { Upgrade procedures } { apm_upgrade_logic \ -from_version_name $from_version_name \ -to_version_name $to_version_name \ -spec { 5.1.0d1 5.1.0b1 { news::install::register_rss news::install::register_notifications } 5.2.0d3 5.2.0d4 { } 5.2.0d4 5.2.0d5 { # Create the impl and aliases for a news item set impl_id [::news::install::create_news_item_impl] # Create the notification type for a news item set type_id [::news::install::create_news_item_type $impl_id] # Enable the delivery intervals and delivery methods for a news item ::news::install::enable_intervals_and_methods $type_id } } } d_proc -private news::install::before_uninstantiate { -package_id } { Delete RSS feed per package instance Delete News items per package instance @author Stan Kaufman (skaufman@epimetrics.com) @creation-date 2005-08-03 @param package_id @return @error } { news_items_delete [db_list dead_news {}] rss_support::del_subscription -summary_context_id $package_id -owner news -impl_name news } d_proc -private ::news::install::create_news_item_impl { } { Register the service contract implementation and return the impl_id @return impl_id of the created implementation } { return [acs_sc::impl::new_from_spec -spec { name news_item_notif_type contract_name NotificationType owner news aliases { GetURL news_notification_get_url ProcessReply news_notification_process_reply } }] } d_proc -private ::news::install::create_news_item_type { impl_id } { Create the notification type for one news item @return the type_id of the created type } { return [notification::type::new \ -sc_impl_id $impl_id \ -short_name one_news_item_notif \ -pretty_name "One News Item" \ -description "Notification of a new news item"] } ad_proc -private ::news::install::enable_intervals_and_methods {type_id} { Enable the intervals and delivery methods of a specific type } { # Enable the various intervals and delivery method notification::type::interval_enable \ -type_id $type_id \ -interval_id [notification::interval::get_id_from_name -name instant] notification::type::interval_enable \ -type_id $type_id \ -interval_id [notification::interval::get_id_from_name -name hourly] notification::type::interval_enable \ -type_id $type_id \ -interval_id [notification::interval::get_id_from_name -name daily] # Enable the delivery methods notification::type::delivery_method_enable \ -type_id $type_id \ -delivery_method_id [notification::delivery::get_id -short_name email] } # Local variables: # mode: tcl # tcl-indent-level: 4 # indent-tabs-mode: nil # End: