X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=include%2Fconversation.php;h=a52502ec3923a226a4e7c2b4e830872f86e8838a;hb=1dda70d144bf86c6c83ed6fbbe2c438a7e1aac4a;hp=0907b5dce23cfe2ac0b569a3a9e5453c44dbe4c7;hpb=ce03ccc95cd125f805e7d8c74e992cf8215242dc;p=friendica.git diff --git a/include/conversation.php b/include/conversation.php index 0907b5dce2..a52502ec39 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) @@ -354,7 +354,7 @@ function count_descendants($item) { function visible_activity($item) { - // likes (etc.) can apply to other things besides posts. Check if they are post children, + // likes (etc.) can apply to other things besides posts. Check if they are post children, // in which case we handle them specially $hidden_activities = array(ACTIVITY_LIKE, ACTIVITY_DISLIKE, ACTIVITY_ATTEND, ACTIVITY_ATTENDNO, ACTIVITY_ATTENDMAYBE); @@ -505,7 +505,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) { $hide_comments_tpl = get_markup_template('hide_comments.tpl'); $conv_responses = array( - 'like' => array('title' => t('Likes','title')), 'dislike' => array('title' => t('Dislikes','title')), + 'like' => array('title' => t('Likes','title')), 'dislike' => array('title' => t('Dislikes','title')), 'attendyes' => array('title' => t('Attending','title')), 'attendno' => array('title' => t('Not attending','title')), 'attendmaybe' => array('title' => t('Might attend','title')) ); @@ -614,7 +614,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) { if(($normalised != 'mailbox') && (x($a->contacts[$normalised]))) $profile_avatar = $a->contacts[$normalised]['thumb']; else - $profile_avatar = ((strlen($item['author-avatar'])) ? $a->get_cached_avatar_image($item['author-avatar']) : $item['thumb']); + $profile_avatar = $a->remove_baseurl(((strlen($item['author-avatar'])) ? $item['author-avatar'] : $item['thumb'])); $locate = array('location' => $item['location'], 'coord' => $item['coord'], 'html' => ''); call_hooks('render_location',$locate); @@ -707,8 +707,8 @@ function conversation(&$a, $items, $mode, $update, $preview = false) { 'like' => '', 'dislike' => '', 'comment' => '', - //'conv' => (($preview) ? '' : array('href'=> $a->get_baseurl($ssl_state) . '/display/' . $nickname . '/' . $item['id'], 'title'=> t('View in context'))), - 'conv' => (($preview) ? '' : array('href'=> $a->get_baseurl($ssl_state) . '/display/'.$item['guid'], 'title'=> t('View in context'))), + //'conv' => (($preview) ? '' : array('href'=> 'display/' . $nickname . '/' . $item['id'], 'title'=> t('View in context'))), + 'conv' => (($preview) ? '' : array('href'=> 'display/'.$item['guid'], 'title'=> t('View in context'))), 'previewing' => $previewing, 'wait' => t('Please wait'), 'thread_level' => 1, @@ -811,16 +811,16 @@ function best_link_url($item,&$sparkle,$ssl_state = false) { if((local_user()) && (local_user() == $item['uid'])) { if(isset($a->contacts) && x($a->contacts,$clean_url)) { if($a->contacts[$clean_url]['network'] === NETWORK_DFRN) { - $best_url = $a->get_baseurl($ssl_state) . '/redir/' . $a->contacts[$clean_url]['id']; + $best_url = 'redir/'.$a->contacts[$clean_url]['id']; $sparkle = true; } else $best_url = $a->contacts[$clean_url]['url']; } } elseif (local_user()) { - $r = q("SELECT `id`, `network` FROM `contact` WHERE `network` = '%s' AND `uid` = %d AND `nurl` = '%s'", + $r = q("SELECT `id` FROM `contact` WHERE `network` = '%s' AND `uid` = %d AND `nurl` = '%s' LIMIT 1", dbesc(NETWORK_DFRN), intval(local_user()), dbesc(normalise_link($clean_url))); if ($r) { - $best_url = $a->get_baseurl($ssl_state).'/redir/'.$r[0]['id']; + $best_url = 'redir/'.$r[0]['id']; $sparkle = true; } } @@ -868,7 +868,7 @@ function item_photo_menu($item){ $status_link = $profile_link . "?url=status"; $photos_link = $profile_link . "?url=photos"; $profile_link = $profile_link . "?url=profile"; - $pm_url = $a->get_baseurl($ssl_state) . '/message/new/' . $cid; + $pm_url = 'message/new/' . $cid; $zurl = ''; } else { @@ -876,29 +876,29 @@ function item_photo_menu($item){ if(local_user() && local_user() == $item['uid'] && link_compare($item['url'],$item['author-link'])) { $cid = $item['contact-id']; } else { - $r = q("SELECT `id`, `network` FROM `contact` WHERE `uid` = %d AND `nurl` = '%s' ORDER BY `uid` DESC LIMIT 1", + $r = q("SELECT `id`, `network` FROM `contact` WHERE `uid` = %d AND `nurl` = '%s' LIMIT 1", intval(local_user()), dbesc(normalise_link($item['author-link']))); if ($r) { $cid = $r[0]["id"]; if ($r[0]["network"] == NETWORK_DIASPORA) - $pm_url = $a->get_baseurl($ssl_state) . '/message/new/' . $cid; + $pm_url = 'message/new/' . $cid; } else $cid = 0; } } if(($cid) && (! $item['self'])) { - $poke_link = $a->get_baseurl($ssl_state) . '/poke/?f=&c=' . $cid; - $contact_url = $a->get_baseurl($ssl_state) . '/contacts/' . $cid; - $posts_link = $a->get_baseurl($ssl_state) . '/network/0?nets=all&cid=' . $cid; + $poke_link = 'poke/?f=&c=' . $cid; + $contact_url = 'contacts/' . $cid; + $posts_link = 'contacts/' . $cid . '/posts'; $clean_url = normalise_link($item['author-link']); if((local_user()) && (local_user() == $item['uid'])) { if(isset($a->contacts) && x($a->contacts,$clean_url)) { if($a->contacts[$clean_url]['network'] === NETWORK_DIASPORA) { - $pm_url = $a->get_baseurl($ssl_state) . '/message/new/' . $cid; + $pm_url = 'message/new/' . $cid; } } } @@ -921,7 +921,7 @@ function item_photo_menu($item){ if ((($cid == 0) OR ($a->contacts[$clean_url]['rel'] == CONTACT_IS_FOLLOWER)) AND in_array($item['network'], array(NETWORK_DFRN, NETWORK_OSTATUS, NETWORK_DIASPORA))) - $menu[t("Connect/Follow")] = $a->get_baseurl($ssl_state)."/follow?url=".urlencode($item['author-link']); + $menu[t("Connect/Follow")] = "follow?url=".urlencode($item['author-link']); } else $menu = array(t("View Profile") => $item['author-link']); @@ -946,12 +946,11 @@ function item_photo_menu($item){ * @brief Checks item to see if it is one of the builtin activities (like/dislike, event attendance, consensus items, etc.) * Increments the count of each matching activity and adds a link to the author as needed. * - * @param array $a (not used) * @param array $item * @param array &$conv_responses (already created with builtin activity structure) * @return void */ -if(! function_exists(builtin_activity_puller)) { +if(! function_exists('builtin_activity_puller')) { function builtin_activity_puller($item, &$conv_responses) { foreach($conv_responses as $mode => $v) { $url = ''; @@ -981,18 +980,18 @@ function builtin_activity_puller($item, &$conv_responses) { if((activity_match($item['verb'], $verb)) && ($item['id'] != $item['parent'])) { $url = $item['author-link']; if((local_user()) && (local_user() == $item['uid']) && ($item['network'] === NETWORK_DFRN) && (! $item['self']) && (link_compare($item['author-link'],$item['url']))) { - $url = z_root(true) . '/redir/' . $item['contact-id']; + $url = '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 +1024,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 +1063,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 ; @@ -1180,7 +1178,7 @@ function status_editor($a,$x, $notes_cid = 0, $popup=false) { $o .= replace_macros($tpl,array( '$return_path' => $query_str, - '$action' => $a->get_baseurl(true) . '/item', + '$action' => 'item', '$share' => (x($x,'button') ? $x['button'] : t('Share')), '$upload' => t('Upload photo'), '$shortupload' => t('upload photo'), @@ -1292,6 +1290,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']) @@ -1374,7 +1381,7 @@ function get_responses($conv_responses,$response_verbs,$ob,$item) { $ret[$v]['list'] = ((x($conv_responses[$v],$item['uri'])) ? $conv_responses[$v][$item['uri'] . '-l'] : ''); if(count($ret[$v]['list']) > MAX_LIKERS) { $ret[$v]['list_part'] = array_slice($ret[$v]['list'], 0, MAX_LIKERS); - array_push($ret[$v]['list_part'], '' . t('View all') . ''); } else {