]> git.mxchange.org Git - friendica.git/blobdiff - mod/item.php
Issue 11969: Only use the simple share with federated posts
[friendica.git] / mod / item.php
index 070934fb5021554d3d831f8b114349e881c11906..6c01cdbc1852b234dcdd15aa58d85dbed78eeb35 100644 (file)
@@ -89,7 +89,7 @@ function item_post(App $a) {
         */
        if (!$preview && !empty($_REQUEST['post_id_random'])) {
                if (!empty($_SESSION['post-random']) && $_SESSION['post-random'] == $_REQUEST['post_id_random']) {
-                       Logger::info('item post: duplicate post');
+                       Logger::warning('duplicate post');
                        item_post_return(DI::baseUrl(), $api_source, $return_path);
                } else {
                        $_SESSION['post-random'] = $_REQUEST['post_id_random'];
@@ -138,7 +138,7 @@ function item_post(App $a) {
                // When commenting on a public post then store the post for the current user
                // This enables interaction like starring and saving into folders
                if ($toplevel_item['uid'] == 0) {
-                       $stored = Item::storeForUserByUriId($toplevel_item['uri-id'], local_user());
+                       $stored = Item::storeForUserByUriId($toplevel_item['uri-id'], local_user(), ['post-reason' => Item::PR_ACTIVITY]);
                        Logger::info('Public item stored for user', ['uri-id' => $toplevel_item['uri-id'], 'uid' => $uid, 'stored' => $stored]);
                        if ($stored) {
                                $toplevel_item = Post::selectFirst(Item::ITEM_FIELDLIST, ['id' => $stored]);
@@ -177,7 +177,7 @@ function item_post(App $a) {
 
        // Now check that valid personal details have been provided
        if (!Security::canWriteToUserWall($profile_uid) && !$allow_comment) {
-               Logger::notice('Permission denied.', ['local' => local_user(), 'profile_uid' => $profile_uid, 'toplevel_item_id' => $toplevel_item_id, 'network' => $toplevel_item['network']]);
+               Logger::warning('Permission denied.', ['local' => local_user(), 'profile_uid' => $profile_uid, 'toplevel_item_id' => $toplevel_item_id, 'network' => $toplevel_item['network']]);
                notice(DI::l10n()->t('Permission denied.'));
                if ($return_path) {
                        DI::baseUrl()->redirect($return_path);
@@ -401,7 +401,7 @@ function item_post(App $a) {
                $body              = $item['body'];
                $inform            = $item['inform'];
                $postopts          = $item['postopts'];
-               $private           = $item['private']; 
+               $private           = $item['private'];
                $str_contact_allow = $item['allow_cid'];
                $str_group_allow   = $item['allow_gid'];
                $str_contact_deny  = $item['deny_cid'];
@@ -439,8 +439,13 @@ function item_post(App $a) {
                                // Ensure to only modify attachments that you own
                                $srch = '<' . intval($contact_id) . '>';
 
-                               $condition = ['allow_cid' => $srch, 'allow_gid' => '', 'deny_cid' => '', 'deny_gid' => '',
-                                               'id' => $attach];
+                               $condition = [
+                                       'allow_cid' => $srch,
+                                       'allow_gid' => '',
+                                       'deny_cid' => '',
+                                       'deny_gid' => '',
+                                       'id' => $attach,
+                               ];
                                if (!Attach::exists($condition)) {
                                        continue;
                                }
@@ -520,7 +525,7 @@ function item_post(App $a) {
                $origin = $_REQUEST['origin'];
        }
 
-       $uri = Item::newURI($api_source ? $profile_uid : $uid, $guid);
+       $uri = Item::newURI($guid);
 
        // Fallback so that we alway have a parent uri
        if (!$thr_parent_uri || !$toplevel_item_id) {
@@ -590,16 +595,6 @@ function item_post(App $a) {
        $datarray['protocol'] = Conversation::PARCEL_DIRECT;
        $datarray['direction'] = Conversation::PUSH;
 
-       $conversation = DBA::selectFirst('conversation', ['conversation-uri', 'conversation-href'], ['item-uri' => $datarray['thr-parent']]);
-       if (DBA::isResult($conversation)) {
-               if ($conversation['conversation-uri'] != '') {
-                       $datarray['conversation-uri'] = $conversation['conversation-uri'];
-               }
-               if ($conversation['conversation-href'] != '') {
-                       $datarray['conversation-href'] = $conversation['conversation-href'];
-               }
-       }
-
        if ($orig_post) {
                $datarray['edit'] = true;
        } else {
@@ -621,6 +616,12 @@ function item_post(App $a) {
                $datarray["id"] = -1;
                $datarray["uri-id"] = -1;
                $datarray["author-network"] = Protocol::DFRN;
+               $datarray["author-updated"] = '';
+               $datarray["author-gsid"] = 0;
+               $datarray["author-uri-id"] = ItemURI::getIdByURI($datarray["author-link"]);
+               $datarray["owner-updated"] = '';
+               $datarray["has-media"] = false;
+               $datarray['body'] = Item::improveSharedDataInBody($datarray);
 
                $o = DI::conversation()->create([array_merge($contact_record, $datarray)], 'search', false, true);
 
@@ -661,23 +662,20 @@ function item_post(App $a) {
        }
 
        $datarray['uri-id'] = ItemURI::getIdByURI($datarray['uri']);
+       $datarray['body']   = Item::improveSharedDataInBody($datarray);
 
        if ($orig_post) {
-               // Fill the cache field
-               // This could be done in Item::update as well - but we have to check for the existance of some fields.
-               Item::putInCache($datarray);
-
                $fields = [
                        'title' => $datarray['title'],
                        'body' => $datarray['body'],
                        'attach' => $datarray['attach'],
                        'file' => $datarray['file'],
-                       'rendered-html' => $datarray['rendered-html'],
-                       'rendered-hash' => $datarray['rendered-hash'],
                        'edited' => DateTimeFormat::utcNow(),
-                       'changed' => DateTimeFormat::utcNow()];
+                       'changed' => DateTimeFormat::utcNow()
+               ];
 
                Item::update($fields, ['id' => $post_id]);
+               Item::updateDisplayCache($datarray['uri-id']);
 
                if ($return_path) {
                        DI::baseUrl()->redirect($return_path);
@@ -759,7 +757,7 @@ function item_post(App $a) {
                }
        }
 
-       Logger::info('post_complete');
+       Logger::debug('post_complete');
 
        if ($api_source) {
                return $post_id;
@@ -784,7 +782,7 @@ function item_post_return($baseurl, $api_source, $return_path)
                $json['reload'] = $baseurl . '/' . $_REQUEST['jsreload'];
        }
 
-       Logger::info('post_json', ['json' => $json]);
+       Logger::debug('post_json', ['json' => $json]);
 
        System::jsonExit($json);
 }
@@ -870,7 +868,7 @@ function drop_item(int $id, string $return = '')
 
                item_redirect_after_action($item, $return);
        } else {
-               Logger::notice('Permission denied.', ['local' => local_user(), 'uid' => $item['uid'], 'cid' => $contact_id]);
+               Logger::warning('Permission denied.', ['local' => local_user(), 'uid' => $item['uid'], 'cid' => $contact_id]);
                notice(DI::l10n()->t('Permission denied.'));
                DI::baseUrl()->redirect('display/' . $item['guid']);
                //NOTREACHED