Index: openacs-4/contrib/packages/portal/portal.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/portal/portal.info,v diff -u -r1.12 -r1.13 --- openacs-4/contrib/packages/portal/portal.info 24 Mar 2004 00:03:36 -0000 1.12 +++ openacs-4/contrib/packages/portal/portal.info 20 Jun 2004 00:39:05 -0000 1.13 @@ -7,15 +7,14 @@ f f - - Arjun Sanyal - yon + + Don Baccus Portals 2001-02-20 OpenACS Portals are used to aggregate content from different sources within a single page. Props to Ian Baker for "Portal". - + Index: openacs-4/contrib/packages/portal/tcl/element-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/portal/tcl/element-procs.tcl,v diff -u -r1.18 -r1.19 --- openacs-4/contrib/packages/portal/tcl/element-procs.tcl 24 Mar 2004 00:03:37 -0000 1.18 +++ openacs-4/contrib/packages/portal/tcl/element-procs.tcl 20 Jun 2004 00:39:05 -0000 1.19 @@ -34,6 +34,7 @@ {-state full} {-datasource_name:required} {-name ""} + {-args ""} } { Create a new portal element of type datasource_name on the given portal. @@ -43,6 +44,7 @@ @param region The page region to placer the element on. @param datasource_name The portal datasource name @param name The name of the element + @param args Optional args to set in array get format @return The element_id of the new portlet @@ -73,6 +75,17 @@ } } + for {key value} $args { + portal::element::parameter::new \ + -element_id $element_id \ + -key $key \ + -value $value + } + + portal::element::initialize \ + -datasource_name $datasource_name \ + -element_id $element_id + return $element_id } Index: openacs-4/contrib/packages/portal/tcl/portal-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/portal/tcl/portal-procs.tcl,v diff -u -r1.30 -r1.31 --- openacs-4/contrib/packages/portal/tcl/portal-procs.tcl 19 Jun 2004 00:59:22 -0000 1.30 +++ openacs-4/contrib/packages/portal/tcl/portal-procs.tcl 20 Jun 2004 00:39:05 -0000 1.31 @@ -58,8 +58,7 @@ would make sense to only grant read to the party directly. @initialize_elements_p If true and template_id is set, initialize elements after copying. - @theme_name The theme to assign to this portal (defaults to the package's - default_theme_name) + @theme_name The theme to assign to this portal (unless copying from a template) @package_id The package id of the owning package (defaults to ad_conn package_id) } { @@ -72,8 +71,10 @@ set context_id $package_id } - if { [string equal $theme_name ""] } { - set theme_name [parameter::get -parameter DefaultThemeName] + if { [string equal $template_id ""] } { + set theme_id [portal::theme::get_id -name $theme_name] + } else { + set theme_id [portal::get_theme_id -portal_id $template_id] } db_transaction { @@ -83,7 +84,7 @@ {p_template_id $template_id} {p_context_id $context_id} {p_owner_id $owner_id} - {p_theme_id [portal::theme::get_id -name $theme_name]} + {p_theme_id $theme_id} {p_package_id $package_id}}] set portal_id [package_instantiate_object -var_list $var_list portal] @@ -92,7 +93,7 @@ permission::grant -party_id $owner_id -object_id $portal_id -privilege $privilege } - if {[empty_string_p $template_id]} { + if {[string equal $template_id ""]} { foreach page $page_list { portal::page::new \ -portal_id $portal_id \ @@ -598,6 +599,7 @@ set master_portal_id [portal::new \ -name "Shared Portal" \ -owner_id 0 \ + -theme_name [parameter::get -parameter DefaultThemeName] \ -owner_privileges {}] # create the admin template @@ -606,24 +608,20 @@ -name "Portal Administration" \ -owner_id $package_id \ -page_list {{"Portal Administration" 2_column}} \ + -theme_name [parameter::get -parameter DefaultThemeName] \ -owner_privileges {}] db_foreach select_portal_datasources {} { - if { $admin_p } { - set element_id [portal::element::new \ - -portal_id $admin_portal_id \ - -datasource_name $name] + portal::element::new \ + -portal_id $admin_portal_id \ + -datasource_name $name } else { - set element_id [portal::element::new \ - -portal_id $master_portal_id \ - -state hidden \ - -datasource_name $name] + portal::element::new \ + -portal_id $master_portal_id \ + -state hidden \ + -datasource_name $name } - - portal::element::initialize \ - -datasource_name $name \ - -element_id $element_id } } } Index: openacs-4/contrib/packages/portal/www/admin/add-applications-2.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/portal/www/admin/add-applications-2.tcl,v diff -u -r1.5 -r1.6 --- openacs-4/contrib/packages/portal/www/admin/add-applications-2.tcl 21 Mar 2004 02:39:57 -0000 1.5 +++ openacs-4/contrib/packages/portal/www/admin/add-applications-2.tcl 20 Jun 2004 00:39:06 -0000 1.6 @@ -37,38 +37,22 @@ foreach non_admin_portal $non_admin_portals { foreach user_datasource $user_datasources { db_transaction { - set element_id [portal::element::new \ - -portal_id $non_admin_portal \ - -state hidden \ - -datasource_name $user_datasource] - - portal::element::parameter::new \ - -element_id $element_id \ - -key package_id \ - -value $application_id - - portal::element::initialize \ - -datasource_name $user_datasource \ - -element_id $element_id + portal::element::new \ + -portal_id $non_admin_portal \ + -state hidden \ + -datasource_name $user_datasource \ + -args [list package_id $application_id] } } } set admin_datasources [db_list get_admin_datasources {}] foreach admin_datasource $admin_datasources { db_transaction { - set element_id [portal::element::new \ - -portal_id $admin_portal_id \ - -datasource_name $admin_datasource] - - portal::element::parameter::new \ - -element_id $element_id \ - -key package_id \ - -value $application_id - - portal::element::initialize \ - -datasource_name $admin_datasource \ - -element_id $element_id + portal::element::new \ + -portal_id $admin_portal_id \ + -datasource_name $admin_datasource \ + -args [list package_id $application_id] } } }