Index: openacs-4/packages/imsld/tcl/imsld-cp-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/imsld/tcl/imsld-cp-procs.tcl,v diff -u -r1.2 -r1.3 --- openacs-4/packages/imsld/tcl/imsld-cp-procs.tcl 19 Sep 2005 17:20:15 -0000 1.2 +++ openacs-4/packages/imsld/tcl/imsld-cp-procs.tcl 15 Nov 2005 17:20:24 -0000 1.3 @@ -148,6 +148,7 @@ {-user_id ""} {-creation_ip ""} {-creation_date ""} + {-acs_object_id ""} {-parent_id ""} -edit:boolean } { @@ -162,6 +163,7 @@ @option user_id user that adds the resource. [ad_conn user_id] used by default. @option creation_ip ip-address of the user that adds the resource. [ad_conn peeraddr] used by default. @option creation_date Creation date of the resource. [dt_sysdate] used by default. + @option acs_object_id object_id of the objec resource @param parent_id Identifier of the parent folder @option edit Are we editing the resource? } { @@ -203,6 +205,7 @@ -attributes [list [list manifest_id $manifest_id] \ [list identifier $identifier] \ [list type $type] \ + [list acs_object_id $acs_object_id] \ [list href $href]]] return $item_id Index: openacs-4/packages/imsld/tcl/imsld-parse-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/imsld/tcl/imsld-parse-procs.tcl,v diff -u -r1.15 -r1.16 --- openacs-4/packages/imsld/tcl/imsld-parse-procs.tcl 15 Nov 2005 11:01:24 -0000 1.15 +++ openacs-4/packages/imsld/tcl/imsld-parse-procs.tcl 15 Nov 2005 17:20:24 -0000 1.16 @@ -1080,21 +1080,6 @@ } } - # item - set conference_item [$conference child all imsld:item] - imsld::parse::validate_multiplicity -tree $conference_item -multiplicity 1 -element_name conference-item -equal - set item_list [imsld::parse::parse_and_create_item -manifest $manifest \ - -manifest_id $manifest_id \ - -item_node $conference_item \ - -parent_id $parent_id \ - -tmp_dir $tmp_dir] - - set imsld_item_id [lindex $item_list 0] - if { !$imsld_item_id } { - # an error happened, abort and return the list whit the error - return $item_list - } - # create the service set service_id [imsld::item_revision_new -attributes [list [list environment_id $environment_id] \ [list class $service_class] \ @@ -1105,6 +1090,49 @@ -content_type imsld_service \ -parent_id $parent_id] + if { [string eq $conference_type "asynchronous"] } { + set community_id [dotlrn_community::get_community_id] + set forums_package_id [db_string get_assessment_package_id {select dotlrn_community_applets.package_id from dotlrn_community_applets join apm_packages on (dotlrn_community_applets.package_id=apm_packages.package_id) where community_id = :community_id and package_key='forums'}] + set acs_object_id [forum::new -name $title -package_id $forums_package_id] + + set resource_id [imsld::cp::resource_new -manifest_id $manifest_id \ + -identifier "forumresource-$service_id" \ + -type "forum" \ + -href "" \ + -acs_object_id $acs_object_id \ + -parent_id $parent_id] + + set imsld_item_id [imsld::item_revision_new -title $title \ + -content_type imsld_item \ + -attributes [list [list identifier "forumitem-$service_id"] \ + [list is_visible_p "t"] \ + [list parameters ""] \ + [list identifierref "forumresource-$service_id"] \ + [list parent_item_id {}]] \ + -parent_id $parent_id] + + # map item with resource + relation_add imsld_item_res_rel $imsld_item_id $resource_id + + + } else { + # item + set conference_item [$conference child all imsld:item] + imsld::parse::validate_multiplicity -tree $conference_item -multiplicity 1 -element_name conference-item -equal + set item_list [imsld::parse::parse_and_create_item -manifest $manifest \ + -manifest_id $manifest_id \ + -item_node $conference_item \ + -parent_id $parent_id \ + -tmp_dir $tmp_dir] + + set imsld_item_id [lindex $item_list 0] + if { !$imsld_item_id } { + # an error happened, abort and return the list whit the error + return $item_list + } + + } + # create the conference service set conference_id [imsld::item_revision_new -attributes [list [list service_id $service_id] \ [list manager_id $manager_id] \ @@ -1113,7 +1141,7 @@ -content_type imsld_conference_service \ -parent_id $parent_id \ -title $title] - + # participants set participant_list [$conference child all imsld:participant] imsld::parse::validate_multiplicity -tree $participant_list -multiplicity 1 -element_name conference-participant -greather_than