Index: openacs-4/packages/edit-this-page/sql/postgresql/upgrade/upgrade-1.3.sql-1.5.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/edit-this-page/sql/postgresql/upgrade/Attic/upgrade-1.3.sql-1.5.sql,v diff -u -N --- openacs-4/packages/edit-this-page/sql/postgresql/upgrade/upgrade-1.3.sql-1.5.sql 1 Dec 2003 14:07:21 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,102 +0,0 @@ ---add new pl/pgsql proc ---Dave Bauer dave@thedesignexperience.org ---2003-09-22 - -create or replace function etp__create_page(integer, integer, varchar, varchar, varchar) -returns integer as ' -declare - p_item_id alias for $1; - p_package_id alias for $2; - p_name alias for $3; - p_title alias for $4; - p_content_type alias for $5; -- default null -> use content_revision - v_item_id integer; - v_revision_id integer; - v_folder_id integer; -begin - if p_item_id is null then - v_item_id := acs_object__new(null, ''content_item'', now(), null, null, p_package_id); - else - v_item_id := acs_object__new(p_item_id, ''content_item'', now(), null, null, p_package_id); - end if; - - v_folder_id := etp__get_folder_id(p_package_id); - --- due to a change in acs_object__delete we can reference the actual --- object type we want --- using this we can more easily search, but we will have to create a service --- contract for each custom content type --- we define a default etp_page_revision and service contract to go with it --- make sure to subtype from etp_page_revision for any custom types --- 2003-01-12 DaveB - - insert into cr_items ( - item_id, parent_id, name, content_type - ) values ( - v_item_id, v_folder_id, p_name, p_content_type - ); - - v_revision_id := acs_object__new(null, p_content_type, now(), null, null, v_item_id); - - insert into cr_revisions (revision_id, item_id, title, - publish_date, mime_type) - values (v_revision_id, v_item_id, p_title, now(), ''text/html''); - - update cr_items set live_revision = v_revision_id - where item_id = v_item_id; - - return 1; -end; -' language 'plpgsql'; - - -create or replace function etp__create_new_revision(integer, varchar, integer, integer) -returns integer as ' -declare - p_package_id alias for $1; - p_name alias for $2; - p_user_id alias for $3; - p_revision_id alias for $4; - v_revision_id integer; - v_item_id integer; - v_content_type varchar; -begin - - select max(r.revision_id) - into v_revision_id - from cr_revisions r, cr_items i - where i.name = p_name - and i.parent_id = etp__get_folder_id(p_package_id) - and r.item_id = i.item_id; - - select item_id - into v_item_id - from cr_revisions - where revision_id = v_revision_id; - - select object_type - into v_content_type - from acs_objects - where object_id = v_revision_id; - - -- cannot use acs_object__new because it creates attributes with their - -- default values, which is not what we want. - - - insert into acs_objects (object_id, object_type, creation_date, creation_user, context_id) - values (p_revision_id, v_content_type, now(), p_user_id, v_item_id); - - insert into cr_revisions (revision_id, item_id, title, description, content, mime_type) - select p_revision_id, item_id, title, description, content, mime_type - from cr_revisions r - where r.revision_id = v_revision_id; - - -- copy extended attributes to the new revision, if there are any - insert into acs_attribute_values (object_id, attribute_id, attr_value) - select p_revision_id as object_id, attribute_id, attr_value - from acs_attribute_values - where object_id = v_revision_id; - - return 1; -end; -' language 'plpgsql';