Index: openacs-4/packages/xowiki/xowiki.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/xowiki.info,v diff -u -N -r1.180.2.69 -r1.180.2.70 --- openacs-4/packages/xowiki/xowiki.info 16 Sep 2021 08:27:38 -0000 1.180.2.69 +++ openacs-4/packages/xowiki/xowiki.info 16 Sep 2021 09:49:46 -0000 1.180.2.70 @@ -10,7 +10,7 @@ t xowiki - + Gustaf Neumann A xotcl-based enterprise wiki system with multiple object types 2021-09-15 @@ -55,8 +55,8 @@ BSD-Style 2 - - + + Index: openacs-4/packages/xowiki/resources/prototypes/weblog-portlet.page =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/resources/prototypes/Attic/weblog-portlet.page,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/xowiki/resources/prototypes/weblog-portlet.page 16 Sep 2021 09:49:47 -0000 1.1.2.1 @@ -0,0 +1,126 @@ +# -*- tcl-*- +# $Id: weblog-portlet.page,v 1.1.2.1 2021/09/16 09:49:47 gustafn Exp $ +::xowiki::Object new -title "Weblog" -text { + # + # A sample Weblog object. + # + :initialize -parameter { + {-page_size:range,arg=1- 10} + {-page_number:range,arg=1- 1} + {-summary:boolean 0} + {-category_id ""} + {-date ""} + {-tag ""} + {-ptag ""} + {-entries_of ""} + } + + # + # 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 {args} { + #:log "--W entry [self] ${:name} package_id ${:package_id}" + set weblog_obj [${:__parent} set weblog_obj] + + # We get the instance_attributes, if these are available. For the + # time being, we have these only in full mode (no summary) + set link [:detail_link] + set show_more [expr {[$weblog_obj summary] && [info exists :text] && ${:text} ne ""}] + set more [expr {$show_more ? + " \[#xowiki.weblog-more#\]" : ""}] + append more "

" + set my_footer [:htmlFooter] + + append content "
" \ + "

${:title}

" \ + "

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

