]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Fixes #3193 converts the default widgets for 1.8 - leaves behind the default widgets...
authorcash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>
Wed, 23 Mar 2011 11:27:43 +0000 (11:27 +0000)
committercash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>
Wed, 23 Mar 2011 11:27:43 +0000 (11:27 +0000)
git-svn-id: http://code.elgg.org/elgg/trunk@8826 36083f99-b078-4883-b0ff-0f9b5a30f544

engine/lib/upgrades/2011032300-1.8_svn-update_default_widgets-7daf5a459720d06d.php [new file with mode: 0644]
version.php

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
new file mode 100644 (file)
index 0000000..6a5f2fa
--- /dev/null
@@ -0,0 +1,60 @@
+<?php
+/**
+ * Elgg 1.8-svn upgrade 2011032300
+ * update_default_widgets
+ *
+ * Pre-1.8, default widgets were stored as metadata on a defaultwidgets object.
+ * Now they are stored as widget objects owned by the site.
+ */
+
+$object = elgg_get_entities(array(
+       'type' => '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);
index ae4e01091be6905bbe1aa5f5619095238d8c6634..8193dce687302151622f7658127a0fb91dae6200 100644 (file)
@@ -11,7 +11,7 @@
 
 // YYYYMMDD = Elgg Date
 // XX = Interim incrementer
-$version = 2011032200;
+$version = 2011032300;
 
 // Human-friendly version name
 $release = '1.8-svn';