flatten conversation hierarchy to one level on import but preserve all thread info

in case somebody wants to write a plugin to display as multi-level thread
This commit is contained in:
Friendika 2010-12-04 23:16:16 -08:00
parent 4507a571d3
commit e9a1abd133
4 changed files with 25 additions and 6 deletions

View File

@ -2,7 +2,7 @@
set_time_limit(0); set_time_limit(0);
define ( 'BUILD_ID', 1020 ); define ( 'BUILD_ID', 1021 );
define ( 'DFRN_PROTOCOL_VERSION', '2.0' ); define ( 'DFRN_PROTOCOL_VERSION', '2.0' );
define ( 'EOL', "<br />\r\n" ); define ( 'EOL', "<br />\r\n" );

View File

@ -153,14 +153,15 @@ CREATE TABLE IF NOT EXISTS `intro` (
CREATE TABLE IF NOT EXISTS `item` ( CREATE TABLE IF NOT EXISTS `item` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT, `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', `uid` int(10) unsigned NOT NULL DEFAULT '0',
`contact-id` int(10) unsigned NOT NULL DEFAULT '0', `contact-id` int(10) unsigned NOT NULL DEFAULT '0',
`type` char(255) NOT NULL, `type` char(255) NOT NULL,
`wall` tinyint(1) NOT NULL DEFAULT '0', `wall` tinyint(1) NOT NULL DEFAULT '0',
`gravity` tinyint(1) NOT NULL DEFAULT '0', `gravity` tinyint(1) NOT NULL DEFAULT '0',
`parent` int(10) unsigned 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, `created` datetime NOT NULL,
`edited` datetime NOT NULL, `edited` datetime NOT NULL,
`changed` datetime NOT NULL, `changed` datetime NOT NULL,

View File

@ -553,9 +553,14 @@ function item_store($arr) {
// The content body has been through a lot of filtering and transport escaping by now. // 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 // 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)) { 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']; $parent_id = $r[0]['id'];
$allow_cid = $r[0]['allow_cid']; $allow_cid = $r[0]['allow_cid'];
$allow_gid = $r[0]['allow_gid']; $allow_gid = $r[0]['allow_gid'];

View File

@ -180,6 +180,9 @@ function update_1018() {
function update_1019() { function update_1019() {
q("ALTER TABLE `mail` DROP `delivered`"); q("ALTER TABLE `mail` DROP `delivered`");
q("ALTER TABLE `profile` ADD `showwith` TINYINT(1) NOT NULL DEFAULT '0' AFTER `marital` "); 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` ");
}