Index: openacs-4/packages/lors/tcl/lors-cr-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lors/tcl/lors-cr-procs.tcl,v diff -u -r1.6 -r1.7 --- openacs-4/packages/lors/tcl/lors-cr-procs.tcl 7 Jun 2006 13:52:01 -0000 1.6 +++ openacs-4/packages/lors/tcl/lors-cr-procs.tcl 17 Nov 2008 13:35:02 -0000 1.7 @@ -1,6 +1,6 @@ ad_library { - + @creation-date 2003-10-13 @author Ernie Ghiglione (ErnieG@mm.st) @cvs-id $Id$ @@ -33,14 +33,14 @@ @param fs_dir File System directory } { set files [list] - foreach f [glob -no complain [file join $fs_dir * ]] { - set type [file type $f] - switch $type { - file { - lappend files $f - } - } - } + foreach f [glob -no complain [file join $fs_dir * ]] { + set type [file type $f] + switch $type { + file { + lappend files $f + } + } + } return $files } @@ -55,14 +55,14 @@ @param fs_dir File System directory } { set directories [list] - foreach dir [glob -no complain [file join $fs_dir * ]] { - set type [file type $dir] - switch $type { - directory { - lappend directories $dir - } - } - } + foreach dir [glob -no complain [file join $fs_dir * ]] { + set type [file type $dir] + switch $type { + directory { + lappend directories $dir + } + } + } return $directories } @@ -94,30 +94,32 @@ # regsub -all { +} [string tolower $folder_name] {_} name #return [list $name $folder_name $parent_id $user_id $creation_ip] + # create the folder -# db_transaction { + set folder_id [db_exec_plsql folder_create { + select lors__new_folder (:name, :folder_name, :parent_id, :user_id, :creation_ip); + }] - # create the folder + content::folder::register_content_type \ + -folder_id $folder_id \ + -content_type "content_revision" \ + -include_subtypes "t" - set folder_id [db_exec_plsql folder_create { - select lors__new_folder (:name, :folder_name, :parent_id, :user_id, :creation_ip); - }] + content::folder::register_content_type \ + -folder_id $folder_id \ + -content_type "content_folder" \ + -include_subtypes "t" - content::folder::register_content_type -folder_id $folder_id -content_type "content_revision" \ - -include_subtypes "t" - content::folder::register_content_type -folder_id $folder_id -content_type "content_folder" \ - -include_subtypes "t" - content::folder::register_content_type -folder_id $folder_id -content_type "content_symlink" \ - -include_subtypes "t" - content::folder::register_content_type -folder_id $folder_id -content_type "content_extlink" \ - -include_subtypes "t" + content::folder::register_content_type \ + -folder_id $folder_id \ + -content_type "content_symlink" \ + -include_subtypes "t" - -# } on_error { -# ad_return_error "[_ lors.lt_Error_inserting_folde]" "[_ lors.The_error_was_errmsg]" -# error "[_ lors.The_error_was_errmsg]" -# ad_script_abort -# } + content::folder::register_content_type \ + -folder_id $folder_id \ + -content_type "content_extlink" \ + -include_subtypes "t" + return $folder_id } @@ -128,51 +130,60 @@ {-indb_p:required} } { Adds a bunch of files to a folder in the CR - Returns a list with full_path_to_file, mime-type, parent_id, + Returns a list with full_path_to_file, mime-type, parent_id, file_id, version_id, cr_file, file size. @param parent_id Folder's parent_id where the files will be put @param files All files for the parent_id folder come in one list @param indb_p Whether this file-storage instance (we are about to use) stores files in the file system or in the db - + } { # Get the user set user_id [ad_conn user_id] - + # Get the ip set creation_ip [ad_conn peeraddr] set retlist [list] foreach fle $files { - regexp {[^//\\]+$} $fle filename - set title $filename + regexp {[^//\\]+$} $fle filename + set title $filename set mime_type [cr_filename_to_mime_type -create $fle] # insert file into the CR -# db_transaction { - set description "uploaded using LORs" + set description "uploaded using LORs" - # add file - set file_id [content::item::new -name $title -parent_id $parent_id -creation_user $user_id \ - -creation_ip $creation_ip] + # add file + set file_id [content::item::new \ + -name $title \ + -parent_id $parent_id \ + -creation_user $user_id \ + -creation_ip $creation_ip] - # add revision - set version_id [content::revision::new -title $title -description $description -mime_type $mime_type \ - -creation_user $user_id -creation_ip $creation_ip -item_id $file_id -is_live "t"] + # add revision + set version_id [content::revision::new \ + -title $title \ + -description $description \ + -mime_type $mime_type \ + -creation_user $user_id \ + -creation_ip $creation_ip \ + -item_id $file_id \ + -is_live "t"] - # move the actual file into the CR - set cr_file [cr_create_content_file $file_id $version_id $fle] - # get the size - set file_size [cr_file_size $cr_file] - - # update the file path in the CR and the size on cr_revisions - db_dml update_revi "update cr_revisions set content = '$cr_file', content_length = $file_size where revision_id = :version_id" + # move the actual file into the CR + set cr_file [cr_create_content_file $file_id $version_id $fle] -# } + # get the size + set file_size [cr_file_size $cr_file] + # update the file path in the CR and the size on cr_revisions + db_dml update_revi \ + "update cr_revisions set content = '$cr_file', + content_length = $file_size where revision_id = :version_id" + lappend retlist [list $fle $mime_type $parent_id $file_id $version_id $cr_file $file_size] } return $retlist @@ -183,11 +194,12 @@ -name:required -folder_id:required } { - Get the item_id of a file + Get the item_id of a file } { if {[empty_string_p $folder_id]} { - set package_id [ad_conn package_id] - set folder_id [fs_get_root_folder -package_id $package_id] + set package_id [ad_conn package_id] + set folder_id [fs_get_root_folder -package_id $package_id] } - return [db_exec_plsql get_item_id "select content_item__get_id ( :name, :folder_id, 'f' )"] -} \ No newline at end of file + return [db_exec_plsql get_item_id \ + "select content_item__get_id ( :name, :folder_id, 'f' )"] +}