Index: openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl,v diff -u -N -r1.42 -r1.43 --- openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl 13 Mar 2007 10:27:31 -0000 1.42 +++ openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl 15 Mar 2007 12:10:49 -0000 1.43 @@ -9,6 +9,21 @@ namespace eval ::xowiki { + + Page instproc render_my_tags {-weblog_page tags_var} { + my upvar $tags_var tags + my instvar item_id package_id + ::xowiki::Page requireJS "/resources/xowiki/get-http-object.js" + set entries [list] + if {![info exists weblog_page]} { + set weblog_page [$package_id get_parameter weblog_page weblog] + } + set tags [lsort [::xowiki::Page get_tags -user_id [::xo::cc user_id] \ + -item_id $item_id -package_id $package_id]] + set href [$package_id package_url]$weblog_page?summary=1 + foreach tag $tags {lappend entries "$tag"} + return [join [lsort $entries] {, }] + } Page instproc view {} { # view is used only for the toplevel call, when the xowiki page is viewed @@ -17,6 +32,13 @@ $package_id instvar folder_id ;# this is the root folder ::xowiki::Page set recursion_count 0 + set template_file [my query_parameter "template_file" \ + [::$package_id get_parameter template_file view-default]] + + if {[my isobject ::xowiki::$template_file]} { + $template_file before_render + } + set content [my render] my log "--after render" @@ -50,16 +72,7 @@ ![my exists_query_parameter no_tags]} { # only activate tags when the user is logged in set no_tags [expr {[::xo::cc user_id] == 0}] - set tags "" - if {!$no_tags} { - ::xowiki::Page requireJS "/resources/xowiki/get-http-object.js" - set entries [list] - set tags [lsort [::xowiki::Page get_tags -user_id [::xo::cc user_id] \ - -item_id $item_id -package_id $package_id]] - set href [$package_id package_url]weblog?summary=1 - foreach tag $tags {lappend entries "$tag"} - set tags_with_links [join $entries {, }] - } + if {!$no_tags} {set tags_with_links [my render_my_tags tags]} } #my log "--after tags" @@ -180,8 +193,8 @@ set edit_link [$package_id make_link [self] edit return_url] set delete_link [$package_id make_link [self] delete return_url] set new_link [$package_id make_link $package_id edit-new object_type return_url autoname] - set admin_link [$package_id make_link -privilege admin -url admin/ $package_id {} {}] - set index_link [$package_id make_link -privilege public -url "" $package_id {} {}] + set admin_link [$package_id make_link -privilege admin -link admin/ $package_id {} {}] + set index_link [$package_id make_link -privilege public -link "" $package_id {} {}] set save_tag_link [$package_id make_link [self] save-tags] set popular_tags_link [$package_id make_link [self] popular-tags] set create_in_req_locale_link "" @@ -221,8 +234,6 @@ } else { # use adp file foreach css [$package_id get_parameter extra_css ""] {::xowiki::Page requireCSS $css} - set template_file [my query_parameter "template_file" \ - [::$package_id get_parameter template_file view-default]] if {![regexp {^[./]} $template_file]} { set template_file /packages/xowiki/www/$template_file @@ -320,7 +331,7 @@ set back_link [$package_id url] } - set index_link [$package_id make_link -privilege public -url "" $package_id {} {}] + set index_link [$package_id make_link -privilege public -link "" $package_id {} {}] set html [$package_id return_page -adp /packages/xowiki/www/edit \ -form f1 \ -variables {item_id edit_form_page_title context formTemplate @@ -397,14 +408,17 @@ my instvar package_id item_id ::xowiki::Page save_tags -user_id [::xo::cc user_id] -item_id $item_id \ -package_id $package_id [my form_parameter new_tags] + ::$package_id returnredirect \ [my query_parameter "return_url" [$package_id url]] } Page instproc popular-tags {} { my instvar package_id item_id parent_id - set limit [my query_parameter "limit" 20] - set href [$package_id package_url]weblog?summary=1 + set limit [my query_parameter "limit" 20] + set weblog_page [$package_id get_parameter weblog_page weblog] + set href [$package_id pretty_link $weblog_page]?summary=1 + set entries [list] db_foreach get_popular_tags \ "select count(*) as nr,tag from xowiki_tags \