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.32 -r1.33 --- openacs-4/packages/lars-blogger/lars-blogger.info 24 Feb 2004 12:53:09 -0000 1.32 +++ openacs-4/packages/lars-blogger/lars-blogger.info 27 Feb 2004 18:30:55 -0000 1.33 @@ -9,14 +9,14 @@ Lars Pind - Simon Carstensen Individual or collaborative web logs. - 2003-11-10 + 2004-02-11 Collaboraid - Weblog creation and management with notifications, RSS, archives, draft and published entries, includable templates for presenting on other pages, and permissioning for multiple users. + Weblog creation and management with notifications, RSS, trackpack, technorati, blogroll, pings, archives, draft and published entries, includable templates for presenting on other pages, and permissioning for multiple users. + @@ -29,15 +29,23 @@ + + + + + + + + @@ -46,12 +54,6 @@ - - - - - - Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/lars-blogger/sql/oracle/upgrade/upgrade-0.8.9-0.9.0.sql'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/lars-blogger/sql/oracle/upgrade/upgrade-0.8.9-9.0.sql'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/lars-blogger/sql/postgresql/upgrade/upgrade-0.8.9-0.9.0.sql'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/lars-blogger/sql/postgresql/upgrade/upgrade-0.8.9-9.0.sql'. Fisheye: No comparison available. Pass `N' to diff? Index: openacs-4/packages/lars-blogger/tcl/entry-procs-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/tcl/entry-procs-oracle.xql,v diff -u -r1.10 -r1.11 --- openacs-4/packages/lars-blogger/tcl/entry-procs-oracle.xql 20 Feb 2004 05:43:02 -0000 1.10 +++ openacs-4/packages/lars-blogger/tcl/entry-procs-oracle.xql 27 Feb 2004 18:30:58 -0000 1.11 @@ -50,6 +50,7 @@ b.draft_p, o.creation_user as user_id, to_char(b.entry_date, 'YYYY-MM-DD HH24:MI:SS') as entry_date_ansi, + to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') as sysdate_ansi, p.first_names as poster_first_names, p.last_name as poster_last_name, b.package_id, Index: openacs-4/packages/lars-blogger/tcl/entry-procs-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/tcl/entry-procs-postgresql.xql,v diff -u -r1.9 -r1.10 --- openacs-4/packages/lars-blogger/tcl/entry-procs-postgresql.xql 8 Jan 2004 09:08:07 -0000 1.9 +++ openacs-4/packages/lars-blogger/tcl/entry-procs-postgresql.xql 27 Feb 2004 18:30:58 -0000 1.10 @@ -48,6 +48,7 @@ b.draft_p, o.creation_user as user_id, to_char(b.entry_date, 'YYYY-MM-DD HH24:MI:SS') as entry_date_ansi, + to_char(current_timestamp,'YYYY-MM-DD HH24:MI:SS') as sysdate_ansi, p.first_names as poster_first_names, p.last_name as poster_last_name, b.package_id, Index: openacs-4/packages/lars-blogger/tcl/entry-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/tcl/entry-procs.tcl,v diff -u -r1.19 -r1.20 --- openacs-4/packages/lars-blogger/tcl/entry-procs.tcl 26 Jan 2004 15:39:47 -0000 1.19 +++ openacs-4/packages/lars-blogger/tcl/entry-procs.tcl 27 Feb 2004 18:30:58 -0000 1.20 @@ -166,9 +166,14 @@ ad_proc -public lars_blogger::entry::htmlify { + {-ellipsis "..."} + {-more ""} + {-max_content_length 0} -array:required } { Make the entry displayable in an HTML page + + @see ad_html_text_convert } { upvar $array row @@ -187,7 +192,9 @@ catch { set row(content) [ns_adp_parse -string $row(content)] } - + + set row(content) [util_close_html_tags $row(content) $max_content_length $max_content_length $ellipsis $more] + # look for the base site name in the url if { [regexp {^https?://([^ /]+)} $row(title_url) initial base_url] } { set row(title_url_base) $base_url Index: openacs-4/packages/lars-blogger/tcl/lars-blogger-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/tcl/lars-blogger-procs.tcl,v diff -u -r1.16 -r1.17 --- openacs-4/packages/lars-blogger/tcl/lars-blogger-procs.tcl 14 Dec 2003 11:10:44 -0000 1.16 +++ openacs-4/packages/lars-blogger/tcl/lars-blogger-procs.tcl 27 Feb 2004 18:30:58 -0000 1.17 @@ -5,6 +5,8 @@ @cvs-id $Id$ } +namespace eval lars_blogger {} + ad_proc -deprecated -warn lars_blog_entry_add { {-entry_id:required} {-package_id:required} @@ -249,3 +251,45 @@ } { return [db_list blog_list {}] } + +ad_proc -public lars_blogger::count { + -package_id +} { + @return the number of published blog entries in the package. +} { + if { ![exists_and_not_null package_id] } { + set package_id [ad_conn package_id] + } + return [db_string entry_count {}] +} + + +ad_proc -public lars_blogger::get_rss_file_url { + -package_id + -screen_name +} { + @param package_id The package_id of the lars-blogger instance. Defaults to current package. + + @param screen_name If specified, returns the RSS feed for just that user's postings. + + @return The URL of the RSS feed. +} { + if { ![exists_and_not_null package_id] } { + set package_id [ad_conn package_id] + } + + set rss_file_url {} + + set rss_file_name [parameter::get -parameter "rss_file_name" -package_id $package_id] + + if { ![empty_string_p $rss_file_name] } { + set package_url [lars_blog_public_package_url -package_id $package_id] + + if { [exists_and_not_null screen_name] } { + set rss_file_url "${package_url}user/$screen_name/rss/$rss_file_name" + } else { + set rss_file_url "${package_url}rss/$rss_file_name" + } + } + return $rss_file_url +} Index: openacs-4/packages/lars-blogger/tcl/lars-blogger-procs.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/tcl/lars-blogger-procs.xql,v diff -u -r1.6 -r1.7 --- openacs-4/packages/lars-blogger/tcl/lars-blogger-procs.xql 14 Dec 2003 11:10:44 -0000 1.6 +++ openacs-4/packages/lars-blogger/tcl/lars-blogger-procs.xql 27 Feb 2004 18:30:58 -0000 1.7 @@ -78,4 +78,13 @@ + + + select count(*) + from pinds_blog_entries + where package_id = :package_id + and draft_p = 'f' + + + Index: openacs-4/packages/lars-blogger/tcl/rss-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/tcl/rss-procs.tcl,v diff -u -r1.10 -r1.11 --- openacs-4/packages/lars-blogger/tcl/rss-procs.tcl 14 Dec 2003 11:10:44 -0000 1.10 +++ openacs-4/packages/lars-blogger/tcl/rss-procs.tcl 27 Feb 2004 18:30:58 -0000 1.11 @@ -83,16 +83,20 @@ set statement "user_blog_rss_items" } + set rss_max_description_length [parameter::get -parameter rss_max_description_length -package_id $package_id -default 0] + if { [empty_string_p $rss_max_description_length] } { + set rss_max_description_length 0 + } + db_foreach $statement {} { set entry_url [export_vars -base "[ad_url]${package_url}one-entry" { entry_id }] set content [ns_adp_parse -string $content] regsub -all {<[^>]*>} $content {} content_as_text - set truncate_len 100 - if { [string length $content_as_text] > $truncate_len } { - set description "[string range $content_as_text 0 [expr {$truncate_len-3}]]..." + if { $rss_max_description_length > 0 && [string length $content_as_text] > $rss_max_description_length } { + set description "[string range $content_as_text 0 [expr {$rss_max_description_length-3}]]..." } else { set description $content_as_text } Index: openacs-4/packages/lars-blogger/www/blog-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/blog-oracle.xql,v diff -u -r1.8 -r1.9 --- openacs-4/packages/lars-blogger/www/blog-oracle.xql 20 Feb 2004 05:43:02 -0000 1.8 +++ openacs-4/packages/lars-blogger/www/blog-oracle.xql 27 Feb 2004 18:30:59 -0000 1.9 @@ -48,6 +48,8 @@ entry_date, to_char(entry_date, 'YYYY-MM-DD HH24:MI:SS') as entry_date_ansi, + to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS') + as sysdate_ansi, title, title_url, e.category_id, Index: openacs-4/packages/lars-blogger/www/blog-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/blog-postgresql.xql,v diff -u -r1.10 -r1.11 --- openacs-4/packages/lars-blogger/www/blog-postgresql.xql 20 Feb 2004 05:43:02 -0000 1.10 +++ openacs-4/packages/lars-blogger/www/blog-postgresql.xql 27 Feb 2004 18:30:59 -0000 1.11 @@ -40,6 +40,8 @@ entry_date, to_char(entry_date, 'YYYY-MM-DD HH24:MI:SS') as entry_date_ansi, + to_char(current_timestamp,'YYYY-MM-DD HH24:MI:SS') + as sysdate_ansi, title, title_url, e.category_id, Index: openacs-4/packages/lars-blogger/www/blog.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/blog.adp,v diff -u -r1.18 -r1.19 --- openacs-4/packages/lars-blogger/www/blog.adp 27 Jan 2004 09:39:49 -0000 1.18 +++ openacs-4/packages/lars-blogger/www/blog.adp 27 Feb 2004 18:30:59 -0000 1.19 @@ -4,7 +4,6 @@ - + + XML + Index: openacs-4/packages/lars-blogger/www/blog.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/blog.tcl,v diff -u -r1.20 -r1.21 --- openacs-4/packages/lars-blogger/www/blog.tcl 20 Feb 2004 05:43:02 -0000 1.20 +++ openacs-4/packages/lars-blogger/www/blog.tcl 27 Feb 2004 18:30:59 -0000 1.21 @@ -5,6 +5,10 @@ # archive_interval:optional # archive_date:optional # screen_name:optional +# max_num_entries: optional +# min_num_entries: optional +# num_days: optional +# max_content_length:integer,optional # If the caller specified a URL, then we gather the package_id from that URL if { [info exists url] } { @@ -40,22 +44,34 @@ set blog_user_id [cc_screen_name_user $screen_name] } -set max_num_entries [parameter::get \ - -package_id $package_id \ - -parameter MaxNumEntriesOnFrontPage \ - -default {}] +if { ![exists_and_not_null max_num_entries] } { + set max_num_entries [parameter::get \ + -package_id $package_id \ + -parameter MaxNumEntriesOnFrontPage \ + -default {}] +} -set min_num_entries [parameter::get \ - -package_id $package_id \ - -parameter MinNumEntriesOnFrontPage \ - -default {}] +if { ![exists_and_not_null min_num_entries] } { + set min_num_entries [parameter::get \ + -package_id $package_id \ + -parameter MinNumEntriesOnFrontPage \ + -default {}] +} -set num_days [parameter::get \ - -package_id $package_id \ - -parameter NumDaysOnFrontPage \ - -default {}] +if { ![exists_and_not_null num_days] } { + set num_days [parameter::get \ + -package_id $package_id \ + -parameter NumDaysOnFrontPage \ + -default {}] +} + +if { ![exists_and_not_null max_content_length] } { + set max_content_length [parameter::get \ + -package_id $package_id \ + -parameter max_content_length \ + -default 0] +} - if { ![info exists type] } { set type "current" @@ -211,5 +227,7 @@ set header_background_color [lars_blog_header_background_color -package_id $package_id] -set stylesheet_url [lars_blog_stylesheet_url] +set stylesheet_url [lars_blog_stylesheet_url -package_id $package_id] +set rss_file_url [lars_blogger::get_rss_file_url -package_id $package_id] + Index: openacs-4/packages/lars-blogger/www/entry-chunk.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/entry-chunk.adp,v diff -u -r1.20 -r1.21 --- openacs-4/packages/lars-blogger/www/entry-chunk.adp 20 Feb 2004 05:43:02 -0000 1.20 +++ openacs-4/packages/lars-blogger/www/entry-chunk.adp 27 Feb 2004 18:30:59 -0000 1.21 @@ -26,7 +26,7 @@

- @blog.entry_date_pretty@ + Posted @blog.posted_time_pretty@ by @blog.poster_first_names@ @blog.poster_last_name@ Index: openacs-4/packages/lars-blogger/www/entry-chunk.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/entry-chunk.tcl,v diff -u -r1.17 -r1.18 --- openacs-4/packages/lars-blogger/www/entry-chunk.tcl 27 Feb 2004 16:10:46 -0000 1.17 +++ openacs-4/packages/lars-blogger/www/entry-chunk.tcl 27 Feb 2004 18:30:59 -0000 1.18 @@ -5,6 +5,7 @@ # package_id:optional # screen_name:onevalue,optional # perma_p: 1/0 (defaults to 0 -- set to 1 if this is the permalink page) +# max_content_length:integer,optional # Nested multirows! @@ -36,6 +37,10 @@ set screen_name "" } +if { ![exists_and_not_null max_content_length] } { + set max_content_length 0 +} + set package_url [lars_blog_public_package_url -package_id $package_id] set user_id [ad_conn user_id] @@ -44,36 +49,38 @@ set show_poster_p [ad_parameter "ShowPosterP" "" "1"] -lars_blogger::entry::htmlify -array blog - -set entry_id $blog(entry_id) - -set blog(edit_url) "${package_url}entry-edit?[export_vars { entry_id return_url }]" -set blog(delete_url) "${package_url}entry-delete?[export_vars { entry_id return_url }]" - -set blog(publish_url) "${package_url}entry-publish?[export_vars { entry_id return_url }]" -set blog(revoke_url) "${package_url}entry-revoke?[export_vars { entry_id return_url }]" - -set blog(write_p) [permission::write_permission_p -object_id $blog(entry_id) -creation_user $blog(user_id) -party_id [ad_conn untrusted_user_id]] - if { [empty_string_p $screen_name] } { set blog(permalink_url) "${package_url}one-entry?[export_vars { entry_id }]" } else { set blog(permalink_url) "${package_url}user/$screen_name/one-entry?[export_vars { entry_id }]" } -set display_categories [lars_blog_categories_p -package_id [ad_conn package_id]] +lars_blogger::entry::htmlify \ + -max_content_length $max_content_length \ + -more [ad_decode [ad_return_url] $blog(permalink_url) {} "
(more)"] \ + -array blog +set entry_id $blog(entry_id) + +set blog(edit_url) [export_vars -base "${package_url}entry-edit" { entry_id return_url }] +set blog(delete_url) [export_vars -base "${package_url}entry-delete" { entry_id return_url }] + +set blog(publish_url) [export_vars -base "${package_url}entry-publish" { entry_id return_url }] +set blog(revoke_url) [export_vars -base "${package_url}entry-revoke" { entry_id return_url }] + +set blog(write_p) [permission::write_permission_p \ + -object_id $blog(entry_id) \ + -creation_user $blog(user_id) \ + -party_id [ad_conn untrusted_user_id]] + +set display_categories [lars_blog_categories_p \ + -package_id [ad_conn package_id]] + if { [template::util::is_true $show_comments_p] } { lars_blogger::entry::get_comments -entry_id $entry_id - set blog(comment_add_url) "${general_comments_package_url}comment-add?[export_vars { { object_id $entry_id } { object_name $blog(title) } { return_url "${package_url}flush-cache?[export_vars { return_url }]"} }]" + set blog(comment_add_url) [export_vars -base "${general_comments_package_url}comment-add" { { object_id $entry_id } { object_name $blog(title) } { return_url "${package_url}flush-cache?[export_vars { return_url }]"} }] } -if { $blog(category_id) != 0 } { - set category_url "${package_url}" - if { [exists_and_not_null screen_name] } { - append category_url "user/$screen_name" - } - append category_url "/cat/$blog(category_short_name)" -} - +set blog(posted_time_pretty) [util::age_pretty \ + -timestamp_ansi $blog(entry_date_ansi) \ + -sysdate_ansi $blog(sysdate_ansi)] Index: openacs-4/packages/lars-blogger/www/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/index.adp,v diff -u -r1.31 -r1.32 --- openacs-4/packages/lars-blogger/www/index.adp 20 Feb 2004 05:43:02 -0000 1.31 +++ openacs-4/packages/lars-blogger/www/index.adp 27 Feb 2004 18:30:59 -0000 1.32 @@ -42,85 +42,86 @@ -

-
-

Archive

- - - - -
- + +
-

Categories

- - @categories.category_name@
-
+

Archive

+ + + +
- - -
- -

@sw_categories.tree_name@

- - @sw_categories.sw_category_name@
-
-
-
-
- - - - -
-

Notifications

- @notification_chunk;noquote@ -
-
- -
- + +
+

Categories

+ + @categories.category_name@
+
+
+
+ +
+ +

@sw_categories.tree_name@

+ + @sw_categories.sw_category_name@
+
+
+
+
+ + + + +
+

Notifications

+ @notification_chunk;noquote@ +
+
+ +
+ - -
-

Recent Comments

- -
-
+ +
+

Recent Comments

+ +
+
- -Temporarly turning off this feature which hasn't been ported to Oracle -yet so that it at least doesn't completely break the application. + + Temporarly turning off this feature which hasn't been ported to Oracle + yet so that it at least doesn't completely break the application. - -
-

Blogroll

- -
-
-
+ +
+

Blogroll

+ +
+
+
- -
-

Technorati Blogs

- -
-
+ +
+

Technorati Blogs

+ +
+
-
+
+ - Index: openacs-4/packages/lars-blogger/www/index.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/index.tcl,v diff -u -r1.21 -r1.22 --- openacs-4/packages/lars-blogger/www/index.tcl 20 Feb 2004 05:43:02 -0000 1.21 +++ openacs-4/packages/lars-blogger/www/index.tcl 27 Feb 2004 18:30:59 -0000 1.22 @@ -19,6 +19,8 @@ set package_url [ad_conn package_url] set package_url_with_extras $package_url +set index_page_p 1 + set context [list] set context_base_url $package_url @@ -38,6 +40,8 @@ # Show Category in context bar append context_base_url /category/$category_short_name lappend context [list $context_base_url $category_name] + + set index_page_p 0 } else { set category_id "" } @@ -124,6 +128,8 @@ if { [exists_and_not_null year] } { + set index_page_p 0 + # Show Year and Month in context append context_base_url archive/ lappend context [list $context_base_url Archive] @@ -143,7 +149,7 @@ # Month and day in context append context_base_url /$month - lappend context [list $context_base_url $month] + lappend context [list $context_base_url [lc_time_fmt "1970-$month-01 01:01:01" %B]] append context_base_url /$day lappend context [list $context_base_url $day] @@ -153,7 +159,7 @@ # Month in context append context_base_url /$month - lappend context [list $context_base_url $month] + lappend context [list $context_base_url [lc_time_fmt "1970-$month-01 01:01:01" %B]] } else { set interval "year" db_1row archive_date_year {}