Index: openacs-4/packages/categories/lib/contributions.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/categories/lib/contributions.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/categories/lib/contributions.adp 19 Mar 2007 15:20:53 -0000 1.1 @@ -0,0 +1 @@ + \ No newline at end of file Index: openacs-4/packages/categories/lib/contributions.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/categories/lib/contributions.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/categories/lib/contributions.tcl 19 Mar 2007 15:20:53 -0000 1.1 @@ -0,0 +1,153 @@ +# Display the site contributions +# If user_id set it will be limited by that user otherwise all users. +# if limit set then only limit items will be displayed. +# if root_node_id exists then only return things under root node. +set root_node_id [ad_conn node_id] + +if {![info exists user_id]} { + set user_id {} +} +if {![info exists category]} { + set category {} +} +if {[info exists supress]} { + foreach key $supress { + set hide($key) 1 + } +} + +if {[info exists limit] + && [regexp {^[0-9]+$} $limit]} { + set limit " limit $limit" +} else { + set limit {} +} + +if {![info exists format]} { + set format table +} + +if {[info exists root_node_id]} { + set packages [subsite::util::packages -node_id $root_node_id] +} else { + set packages {} +} + +lappend elements object_title { + label {Title} + display_template {@content.title@} +} + +if {![info exists hide(pretty_name)]} { + lappend elements pretty_name { + label {Type} + display_template {@content.object_type@} + } +} + +lappend elements last_modified { + label {Last update} + display_template "@content.last_modified;noquote@" + html {align right} +} + +# lappend elements new { +# label {New} +# display_template "@content.new;noquote@" +# html {align right} +#} + +if {[empty_string_p $user_id]} { + lappend elements name { + label {Created by} + display_template {@content.name@} + } +} + +template::list::create \ + -name content \ + -multirow content \ + -key object_id \ + -elements $elements \ + -selected_format $format \ + -filters { + user_id {} + } \ + -formats { + table { + label Table + layout table + } + list { + label List + layout list + template { +
\[\] -
+ by ,
+ } + } + } \ + -orderby { + object_title { + orderby lower(o.title) + } + pretty_name { + orderby lower(t.pretty_name) + } + last_modified { + orderby_asc {o.last_modified desc} + orderby_desc {o.last_modified asc} + } + name { + orderby_asc "lower(u.last_name),lower(u.first_names)" + orderby_desc "lower(u.last_name) desc,lower(u.first_names) desc" + } + } + +set now [clock_to_ansi [clock seconds]] + +set restrict {} + +if {![empty_string_p $user_id]} { + append restrict "\nand o.creation_user = :user_id" +} + +if {![empty_string_p $category]} { + append restrict "\nand exists (select 1 from category_object_map c where c.object_id = o.object_id and c.category_id = :category)" +} + +if {![empty_string_p $packages]} { + append restrict "\nand o.package_id in ([join $packages ,])" +} + +# JCDXXX: TODO: need to get the dimension to display, need to find the right CoP, permissions +db_multirow -extend {url_one user_url new} content content " + SELECT o.title, o.object_id, o.title, t.pretty_name as object_type, to_char(o.last_modified,'YYYY-MM-DD HH24:MI:SS') as last_modified, u.user_id, u.first_names || ' ' || u.last_name as name + FROM acs_object_types t, acs_objects o + left outer join cr_items i on (o.object_id = i.item_id) + left outer join acs_users_all u on (u.user_id = o.creation_user) + WHERE t.object_type = case when o.object_type = 'content_item' then i.content_type else o.object_type end + and o.object_type in ('content_item','pinds_blog_entry','forums_forum','forums_message', + 'cal_item','bt_bug','bt_patch', 'news', 'faq', 'faq_q_and_a', 'bookshelf_book', 'job_posting','survey') + and (o.object_type != 'content_item' or i.content_type in ('content_extlink','file_storage_object','pa_album','pa_photo','static_page','news','job', 'content_revision')) + $restrict + [template::list::orderby_clause -orderby -name "content"]$limit" { + + # TODO: JCDXXX - make this work in general. + if {($object_id % 3) == 0} { + set new {NEW} + } else { + set new {} + } + + # TODO: JCDXXX - make this work in general. + regsub {/www/cop1/static} $title {} title + + set last_modified [regsub -all { } [util::age_pretty -hours_limit 0 -mode_2_fmt "%X %a" -mode_3_fmt "%x" -timestamp_ansi $last_modified -sysdate_ansi $now] {\ }] + set user_url [acs_community_member_url -user_id $user_id] + if {[catch {set url_one [acs_sc_call -error FtsContentProvider url [list $object_id] $object_type]} errMsg]} { + global errorCode + set url_one $errorCode + } + } + Index: openacs-4/packages/categories/lib/list-categories.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/categories/lib/list-categories.adp,v diff -u -r1.2 -r1.3 --- openacs-4/packages/categories/lib/list-categories.adp 26 Mar 2005 22:00:59 -0000 1.2 +++ openacs-4/packages/categories/lib/list-categories.adp 19 Mar 2007 15:20:53 -0000 1.3 @@ -16,6 +16,6 @@
- +