# -*- tcl-*- # $Id: weblog-portlet.page,v 1.5 2007/03/17 23:13:21 gustafn Exp $ ::xowiki::Object new -title "Weblog" -text { # # A sample Weblog object. # my initialize -parameter { {-page_size:integer 10} {-page_number:integer 1} {-summary:boolean 0} {-date ""} {-tag ""} {-ptag ""} } # # The following definition is the default rendering per # weblog 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 [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 my_footer [my htmlFooter] append content "
" \ "

$title

" \ "

Created by $creator, " \ "last modified by [::xo::get_user_name $creation_user] " \ "$pretty_date

" \ $description $more $my_footer \n\ "
" } # # The following definition is the renderer for the full weblog. # This is executed in the context of the whole weblog object # Class create WeblogRenderer -instproc render {} { my instvar filter_msg link name prev_page_link next_page_link set filter "" set prev "" set next "" if {[info exists filter_msg]} { set filter "
$filter_msg
" } if {[info exists prev_page_link]} { set prev "\ Previous Page" } if {[info exists next_page_link]} { set next "\ Next Page" } return "
$filter [next] $prev $next
" } my proc content {} { my get_parameters set page [my info parent] if {[$page exists __including_page]} { set i [$page set __including_page] set exclude_item_ids [$i item_id] $i set render_adp 0 ;# no double substitutions #my log "--W including page $i" } else { #my log "--W NO including page" set exclude_item_ids [$page item_id] $page set __no_footer 1 } # on the weblog-portlet page, an edit-new should not create an object ::xo::cc set_parameter object_type ::xowiki::Page # the default renderer #set renderer ::xowiki::Weblog::WeblogRenderer #set entry_renderer ::xowiki::Weblog::EntryRenderer # the above custom renderers set renderer [self]::WeblogRenderer set entry_renderer [self]::EntryRenderer set w [::xowiki::Weblog new -destroy_on_cleanup \ -package_id $package_id \ -page_size $page_size \ -page_number $page_number \ -summary $summary \ -date $date \ -category_id [ns_queryget category_id] \ -tag $tag \ -ptag $ptag \ -exclude_item_ids $exclude_item_ids \ -entry_renderer $entry_renderer \ ] $w mixin add $renderer return [$w render] } }