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 -r1.43 -r1.44
--- openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl 15 Mar 2007 12:10:49 -0000 1.43
+++ openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl 17 Mar 2007 23:13:21 -0000 1.44
@@ -9,21 +9,70 @@
namespace eval ::xowiki {
+
+ Page instproc htmlFooter {{-content ""}} {
+ my instvar package_id description
+ if {[my exists __no_footer]} {return ""}
- 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 footer "
"
+
+ if {$description eq ""} {
+ set description [my get_description $content]
}
- 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] {, }]
+
+ if {[ns_conn isconnected]} {
+ set url "[ns_conn location][::xo::cc url]"
+ set package_url "[ns_conn location][$package_id package_url]"
+ }
+
+ if {[$package_id get_parameter "with_tags" 1] &&
+ ![my exists_query_parameter no_tags] &&
+ [::xo::cc user_id] != 0
+ } {
+ set tag_content "[my include_portlet my-tags]
"
+ set tag_includelet [my set __last_includelet]
+ set tags [$tag_includelet set tags]
+ } else {
+ set tag_content ""
+ set tags ""
+ }
+
+ if {[$package_id get_parameter "with_digg" 0] && [info exists url]} {
+ append footer "" \
+ [my include_portlet [list digg -description $description -url $url]] "
\n"
+ }
+
+ if {[$package_id get_parameter "with_delicious" 0] && [info exists url]} {
+ append footer "" \
+ [my include_portlet [list delicious -description $description -url $url -tags $tags]] \
+ "
\n"
+ }
+
+ if {[$package_id get_parameter "with_yahoo_publisher" 0] && [info exists package_url]} {
+ append footer "" \
+ [my include_portlet [list my-yahoo-publisher \
+ -publisher [::xo::get_user_name [::xo::cc user_id]] \
+ -rssurl "$package_url?rss"]] \
+ "
\n"
+ }
+
+ append footer [my include_portlet my-references]
+
+ if {[$package_id get_parameter "show_per_object_categories" 1]} {
+ append footer [my include_portlet my-categories]
+ set categories_includelet [my set __last_includelet]
+ }
+
+ append footer $tag_content
+
+ if {[$package_id get_parameter "with_general_comments" 0] &&
+ ![my exists_query_parameter no_gc]} {
+ append footer [my include_portlet my-general-comments]
+ }
+
+ return "$footer
\n"
}
+
Page instproc view {} {
# view is used only for the toplevel call, when the xowiki page is viewed
@@ -36,11 +85,12 @@
[::$package_id get_parameter template_file view-default]]
if {[my isobject ::xowiki::$template_file]} {
- $template_file before_render
+ $template_file before_render [self]
}
set content [my render]
my log "--after render"
+ set footer [my htmlFooter -content $content]
set top_portlets ""
set vp [$package_id get_parameter "top_portlet" ""]
@@ -59,23 +109,9 @@
array set views_data [views::get -object_id $item_id]
}
- #my log "--after user_tracking"
- set references [my references]
- #my log "--after references = <$references>"
-
# export title, name and text into current scope
my instvar title name text
- set tags ""
- set no_tags 1
- if {[$package_id get_parameter "with_tags" 1] &&
- ![my exists_query_parameter no_tags]} {
- # only activate tags when the user is logged in
- set no_tags [expr {[::xo::cc user_id] == 0}]
- if {!$no_tags} {set tags_with_links [my render_my_tags tags]}
- }
- #my log "--after tags"
-
### this was added by dave to address a problem with notifications
### however, this does not work, when e.g. a page is renamed.
#set return_url [ad_return_url]
@@ -87,8 +123,7 @@
if {[$package_id get_parameter "with_notifications" 1]} {
if {[::xo::cc user_id] != 0} { ;# notifications require login
set notifications_return_url [expr {[info exists return_url] ? $return_url : [ad_return_url]}]
- set notification_type [notification::type::get_type_id \
- -short_name xowiki_notif]
+ set notification_type [notification::type::get_type_id -short_name xowiki_notif]
set notification_text "Subscribe the XoWiki instance"
set notification_subscribe_link \
[export_vars -base /notifications/request-new \
@@ -102,83 +137,7 @@
}
}
#my log "--after notifications [info exists notification_image]"
-
- if {[$package_id get_parameter "show_per_object_categories" 1]} {
- set entries [list]
- set href [$package_id package_url]weblog?summary=1
- foreach cat_id [category::get_mapped_categories $item_id] {
- foreach {category_id category_name tree_id tree_name} [category::get_data $cat_id] break
- #my log "--cat $cat_id $category_id $category_name $tree_id $tree_name"
- set entry "$category_name ($tree_name)"
- if {[info exists notification_image]} {
- set notification_text "Subscribe category $category_name in tree $tree_name"
- set cat_notif_link [export_vars -base /notifications/request-new \
- {{return_url $notifications_return_url} \
- {pretty_name $notification_text} \
- {type_id $notification_type} \
- {object_id $category_id}}]
- append entry " " \
- ""
- }
- lappend entries $entry
- }
- set per_object_categories_with_links [join $entries {, }]
- }
- #my log "--after tags"
-
- if {[$package_id get_parameter "with_general_comments" 0] &&
- ![my exists_query_parameter no_gc]} {
- set gc_return_url [$package_id url]
- set gc_link [general_comments_create_link -object_name $title $item_id $gc_return_url]
- set gc_comments [general_comments_get_comments $item_id $gc_return_url]
- } else {
- set gc_link ""
- set gc_comments ""
- }
- #my log "--after gc title=$title"
-
- if {[$package_id get_parameter "with_digg" 0] && [ns_conn isconnected]} {
- set digg_description [my set description]
- if {$digg_description eq ""} {
- set digg_description [ad_html_text_convert -from text/html -to text/plain -- $content]
- }
- set digg_link [export_vars -base "http://digg.com/submit" {
- {phase 2}
- {url "[ns_conn location][::xo::cc url]"}
- {title "[string range $title 0 74]"}
- {body_text "[string range $digg_description 0 349]"}
- }]
- }
- if {[$package_id get_parameter "with_delicious" 0] && [ns_conn isconnected]} {
- set delicious_description [my set description]
- if {$delicious_description eq ""} {
- set delicious_description [ad_html_text_convert -from text/html -to text/plain -- $content]
- }
- # the following opens a window, where a user can edit the posted info.
- # however, it seems not possible to add tags this way automatically.
- # Alternatively, one could use the api as descibed below; this allows
- # tags, but no editing...
- # http://farm.tucows.com/blog/_archives/2005/3/24/462869.html#adding
- set delicious_link [export_vars -base "http://del.icio.us/post" {
- {v 4}
- {url "[ns_conn location][::xo::cc url]"}
- {title "[string range $title 0 79]"}
- {notes "[string range $delicious_description 0 199]"}
- tags
- }]
- }
- #my log "--after delicious"
-
- set my_yahoo_publisher [$package_id get_parameter "my_yahoo_publisher" ""]
- if {$my_yahoo_publisher ne "" && [ns_conn isconnected]} {
- set my_yahoo_publisher [ad_urlencode $my_yahoo_publisher]
- set feedname [ad_urlencode [$folder_id set title]]
- set rssurl [ad_urlencode "[ad_url][$package_id package_url]?rss"]
- set my_yahoo_link "http://us.rd.yahoo.com/my/atm/$my_yahoo_publisher/$feedname/*http://add.my.yahoo.com/rss?url=$rssurl"
- }
-
set master [$package_id get_parameter "master" 1]
#if {[my exists_query_parameter "edit_return_url"]} {
# set return_url [my query_parameter "edit_return_url"]
@@ -195,8 +154,6 @@
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 -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 ""
if {[$package_id get_parameter use_connection_locale 0]} {
$package_id get_name_and_lang_from_path \
@@ -213,11 +170,6 @@
}
}
- foreach i [my array names lang_links] {
- set lang_links($i) [join [my set lang_links($i)] ", "]
- #my log "--lang_links($i) = '$lang_links($i)'"
- }
-
my log "--after context delete_link=$delete_link "
set template [$folder_id get_payload template]
set page [self]
@@ -240,16 +192,14 @@
}
set header_stuff [::xowiki::Page header_stuff]
$package_id return_page -adp $template_file -variables {
- references name title item_id page context header_stuff return_url
- content references lang_links package_id
+ name title item_id page context header_stuff return_url
+ content package_id
rev_link edit_link delete_link new_link admin_link index_link
- tags no_tags tags_with_links save_tag_link popular_tags_link
create_in_req_locale_link req_lang
- per_object_categories_with_links
- digg_link delicious_link my_yahoo_link
- gc_link gc_comments notification_subscribe_link notification_image
+ notification_subscribe_link notification_image
top_portlets page
views_data
+ footer
}
}
} else {
@@ -337,7 +287,7 @@
-variables {item_id edit_form_page_title context formTemplate
view_link back_link rev_link index_link}]
template::util::lpop parse_level
- my log "--e html length [string length $html]"
+ #my log "--e html length [string length $html]"
return $html
}