X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fconversation.php;h=3b2eb54bde12c655b1df3421bd70f8d9df48d03d;hb=37f466d16e8d25badf1125ef3702115210532f53;hp=0907b5dce23cfe2ac0b569a3a9e5453c44dbe4c7;hpb=5c2923869ac02e2bb39074640c37264504434912;p=friendica.git diff --git a/include/conversation.php b/include/conversation.php index 0907b5dce2..3b2eb54bde 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -100,7 +100,7 @@ function localize_item(&$item){ $item['body'] = item_redir_and_replace_images($extracted['body'], $extracted['images'], $item['contact-id']); $xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">"; - if (activity_match($item['verb'],ACTIVITY_LIKE) + if (activity_match($item['verb'],ACTIVITY_LIKE) || activity_match($item['verb'],ACTIVITY_DISLIKE) || activity_match($item['verb'],ACTIVITY_ATTEND) || activity_match($item['verb'],ACTIVITY_ATTENDNO) @@ -984,15 +984,15 @@ function builtin_activity_puller($item, &$conv_responses) { $url = z_root(true) . '/redir/' . $item['contact-id']; $sparkle = ' class="sparkle" '; } - else + else $url = zrl($url); - + $url = '' . htmlentities($item['author-name']) . ''; if(! $item['thr-parent']) $item['thr-parent'] = $item['parent-uri']; - if(! ((isset($conv_responses[$mode][$item['thr-parent'] . '-l'])) + if(! ((isset($conv_responses[$mode][$item['thr-parent'] . '-l'])) && (is_array($conv_responses[$mode][$item['thr-parent'] . '-l'])))) $conv_responses[$mode][$item['thr-parent'] . '-l'] = array(); @@ -1025,10 +1025,31 @@ function format_like($cnt,$arr,$type,$id) { $o = ''; $expanded = ''; - if($cnt == 1) + if($cnt == 1) { $likers = $arr[0]; - else { + // Phrase if there is only one liker. In other cases it will be uses for the expanded + // list which show all likers + switch($type) { + case 'like' : + $phrase = sprintf( t('%s likes this.'), $likers); + break; + case 'dislike' : + $phrase = sprintf( t('%s doesn\'t like this.'), $likers); + break; + case 'attendyes' : + $phrase = sprintf( t('%s attends.'), $likers); + break; + case 'attendno' : + $phrase = sprintf( t('%s doesn\'t attend.'), $likers); + break; + case 'attendmaybe' : + $phrase = sprintf( t('%s attends maybe.'), $likers); + break; + } + } + + if($cnt > 1) { $total = count($arr); if($total >= MAX_LIKERS) $arr = array_slice($arr, 0, MAX_LIKERS - 1); @@ -1043,55 +1064,33 @@ function format_like($cnt,$arr,$type,$id) { } $likers = $str; - } - // Phrase if there is only one liker. In other cases it will be uses for the expanded - // list which show all likers - switch($type) { - case 'like' : - $phrase = sprintf( t('%s likes this.'), $likers); - break; - case 'dislike' : - $phrase = sprintf( t('%s doesn\'t like this.'), $likers); - break; - case 'attendyes' : - $phrase = sprintf( t('%s attends.'), $likers); - break; - case 'attendno' : - $phrase = sprintf( t('%s doesn\'t attend.'), $likers); - break; - case 'attendmaybe' : - $phrase = sprintf( t('%s attends maybe.'), $likers); - break; - } - - if($cnt > 1) { $spanatts = "class=\"fakelink\" onclick=\"openClose('{$type}list-$id');\""; - $expanded .= "\t" . ''; + switch($type) { case 'like': $phrase = sprintf( t('%2$d people like this'), $spanatts, $cnt); + $explikers = sprintf( t('%s like this.'), $likers); break; case 'dislike': $phrase = sprintf( t('%2$d people don\'t like this'), $spanatts, $cnt); + $explikers = sprintf( t('%s don\'t like this.'), $likers); break; case 'attendyes': $phrase = sprintf( t('%2$d people attend'), $spanatts, $cnt); + $explikers = sprintf( t('%s attend.'), $likers); break; case 'attendno': $phrase = sprintf( t('%2$d people don\'t attend'), $spanatts, $cnt); + $explikers = sprintf( t('%s don\'t attend.'), $likers); break; case 'attendmaybe': $phrase = sprintf( t('%2$d people anttend maybe'), $spanatts, $cnt); - case 'agree': - $phrase = sprintf( t('%2$d people agree'), $spanatts, $cnt); + $explikers = sprintf( t('%s anttend maybe.'), $likers); break; - case 'disagree': - $phrase = sprintf( t('%2$d people don\'t agree'), $spanatts, $cnt); - break; - case 'abstain': - $phrase = sprintf( t('%2$d people abstains'), $spanatts, $cnt); } + + $expanded .= "\t" . ''; } $phrase .= EOL ; @@ -1292,6 +1291,15 @@ function conv_sort($arr,$order) { $parents = array(); $children = array(); + $newarr = array(); + + // This is a preparation for having two different items with the same uri in one thread + // This will otherwise lead to an endless loop. + foreach($arr as $x) + if (!isset($newarr[$x['uri']])) + $newarr[$x['uri']] = $x; + + $arr = $newarr; foreach($arr as $x) if($x['id'] == $x['parent'])