Index: openacs-4/packages/xowiki/www/portlets/weblog.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/portlets/Attic/weblog.tcl,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/xowiki/www/portlets/weblog.tcl 3 May 2006 12:03:23 -0000 1.2
+++ openacs-4/packages/xowiki/www/portlets/weblog.tcl 19 Jun 2006 00:40:04 -0000 1.3
@@ -22,33 +22,52 @@
-page_size
-page_number
-date
+ -tag
+ -ptag
-category_id
-filter_msg
-nr_items
+ {-summary:boolean false}
} {
upvar $filter_msg my_filter_msg ;# pass info back to caller
upvar $nr_items my_nr_items ;# pass info back to caller
set package_id [$folder_id set package_id]
$including_page set render_adp 0 ;# no double substitutions
set my_filter_msg ""
+ set query_parm ""
# set up filters
+ set extra_from_clause ""
+ set extra_where_clause ""
+
if {$date ne ""} {
set date_clause "and date_trunc('day',p.publish_date) = '$date'"
set my_filter_msg "Filtered by date $date"
+ set query_parm "&date=$date"
} else {
set date_clause ""
}
if {$category_id ne ""} {
- set cat_clause "and c.object_id = ci.item_id and c.category_id = $category_id"
- set extra_from_clause ",category_object_map c"
+ append extra_where_clause "and c.object_id = ci.item_id and c.category_id = $category_id "
+ append extra_from_clause ",category_object_map c "
set my_filter_msg "Filtered by category [::category::get_name $category_id]"
- } else {
- set cat_clause ""
- set extra_from_clause ""
+ set query_parm "&category_id=$category_id"
}
-
+ if {$tag ne ""} {
+ set my_filter_msg "Filtered by your tag $tag"
+ append extra_from_clause ",xowiki_tags tags "
+ append extra_where_clause "and tags.item_id = ci.item_id and tags.tag = :tag and tags.user_id = [ad_conn user_id]"
+ set query_parm "&tag=[ad_urlencode $tag]"
+ }
+ if {$ptag ne ""} {
+ set my_filter_msg "Filtered by popular tag $ptag"
+ append extra_from_clause ",xowiki_tags tags "
+ append extra_where_clause "and tags.item_id = ci.item_id and tags.tag = :ptag "
+ set query_parm "&ptag=[ad_urlencode $ptag]"
+ }
+
+
# define item container
set items [::xo::OrderedComposite new -proc render {} {
set content ""
@@ -65,7 +84,7 @@
-page_number $page_number -page_size $page_size \
-extra_from_clause $extra_from_clause \
-extra_where_clause "and ci.item_id != [$including_page set item_id] $date_clause \
- and ci.content_type not in ('::xowiki::PageTemplate') $cat_clause" ]
+ and ci.content_type not in ('::xowiki::PageTemplate') $extra_where_clause" ]
set my_nr_items [db_string count [eval ::xowiki::Page select_query $query -count true]]
@@ -81,17 +100,24 @@
$p set pretty_date $pretty_date
#ns_log notice "--Render object=$p, $page_id $name $title"
- if {[catch {$p set description [$p render]} errorMsg]} {
+ if {!$summary && [catch {$p set description [$p render]} errorMsg]} {
ns_log notice "--Render Error ($errorMsg) $page_id $name $title"
continue
}
#ns_log notice "--Render DONE $page_id $name $title"
$items add $p
}
+
+ array set smsg {1 full 0 summary}
+ set flink "$smsg($summary)"
if {$my_filter_msg eq ""} {
- set my_filter_msg "Showing [llength [$items children]] of $my_nr_items Postings"
+ append my_filter_msg "Showing [llength [$items children]] of $my_nr_items Postings " \
+ "($flink)"
+ } else {
+ append my_filter_msg " (all, $flink)"
}
+
::xowiki::Page instmixin add ::xowiki::WeblogEntry
set content [$items render]
::xowiki::Page instmixin delete ::xowiki::WeblogEntry
@@ -111,13 +137,17 @@
if {![info exists page_size]} {set page_size 10}
set page_size [ns_queryget page_size $page_size]
set page_number [ns_queryget page_number 1]
+set summary [ns_queryget summary 0]
set content [::xowiki::Page __render_html \
-folder_id [$__including_page set parent_id] \
-including_page $__including_page \
-page_size $page_size \
-page_number $page_number \
+ -summary $summary \
-date [ns_queryget date] \
-category_id [ns_queryget category_id] \
+ -tag [ns_queryget tag] \
+ -ptag [ns_queryget ptag] \
-filter_msg filter_msg \
-nr_items nr_items]