" \ + ${:description} $more $my_footer \n\ + "
" + #:log "--W entry done [self] [:info class] subst=[:do_substitutions] ${:name}" + return $content + } + + # + # 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 {} { + 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
" + } + + :proc content {} { + :get_parameters + #:log "--get_parameters returned package_id=${:package_id}" + set page [:info parent] + + if {[$page exists __including_page]} { + set i [$page set __including_page] + #:log "--W including page $i" + set exclude_item_ids [$i item_id] + $i set render_adp 0 ;# no double adp substitutions + $i do_substitutions 0;# no double substitutions in parent + } else { + #:log "--W NO including page" + set exclude_item_ids [$page item_id] + $page set __no_footer 1 + } + $page do_substitutions 0; # no double substitutions in page + + # 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 $category_id \ + -tag $tag \ + -ptag $ptag \ + -entries_of $entries_of \ + -exclude_item_ids $exclude_item_ids \ + -entry_renderer $entry_renderer \ + ] + + $w mixin add $renderer + set html [$w render] + $page do_substitutions 1; # reset to default + return $html + } +} + +# +# Local variables: +# mode: tcl +# tcl-indent-level: 2 +# indent-tabs-mode: nil +# End: Index: openacs-4/packages/xowiki/resources/prototypes/weblog.page =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/resources/prototypes/Attic/weblog.page,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/xowiki/resources/prototypes/weblog.page 16 Sep 2021 09:49:47 -0000 1.1.2.1 @@ -0,0 +1,16 @@ +::xowiki::Page new -title "Weblog Page" -set publish_status production -text { + +>>content<< +{{weblog-portlet -decoration plain}} +>><< +>>sidebar<< +{{adp portlets/weblog-mini-calendar}} +{{tags -decoration plain}} +{{tags -popular 1 -limit 30 -decoration plain}} +{{categories -count 1 -decoration plain}} +>><< + +} + + + Index: openacs-4/packages/xowiki/tcl/upgrade/upgrade.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/upgrade/upgrade.tcl,v diff -u -N -r1.15.2.13 -r1.15.2.14 --- openacs-4/packages/xowiki/tcl/upgrade/upgrade.tcl 14 Mar 2021 16:34:44 -0000 1.15.2.13 +++ openacs-4/packages/xowiki/tcl/upgrade/upgrade.tcl 16 Sep 2021 09:49:47 -0000 1.15.2.14 @@ -867,6 +867,40 @@ } } + set v 5.10.1d1 + if {[apm_version_names_compare $from_version_name $v] == -1 && + [apm_version_names_compare $to_version_name $v] > -1} { + ns_log notice "-- upgrading to $v" + + # + # Update the prototype page for en:weblog-portlet. We do not + # follow here the approach of earlier releases to instantiate + # all xowiki packages (that might be many) and call + # www-import-prototype-page, but we check for unmodified + # prototype pages and delete just these (since they will be + # regenerated on the fly when needed). + # + set page en:weblog-portlet + set item_ids [::xo::dc list get_unmodified_prototype_pages { + select ci.item_id + from cr_items ci,cr_revisions cr + where name = :page and live_revision = cr.revision_id + group by 1 having count(cr.revision_id) = 1 + }] + foreach item_id $item_ids { + ns_log notice "Delete unmodified prototype pages for $page: $item_id" + ::xo::db::sql::content_item delete -item_id $item_id + } + set item_ids [::xo::dc list get_modified_prototype_pages { + select ci.item_id + from cr_items ci,cr_revisions cr + where name = :page and live_revision = cr.revision_id + group by 1 having count(cr.revision_id) > 1 + }] + if {[llength $item_ids] > 0} { + ns_log notice "Modified prototype pages for $page: $item_ids (require manual checking)" + } + } } } Index: openacs-4/packages/xowiki/www/prototypes/weblog-portlet.page =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/prototypes/weblog-portlet.page,v diff -u -N --- openacs-4/packages/xowiki/www/prototypes/weblog-portlet.page 23 Jun 2015 08:04:10 -0000 1.25 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,123 +0,0 @@ -# -*- tcl-*- -# $Id: weblog-portlet.page,v 1.25 2015/06/23 08:04:10 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} - {-category_id ""} - {-date ""} - {-tag ""} - {-ptag ""} - {-entries_of ""} - } - - # - # 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 {args} { - my instvar package_id name title creator creation_user pretty_date description - #my log "--W entry [self] [my name] package_id $package_id" - [my set __parent] instvar weblog_obj - - # We get the instance_attributes, if these are available. For the - # time being, we have these only in full mode (no summary) - set link [my detail_link] - set show_more [expr {[$weblog_obj summary] && [my exists text] && [my text] ne ""}] - set more [expr {$show_more ? - " \[#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\ - "
" - #my log "--W entry done [self] [my info class] subst=[my do_substitutions] [my name]" - return $content - } - - # - # 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 - #my log "--get_parameters returned package_id=$package_id" - set page [my info parent] - - if {[$page exists __including_page]} { - set i [$page set __including_page] - #my log "--W including page $i" - set exclude_item_ids [$i item_id] - $i set render_adp 0 ;# no double adp substitutions - $i do_substitutions 0;# no double substitutions in parent - } else { - #my log "--W NO including page" - set exclude_item_ids [$page item_id] - $page set __no_footer 1 - } - $page do_substitutions 0; # no double substitutions in page - - # 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 $category_id \ - -tag $tag \ - -ptag $ptag \ - -entries_of $entries_of \ - -exclude_item_ids $exclude_item_ids \ - -entry_renderer $entry_renderer \ - ] - - $w mixin add $renderer - set html [$w render] - $page do_substitutions 1; # reset to default - return $html - } - -} Index: openacs-4/packages/xowiki/www/prototypes/weblog.page =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/prototypes/weblog.page,v diff -u -N --- openacs-4/packages/xowiki/www/prototypes/weblog.page 13 Sep 2012 16:05:39 -0000 1.9 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,16 +0,0 @@ -::xowiki::Page new -title "Weblog Page" -set publish_status production -text { - ->>content<< -{{weblog-portlet -decoration plain}} ->><< ->>sidebar<< -{{adp portlets/weblog-mini-calendar}} -{{tags -decoration plain}} -{{tags -popular 1 -limit 30 -decoration plain}} -{{categories -count 1 -decoration plain}} ->><< - -} - - -