news_user_contributions db user_id purposeWhat it does:
Returns list items, one for each news postingDefined in: /web/philip/tcl/news-defs.tcl
Source code:
if { $purpose == "site_admin" } {
set restriction_clause ""
} else {
set restriction_clause "\nand n.approval_state = 'approved'"
}
set selection [ns_db select $db "
select n.news_item_id, n.title, n.approval_state, n.release_date, ng.scope,
ng.group_id, ug.group_name, ug.short_name,
decode(ng.scope, 'all_users', 1, 'registered_users', 1, 'public', 1, 'group', 4, 5)
as scope_ordering
from news_items n, newsgroups ng, user_groups ug
where n.creation_user = $user_id $restriction_clause
and n.newsgroup_id = ng.newsgroup_id
and ng.group_id=ug.group_id(+)
order by scope_ordering, ng.group_id, n.release_date"]
set db_sub [ns_db gethandle subquery]
set items ""
set last_group_id ""
set item_counter 0
while { [ns_db getrow $db $selection] } {
set_variables_after_query
switch $scope {
public {
if { $item_counter==0 } {
append items "<h4>Public News Postings</h4>"
set root_url "/news"
set admin_root_url "/news/admin"
}
}
group {
if { $last_group_id!=$group_id } {
append items "<h4>$group_name News Postings</h4>"
set sub_selection [ns_db 0or1row $db_sub "
select section_key
from content_sections
where scope='group' and group_id=$group_id
and module_key='news'"]
if { [empty_string_p $selection] } {
set root_url "/news"
set admin_root_url "/news/admin"
} else {
set_variables_after_subquery
set root_url "[ug_url]/[ad_urlencode $short_name]/[ad_urlencode $section_key]"
set admin_root_url "[ug_admin_url]/[ad_urlencode $short_name]/[ad_urlencode $section_key]"
}
}
}
}
if { $purpose == "site_admin" } {
append items "<li>[util_AnsiDatetoPrettyDate $release_date]: <a href=\"$admin_root_url/item?[export_url_vars news_item_id]\">$title</a>\n"
if { ![string match $approval_state "approved"] } {
append items " <font color=red>not approved</font>"
}
} else {
append items "<li>[util_AnsiDatetoPrettyDate $release_date]: <a href=\"$root_url/item?[export_url_vars news_item_id]\">$title</a>\n"
}
set last_group_id $group_id
incr item_counter
}
ns_db releasehandle $db_sub
if [empty_string_p $items] {
return [list]
} else {
return [list 0 "News Postings" "<ul>\n\n$items\n\n</ul>"]
}