Index: openacs-4/packages/acs-content-repository/acs-content-repository.info
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/acs-content-repository.info,v
diff -u -N -r1.56.2.10 -r1.56.2.11
--- openacs-4/packages/acs-content-repository/acs-content-repository.info 29 Oct 2005 12:29:58 -0000 1.56.2.10
+++ openacs-4/packages/acs-content-repository/acs-content-repository.info 29 Nov 2005 11:39:51 -0000 1.56.2.11
@@ -7,7 +7,7 @@
t
t
-
+
OpenACS
The canonical repository for OpenACS content.
@@ -21,7 +21,7 @@
other CMS backing functionality. Utilized by Bug Tracker, File Storage, and other packages.
-
+
Index: openacs-4/packages/acs-content-repository/sql/postgresql/upgrade/upgrade-5.2.0b6-5.2.0b7.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/sql/postgresql/upgrade/upgrade-5.2.0b6-5.2.0b7.sql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-content-repository/sql/postgresql/upgrade/upgrade-5.2.0b6-5.2.0b7.sql 29 Nov 2005 11:39:58 -0000 1.1.2.1
@@ -0,0 +1,237 @@
+--
+-- packages/acs-content-repository/sql/postgresql/upgrade/upgrade-5.2.0b6-5.2.0b7.sql
+--
+-- @author sussdorff aolserver (sussdorff@ipxserver.de)
+-- @creation-date 2005-11-29
+-- @arch-tag: 6c315b82-708f-4c42-8c66-297d27dcb2a0
+-- @cvs-id $Id: upgrade-5.2.0b6-5.2.0b7.sql,v 1.1.2.1 2005/11/29 11:39:58 maltes Exp $
+--
+
+
+create or replace function content_extlink__new (varchar,varchar,varchar,varchar,integer,integer,timestamptz,integer,varchar,integer)
+returns integer as '
+declare
+ new__name alias for $1; -- default null
+ new__url alias for $2;
+ new__label alias for $3; -- default null
+ new__description alias for $4; -- default null
+ new__parent_id alias for $5;
+ new__extlink_id alias for $6; -- default null
+ new__creation_date alias for $7; -- default now()
+ new__creation_user alias for $8; -- default null
+ new__creation_ip alias for $9; -- default null
+ new__package_id alias for $10; -- default null
+ v_extlink_id cr_extlinks.extlink_id%TYPE;
+ v_package_id acs_objects.package_id%TYPE;
+ v_label cr_extlinks.label%TYPE;
+ v_name cr_items.name%TYPE;
+begin
+
+ if new__label is null then
+ v_label := new__url;
+ else
+ v_label := new__label;
+ end if;
+
+ if new__name is null then
+ select acs_object_id_seq.nextval into v_extlink_id from dual;
+ v_name := ''link'' || v_extlink_id;
+ else
+ v_name := new__name;
+ end if;
+
+ if new__package_id is null then
+ v_package_id := acs_object__package_id(new__parent_id);
+ else
+ v_package_id := new__package_id;
+ end if;
+
+ v_extlink_id := content_item__new(
+ v_name,
+ new__parent_id,
+ new__extlink_id,
+ null,
+ new__creation_date,
+ new__creation_user,
+ null,
+ new__creation_ip,
+ ''content_item'',
+ ''content_extlink'',
+ null,
+ null,
+ ''text/plain'',
+ null,
+ null,
+ ''text'',
+ v_package_id
+ );
+
+ insert into cr_extlinks
+ (extlink_id, url, label, description)
+ values
+ (v_extlink_id, new__url, v_label, new__description);
+
+ update acs_objects
+ set title = v_label
+ where object_id = v_extlink_id;
+
+ return v_extlink_id;
+
+end;' language 'plpgsql';
+
+create or replace function content_extlink__new (varchar,varchar,varchar,varchar,integer,integer,timestamptz,integer,varchar)
+returns integer as '
+declare
+ new__name alias for $1; -- default null
+ new__url alias for $2;
+ new__label alias for $3; -- default null
+ new__description alias for $4; -- default null
+ new__parent_id alias for $5;
+ new__extlink_id alias for $6; -- default null
+ new__creation_date alias for $7; -- default now()
+ new__creation_user alias for $8; -- default null
+ new__creation_ip alias for $9; -- default null
+begin
+ return content_extlink__new(new__name,
+ new__url,
+ new__label,
+ new__description,
+ new__parent_id,
+ new__extlink_id,
+ new__creation_date,
+ new__creation_user,
+ new__creation_ip,
+ null
+ );
+
+end;' language 'plpgsql';
+
+select define_function_args('content_extlink__delete','extlink_id');
+
+create or replace function content_extlink__delete (integer)
+returns integer as '
+declare
+ delete__extlink_id alias for $1;
+begin
+
+ delete from cr_extlinks
+ where extlink_id = delete__extlink_id;
+
+ PERFORM content_item__delete(delete__extlink_id);
+
+return 0;
+end;' language 'plpgsql';
+
+select define_function_args('content_extlink__is_extlink','item_id');
+create or replace function content_extlink__is_extlink (integer)
+returns boolean as '
+declare
+ is_extlink__item_id alias for $1;
+ v_extlink_p boolean;
+begin
+
+ select
+ count(1) = 1 into v_extlink_p
+ from
+ cr_extlinks
+ where
+ extlink_id = is_extlink__item_id;
+
+ return v_extlink_p;
+
+end;' language 'plpgsql';
+
+create or replace function content_extlink__copy (
+ integer,
+ integer,
+ integer,
+ varchar)
+returns integer as '
+declare
+ copy__extlink_id alias for $1;
+ copy__target_folder_id alias for $2;
+ copy__creation_user alias for $3;
+ copy__creation_ip alias for $4; -- default null
+ v_extlink_id cr_extlinks.extlink_id%TYPE;
+begin
+ v_extlink_id := content_extlink__copy (
+ copy__extlink_id,
+ copy__target_folder_id,
+ copy__creation_user,
+ copy__creation_ip,
+ NULL
+ );
+ return 0;
+end;' language 'plpgsql' stable;
+
+select define_function_args('content_extlink__copy','extlink_id,target_folder_id,creation_user,creation_ip,name');
+create or replace function content_extlink__copy (
+ integer,
+ integer,
+ integer,
+ varchar,
+ varchar)
+returns integer as '
+declare
+ copy__extlink_id alias for $1;
+ copy__target_folder_id alias for $2;
+ copy__creation_user alias for $3;
+ copy__creation_ip alias for $4; -- default null
+ copy__name alias for $5;
+ v_current_folder_id cr_folders.folder_id%TYPE;
+ v_name cr_items.name%TYPE;
+ v_url cr_extlinks.url%TYPE;
+ v_description cr_extlinks.description%TYPE;
+ v_label cr_extlinks.label%TYPE;
+ v_extlink_id cr_extlinks.extlink_id%TYPE;
+begin
+
+ if content_folder__is_folder(copy__target_folder_id) = ''t'' then
+ select
+ parent_id
+ into
+ v_current_folder_id
+ from
+ cr_items
+ where
+ item_id = copy__extlink_id;
+
+ -- can''t copy to the same folder
+
+ select
+ i.name, e.url, e.description, e.label
+ into
+ v_name, v_url, v_description, v_label
+ from
+ cr_extlinks e, cr_items i
+ where
+ e.extlink_id = i.item_id
+ and
+ e.extlink_id = copy__extlink_id;
+
+ -- copy to a different folder, or same folder if name
+ -- is different
+ if copy__target_folder_id != v_current_folder_id or ( v_name <> copy_name and copy_name is not null ) then
+
+ if content_folder__is_registered(copy__target_folder_id,
+ ''content_extlink'',''f'') = ''t'' then
+
+ v_extlink_id := content_extlink__new(
+ coalesce (copy__name, v_name),
+ v_url,
+ v_label,
+ v_description,
+ copy__target_folder_id,
+ null,
+ current_timestamp,
+ copy__creation_user,
+ copy__creation_ip,
+ null
+ );
+
+ end if;
+ end if;
+ end if;
+
+ return 0;
+end;' language 'plpgsql' stable;