- Publicity: Public Only All
richtext-procs.tcl
Utilities to attach files to an object in the context of richtext editors.
- Location:
- packages/attachments/tcl/richtext-procs.tcl
- Created:
- 15 Aug 2017
- Author:
- Gustaf Neumann, Antonio Pisano.
Procedures in this file
- attachments::richtext::file_attach (public)
- attachments::richtext::require_root_folder (private)
Detailed information
attachments::richtext::file_attach (public)
attachments::richtext::file_attach [ -import_file import_file ] \ [ -title title ] [ -mime_type mime_type ] [ -object_id object_id ] \ [ -privilege privilege ] [ -user_id user_id ] \ [ -peeraddr peeraddr ] [ -package_id package_id ]
Insert the provided file to the content repository as a new item and attach it to the specified object_id via the attachment API. This makes sure that the file will be deleted from the content repository, when the provided object_id is deleted. The user must have at least "read" privileges on the object, but other stronger privileges can be supplied via parameter.
- Switches:
- -import_file (optional)
- -title (optional)
- -mime_type (optional)
- -object_id (optional)
- -privilege (optional, defaults to
"read"
)- -user_id (optional)
- -peeraddr (optional)
- -package_id (optional)
- Partial Call Graph (max 5 caller/called nodes):
- Testcases:
- No testcase defined.
attachments::richtext::require_root_folder (private)
attachments::richtext::require_root_folder [ -parent_id parent_id ] \ [ -name name ]
Helper function to find the root folder for ckfinder attachments.
- Switches:
- -parent_id (optional, defaults to
"-100"
)- -name (optional, defaults to
"attachments"
)- Partial Call Graph (max 5 caller/called nodes):
- Testcases:
- No testcase defined.
Content File Source
ad_library { Utilities to attach files to an object in the context of richtext editors. @author Gustaf Neumann, Antonio Pisano. @creation-date 15 Aug 2017 } namespace eval attachments::richtext { d_proc -public file_attach { -import_file -title -mime_type -object_id {-privilege read} -user_id -peeraddr -package_id } { Insert the provided file to the content repository as a new item and attach it to the specified object_id via the attachment API. This makes sure that the file will be deleted from the content repository, when the provided object_id is deleted. The user must have at least "read" privileges on the object, but other stronger privileges can be supplied via parameter. } { permission::require_permission \ -party_id $user_id \ -object_id $object_id \ -privilege $privilege set success 1 # # Create a new item # set name $object_id-[clock clicks -microseconds] if {![info exists title]} { set title $name } set item_id [::content::item::new \ -name $name \ -parent_id [require_root_folder] \ -title $title \ -context_id $object_id \ -creation_user $user_id \ -creation_ip $peeraddr \ -storage_type "file" \ -package_id $package_id \ -tmp_filename $import_file \ -is_live t] # # Attach the file to the object via the attachments API # attachments::attach \ -object_id $object_id \ -attachment_id $item_id return [list \ success $success \ name $name \ item_id $item_id ] } d_proc -private require_root_folder { {-parent_id -100} {-name attachments} } { Helper function to find the root folder for ckfinder attachments. } { set root_folder_id [content::item::get_id \ -root_folder_id $parent_id \ -item_path $name] if {$root_folder_id eq ""} { set root_folder_id [content::item::new \ -name $name \ -parent_id $parent_id] } return $root_folder_id } } # # Local variables: # mode: tcl # tcl-indent-level: 4 # indent-tabs-mode: nil # End: