From 472b45795825eb65f68c8835e8f7daeb82598741 Mon Sep 17 00:00:00 2001 From: cash Date: Sat, 9 Apr 2011 17:14:14 +0000 Subject: Fixes #3224 Fixes #3241 stopping upgrade after plugin upgrade and restarting git-svn-id: http://code.elgg.org/elgg/trunk@8969 36083f99-b078-4883-b0ff-0f9b5a30f544 --- engine/lib/upgrades/2011010101.php | 18 ++++++++++++++++++ ...00-1.8_svn-admins_like_widgets-7f19d2783c1680d3.php | 3 +++ 2 files changed, 21 insertions(+) (limited to 'engine/lib/upgrades') diff --git a/engine/lib/upgrades/2011010101.php b/engine/lib/upgrades/2011010101.php index be1adac1a..9dbaff1e4 100644 --- a/engine/lib/upgrades/2011010101.php +++ b/engine/lib/upgrades/2011010101.php @@ -73,3 +73,21 @@ remove_metadata($site->guid, 'pluginorder'); remove_metadata($site->guid, 'enabled_plugins'); elgg_set_ignore_access($old_id); + +/** + * @hack + * + * We stop the upgrade at this point because plugins weren't given the chance to + * load due to the new plugin code introduced with Elgg 1.8. Instead, we manually + * set the version and start the upgrade process again. + * + * The variables from upgrade_code() are available because this script was included + */ +if ($upgrade_version > $version) { + datalist_set('version', $upgrade_version); +} + +$processed_upgrades = array_unique($processed_upgrades); +datalist_set('processed_upgrades', serialize($processed_upgrades)); + +forward('upgrade.php'); diff --git a/engine/lib/upgrades/2011032200-1.8_svn-admins_like_widgets-7f19d2783c1680d3.php b/engine/lib/upgrades/2011032200-1.8_svn-admins_like_widgets-7f19d2783c1680d3.php index 592adb403..7efa687ae 100644 --- a/engine/lib/upgrades/2011032200-1.8_svn-admins_like_widgets-7f19d2783c1680d3.php +++ b/engine/lib/upgrades/2011032200-1.8_svn-admins_like_widgets-7f19d2783c1680d3.php @@ -11,3 +11,6 @@ foreach ($admins as $admin) { // call the admin handler for the make_admin event elgg_add_admin_widgets('make_admin', 'user', $admin); } + +// as last upgrade for 1.8.0 (or nearly so) we add a reminder to update .htaccess +system_message("IMPORTANT: update your .htaccess file (or equivalent)"); -- cgit v1.2.3 From cab1ccee2adc382151ce89674498a93addb89b34 Mon Sep 17 00:00:00 2001 From: cash Date: Sat, 9 Apr 2011 19:14:38 +0000 Subject: Fixes #3193 moves default widgets upgrade to an action git-svn-id: http://code.elgg.org/elgg/trunk@8971 36083f99-b078-4883-b0ff-0f9b5a30f544 --- actions/widgets/upgrade.php | 65 ++++++++++++++++++++++ ...svn-update_default_widgets-7daf5a459720d06d.php | 60 -------------------- engine/lib/widgets.php | 1 + languages/en.php | 1 + views/default/admin/appearance/default_widgets.php | 16 ++++++ 5 files changed, 83 insertions(+), 60 deletions(-) create mode 100644 actions/widgets/upgrade.php delete mode 100644 engine/lib/upgrades/2011032300-1.8_svn-update_default_widgets-7daf5a459720d06d.php (limited to 'engine/lib/upgrades') diff --git a/actions/widgets/upgrade.php b/actions/widgets/upgrade.php new file mode 100644 index 000000000..0a5cf8d48 --- /dev/null +++ b/actions/widgets/upgrade.php @@ -0,0 +1,65 @@ + 'object', + 'subtype' => 'moddefaultwidgets', + 'limit' => 1, +)); + +if (!$object) { + forward(REFERER); +} + +$object = $object[0]; + +$site = elgg_get_site_entity(); + +$ia = elgg_set_ignore_access(true); +foreach (array('profile', 'dashboard') as $context) { + if (isset($object->$context)) { + elgg_push_context($context); + elgg_push_context('default_widgets'); + elgg_push_context('widgets'); + + // deserialize the widget information + list($left, $middle, $right) = split('%%', $object->$context); + $left_widgets = split('::', $left); + $middle_widgets = split('::', $middle); + $right_widgets = split('::', $right); + + // 1st column is right column in default theme + $widgets = array( + 1 => array_reverse($right_widgets), + 2 => array_reverse($middle_widgets), + 3 => array_reverse($left_widgets), + ); + + foreach ($widgets as $column => $column_widgets) { + foreach ($column_widgets as $handler) { + $guid = elgg_create_widget($site->getGUID(), $handler, $context); + if ($guid) { + $widget = get_entity($guid); + $widget->move($column, 0); + } + } + } + + elgg_pop_context(); + elgg_pop_context(); + elgg_pop_context(); + } +} +elgg_set_ignore_access($ia); + +$object->delete(); +system_message(elgg_echo('upgrade:core')); +forward(REFERER); diff --git a/engine/lib/upgrades/2011032300-1.8_svn-update_default_widgets-7daf5a459720d06d.php b/engine/lib/upgrades/2011032300-1.8_svn-update_default_widgets-7daf5a459720d06d.php deleted file mode 100644 index 6a5f2fa02..000000000 --- a/engine/lib/upgrades/2011032300-1.8_svn-update_default_widgets-7daf5a459720d06d.php +++ /dev/null @@ -1,60 +0,0 @@ - 'object', - 'subtype' => 'moddefaultwidgets', - 'limit' => 1, -)); - -if (!$object) { - // nothing to upgrade - return true; -} - -$object = $object[0]; - -$site = elgg_get_site_entity(); - -$ia = elgg_set_ignore_access(true); -foreach (array('profile', 'dashboard') as $context) { - if (isset($object->$context)) { - elgg_push_context($context); - elgg_push_context('default_widgets'); - elgg_push_context('widgets'); - - // deserialize the widget information - list($left, $middle, $right) = split('%%', $object->$context); - $left_widgets = split('::', $left); - $middle_widgets = split('::', $middle); - $right_widgets = split('::', $right); - - // 1st column is right column in default theme - $widgets = array( - 1 => array_reverse($right_widgets), - 2 => array_reverse($middle_widgets), - 3 => array_reverse($left_widgets), - ); - - foreach ($widgets as $column => $column_widgets) { - foreach ($column_widgets as $handler) { - $guid = elgg_create_widget($site->getGUID(), $handler, $context); - if ($guid) { - $widget = get_entity($guid); - $widget->move($column, 0); - } - } - } - - elgg_pop_context(); - elgg_pop_context(); - elgg_pop_context(); - } -} -elgg_set_ignore_access($ia); diff --git a/engine/lib/widgets.php b/engine/lib/widgets.php index b20f92f74..cc3cf20e4 100644 --- a/engine/lib/widgets.php +++ b/engine/lib/widgets.php @@ -272,6 +272,7 @@ function elgg_widgets_init() { elgg_register_action('widgets/add'); elgg_register_action('widgets/move'); elgg_register_action('widgets/delete'); + elgg_register_action('widgets/upgrade', '', 'admin'); run_function_once("elgg_widget_run_once"); } diff --git a/languages/en.php b/languages/en.php index 427452aa9..86fa9c7e7 100644 --- a/languages/en.php +++ b/languages/en.php @@ -795,6 +795,7 @@ $english = array( 'post' => 'Post', 'submit' => 'Submit', 'comment' => 'Comment', + 'upgrade' => 'Upgrade', 'site' => 'Site', 'activity' => 'Activity', diff --git a/views/default/admin/appearance/default_widgets.php b/views/default/admin/appearance/default_widgets.php index ce9f6a5c2..5ce0d0acf 100644 --- a/views/default/admin/appearance/default_widgets.php +++ b/views/default/admin/appearance/default_widgets.php @@ -6,6 +6,22 @@ * @subpackage Administration.DefaultWidgets */ +$object = elgg_get_entities(array( + 'type' => 'object', + 'subtype' => 'moddefaultwidgets', + 'limit' => 1, +)); + +if ($object) { + echo elgg_view('output/url', array( + 'text' => elgg_echo('upgrade'), + 'href' => 'action/widgets/upgrade', + 'is_action' => true, + 'class' => 'elgg_button elgg-button-submit', + 'title' => 'Upgrade your default widgets to work on Elgg 1.8', + )); +} + elgg_push_context('default_widgets'); $widget_context = get_input('widget_context'); $list = elgg_trigger_plugin_hook('get_list', 'default_widgets', null, array()); -- cgit v1.2.3 From 20c4b5112b823a0b65bf1bf1a5f0bc83e7321e59 Mon Sep 17 00:00:00 2001 From: cash Date: Sat, 9 Apr 2011 19:58:35 +0000 Subject: Reopens #3224 not as clever as I thought - user experiences error before seeing reminder git-svn-id: http://code.elgg.org/elgg/trunk@8974 36083f99-b078-4883-b0ff-0f9b5a30f544 --- .../2011032200-1.8_svn-admins_like_widgets-7f19d2783c1680d3.php | 3 --- 1 file changed, 3 deletions(-) (limited to 'engine/lib/upgrades') diff --git a/engine/lib/upgrades/2011032200-1.8_svn-admins_like_widgets-7f19d2783c1680d3.php b/engine/lib/upgrades/2011032200-1.8_svn-admins_like_widgets-7f19d2783c1680d3.php index 7efa687ae..592adb403 100644 --- a/engine/lib/upgrades/2011032200-1.8_svn-admins_like_widgets-7f19d2783c1680d3.php +++ b/engine/lib/upgrades/2011032200-1.8_svn-admins_like_widgets-7f19d2783c1680d3.php @@ -11,6 +11,3 @@ foreach ($admins as $admin) { // call the admin handler for the make_admin event elgg_add_admin_widgets('make_admin', 'user', $admin); } - -// as last upgrade for 1.8.0 (or nearly so) we add a reminder to update .htaccess -system_message("IMPORTANT: update your .htaccess file (or equivalent)"); -- cgit v1.2.3