aboutsummaryrefslogtreecommitdiff
path: root/mod/pages/upgrades/2012061800.php
diff options
context:
space:
mode:
authorSem <sembrestels@riseup.net>2012-07-08 15:42:39 +0200
committercash <cash.costello@gmail.com>2013-03-30 15:06:27 -0400
commitd456d462674a72c270a9a1ce4066d5318e25a07a (patch)
tree5f0e41392cf8e7f68159bb8be4437c639b51d272 /mod/pages/upgrades/2012061800.php
parent324f4ed234638c66815fbaf2601373c869d023b2 (diff)
downloadelgg-d456d462674a72c270a9a1ce4066d5318e25a07a.tar.gz
elgg-d456d462674a72c270a9a1ce4066d5318e25a07a.tar.bz2
Refs #1708. Restore disappeared subpages, which its parent page was top_page and was deleted.
Diffstat (limited to 'mod/pages/upgrades/2012061800.php')
-rw-r--r--mod/pages/upgrades/2012061800.php43
1 files changed, 43 insertions, 0 deletions
diff --git a/mod/pages/upgrades/2012061800.php b/mod/pages/upgrades/2012061800.php
new file mode 100644
index 000000000..fe39faea5
--- /dev/null
+++ b/mod/pages/upgrades/2012061800.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Restore disappeared subpages, which its parent page was top_page and was deleted,
+ * by setting it's subtype to page_top.
+ *
+ */
+
+
+/**
+ * Condense first annotation into object
+ *
+ * @param ElggObject $page
+ */
+function pages_2012061800($page) {error_log($page->guid);
+ $dbprefix = elgg_get_config('dbprefix');
+ $subtype_id = add_subtype('object', 'page_top');
+ update_data("UPDATE {$dbprefix}entities
+ set subtype='$subtype_id' WHERE guid=$page->guid");
+ return true;
+}
+
+$previous_access = elgg_set_ignore_access(true);
+
+$dbprefix = elgg_get_config('dbprefix');
+$name_metastring_id = get_metastring_id('parent_guid');
+
+// Looking for pages without metadata (see #3046)
+$options = array(
+ 'type' => 'object',
+ 'subtype' => 'page',
+ 'wheres' => "NOT EXISTS (
+ SELECT 1 FROM {$dbprefix}metadata md
+ WHERE md.entity_guid = e.guid
+ AND md.name_id = $name_metastring_id)"
+);
+$batch = new ElggBatch('elgg_get_entities_from_metadata', $options, 'pages_2012061800', 100);
+elgg_set_ignore_access($previous_access);
+
+if ($batch->callbackResult) {
+ error_log("Elgg Pages upgrade (2012061800) succeeded");
+} else {
+ error_log("Elgg Pages upgrade (2012061800) failed");
+}