aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xinclude/items.php5
-rwxr-xr-xmod/dfrn_confirm.php3
-rwxr-xr-xmod/item.php14
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",