Index: openacs-4/packages/xowiki/www/prototypes/news.page =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/prototypes/news.page,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/xowiki/www/prototypes/news.page 28 Jul 2007 18:04:52 -0000 1.1 @@ -0,0 +1,120 @@ +# -*- tcl-*- +# $Id: news.page,v 1.1 2007/07/28 18:04:52 gustafn Exp $ +::xowiki::Object new -title "News" -text { + # + # A sample News object. + # + my initialize -parameter { + {-page_size:integer 10} + {-page_number:integer 1} + {-summary:boolean 0} + {-date ""} + {-tag ""} + {-ptag ""} + {-entries_of en:news-item} + } + + # The name filter is not the most efficient way of selecting + # autonamed entries. However, most times the number of news items + # is not overwhelming, so we can live with that for the time being. + # TODO: more efficient selection of autonamed entries + + # + # The following definition is the default rendering per + # news entry. This is executed in the context of every displayed page. + # + Class create EntryRenderer -instproc render {} { + my instvar package_id name title creator creation_user pretty_date description publish_date + [my set __parent] instvar weblog_obj + + set link [::$package_id pretty_link $name] + set more [expr {[$weblog_obj summary] ? + " \[#xowiki.weblog-more#\]" : ""}] + append more "
" + set day [lc_time_fmt [my set publish_date] "%x"] + set my_footer [my htmlFooter] + + append content "" + } + + # + # The following definition is the renderer for the full weblog. + # This is executed in the context of the whole weblog object + # + Class create NewsRenderer -instproc render {} { + my instvar filter_msg link name prev_page_link next_page_link title + + set filter "" + set prev "" + set next "" + + if {[info exists filter_msg]} { + set filter "