aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzotlabs <mike@macgirvin.com>2018-02-26 15:46:29 -0800
committerzotlabs <mike@macgirvin.com>2018-02-26 15:46:29 -0800
commitf83b7c2d52ba122d9695c68fdbfaf0ed12e55ebc (patch)
tree2a2013cafdcb82d77f5c2a0c0af029d31aa97d64
parentcbcf389f500a7179422ed9a9736f46bbdcc5eca2 (diff)
downloadvolse-hubzilla-f83b7c2d52ba122d9695c68fdbfaf0ed12e55ebc.tar.gz
volse-hubzilla-f83b7c2d52ba122d9695c68fdbfaf0ed12e55ebc.tar.bz2
volse-hubzilla-f83b7c2d52ba122d9695c68fdbfaf0ed12e55ebc.zip
issues with delivery of edited posts to forums
-rwxr-xr-xinclude/items.php12
-rw-r--r--include/text.php12
2 files changed, 23 insertions, 1 deletions
diff --git a/include/items.php b/include/items.php
index 5a98fbbd4..790b91c88 100755
--- a/include/items.php
+++ b/include/items.php
@@ -2464,7 +2464,7 @@ function tag_deliver($uid, $item_id) {
// this is an update (edit) to a post which was already processed by us and has a second delivery chain
// Just start the second delivery chain to deliver the updated post
// after resetting ownership and permission bits
-
+ logger('updating edited tag_deliver post for ' . $u[0]['channel_address']);
start_delivery_chain($u[0], $item, $item_id, 0);
return;
}
@@ -2767,6 +2767,16 @@ function tgroup_check($uid, $item) {
return false;
}
+
+ // see if we already have this item. Maybe it is being updated.
+
+ $r = q("select id from item where mid = '%s' and uid = %d limit 1",
+ dbesc($item['mid']),
+ intval($uid)
+ );
+ if($r)
+ return true;
+
if(! perm_is_allowed($uid,$item['author_xchan'],'tag_deliver'))
return false;
diff --git a/include/text.php b/include/text.php
index 35a367d43..98d6947a4 100644
--- a/include/text.php
+++ b/include/text.php
@@ -2018,15 +2018,27 @@ function item_post_type($item) {
return $post_type;
}
+// This needs to be fixed to use quoted tag strings
function undo_post_tagging($s) {
+
$matches = null;
+ // undo tags and mentions
$cnt = preg_match_all('/([@#])(\!*)\[zrl=(.*?)\](.*?)\[\/zrl\]/ism',$s,$matches,PREG_SET_ORDER);
if($cnt) {
foreach($matches as $mtch) {
$s = str_replace($mtch[0], $mtch[1] . $mtch[2] . str_replace(' ','_',$mtch[4]),$s);
}
}
+ // undo forum tags
+ $cnt = preg_match_all('/\!\[zrl=(.*?)\](.*?)\[\/zrl\]/ism',$s,$matches,PREG_SET_ORDER);
+ if($cnt) {
+ foreach($matches as $mtch) {
+ $s = str_replace($mtch[0], '!' . str_replace(' ','_',$mtch[2]),$s);
+ }
+ }
+
+
return $s;
}