Index: openacs-4/packages/xowiki/tcl/xowiki-portlet-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/Attic/xowiki-portlet-procs.tcl,v diff -u -N -r1.51 -r1.52 --- openacs-4/packages/xowiki/tcl/xowiki-portlet-procs.tcl 14 May 2007 07:20:32 -0000 1.51 +++ openacs-4/packages/xowiki/tcl/xowiki-portlet-procs.tcl 14 May 2007 13:27:33 -0000 1.52 @@ -422,7 +422,7 @@ } else { set tree_select_clause "" } - + ::xo::db::limit_query -limit $max_entries -sql -order db_foreach [my qn get_pages] \ "select c.category_id, ci.name, r.title, \ to_char(r.publish_date,'YYYY-MM-DD HH24:MI:SS') as publish_date \ @@ -487,19 +487,21 @@ } db_foreach [my qn get_pages] \ - "select i.name, r.title, p.page_id, \ - to_char(r.publish_date,'YYYY-MM-DD HH24:MI:SS') as publish_date \ + [::xo::db::sql limit_select \ + -sql "i.name, r.title, p.page_id, r.publish_date, \ + to_char(r.publish_date,'YYYY-MM-DD HH24:MI:SS') as formatted_date \ from cr_items i, cr_revisions r, xowiki_page p \ where i.parent_id = [$package_id folder_id] \ and r.revision_id = i.live_revision \ and p.page_id = r.revision_id \ - and i.publish_status <> 'production' \ - order by r.publish_date desc limit $max_entries\ - " { + and i.publish_status <> 'production'" \ + -order "publish_date desc" \ + -limit $max_entries ] { + t1 add \ -title $title \ -title.href [$package_id pretty_link $name] \ - -date $publish_date + -date $formatted_date if {$allow_edit} { #set page_link [$package_id pretty_link $name] @@ -554,17 +556,19 @@ } db_foreach [my qn get_pages] \ - "select r.title,i.name, to_char(x.time,'YYYY-MM-DD HH24:MI:SS') as visited_date \ + [::xo::db::sql limit_select \ + -sql "r.title,i.name, to_char(time,'YYYY-MM-DD HH24:MI:SS') as visited_date \ from xowiki_last_visited x, xowiki_page p, cr_items i, cr_revisions r \ where x.page_id = i.item_id and i.live_revision = p.page_id \ and r.revision_id = p.page_id and x.user_id = [::xo::cc user_id] \ - and x.package_id = $package_id and i.publish_status <> 'production' \ - order by x.time desc limit $max_entries \ - " { - t1 add \ - -title $title \ - -title.href [$package_id pretty_link $name] - } + and x.package_id = $package_id and i.publish_status <> 'production'" \ + -order "visited_date desc" \ + -limit $max_entries] \ + { + t1 add \ + -title $title \ + -title.href [$package_id pretty_link $name] + } return [t1 asHTML] } } @@ -604,19 +608,20 @@ Field users -label Visitors -html { align right } } db_foreach [my qn get_pages] \ - "select count(x.user_id) as nr_different_users, x.page_id, r.title,i.name \ + [::xo::db::sql limit_select \ + -sql "count(x.user_id) as nr_different_users, x.page_id, r.title,i.name \ from xowiki_last_visited x, xowiki_page p, cr_items i, cr_revisions r \ where x.page_id = i.item_id and i.live_revision = p.page_id and r.revision_id = p.page_id \ and x.package_id = $package_id and i.publish_status <> 'production' \ and time > now() - '$interval'::interval \ - group by x.page_id, r.title, i.name \ - order by nr_different_users desc limit $max_entries " \ - { - t1 add \ - -title $title \ - -title.href [$package_id pretty_link $name] \ - -users $nr_different_users - } + group by x.page_id, r.title, i.name" \ + -order "nr_different_users desc" \ + -limit $max_entries ] { + t1 add \ + -title $title \ + -title.href [$package_id pretty_link $name] \ + -users $nr_different_users + } } else { TableWidget t1 -volatile \ @@ -626,19 +631,20 @@ Field users -label Visitors -html { align right } } db_foreach [my qn get_pages] \ - "select sum(x.count), count(x.user_id) as nr_different_users, x.page_id, r.title,i.name \ + [::xo::db::sql limit_select \ + -sql "sum(x.count) as sum, count(x.user_id) as nr_different_users, x.page_id, r.title,i.name \ from xowiki_last_visited x, xowiki_page p, cr_items i, cr_revisions r \ where x.page_id = i.item_id and i.live_revision = p.page_id and r.revision_id = p.page_id \ and x.package_id = $package_id and i.publish_status <> 'production' \ - group by x.page_id, r.title, i.name \ - order by sum desc limit $max_entries " \ - { - t1 add \ - -title $title \ - -title.href [$package_id pretty_link $name] \ - -users $nr_different_users \ - -count $sum - } + group by x.page_id, r.title, i.name " \ + -order "sum desc" \ + -limit $max_entries] { + t1 add \ + -title $title \ + -title.href [$package_id pretty_link $name] \ + -users $nr_different_users \ + -count $sum + } } return [t1 asHTML] @@ -951,30 +957,35 @@ } set select_count "select count(distinct user_id) from xowiki_last_visited " - if {!$summary} { - set select_users "select user_id,max(time) as max_time from xowiki_last_visited " - set limit_clause "limit $max_users" - set order_clause "group by user_id order by max_time desc $limit_clause" - } - set where_clause "\ - where package_id = $package_id \ - and time > now() - '$interval'::interval " - set when "
in last $interval" if {[info exists page] && $page eq "this"} { my instvar __including_page - append where_clause "and page_id = [$__including_page item_id] " + set extra_where_clause "and page_id = [$__including_page item_id] " set what " on page [$__including_page title]" } else { + set extra_where_clause "" set what " in community [$package_id instance_name]" } + if {!$summary} { + set select_users "user_id, to_char(max(time),'YYYY-MM-DD HH24:MI:SS') as max_time from xowiki_last_visited " + } + #set time_comparison "time > now() - '$interval'::interval" + set since [clock format [clock scan "-$interval"] -format "%Y-%m-%d %T"] + set time_comparison "time > TO_TIMESTAMP('$since','YYYY-MM-DD HH24:MI:SS')" + set where_clause "where package_id = $package_id and $time_comparison $extra_where_clause" + set when "
in last $interval" + set output "" if {$summary} { set count [db_string [my qn presence_count_users] "$select_count $where_clause"] } else { - set values [db_list_of_lists [my qn get_users] "$select_users $where_clause $order_clause"] + set values [db_list_of_lists [my qn get_users] \ + [::xo::db::sql limit_select \ + -sql "$select_users $where_clause group by user_id " \ + -limit $max_users \ + -order "max_time desc"]] set count [llength $values] if {$count == $max_users} { # we have to check, whether there were more users... Index: openacs-4/packages/xowiki/tcl/xowiki-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/xowiki-procs.tcl,v diff -u -N -r1.97 -r1.98 --- openacs-4/packages/xowiki/tcl/xowiki-procs.tcl 11 May 2007 11:49:20 -0000 1.97 +++ openacs-4/packages/xowiki/tcl/xowiki-procs.tcl 14 May 2007 13:27:33 -0000 1.98 @@ -94,7 +94,7 @@ # ::xo::db::require table xowiki_references \ "reference integer references cr_items(item_id) on delete cascade, - link_type text, + link_type [::xowiki::Page map_sql_datatype text], page integer references cr_items(item_id) on delete cascade" ::xo::db::require index -table xowiki_references -col reference @@ -114,7 +114,7 @@ "item_id integer references cr_items(item_id) on delete cascade, package_id integer, user_id integer references users(user_id), - tag text, + tag [::xowiki::Page map_sql_datatype text], time timestamp" ::xo::db::require index -table xowiki_tags -col user_id,item_id ::xo::db::require index -table xowiki_tags -col tag,package_id @@ -124,10 +124,11 @@ ::xo::db::require index -table xowiki_page -col page_order -using gist } + set sortkeys [expr {[db_driverkey ""] eq "oracle" ? "" : ", ci.tree_sortkey, ci.max_child_sortkey"}] ::xo::db::require view xowiki_page_live_revision \ "select p.*, cr.*,ci.parent_id, ci.name, ci.locale, ci.live_revision, \ ci.latest_revision, ci.publish_status, ci.content_type, ci.storage_type, \ - ci.storage_area_key, ci.tree_sortkey, ci.max_child_sortkey \ + ci.storage_area_key $sortkeys \ from xowiki_page p, cr_items ci, cr_revisions cr \ where p.page_id = ci.live_revision \ and p.page_id = cr.revision_id \ Index: openacs-4/packages/xowiki/www/oacs-view.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/oacs-view.adp,v diff -u -N -r1.34 -r1.35 --- openacs-4/packages/xowiki/www/oacs-view.adp 2 May 2007 10:13:40 -0000 1.34 +++ openacs-4/packages/xowiki/www/oacs-view.adp 14 May 2007 13:27:34 -0000 1.35 @@ -1,4 +1,4 @@ - + @title;noquote@ @context;noquote@ Index: openacs-4/packages/xowiki/www/oacs-view2.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/oacs-view2.adp,v diff -u -N -r1.13 -r1.14 --- openacs-4/packages/xowiki/www/oacs-view2.adp 2 May 2007 10:13:40 -0000 1.13 +++ openacs-4/packages/xowiki/www/oacs-view2.adp 14 May 2007 13:27:34 -0000 1.14 @@ -1,4 +1,4 @@ - + @title;noquote@ @context;noquote@ Index: openacs-4/packages/xowiki/www/oacs-view3.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/oacs-view3.adp,v diff -u -N -r1.8 -r1.9 --- openacs-4/packages/xowiki/www/oacs-view3.adp 2 May 2007 10:13:40 -0000 1.8 +++ openacs-4/packages/xowiki/www/oacs-view3.adp 14 May 2007 13:27:34 -0000 1.9 @@ -1,4 +1,4 @@ - + @title;noquote@ @context;noquote@ Index: openacs-4/packages/xowiki/www/view-default.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/view-default.adp,v diff -u -N -r1.30 -r1.31 --- openacs-4/packages/xowiki/www/view-default.adp 2 May 2007 10:13:40 -0000 1.30 +++ openacs-4/packages/xowiki/www/view-default.adp 14 May 2007 13:27:34 -0000 1.31 @@ -1,4 +1,4 @@ - + @title;noquote@ @context;noquote@ Index: openacs-4/packages/xowiki/www/view-links.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/view-links.adp,v diff -u -N -r1.20 -r1.21 --- openacs-4/packages/xowiki/www/view-links.adp 2 May 2007 10:13:40 -0000 1.20 +++ openacs-4/packages/xowiki/www/view-links.adp 14 May 2007 13:27:34 -0000 1.21 @@ -1,4 +1,4 @@ - +
Index: openacs-4/packages/xowiki/www/view-plain.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/view-plain.adp,v diff -u -N -r1.16 -r1.17 --- openacs-4/packages/xowiki/www/view-plain.adp 2 May 2007 10:13:40 -0000 1.16 +++ openacs-4/packages/xowiki/www/view-plain.adp 14 May 2007 13:27:34 -0000 1.17 @@ -1,4 +1,4 @@ - +