X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Fitem.php;h=213a9907898bf0cafa98de592528716c2018bd23;hb=8dc5b04be7cd9cb2eb77ed9824815efe27369bee;hp=afb119c8affed95dff4bb55b06fc6e647b4fb73c;hpb=cff90e20f2b9036e39fd46a578c04e0d9b5ffcc3;p=friendica.git diff --git a/mod/item.php b/mod/item.php index afb119c8af..213a990789 100644 --- a/mod/item.php +++ b/mod/item.php @@ -21,10 +21,12 @@ use Friendica\Content\Text\HTML; use Friendica\Core\Addon; use Friendica\Core\Config; use Friendica\Core\L10n; +use Friendica\Core\Protocol; use Friendica\Core\System; use Friendica\Core\Worker; use Friendica\Database\DBA; use Friendica\Model\Contact; +use Friendica\Model\Conversation; use Friendica\Model\Item; use Friendica\Protocol\Diaspora; use Friendica\Protocol\Email; @@ -37,7 +39,7 @@ require_once 'include/items.php'; function item_post(App $a) { if (!local_user() && !remote_user()) { - return; + return 0; } require_once 'include/security.php'; @@ -135,7 +137,13 @@ function item_post(App $a) { $app = strip_tags(defaults($_REQUEST, 'source', '')); $extid = strip_tags(defaults($_REQUEST, 'extid', '')); $object = defaults($_REQUEST, 'object', ''); - $wall = intval(defaults($_REQUEST, 'wall', 1)); + + // Don't use "defaults" here. It would turn 0 to 1 + if (!isset($_REQUEST['wall'])) { + $wall = 1; + } else { + $wall = $_REQUEST['wall']; + } // Ensure that the user id in a thread always stay the same if (!is_null($parent_user) && in_array($parent_user, [local_user(), 0])) { @@ -144,14 +152,14 @@ function item_post(App $a) { // Check for multiple posts with the same message id (when the post was created via API) if (($message_id != '') && ($profile_uid != 0)) { - if (DBA::exists('item', ['uri' => $message_id, 'uid' => $profile_uid])) { + if (Item::exists(['uri' => $message_id, 'uid' => $profile_uid])) { logger("Message with URI ".$message_id." already exists for user ".$profile_uid, LOGGER_DEBUG); - return; + return 0; } } // Allow commenting if it is an answer to a public post - $allow_comment = local_user() && ($profile_uid == 0) && $parent && in_array($parent_item['network'], [NETWORK_OSTATUS, NETWORK_DIASPORA, NETWORK_DFRN]); + $allow_comment = local_user() && ($profile_uid == 0) && $parent && in_array($parent_item['network'], [Protocol::OSTATUS, Protocol::DIASPORA, Protocol::DFRN]); // Now check that valid personal details have been provided if (!can_write_wall($profile_uid) && !$allow_comment) { @@ -175,7 +183,7 @@ function item_post(App $a) { $user = DBA::selectFirst('user', [], ['uid' => $profile_uid]); if (!DBA::isResult($user) && !$parent) { - return; + return 0; } $categories = ''; @@ -231,7 +239,7 @@ function item_post(App $a) { $verb = notags(trim(defaults($_REQUEST, 'verb' , ''))); $emailcc = notags(trim(defaults($_REQUEST, 'emailcc' , ''))); $body = escape_tags(trim(defaults($_REQUEST, 'body' , ''))); - $network = notags(trim(defaults($_REQUEST, 'network' , NETWORK_DFRN))); + $network = notags(trim(defaults($_REQUEST, 'network' , Protocol::DFRN))); $guid = System::createGUID(32); $postopts = defaults($_REQUEST, 'postopts', ''); @@ -246,8 +254,8 @@ function item_post(App $a) { if ($parent_item) { // for non native networks use the network of the original post as network of the item - if (($parent_item['network'] != NETWORK_DIASPORA) - && ($parent_item['network'] != NETWORK_OSTATUS) + if (($parent_item['network'] != Protocol::DIASPORA) + && ($parent_item['network'] != Protocol::OSTATUS) && ($network == "")) { $network = $parent_item['network']; } @@ -337,14 +345,14 @@ function item_post(App $a) { // Add a tag if the parent contact is from OStatus (This will notify them during delivery) if ($parent) { - if ($thr_parent_contact['network'] == NETWORK_OSTATUS) { + if ($thr_parent_contact['network'] == Protocol::OSTATUS) { $contact = '@[url=' . $thr_parent_contact['url'] . ']' . $thr_parent_contact['nick'] . '[/url]'; if (!stripos(implode($tags), '[url=' . $thr_parent_contact['url'] . ']')) { $tags[] = $contact; } } - if ($parent_contact['network'] == NETWORK_OSTATUS) { + if ($parent_contact['network'] == Protocol::OSTATUS) { $contact = '@[url=' . $parent_contact['url'] . ']' . $parent_contact['nick'] . '[/url]'; if (!stripos(implode($tags), '[url=' . $parent_contact['url'] . ']')) { $tags[] = $contact; @@ -387,12 +395,12 @@ function item_post(App $a) { $tagged[] = $tag; } // When the forum is private or the forum is addressed with a "!" make the post private - if (is_array($success['contact']) && ($success['contact']['prv'] || ($tag_type == '!'))) { + if (is_array($success['contact']) && (!empty($success['contact']['prv']) || ($tag_type == '!'))) { $private_forum = $success['contact']['prv']; $only_to_forum = ($tag_type == '!'); $private_id = $success['contact']['id']; $forum_contact = $success['contact']; - } elseif (is_array($success['contact']) && $success['contact']['forum'] && + } elseif (is_array($success['contact']) && !empty($success['contact']['forum']) && ($str_contact_allow == '<' . $success['contact']['id'] . '>')) { $private_forum = false; $only_to_forum = true; @@ -552,7 +560,7 @@ function item_post(App $a) { } if ($network == "") { - $network = NETWORK_DFRN; + $network = Protocol::DFRN; } $gravity = ($parent ? GRAVITY_COMMENT : GRAVITY_PARENT); @@ -560,7 +568,12 @@ function item_post(App $a) { // even if the post arrived via API we are considering that it // originated on this site by default for determining relayability. - $origin = intval(defaults($_REQUEST, 'origin', 1)); + // Don't use "defaults" here. It would turn 0 to 1 + if (!isset($_REQUEST['origin'])) { + $origin = 1; + } else { + $origin = $_REQUEST['origin']; + } $notify_type = ($parent ? 'comment-new' : 'wall-new'); @@ -632,7 +645,7 @@ function item_post(App $a) { $datarray['api_source'] = $api_source; // This field is for storing the raw conversation data - $datarray['protocol'] = PROTOCOL_DFRN; + $datarray['protocol'] = Conversation::PARCEL_DFRN; $conversation = DBA::selectFirst('conversation', ['conversation-uri', 'conversation-href'], ['item-uri' => $datarray['parent-uri']]); if (DBA::isResult($conversation)) { @@ -662,7 +675,7 @@ function item_post(App $a) { // doesn't have an ID. $datarray["id"] = -1; $datarray["item_id"] = -1; - $datarray["author-network"] = NETWORK_DFRN; + $datarray["author-network"] = Protocol::DFRN; $o = conversation($a,[array_merge($contact_record,$datarray)],'search', false, true); logger('preview: ' . $o); @@ -830,6 +843,10 @@ function item_post(App $a) { logger('post_complete'); + if ($api_source) { + return $post_id; + } + item_post_return(System::baseUrl(), $api_source, $return_path); // NOTREACHED } @@ -1009,8 +1026,8 @@ function handle_tag(App $a, &$body, &$inform, &$str_tags, $profile_uid, $tag, $n $alias = $contact["alias"]; $newname = $contact["nick"]; - if (($newname == "") || (($contact["network"] != NETWORK_OSTATUS) && ($contact["network"] != NETWORK_TWITTER) - && ($contact["network"] != NETWORK_STATUSNET) && ($contact["network"] != NETWORK_APPNET))) { + if (($newname == "") || (($contact["network"] != Protocol::OSTATUS) && ($contact["network"] != Protocol::TWITTER) + && ($contact["network"] != Protocol::STATUSNET))) { $newname = $contact["name"]; } }