Index: openacs-4/packages/xowiki/tcl/includelet-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/includelet-procs.tcl,v diff -u -N -r1.138 -r1.139 --- openacs-4/packages/xowiki/tcl/includelet-procs.tcl 23 Apr 2010 11:29:08 -0000 1.138 +++ openacs-4/packages/xowiki/tcl/includelet-procs.tcl 23 Apr 2010 18:59:59 -0000 1.139 @@ -3139,7 +3139,7 @@ array set "" [::xowiki::PageInstance get_list_from_form_constraints \ -name @table_properties \ -form_constraints [[my form] get_form_constraints -trylocal true]] - set count [[my form] count_usages -publish_status $(publish_status)] + set count [[my form] count_usages -package_id [my package_id] -publish_status $(publish_status)] my label_suffix " ($count)" next } Index: openacs-4/packages/xowiki/tcl/link-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/link-procs.tcl,v diff -u -N -r1.76 -r1.77 --- openacs-4/packages/xowiki/tcl/link-procs.tcl 18 Mar 2010 09:44:28 -0000 1.76 +++ openacs-4/packages/xowiki/tcl/link-procs.tcl 23 Apr 2010 18:59:59 -0000 1.77 @@ -281,7 +281,7 @@ # Class create ::xowiki::Link::file -superclass ::xowiki::Link::image -parameter { - width height align pluginspage pluginurl hidden href target + width height align pluginspage pluginurl hidden href autostart loop volume controls controller mastersound starttime endtime } Index: openacs-4/packages/xowiki/tcl/package-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/package-procs.tcl,v diff -u -N -r1.200 -r1.201 --- openacs-4/packages/xowiki/tcl/package-procs.tcl 23 Apr 2010 11:29:08 -0000 1.200 +++ openacs-4/packages/xowiki/tcl/package-procs.tcl 23 Apr 2010 18:59:59 -0000 1.201 @@ -759,7 +759,8 @@ foreach package [my package_path] { set page [$package resolve_page -simple $simple -lang $lang $object method] if {$page ne ""} { - return $page + $page set_resolve_context -package_id [my id] -parent_id [my folder_id] + return $page } } } @@ -1067,7 +1068,7 @@ if {$allow_cross_package_item_refs} { set referenced_package_id [my resolve_package_path $link rest_link] if {$referenced_package_id != 0 && $referenced_package_id != [my id]} { - #my log "get_page_from_item_ref rekursive $rest_link in $referenced_package_id" + #my log "get_page_from_item_ref recursive $rest_link in $referenced_package_id" return [$referenced_package_id get_page_from_item_ref \ -allow_cross_package_item_refs false \ -use_package_path $use_package_path \ 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.388 -r1.389 --- openacs-4/packages/xowiki/tcl/xowiki-procs.tcl 23 Apr 2010 11:29:08 -0000 1.388 +++ openacs-4/packages/xowiki/tcl/xowiki-procs.tcl 23 Apr 2010 18:59:59 -0000 1.389 @@ -1887,16 +1887,28 @@ PageTemplate parameter { {render_adp 0} } - PageTemplate instproc count_usages {{-publish_status ready}} { - return [::xowiki::PageTemplate count_usages -item_id [my item_id] -publish_status $publish_status] + PageTemplate instproc count_usages {{-package_id 0} {-publish_status ready}} { + return [::xowiki::PageTemplate count_usages -package_id $package_id \ + -item_id [my item_id] -publish_status $publish_status] } - PageTemplate proc count_usages {-item_id:required {-publish_status ready}} { + PageTemplate proc count_usages {{-package_id:integer 0} -item_id:required {-publish_status ready}} { set publish_status_clause [::xowiki::Includelet publish_status_clause -base_table i $publish_status] + if {$package_id} { + set bt "xowiki_page_instancei" + set package_clause "and object_package_id = $package_id" + } else { + set bt "xowiki_page_instance" + set package_clause "" + } + my ds "select count(page_instance_id) from $bt, cr_items i \ + where page_template = $item_id \ + $publish_status_clause $package_clause \ + and page_instance_id = coalesce(i.live_revision,i.latest_revision)" set count [db_string [my qn count_usages] \ - "select count(page_instance_id) from xowiki_page_instance, cr_items i \ + "select count(page_instance_id) from $bt, cr_items i \ where page_template = $item_id \ - $publish_status_clause \ + $publish_status_clause $package_clause \ and page_instance_id = coalesce(i.live_revision,i.latest_revision)"] return $count } @@ -2048,8 +2060,9 @@ @return either the property value or a default value } { - #my msg "get $var from template" set form_obj [my get_template_object] + #my msg "get $var from template form_obj=$form_obj [$form_obj info class]" + # The resulting page should be either a Form (PageTemplate) or # a FormPage (PageInstance) # @@ -2061,7 +2074,7 @@ # template does not know about the logic with "_" (just "property" does). # if {[$form_obj istype ::xowiki::PageInstance]} { - #my msg "returning property $var from parent formpage => '[$form_obj property $var]'" + #my msg "returning property $var from parent formpage $form_obj => '[$form_obj property $var]'" return [$form_obj property $var] } @@ -2127,8 +2140,9 @@ next } - PageInstance instproc count_usages {{-publish_status ready}} { - return [::xowiki::PageTemplate count_usages -item_id [my item_id] -publish_status $publish_status] + PageInstance instproc count_usages {{-package_id 0} {-publish_status ready}} { + return [::xowiki::PageTemplate count_usages -package_id $package_id \ + -item_id [my item_id] -publish_status $publish_status] } # @@ -2323,8 +2337,12 @@ # Methods of ::xowiki::FormPage # FormPage instproc initialize_loaded_object {} { + #my msg "[my name] [my info class]" if {[my exists page_template]} { - ::xo::db::CrClass get_instance_from_db -item_id [my page_template] + set p [::xo::db::CrClass get_instance_from_db -item_id [my page_template]] + # The Form might come from a different package type (e.g. a workflow) + # make sure, the source package is available + ::xo::Package require [$p package_id] } my array set __ia [my instance_attributes] next @@ -2433,20 +2451,22 @@ } } #my msg filter_clause=$filter_clause - + set package_clause "and object_package_id = $package_id" set sql [::xowiki::FormPage instance_select_query \ -select_attributes $sql_atts \ -from_clause "" \ -where_clause " bt.page_template in ([join $base_item_ids ,]) \ - $publish_status_clause $filter_clause $extra_where_clause" \ + $publish_status_clause $filter_clause $package_clause \ + $extra_where_clause" \ -orderby $orderby \ -with_subtypes false \ -parent_id $parent_id \ -page_size $page_size \ -page_number $page_number \ -base_table xowiki_form_pagei \ ] - #my log $sql + #my ds $sql + # # When we query all attributes, we return objects named after the # item_id (like for single fetches) @@ -2668,6 +2688,7 @@ FormPage instproc get_value {{-field_spec ""} {-cr_field_spec ""} before varname} { + #my msg "varname=$varname [my exists_property $varname]" # # Read a property (instance attribute) and return # its pretty value in variable substitutions. 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.251 -r1.252 --- openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl 23 Apr 2010 11:29:08 -0000 1.251 +++ openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl 23 Apr 2010 18:59:59 -0000 1.252 @@ -24,16 +24,18 @@ set package_url "[ns_conn location][$package_id package_url]" } + set tags "" if {[$package_id get_parameter "with_tags" 1] && ![my exists_query_parameter no_tags] && [::xo::cc user_id] != 0 } { set tag_content [my include my-tags] set tag_includelet [my set __last_includelet] - set tags [$tag_includelet set tags] + if {[$tag_includelet exists tags]} { + set tags [$tag_includelet set tags] + } } else { set tag_content "" - set tags "" } if {[$package_id get_parameter "with_digg" 0] && [info exists url]} { @@ -1048,6 +1050,7 @@ if {$field_spec eq ""} {set field_spec [my get_short_spec @fields]} return [next -cr_field_spec $cr_field_spec -field_spec $field_spec $field_name] } + FormPage instproc create_form_fields {field_names} { set form_fields [my create_category_fields] foreach att $field_names {