threads-chunk.tcl
one forum view
- Location:
- /packages/forums/lib/message/threads-chunk.tcl
- Author:
- Ben Adida <ben@openforce.net>
- Created:
- 2002-05-24
- CVS ID:
$Id: threads-chunk.tcl,v 1.32.2.3 2023/03/20 13:28:49 antoniop Exp $
Related Files
- packages/forums/lib/message/threads-chunk.xql
- packages/forums/lib/message/threads-chunk.tcl
- packages/forums/lib/message/threads-chunk.adp
[ hide source ] | [ make this the default ]
File Contents
ad_include_contract { one forum view @author Ben Adida (ben@openforce.net) @creation-date 2002-05-24 @cvs-id $Id: threads-chunk.tcl,v 1.32.2.3 2023/03/20 13:28:49 antoniop Exp $ } { forum_id:object_type(forums_forum),notnull {orderby:token,notnull "last_child_post,desc"} {flush_p:boolean,notnull 0} {page_size:naturalnum,notnull 30} {base_url ""} } set package_id [ad_conn package_id] set user_id [ad_conn user_id] # Get forum data forum::get -forum_id $forum_id -array forum set useReadingInfo [forum::use_ReadingInfo_p] if { $useReadingInfo } { set unread_or_new_query_clause [db_map unread_query] set unread_join [db_map unread_join] } else { set unread_or_new_query_clause [db_map new_query] set unread_join "" } if {$moderate_p} { set replies reply_count } else { set replies approved_reply_count } set actions [list] # new postings are allowed if # 0. The user has post-permissions # 1. Users can create new threads or user is a moderator if { $permissions(post_p) } { if { $permissions(moderate_p) || $forum(new_questions_allowed_p) } { lappend actions [_ forums.Post_a_New_Message] \ [export_vars -base "${base_url}message-post" { forum_id }] [_ forums.Post_a_New_Message] } } if { $permissions(admin_p) && $package_id == $forum(package_id) } { lappend actions [_ forums.Administer] \ [export_vars -base "${base_url}admin/forum-edit" {forum_id {return_url [ad_return_url]}}] [_ forums.Administer] } if { $permissions(moderate_p) && $forum(posting_policy) eq "moderated" } { lappend actions [_ forums.ManageModerate] \ [export_vars -base "${base_url}moderate/forum" { forum_id }] [_ forums.ManageModerate] } if { $useReadingInfo } { lappend actions [_ forums.mark_all_as_read] \ [export_vars -base "${base_url}mark-all-read" { forum_id }] {} } template::list::create \ -name messages \ -multirow messages \ -page_size $page_size \ -page_flush_p $flush_p \ -page_query_name messages_select_paginate \ -pass_properties {moderate_p useReadingInfo} \ -actions $actions \ -elements { subject { label "#forums.Subject#" display_template { <h2 class="forum-heading"> <a href="@messages.message_url@" title="#forums.goto_thread_subject#"> <if @useReadingInfo;literal@ true> <if @messages.unread_p;literal@ true> <b>@messages.subject@</b> </if> <else>@messages.subject@</else> </if> <else> <if @messages.new_p;literal@ true> <b>@messages.subject@</b> </if> <else>@messages.subject@</else> </else> </a> </h2> } } state_pretty { label "\#forums.Moderate\#" hide_p {[expr {$moderate_p ne 1}]} } user_name { label "#forums.Author#" link_url_col user_url link_html {title "\#forums.show_history_user_name\#"} } 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 {(select first_names || last_name from persons where person_id = fm.user_id)} default_direction asc } n_messages { label "#forums.Replies#" orderby_asc {n_messages asc, posting_date desc} orderby_desc {n_messages desc, posting_date desc} } } -filters { forum_id {} } set useScreenNameP [parameter::get -parameter "UseScreenNameP" -default 0] db_multirow -extend { user_name screen_name last_child_post_pretty posting_date_pretty message_url user_url n_messages_pretty state_pretty } messages messages_select {} { set screen_name [acs_user::get_user_info -user_id $user_id -element screen_name] set user_name [person::name -person_id $user_id] if {[acs_user::registered_user_p -user_id $user_id]} { set user_url [export_vars -base "${base_url}user-history" { user_id }] } 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 last_child_post_pretty [lc_time_fmt $last_child_post_ansi "%Q %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 posting_date_pretty [lc_time_fmt $posting_date_ansi "%Q %X"] set message_url [export_vars -base "${base_url}message-view" { message_id }] if { $useScreenNameP } { set user_name $screen_name set user_url "" } 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 {} } } } if {[info exists alt_template] && $alt_template ne ""} { ad_return_template $alt_template } # Local variables: # mode: tcl # tcl-indent-level: 4 # indent-tabs-mode: nil # End: