Index: openacs-4/packages/new-portal/sql/postgresql/api-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/new-portal/sql/postgresql/api-create.sql,v diff -u -N -r1.14.2.3 -r1.14.2.4 --- openacs-4/packages/new-portal/sql/postgresql/api-create.sql 29 Mar 2007 01:14:07 -0000 1.14.2.3 +++ openacs-4/packages/new-portal/sql/postgresql/api-create.sql 29 Mar 2007 14:58:10 -0000 1.14.2.4 @@ -195,6 +195,7 @@ v_page_id := portal_page__new( null, p_default_page_name, + null, v_portal_id, v_layout_id, ''f'', Index: openacs-4/packages/new-portal/sql/postgresql/upgrade/upgrade-2.3.0d3-2.3.0d4.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/new-portal/sql/postgresql/upgrade/upgrade-2.3.0d3-2.3.0d4.sql,v diff -u -N -r1.1.2.2 -r1.1.2.3 --- openacs-4/packages/new-portal/sql/postgresql/upgrade/upgrade-2.3.0d3-2.3.0d4.sql 29 Mar 2007 01:14:07 -0000 1.1.2.2 +++ openacs-4/packages/new-portal/sql/postgresql/upgrade/upgrade-2.3.0d3-2.3.0d4.sql 29 Mar 2007 14:58:10 -0000 1.1.2.3 @@ -54,3 +54,158 @@ return v_page_id; end;' language 'plpgsql'; + +create or replace function portal__new (integer,varchar,integer,integer,integer,varchar,varchar,timestamptz,integer,varchar,integer) +returns integer as ' +declare + p_portal_id alias for $1; + p_name alias for $2; + p_theme_id alias for $3; + p_layout_id alias for $4; + p_template_id alias for $5; + p_default_page_name alias for $6; + p_object_type alias for $7; + p_creation_date alias for $8; + p_creation_user alias for $9; + p_creation_ip alias for $10; + p_context_id alias for $11; + v_portal_id portals.portal_id%TYPE; + v_theme_id portals.theme_id%TYPE; + v_layout_id portal_layouts.layout_id%TYPE; + v_page_id portal_pages.page_id%TYPE; + v_page record; + v_element record; + v_param record; + v_new_element_id integer; + v_new_parameter_id integer; +begin + + v_portal_id := acs_object__new( + p_portal_id, + p_object_type, + p_creation_date, + p_creation_user, + p_creation_ip, + p_context_id, + ''t'' + ); + + if p_template_id is null then + + if p_theme_id is null then + select max(theme_id) + into v_theme_id + from portal_element_themes; + else + v_theme_id := p_theme_id; + end if; + + if p_layout_id is null then + select min(layout_id) + into v_layout_id + from portal_layouts; + else + v_layout_id := p_layout_id; + end if; + + insert + into portals + (portal_id, name, theme_id) + values + (v_portal_id, p_name, v_theme_id); + + -- now insert the default page + v_page_id := portal_page__new( + null, + p_default_page_name, + null, + v_portal_id, + v_layout_id, + ''f'', + ''portal_page'', + p_creation_date, + p_creation_user, + p_creation_ip, + p_context_id + ); + + else + + -- we have a portal as our template. copy its theme, pages, layouts, + -- elements, and element params. + select theme_id + into v_theme_id + from portals + where portal_id = p_template_id; + + insert + into portals + (portal_id, name, theme_id, template_id) + values + (v_portal_id, p_name, v_theme_id, p_template_id); + + -- now insert the pages from the portal template + for v_page in select * + from portal_pages + where portal_id = p_template_id + loop + + v_page_id := portal_page__new( + null, + v_page.pretty_name, + v_portal_id, + v_page.layout_id, + ''f'', + ''portal_page'', + p_creation_date, + p_creation_user, + p_creation_ip, + p_context_id + ); + + -- now get the elements on the templates page and put them on the new page + for v_element in select * + from portal_element_map + where page_id = v_page.page_id + loop + + select acs_object_id_seq.nextval + into v_new_element_id + from dual; + + insert + into portal_element_map + (element_id, name, pretty_name, page_id, datasource_id, region, state, sort_key) + select v_new_element_id, name, pretty_name, v_page_id, datasource_id, region, state, sort_key + from portal_element_map pem + where pem.element_id = v_element.element_id; + + -- now for the elements params + for v_param in select * + from portal_element_parameters + where element_id = v_element.element_id + loop + + select acs_object_id_seq.nextval + into v_new_parameter_id + from dual; + + insert + into portal_element_parameters + (parameter_id, element_id, config_required_p, configured_p, key, value) + select v_new_parameter_id, v_new_element_id, config_required_p, configured_p, key, value + from portal_element_parameters + where parameter_id = v_param.parameter_id; + + end loop; + + end loop; + + end loop; + + end if; + + return v_portal_id; + +end;' language 'plpgsql'; + Index: openacs-4/packages/new-portal/tcl/portal-procs-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/new-portal/tcl/portal-procs-oracle.xql,v diff -u -N -r1.21.12.1 -r1.21.12.2 --- openacs-4/packages/new-portal/tcl/portal-procs-oracle.xql 29 Mar 2007 00:43:38 -0000 1.21.12.1 +++ openacs-4/packages/new-portal/tcl/portal-procs-oracle.xql 29 Mar 2007 14:58:10 -0000 1.21.12.2 @@ -122,7 +122,7 @@ begin :1 := portal_page.new( pretty_name => :pretty_name, - access_key => :access_key, + accesskey => :accesskey, portal_id => :portal_id, layout_id => :layout_id ); Index: openacs-4/packages/new-portal/tcl/portal-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/new-portal/tcl/portal-procs.tcl,v diff -u -N -r1.179.2.14 -r1.179.2.15 --- openacs-4/packages/new-portal/tcl/portal-procs.tcl 29 Mar 2007 00:43:38 -0000 1.179.2.14 +++ openacs-4/packages/new-portal/tcl/portal-procs.tcl 29 Mar 2007 14:58:10 -0000 1.179.2.15 @@ -145,6 +145,7 @@ # and first page layout from it, overriding any other params set page_name_list [list "Page 1"] + set page_accesskey_list [list "1"] set layout_name_list [list "#new-portal.simple_2column_layout_name#"] if {![empty_string_p $csv_list]} { @@ -162,7 +163,7 @@ } set default_page_name [lindex $page_name_list 0] - set default_access_key [lindex $page_accesskey_list 0] + set default_accesskey [lindex $page_accesskey_list 0] set layout_name [lindex $layout_name_list 0] # get the default layout_id - simple2 @@ -193,7 +194,7 @@ for {set i 1} {$i < [expr [llength $page_name_list]]} {incr i} { portal::page_create -portal_id $portal_id \ -pretty_name [lindex $page_name_list $i] \ - -access_key [lindex $page_accesskey_list $i] \ + -accesskey [lindex $page_accesskey_list $i] \ -layout_name [lindex $layout_name_list $i] } } @@ -1074,7 +1075,7 @@ {-layout_name ""} {-pretty_name:required} {-portal_id:required} - {-access_key ""} + {-accesskey ""} } { Appends a new blank page for the given portal_id.