Index: openacs-4/contrib/packages/bcms/tcl/bcms-folder-procs-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/bcms/tcl/bcms-folder-procs-postgresql.xql,v diff -u -r1.3 -r1.4 --- openacs-4/contrib/packages/bcms/tcl/bcms-folder-procs-postgresql.xql 5 Oct 2003 12:28:03 -0000 1.3 +++ openacs-4/contrib/packages/bcms/tcl/bcms-folder-procs-postgresql.xql 13 Oct 2003 17:07:26 -0000 1.4 @@ -48,13 +48,6 @@ - - - - select content_folder__new(:name, :folder_label, :description, :parent_id) - - - select content_folder__delete(:folder_id) Index: openacs-4/contrib/packages/bcms/tcl/bcms-folder-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/bcms/tcl/bcms-folder-procs.tcl,v diff -u -r1.7 -r1.8 --- openacs-4/contrib/packages/bcms/tcl/bcms-folder-procs.tcl 9 Oct 2003 09:57:17 -0000 1.7 +++ openacs-4/contrib/packages/bcms/tcl/bcms-folder-procs.tcl 13 Oct 2003 17:07:27 -0000 1.8 @@ -39,6 +39,9 @@ {-folder_label:required} {-parent_id:required} {-description ""} + {-package_id ""} + {-context_id ""} + {-folder_id ""} } { creates a new folder in cr_folders @@ -50,7 +53,29 @@ @return the folder_id that was created } { - set folder_id [db_exec_plsql create_folder "SQL"] + if { [empty_string_p $context_id] } { + set context_id $parent_id + } + + set extra_vars [ns_set create] + ns_set put $extra_vars label $folder_label + oacs_util::vars_to_ns_set \ + -ns_set $extra_vars \ + -var_list { name parent_id description context_id folder_id } + + db_transaction { + set folder_id [package_instantiate_object \ + -extra_vars $extra_vars \ + -package_name "content_folder" \ + "content_folder"] + + # For some reason, this is not included in the PL/SQL call + if { ![empty_string_p $package_id] } { + db_dml update_package_id { + update cr_folders set package_id = :package_id where folder_id = :folder_id + } + } + } ns_log notice "bcms::folder::create_folder created folder $folder_id" return $folder_id }