]> git.mxchange.org Git - friendica.git/blobdiff - include/items.php
Merge remote-tracking branch 'upstream/develop' into 1504-unified-follow
[friendica.git] / include / items.php
index e56b17aec2b2bf20cf63ee419b63909bffabc19c..3832b80b318f30f51a0f8b716d87c752f65ac855 100644 (file)
@@ -12,6 +12,7 @@ require_once('include/email.php');
 require_once('include/ostatus_conversation.php');
 require_once('include/threads.php');
 require_once('include/socgraph.php');
+require_once('mod/share.php');
 
 function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0) {
 
@@ -838,10 +839,7 @@ function get_atom_elements($feed, $item, $contact = array()) {
                        logger('get_atom_elements: fixing sender of repeated message.');
 
                        if (!intval(get_config('system','wall-to-wall_share'))) {
-                               $prefix = "[share author='".str_replace("'", "'",$name).
-                                               "' profile='".$uri.
-                                               "' avatar='".$avatar.
-                                               "' link='".$orig_uri."']";
+                               $prefix = share_header($name, $uri, $avatar, "", "", $orig_uri);
 
                                $res["body"] = $prefix.html2bbcode($message)."[/share]";
                        } else {
@@ -1183,9 +1181,9 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa
        $arr['owner-avatar']  = ((x($arr,'owner-avatar'))  ? notags(trim($arr['owner-avatar']))  : '');
        $arr['created']       = ((x($arr,'created') !== false) ? datetime_convert('UTC','UTC',$arr['created']) : datetime_convert());
        $arr['edited']        = ((x($arr,'edited')  !== false) ? datetime_convert('UTC','UTC',$arr['edited'])  : datetime_convert());
-       $arr['commented']     = datetime_convert();
-       $arr['received']      = datetime_convert();
-       $arr['changed']       = datetime_convert();
+       $arr['commented']     = ((x($arr,'commented')  !== false) ? datetime_convert('UTC','UTC',$arr['commented'])  : datetime_convert());
+       $arr['received']      = ((x($arr,'received')  !== false) ? datetime_convert('UTC','UTC',$arr['received'])  : datetime_convert());
+       $arr['changed']       = ((x($arr,'changed')  !== false) ? datetime_convert('UTC','UTC',$arr['changed'])  : datetime_convert());
        $arr['title']         = ((x($arr,'title'))         ? notags(trim($arr['title']))         : '');
        $arr['location']      = ((x($arr,'location'))      ? notags(trim($arr['location']))      : '');
        $arr['coord']         = ((x($arr,'coord'))         ? notags(trim($arr['coord']))         : '');
@@ -1210,8 +1208,8 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa
        $arr['attach']        = ((x($arr,'attach'))        ? notags(trim($arr['attach']))        : '');
        $arr['app']           = ((x($arr,'app'))           ? notags(trim($arr['app']))           : '');
        $arr['origin']        = ((x($arr,'origin'))        ? intval($arr['origin'])              : 0 );
-       $arr['guid']          = ((x($arr,'guid'))          ? notags(trim($arr['guid']))          : get_guid(30));
        $arr['network']       = ((x($arr,'network'))       ? trim($arr['network'])               : '');
+       $arr['guid']          = ((x($arr,'guid'))          ? notags(trim($arr['guid']))          : get_guid(32, $arr['network']));
        $arr['postopts']      = ((x($arr,'postopts'))      ? trim($arr['postopts'])              : '');
        $arr['resource-id']   = ((x($arr,'resource-id'))   ? trim($arr['resource-id'])           : '');
        $arr['event-id']      = ((x($arr,'event-id'))      ? intval($arr['event-id'])            : 0 );
@@ -1346,6 +1344,20 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa
                return 0;
        }
 
+       // Is this item available in the global items (with uid=0)?
+       if ($arr["uid"] == 0) {
+               $arr["global"] = true;
+
+               q("UPDATE `item` SET `global` = 1 WHERE `guid` = '%s'", dbesc($arr["guid"]));
+       }  else {
+               $isglobal = q("SELECT `global` FROM `item` WHERE `uid` = 0 AND `guid` = '%s'", dbesc($arr["guid"]));
+
+               $arr["global"] = (count($isglobal) > 0);
+       }
+
+       // Fill the cache field
+       put_item_in_cache($arr);
+
        call_hooks('post_remote',$arr);
 
        if(x($arr,'cancel')) {
@@ -1478,9 +1490,6 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa
        // in it.
        if (!$deleted AND !$dontcache) {
 
-               // Store the fresh generated item into the cache
-               put_item_in_cache($arr);
-
                $r = q('SELECT * FROM `item` WHERE id = %d', intval($current_post));
                if (count($r) == 1) {
                        call_hooks('post_remote_end', $r[0]);
@@ -1550,8 +1559,10 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa
                        ));
                        logger('item_store: Notification sent for contact '.$arr['contact-id'].' and post '.$current_post, LOGGER_DEBUG);
                }
-       } else
+       } else {
                update_thread($parent_id);
+               add_shadow_entry($arr);
+       }
 
        if ($notify)
                proc_run('php', "include/notifier.php", $notify_type, $current_post);
@@ -1576,11 +1587,11 @@ function item_body_set_hashtags(&$item) {
        $URLSearchString = "^\[\]";
 
        // All hashtags should point to the home server
-       $item["body"] = preg_replace("/#\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism",
-                       "#[url=".$a->get_baseurl()."/search?tag=$2]$2[/url]", $item["body"]);
+       //$item["body"] = preg_replace("/#\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism",
+       //              "#[url=".$a->get_baseurl()."/search?tag=$2]$2[/url]", $item["body"]);
 
-       $item["tag"] = preg_replace("/#\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism",
-                       "#[url=".$a->get_baseurl()."/search?tag=$2]$2[/url]", $item["tag"]);
+       //$item["tag"] = preg_replace("/#\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism",
+       //              "#[url=".$a->get_baseurl()."/search?tag=$2]$2[/url]", $item["tag"]);
 
        // mask hashtags inside of url, bookmarks and attachments to avoid urls in urls
        $item["body"] = preg_replace_callback("/\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism",