]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Fixes #2679 added a script to upgrade forum topics from 1.7 and earlier
authorcash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>
Wed, 9 Mar 2011 03:09:57 +0000 (03:09 +0000)
committercash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>
Wed, 9 Mar 2011 03:09:57 +0000 (03:09 +0000)
git-svn-id: http://code.elgg.org/elgg/trunk@8640 36083f99-b078-4883-b0ff-0f9b5a30f544

mod/groups/upgrades/2011030101.php [new file with mode: 0644]

diff --git a/mod/groups/upgrades/2011030101.php b/mod/groups/upgrades/2011030101.php
new file mode 100644 (file)
index 0000000..c2a80c0
--- /dev/null
@@ -0,0 +1,53 @@
+<?php
+/**
+ * Move text of first annotation to group forum topic object and delete annotation
+ *
+ * First determine if the upgrade is needed and then if needed, batch the update
+ */
+
+$topics = elgg_get_entities(array(
+       'type' => 'object',
+       'subtype' => 'groupforumtopic',
+       'limit' => 5,
+));
+
+// if not topics, no upgrade required
+if (!$topics) {
+       return;
+}
+
+// if all five of the topics have empty descriptions, we need to upgrade
+foreach ($topics as $topic) {
+       if ($topic->description) {
+               return;
+       }
+}
+
+
+/**
+ * Condense annotation into object
+ *
+ * @param ElggObject $topic
+ */
+function groups_2011030101($topic) {
+
+       $annotation = $topic->getAnnotations('group_topic_post', 1);
+       if (!$annotation) {
+               // no text for this forum post so we delete (probably caused by #2624)
+               return $topic->delete();
+       }
+
+       $topic->description = $annotation[0]->value;
+       $topic->save();
+
+       return $annotation[0]->delete();
+}
+
+$options = array('type' => 'object', 'subtype' => 'groupforumtopic');
+$batch = new ElggBatch('elgg_get_entities', $options, 'groups_2011030101', 100);
+
+if ($batch->callbackResult) {
+       error_log("Elgg Groups upgrade (2011030101) succeeded");
+} else {
+       error_log("Elgg Groups upgrade (2011030101) failed");
+}