]> git.mxchange.org Git - friendica.git/commitdiff
flatten conversation hierarchy to one level on import but preserve all thread info
authorFriendika <info@friendika.com>
Sun, 5 Dec 2010 07:16:16 +0000 (23:16 -0800)
committerFriendika <info@friendika.com>
Sun, 5 Dec 2010 07:16:16 +0000 (23:16 -0800)
in case somebody wants to write a plugin to display as multi-level thread

boot.php
database.sql
include/items.php
update.php

index 545883eb988fada4066b5ce9758819ea849dd320..49679c3b7f1a310fc58c349bdcc60b5f63195952 100644 (file)
--- a/boot.php
+++ b/boot.php
@@ -2,7 +2,7 @@
 
 set_time_limit(0);
 
-define ( 'BUILD_ID',               1020   );
+define ( 'BUILD_ID',               1021   );
 define ( 'DFRN_PROTOCOL_VERSION',  '2.0'  );
 
 define ( 'EOL',                    "<br />\r\n"     );
index 41d256d7319dbdb8fe6cd316ebd0d68b577e29e2..be0671bb16bf63995b614e824f7aae1a7cbe58dc 100644 (file)
@@ -153,14 +153,15 @@ CREATE TABLE IF NOT EXISTS `intro` (
 
 CREATE TABLE IF NOT EXISTS `item` (
   `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
-  `uri` char(255) CHARACTER SET ascii NOT NULL,
+  `uri` char(255) NOT NULL,
   `uid` int(10) unsigned NOT NULL DEFAULT '0',
   `contact-id` int(10) unsigned NOT NULL DEFAULT '0',
   `type` char(255) NOT NULL,
   `wall` tinyint(1) NOT NULL DEFAULT '0',
   `gravity` tinyint(1) NOT NULL DEFAULT '0',
   `parent` int(10) unsigned NOT NULL DEFAULT '0',
-  `parent-uri` char(255) CHARACTER SET ascii NOT NULL,
+  `parent-uri` char(255) NOT NULL,
+  `thr-parent` char(255) NOT NULL,
   `created` datetime NOT NULL,
   `edited` datetime NOT NULL,
   `changed` datetime NOT NULL,
index 04b86ab3fe55605226c3cf98ee21743e7738c885..a4d3953f9f8f82dba5b1704e184029d7e1119eee 100644 (file)
@@ -553,9 +553,14 @@ function item_store($arr) {
 
        // The content body has been through a lot of filtering and transport escaping by now. 
        // We don't want to skip any filters, however a side effect of all this filtering 
-       // is that ampersands will have been double encoded. 
+       // is that ampersands and <> may have been double encoded, depending on which filter chain
+       // they came through. 
 
-       $arr['body']          = str_replace('&amp;amp;','&amp;',$arr['body']);
+       $arr['body']          = str_replace(
+                                                               array('&amp;amp;','&amp;gt;','&amp;lt;'),
+                                                               array('&amp;'    ,'&gt;'    ,'&lt;'),
+                                                               $arr['body']
+                                                       );
 
 
 
@@ -576,6 +581,16 @@ function item_store($arr) {
                );
 
                if(count($r)) {
+
+                       // is the new message multi-level threaded?
+                       // even though we don't support it now, preserve the info
+                       // and re-attach to the conversation parent.
+
+                       if($r[0]['uri'] != $r[0]['parent-uri']) {
+                               $arr['thr-parent'] = $arr['parent-uri'];
+                               $arr['parent-uri'] = $r[0]['parent-uri'];
+                       }
+
                        $parent_id = $r[0]['id'];
                        $allow_cid = $r[0]['allow_cid'];
                        $allow_gid = $r[0]['allow_gid'];
index 28e4bcf709bac47293e0b2c9eca7b947b1347a90..b1950e5882f56061a64e635f151769074e023839 100644 (file)
@@ -180,6 +180,9 @@ function update_1018() {
 function update_1019() {
        q("ALTER TABLE `mail` DROP `delivered`");
        q("ALTER TABLE `profile` ADD `showwith` TINYINT(1) NOT NULL DEFAULT '0' AFTER `marital` ");
-
 }
 
+function update_1020() {
+       q("ALTER TABLE `profile` DROP `showwith`");
+       q("ALTER TABLE `item` ADD `thr-parent` CHAR( 255 ) NOT NULL AFTER `parent-uri` ");
+}