-- Upgrade script that creates and registers a content template for the -- file_storage_object content type. -- -- @author Ola Hansson create or replace function inline_0 () returns integer as' declare template_id integer; begin -- Create the (default) file_storage_object content type template template_id := content_template__new( ''file-storage-default'', -- name '' @title;noquote@ @context;noquote@ @text;noquote@'', -- text true -- is_live ); -- Register the template for the file_storage_object content type perform content_type__register_template( ''file_storage_object'', -- content_type template_id, -- template_id ''public'', -- use_context ''t'' -- is_default ); return null; end;' language 'plpgsql'; select inline_0(); drop function inline_0(); create function file_storage__new_version ( -- -- Create a new version of a file -- Wrapper for content_revision__new -- varchar, -- cr_revisions.title%TYPE, varchar, -- cr_revisions.description%TYPE, varchar, -- cr_revisions.mime_type%TYPE, integer, -- cr_items.item_id%TYPE, integer, -- acs_objects.creation_user%TYPE, varchar -- acs_objects.creation_ip%TYPE ) returns integer as ' -- cr_revisions.revision_id declare new_version__filename alias for $1; new_version__description alias for $2; new_version__mime_type alias for $3; new_version__item_id alias for $4; new_version__creation_user alias for $5; new_version__creation_ip alias for $6; v_revision_id cr_revisions.revision_id%TYPE; v_folder_id cr_items.parent_id%TYPE; begin -- Create a revision v_revision_id := content_revision__new ( new_version__filename, -- title new_version__description, -- description now(), -- publish_date new_version__mime_type, -- mime_type null, -- nls_language null, -- data (default) new_version__item_id, -- item_id null, -- revision_id now(), -- creation_date new_version__creation_user, -- creation_user new_version__creation_ip -- creation_ip ); -- Make live the newly created revision perform content_item__set_live_revision(v_revision_id); select cr_items.parent_id into v_folder_id from cr_items where cr_items.item_id = new_version__item_id; perform acs_object__update_last_modified(v_folder_id,new_version__creation_user,new_version__creation_ip); perform acs_object__update_last_modified(new_version__item_id,new_version__creation_user,new_version__creation_ip); return v_revision_id; end;' language 'plpgsql';