From: friendica <info@friendica.com>
Date: Tue, 31 Jan 2012 04:49:54 +0000 (-0800)
Subject: allow plugin to abort message posting, fix half-duplex D* relationship
X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=4993f4f1d63bd82a6964d6a55bb364d2c7514df4;p=friendica.git

allow plugin to abort message posting, fix half-duplex D* relationship
---

diff --git a/include/items.php b/include/items.php
index 62f1f2ce5b..ba95919a6b 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 89b09ef77e..26314f39be 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 99c01c54fd..217f13c498 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",