]> git.mxchange.org Git - friendica.git/blobdiff - include/conversation.php
Merge remote-tracking branch 'upstream/2018.08-rc' into ap1
[friendica.git] / include / conversation.php
index 3ceccf36ae1141eb6eae9fd0796658aa87adabc0..835d2274775f27be7dbd0f6949790f8dab3b6342 100644 (file)
@@ -229,12 +229,12 @@ function localize_item(&$item)
                $xmlhead = "<" . "?xml version='1.0' encoding='UTF-8' ?" . ">";
 
                $obj = XML::parseString($xmlhead.$item['object']);
-               $links = XML::parseString($xmlhead."<links>".unxmlify($obj->link)."</links>");
 
                $Bname = $obj->title;
-               $Blink = "";
+               $Blink = $obj->id;
                $Bphoto = "";
-               foreach ($links->link as $l) {
+
+               foreach ($obj->link as $l) {
                        $atts = $l->attributes();
                        switch ($atts['rel']) {
                                case "alternate": $Blink = $atts['href'];
@@ -412,7 +412,8 @@ function conv_get_blocklist()
        $blocklist = [];
 
        foreach (explode(',', $str_blocked) as $entry) {
-               $cid = Contact::getIdForURL(trim($entry), 0, true);
+               // The 4th parameter guarantees that there always will be a public contact entry
+               $cid = Contact::getIdForURL(trim($entry), 0, true, ['url' => trim($entry)]);
                if (!empty($cid)) {
                        $blocklist[] = $cid;
                }
@@ -470,6 +471,7 @@ function conversation(App $a, array $items, $mode, $update, $preview = false, $o
                                . "'; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
                }
        } elseif ($mode === 'profile') {
+               $items = conversation_add_children($items, false, $order, $uid);
                $profile_owner = $a->profile['profile_uid'];
 
                if (!$update) {
@@ -489,6 +491,7 @@ function conversation(App $a, array $items, $mode, $update, $preview = false, $o
                        }
                }
        } elseif ($mode === 'notes') {
+               $items = conversation_add_children($items, false, $order, $uid);
                $profile_owner = local_user();
 
                if (!$update) {
@@ -497,6 +500,7 @@ function conversation(App $a, array $items, $mode, $update, $preview = false, $o
                                . "; var netargs = '/?f='; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
                }
        } elseif ($mode === 'display') {
+               $items = conversation_add_children($items, false, $order, $uid);
                $profile_owner = $a->profile['uid'];
 
                if (!$update) {
@@ -513,6 +517,15 @@ function conversation(App $a, array $items, $mode, $update, $preview = false, $o
                                . "<script> var profile_uid = -1; var netargs = '" . substr($a->cmd, 10)
                                ."/?f='; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
                }
+       } elseif ($mode === 'contacts') {
+               $items = conversation_add_children($items, true, $order, $uid);
+               $profile_owner = 0;
+
+               if (!$update) {
+                       $live_update_div = '<div id="live-contacts"></div>' . "\r\n"
+                               . "<script> var profile_uid = -1; var netargs = '" . substr($a->cmd, 9)
+                               ."/?f='; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
+               }
        } elseif ($mode === 'search') {
                $live_update_div = '<div id="live-search"></div>' . "\r\n";
        }
@@ -540,10 +553,10 @@ function conversation(App $a, array $items, $mode, $update, $preview = false, $o
        $page_template = get_markup_template("conversation.tpl");
 
        if (!empty($items)) {
-               if ($mode === 'community') {
+               if (in_array($mode, ['community', 'contacts'])) {
                        $writable = true;
                } else {
-                       $writable = ($items[0]['uid'] == 0) && in_array($items[0]['network'], [Protocol::OSTATUS, Protocol::DIASPORA, Protocol::DFRN]);
+                       $writable = ($items[0]['uid'] == 0) && in_array($items[0]['network'], [Protocol::ACTIVITYPUB, Protocol::OSTATUS, Protocol::DIASPORA, Protocol::DFRN]);
                }
 
                if (!local_user()) {
@@ -794,7 +807,7 @@ function conversation_add_children(array $parents, $block_authors, $order, $uid)
 
        foreach ($items as $index => $item) {
                if ($item['uid'] == 0) {
-                       $items[$index]['writable'] = in_array($item['network'], [Protocol::OSTATUS, Protocol::DIASPORA, Protocol::DFRN]);
+                       $items[$index]['writable'] = in_array($item['network'], [Protocol::ACTIVITYPUB, Protocol::OSTATUS, Protocol::DIASPORA, Protocol::DFRN]);
                }
        }
 
@@ -864,7 +877,7 @@ function item_photo_menu($item) {
                }
 
                if ((($cid == 0) || ($rel == Contact::FOLLOWER)) &&
-                       in_array($item['network'], [Protocol::DFRN, Protocol::OSTATUS, Protocol::DIASPORA])) {
+                       in_array($item['network'], [Protocol::ACTIVITYPUB, Protocol::DFRN, Protocol::OSTATUS, Protocol::DIASPORA])) {
                        $menu[L10n::t('Connect/Follow')] = 'follow?url=' . urlencode($item['author-link']);
                }
        } else {