Index: openacs-4/packages/forums/tcl/messages-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/forums/tcl/messages-procs.tcl,v diff -u -r1.24.2.4 -r1.24.2.5 --- openacs-4/packages/forums/tcl/messages-procs.tcl 6 Jul 2004 15:54:52 -0000 1.24.2.4 +++ openacs-4/packages/forums/tcl/messages-procs.tcl 23 Dec 2004 02:12:54 -0000 1.24.2.5 @@ -18,7 +18,6 @@ {-content:required} {-format "text/plain"} {-user_id ""} - {-posting_date ""} } { create a new message } { @@ -29,13 +28,20 @@ } set original_message_id $message_id - # Prepare the variables for instantiation - set extra_vars [ns_set create] - oacs_util::vars_to_ns_set -ns_set $extra_vars -var_list {forum_id message_id parent_id subject content format user_id} db_transaction { - set message_id [package_instantiate_object -extra_vars $extra_vars forums_message] + set var_list [list \ + [list forum_id $forum_id] \ + [list message_id $message_id] \ + [list parent_id $parent_id] \ + [list subject $subject] \ + [list content $content] \ + [list format $format] \ + [list user_id $user_id]] + + set message_id [package_instantiate_object -var_list $var_list forums_message] + get -message_id $message_id -array message if {[info exists message(state)] && [string equal $message(state) approved]} { do_notifications -message_id $message_id @@ -58,7 +64,7 @@ ad_return_error \ "OACS Internal Error" \ "Error in forums::message::new - $errmsg" - } + } } } @@ -191,8 +197,10 @@ Set the new state for a message Usually used for approval } { - # simple DB update - db_dml update_message_state {} + set var_list [list \ + [list message_id $message_id] \ + [list state $state]] + package_exec_plsql -var_list $var_list forums_message set_state } ad_proc -public forum::message::reject { @@ -224,7 +232,8 @@ notification::request::delete_all -object_id $message_id # Remove the message - db_exec_plsql delete_message {} + set var_list [list [list message_id $message_id]] + package_exec_plsql -var_list $var_list forums_message delete_thread } }