Index: openacs-4/packages/forums/www/forum-view.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/forums/www/forum-view.tcl,v
diff -u -N -r1.18 -r1.19
--- openacs-4/packages/forums/www/forum-view.tcl 20 Jun 2003 15:24:24 -0000 1.18
+++ openacs-4/packages/forums/www/forum-view.tcl 3 Oct 2003 18:26:31 -0000 1.19
@@ -8,7 +8,7 @@
} -query {
forum_id:integer,notnull
- {order_by "posting_date"}
+ {orderby "posting_date,desc"}
}
@@ -20,12 +20,11 @@
set table_other_bgcolor [parameter::get -parameter table_other_bgcolor]
set package_id [ad_conn package_id]
-set user_id [ad_verify_and_get_user_id]
set admin_p [forum::security::can_admin_forum_p -forum_id $forum_id]
-if {!${admin_p}} {
+if { !$admin_p } {
set moderate_p [forum::security::can_moderate_forum_p -forum_id $forum_id]
- if {!${moderate_p}} {
+ if { !$moderate_p } {
set post_p [expr { [ad_conn user_id] == 0 || [forum::security::can_post_forum_p -forum_id $forum_id] }]
} else {
set post_p 1
@@ -67,8 +66,102 @@
set query messages_select_moderator
}
-db_multirow -extend { last_child_post_pretty } messages $query {} {
+set admin_url [export_vars -base "admin/forum-edit" { forum_id {return_url [ad_return_url]}}]
+set moderate_url [export_vars -base "moderate/forum" { forum_id }]
+set post_url [export_vars -base "message-post" { forum_id }]
+
+template::list::create \
+ -name messages \
+ -multirow messages \
+ -pass_properties { moderate_p } \
+ -elements {
+ subject {
+ label "#forums.Subject#"
+ link_url_col message_url
+ display_template {
+ @messages.subject@
+ @messages.subject@
+ }
+ }
+ state_pretty {
+ label "\#forums.Moderate\#"
+ hide_p {[ad_decode $moderate_p 1 0 1]}
+ }
+ user_name {
+ label "#forums.Author#"
+ link_url_col user_url
+ }
+ n_messages {
+ label "#forums.Replies#"
+ display_col n_messages_pretty
+ html { align right }
+ }
+ posting_date {
+ label "#forums.First_Post#"
+ display_col posting_date_pretty
+ }
+ last_child_post {
+ label "#forums.Last_Post#"
+ display_col last_child_post_pretty
+ }
+ } -orderby {
+ posting_date {
+ label "#forums.First_Post#"
+ orderby posting_date
+ default_direction desc
+ }
+ last_child_post {
+ label "#forums.Last_Post#"
+ orderby last_child_post
+ default_direction desc
+ }
+ subject {
+ label "#forums.Subject#"
+ orderby upper(subject)
+ }
+ user_name {
+ label "#forums.Author#"
+ orderby_asc {upper(user_name) asc, posting_date desc}
+ orderby_desc {upper(user_name) desc, posting_date desc}
+ }
+ n_messages {
+ label "#forums.Replies#"
+ orderby_asc {n_messages asc, posting_date desc}
+ orderby_desc {n_messages desc, posting_date desc}
+ }
+ } -filters {
+ forum_id {}
+ }
+
+db_multirow -extend {
+ last_child_post_pretty
+ posting_date_pretty
+ message_url
+ user_url
+ n_messages_pretty
+ state_pretty
+} messages $query {} {
+ set last_child_post_ansi [lc_time_system_to_conn $last_child_post_ansi]
set last_child_post_pretty [lc_time_fmt $last_child_post_ansi "%x %X"]
+
+ set posting_date_ansi [lc_time_system_to_conn $posting_date_ansi]
+ set posting_date_pretty [lc_time_fmt $posting_date_ansi "%x %X"]
+
+ set message_url [export_vars -base "message-view" { message_id }]
+ set user_url [export_vars -base "user-history" { user_id }]
+ set n_messages_pretty [lc_numeric $n_messages]
+
+ switch $state {
+ pending {
+ set state_pretty [_ forums.Pending]
+ }
+ rejected {
+ set state_pretty [_ forums.Rejected]
+ }
+ default {
+ set state_pretty {}
+ }
+ }
}
# Need to quote forum(name) since it is noquoted on display as part of an
@@ -80,9 +173,8 @@
-url [ad_conn url]?forum_id=$forum_id \
]
+set page_title "[_ forums.Forum_1] $forum(name)"
set context [list $forum(name)]
-# Sort by first or last posting in a thread (subject)
-set sort_filter [forum::message::subject_sort_filter -forum_id $forum_id -order_by $order_by]
-ad_return_template
+