Index: openacs-4/packages/news-aggregator-portlet/news-aggregator-portlet.info
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/news-aggregator-portlet/news-aggregator-portlet.info,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/news-aggregator-portlet/news-aggregator-portlet.info 13 Jun 2003 08:53:22 -0000 1.1.2.1
@@ -0,0 +1,25 @@
+
+
+
+
+ News Aggregator Portlet
+ News Aggregator Portlets
+ f
+ t
+
+
+ Simon Carstensen
+ 2003-05-15
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: openacs-4/packages/news-aggregator-portlet/tcl/apm-callback-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/news-aggregator-portlet/tcl/apm-callback-procs.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/news-aggregator-portlet/tcl/apm-callback-procs.tcl 13 Jun 2003 08:53:22 -0000 1.1.2.1
@@ -0,0 +1,212 @@
+ad_library {
+ Procedures for initializing service contracts etc. for the
+ news aggregator portlet package. Should only be executed
+ once upon installation.
+
+ @creation-date 8 May 2003
+ @author Simon Carstensen (simon@collaboraid.biz)
+ @cvs-id $Id: apm-callback-procs.tcl,v 1.1.2.1 2003/06/13 08:53:22 simonc Exp $
+}
+
+
+namespace eval news_aggregator_portlet {}
+namespace eval news_aggregator_admin_portlet {}
+
+ad_proc -private news_aggregator_portlet::after_install {} {
+ Create the datasources needed by the news aggregator portlet.
+} {
+
+ db_transaction {
+ set ds_id [portal::datasource_new \
+ -name "news_aggregator_portlet" \
+ -description "News Aggregator Portlet"]
+
+ portal::datasource_set_def_param \
+ -datasource_id $ds_id \
+ -config_required_p t \
+ -configured_p t \
+ -key shadeable_p \
+ -value t
+
+ portal::datasource_set_def_param \
+ -datasource_id $ds_id \
+ -config_required_p t \
+ -configured_p t \
+ -key hideable_p \
+ -value t
+
+ portal::datasource_set_def_param \
+ -datasource_id $ds_id \
+ -config_required_p t \
+ -configured_p t \
+ -key user_editable_p \
+ -value f
+
+ portal::datasource_set_def_param \
+ -datasource_id $ds_id \
+ -config_required_p t \
+ -configured_p t \
+ -key shaded_p \
+ -value f
+
+ portal::datasource_set_def_param \
+ -datasource_id $ds_id \
+ -config_required_p t \
+ -configured_p t \
+ -key link_hideable_p \
+ -value f
+
+ portal::datasource_set_def_param \
+ -datasource_id $ds_id \
+ -config_required_p t \
+ -configured_p f \
+ -key package_id \
+ -value ""
+
+ register_portal_datasource_impl
+
+ news_aggregator_admin_portlet::after_install
+
+ }
+}
+
+
+
+ad_proc -private news_aggregator_portlet::register_portal_datasource_impl {} {
+ Create the service contracts needed by the news-aggregator portlet.
+} {
+ set spec {
+ name "news_aggregator_portlet"
+ contract_name "portal_datasource"
+ owner "news-aggregator-portlet"
+ aliases {
+ GetMyName news_aggregator_portlet::get_my_name
+ GetPrettyName news_aggregator_portlet::get_pretty_name
+ Link news_aggregator_portlet::link
+ AddSelfToPage news_aggregator_portlet::add_self_to_page
+ Show news_aggregator_portlet::show
+ Edit news_aggregator_portlet::edit
+ RemoveSelfFromPage news_aggregator_portlet::remove_self_from_page
+ }
+ }
+
+ acs_sc::impl::new_from_spec -spec $spec
+}
+
+
+
+ad_proc -private news_aggregator_portlet::uninstall {} {
+ News Aggregator Portlet package uninstall proc
+} {
+ unregister_implementations
+
+ news_aggregator_admin_portlet::unregister_implementations
+}
+
+
+
+ad_proc -private news_aggregator_portlet::unregister_implementations {} {
+ Unregister service contract implementations
+} {
+ acs_sc::impl::delete \
+ -contract_name "portal_datasource" \
+ -impl_name "news_aggregator_portlet"
+}
+
+
+
+ad_proc -private news_aggregator_admin_portlet::after_install {} {
+ Create the datasources needed by the news aggregator portlet.
+} {
+
+ db_transaction {
+ set ds_id [portal::datasource_new \
+ -name "news_aggregator_admin_portlet" \
+ -description "News Aggregator Admin Portlet"]
+
+ portal::datasource_set_def_param \
+ -datasource_id $ds_id \
+ -config_required_p t \
+ -configured_p t \
+ -key shadeable_p \
+ -value f
+
+ portal::datasource_set_def_param \
+ -datasource_id $ds_id \
+ -config_required_p t \
+ -configured_p t \
+ -key hideable_p \
+ -value f
+
+ portal::datasource_set_def_param \
+ -datasource_id $ds_id \
+ -config_required_p t \
+ -configured_p t \
+ -key user_editable_p \
+ -value f
+
+ portal::datasource_set_def_param \
+ -datasource_id $ds_id \
+ -config_required_p t \
+ -configured_p t \
+ -key shaded_p \
+ -value f
+
+ portal::datasource_set_def_param \
+ -datasource_id $ds_id \
+ -config_required_p t \
+ -configured_p t \
+ -key link_hideable_p \
+ -value t
+
+ portal::datasource_set_def_param \
+ -datasource_id $ds_id \
+ -config_required_p t \
+ -configured_p f \
+ -key package_id \
+ -value ""
+
+ register_portal_datasource_impl
+ }
+}
+
+
+
+ad_proc -private news_aggregator_admin_portlet::register_portal_datasource_impl {} {
+ Create the service contracts needed by the news-aggregator admin portlet.
+} {
+ set spec {
+ name "news_aggregator_admin_portlet"
+ contract_name "portal_datasource"
+ owner "news-aggregator-portlet"
+ aliases {
+ GetMyName news_aggregator_admin_portlet::get_my_name
+ GetPrettyName news_aggregator_admin_portlet::get_pretty_name
+ Link news_aggregator_admin_portlet::link
+ AddSelfToPage news_aggregator_admin_portlet::add_self_to_page
+ Show news_aggregator_admin_portlet::show
+ Edit news_aggregator_admin_portlet::edit
+ RemoveSelfFromPage news_aggregator_admin_portlet::remove_self_from_page
+ }
+ }
+
+ acs_sc::impl::new_from_spec -spec $spec
+}
+
+
+
+ad_proc -private news_aggregator_admin_portlet::before_uninstall {} {
+ News Aggregator Portlet package uninstall proc
+} {
+ unregister_implementations
+}
+
+
+
+ad_proc -private news_aggregator_admin_portlet::unregister_implementations {} {
+ Unregister service contract implementations
+} {
+ acs_sc::impl::delete \
+ -contract_name "portal_datasource" \
+ -impl_name "news_aggregator_admin_portlet"
+}
Index: openacs-4/packages/news-aggregator-portlet/tcl/news-aggregator-admin-portlet-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/news-aggregator-portlet/tcl/news-aggregator-admin-portlet-procs.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/news-aggregator-portlet/tcl/news-aggregator-admin-portlet-procs.tcl 13 Jun 2003 08:53:22 -0000 1.1.2.1
@@ -0,0 +1,82 @@
+ad_library {
+
+ Procedures to support the news aggregator admin portlet
+
+ @creation-date Mar 2003
+ @author simon@bcuni.net
+
+}
+
+namespace eval news_aggregator_admin_portlet {}
+
+ad_proc -private news_aggregator_admin_portlet::get_my_name {
+} {
+ return "news_aggregator_admin_portlet"
+}
+
+
+
+ad_proc -public news_aggregator_admin_portlet::get_pretty_name {
+} {
+ return "News Aggregator Administration"
+}
+
+
+
+ad_proc -private news_aggregator_admin_portlet::my_package_key {
+} {
+ return "news-aggregator-portlet"
+}
+
+
+
+ad_proc -public news_aggregator_admin_portlet::link {
+} {
+ return ""
+}
+
+
+
+ad_proc -public news_aggregator_admin_portlet::add_self_to_page {
+ {-portal_id:required}
+ {-page_name ""}
+ {-package_id:required}
+} {
+ Adds a news-aggregator admin PE to the given portal
+
+ @param portal_id The page to add self to
+ @param package_id The package_id of the news-aggregator package
+
+ @return element_id The new element's id
+} {
+ return [portal::add_element_parameters \
+ -portal_id $portal_id \
+ -portlet_name [get_my_name] \
+ -key package_id \
+ -value $package_id
+ ]
+}
+
+
+
+ad_proc -public news_aggregator_admin_portlet::remove_self_from_page {
+ {-portal_id:required}
+} {
+ Removes a news-aggregator admin PE from the given page
+} {
+ portal::remove_element \
+ -portal_id $portal_id \
+ -portlet_name [get_my_name]
+}
+
+
+
+ad_proc -public news_aggregator_admin_portlet::show {
+ cf
+} {
+ portal::show_proc_helper \
+ -package_key [my_package_key] \
+ -config_list $cf \
+ -template_src "news-aggregator-admin-portlet"
+
+}
Index: openacs-4/packages/news-aggregator-portlet/tcl/news-aggregator-portlet-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/news-aggregator-portlet/tcl/news-aggregator-portlet-procs.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/news-aggregator-portlet/tcl/news-aggregator-portlet-procs.tcl 13 Jun 2003 08:53:22 -0000 1.1.2.1
@@ -0,0 +1,92 @@
+ad_library {
+
+ Procedures to support the news-aggregator portlet
+
+ @creation-date Mar 2003
+ @author simon@bcuni.net
+
+}
+
+namespace eval news_aggregator_portlet {}
+
+
+ad_proc -private news_aggregator_portlet::get_my_name {
+} {
+ return "news_aggregator_portlet"
+}
+
+
+
+ad_proc -private news_aggregator_portlet::my_package_key {
+} {
+ return "news-aggregator-portlet"
+}
+
+
+
+ad_proc -public news_aggregator_portlet::get_pretty_name {
+} {
+ return "News Aggregator"
+}
+
+
+
+ad_proc -public news_aggregator_portlet::link {
+} {
+ return ""
+}
+
+
+
+ad_proc -public news_aggregator_portlet::add_self_to_page {
+ {-portal_id:required}
+ {-package_id:required}
+ {-param_action:required}
+} {
+ Adds a news-aggregator PE to the given portal.
+
+ @param portal_id The page to add self to
+ @param package_id The community with the folder
+
+ @return element_id The new element's id
+} {
+ return [portal::add_element_parameters \
+ -portal_id $portal_id \
+ -portlet_name [get_my_name] \
+ -value $package_id \
+ -force_region [parameter::get_from_package_key \
+ -parameter "news_aggregator_portlet_force_region" \
+ -package_key [my_package_key]] \
+ -pretty_name [get_pretty_name] \
+ -param_action $param_action
+ ]
+}
+
+
+
+ad_proc -public news_aggregator_portlet::remove_self_from_page {
+ {-portal_id:required}
+ {-package_id:required}
+} {
+ Removes a news-aggregator PE from the given page or the package_id of the
+ news-aggregator package from the portlet if there are others remaining
+
+ @param portal_id The page to remove self from
+ @param package_id
+} {
+ portal::remove_element_parameters \
+ -portal_id $portal_id \
+ -portlet_name [get_my_name] \
+ -value $package_id
+}
+
+
+
+ad_proc -public news_aggregator_portlet::show {
+ cf
+} {
+ portal::show_proc_helper \
+ -package_key [my_package_key] \
+ -config_list $cf \
+ -template_src "news-aggregator-portlet"
+}
Index: openacs-4/packages/news-aggregator-portlet/www/news-aggregator-admin-portlet.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/news-aggregator-portlet/www/news-aggregator-admin-portlet.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/news-aggregator-portlet/www/news-aggregator-admin-portlet.tcl 13 Jun 2003 08:53:23 -0000 1.1.2.1
@@ -0,0 +1,23 @@
+ad_page_contract {
+ The display logic for the news aggregator portlet
+
+ @author Simon Carstensen (simon@bcuni.net)
+} -properties {
+
+}
+
+
+array set config $cf
+set user_id [ad_conn user_id]
+set list_of_package_ids $config(package_id)
+
+if {[llength $list_of_package_ids] > 1} {
+ # We have a problem!
+ return -code error "There should be only one instance of news aggregator for admin purposes"
+}
+
+set package_id [lindex $list_of_package_ids 0]
+set url [lindex [site_node::get_url_from_object_id -object_id $package_id] 0]
+
+
+ad_return_template
Index: openacs-4/packages/news-aggregator-portlet/www/news-aggregator-portlet-oracle.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/news-aggregator-portlet/www/news-aggregator-portlet-oracle.xql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/news-aggregator-portlet/www/news-aggregator-portlet-oracle.xql 13 Jun 2003 08:53:23 -0000 1.1.2.1
@@ -0,0 +1,28 @@
+
+
+
+postgresql7.1
+
+
+
+ select s.source_id,
+ s.link,
+ s.description,
+ s.title,
+ to_char(last_scanned, 'YYYY-MM-DD HH24:MI:SS') as last_scanned,
+ to_char(creation_date, 'YYYY-MM-DD HH24') as sort_date,
+ feed_url,
+ item_id,
+ i.title as item_title,
+ i.link as item_link,
+ i.description as item_description
+ from na_sources s, na_items i
+ where s.source_id = i.source_id
+ and deleted_p = '0'
+ and package_id in ([join $list_of_package_ids ", "])
+ and rownum <= 10
+ order by creation_date desc
+
+
+
+
Index: openacs-4/packages/news-aggregator-portlet/www/news-aggregator-portlet-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/news-aggregator-portlet/www/Attic/news-aggregator-portlet-postgresql.xql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/news-aggregator-portlet/www/news-aggregator-portlet-postgresql.xql 13 Jun 2003 08:53:23 -0000 1.1.2.1
@@ -0,0 +1,31 @@
+
+
+
+postgresql7.1
+
+
+
+ select s.source_id,
+ s.link,
+ s.description,
+ s.title,
+ to_char(last_scanned, 'YYYY-MM-DD HH24:MI:SS') as last_scanned,
+ to_char(creation_date, 'YYYY-MM-DD HH24') as sort_date,
+ (select site_node__url(site_nodes.node_id)
+ from site_nodes
+ where site_nodes.object_id = package_id) as url,
+ feed_url,
+ item_id,
+ i.title as item_title,
+ i.link as item_link,
+ i.description as item_description
+ from na_sources s left outer join
+ na_items i on (s.source_id = i.source_id)
+ where deleted_p = '0'
+ and package_id in ([join $list_of_package_ids ", "])
+ order by creation_date desc
+ limit 10
+
+
+
+
Index: openacs-4/packages/news-aggregator-portlet/www/news-aggregator-portlet.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/news-aggregator-portlet/www/news-aggregator-portlet.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/news-aggregator-portlet/www/news-aggregator-portlet.tcl 13 Jun 2003 08:53:23 -0000 1.1.2.1
@@ -0,0 +1,26 @@
+ad_page_contract {
+ The display logic for the news aggregator portlet
+ @author Simon Carstensen (simon@bcuni.net)
+} {
+ item_id:integer,notnull,optional,multiple
+} -properties {
+
+}
+
+set user_id [ad_conn user_id]
+set write_p [ad_permission_p $user_id write]
+
+array set config $cf
+set shaded_p 0
+
+set list_of_package_ids $config(package_id)
+set one_instance_p [ad_decode [llength $list_of_package_ids] 1 1 0]
+
+db_multirow -extend content items select_items {} {
+ set text_only [string_truncate -len 300 $item_description]
+ if {[exists_and_not_null item_title] && ![string equal -nocase $item_title $text_only] } {
+ set content "$item_title. $text_only"
+ } else {
+ set content $text_only
+ }
+}
Index: openacs-4/packages/news-aggregator-portlet/www/news-aggregator-portlet.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/news-aggregator-portlet/www/news-aggregator-portlet.xql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/news-aggregator-portlet/www/news-aggregator-portlet.xql 13 Jun 2003 08:53:23 -0000 1.1.2.1
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+ update na_items set deleted_p = '1' where item_id = :delete_id
+
+
+
+