diff options
-rwxr-xr-x | include/items.php | 5 | ||||
-rwxr-xr-x | mod/dfrn_confirm.php | 3 | ||||
-rwxr-xr-x | mod/item.php | 14 |
3 files changed, 22 insertions, 0 deletions
diff --git a/include/items.php b/include/items.php index 62f1f2ce5..ba95919a6 100755 --- a/include/items.php +++ b/include/items.php @@ -814,6 +814,11 @@ function item_store($arr,$force_parent = false) { call_hooks('post_remote',$arr); + if(x($arr,'cancel')) { + logger('item_store: post cancelled by plugin.'); + return 0; + } + dbesc_array($arr); logger('item_store: ' . print_r($arr,true), LOGGER_DATA); diff --git a/mod/dfrn_confirm.php b/mod/dfrn_confirm.php index 89b09ef77..26314f39b 100755 --- a/mod/dfrn_confirm.php +++ b/mod/dfrn_confirm.php @@ -370,6 +370,9 @@ function dfrn_confirm_post(&$a,$handsfree = null) { if($network === NETWORK_DIASPORA) { if($duplex) $new_relation = CONTACT_IS_FRIEND; + else + $new_relation = CONTACT_IS_SHARING; + if($new_relation != CONTACT_IS_FOLLOWER) $writable = 1; } diff --git a/mod/item.php b/mod/item.php index 99c01c54f..217f13c49 100755 --- a/mod/item.php +++ b/mod/item.php @@ -633,6 +633,20 @@ function item_post(&$a) { call_hooks('post_local',$datarray); + if(x($datarray,'cancel')) { + logger('mod_item: post cancelled by plugin.'); + if($return_path) { + goaway($a->get_baseurl() . "/" . $return_path); + } + + $json = array('cancel' => 1); + if(x($_REQUEST,'jsreload') && strlen($_REQUEST['jsreload'])) + $json['reload'] = $a->get_baseurl() . '/' . $_REQUEST['jsreload']; + + echo json_encode($json); + killme(); + } + if($orig_post) { $r = q("UPDATE `item` SET `body` = '%s', `edited` = '%s' WHERE `id` = %d AND `uid` = %d LIMIT 1", |