]> git.mxchange.org Git - friendica.git/blobdiff - include/conversation.php
Only do the cleaning on specific networks
[friendica.git] / include / conversation.php
index 0907b5dce23cfe2ac0b569a3a9e5453c44dbe4c7..a52502ec3923a226a4e7c2b4e830872f86e8838a 100644 (file)
@@ -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 = '<a href="'. $url . '"'. $sparkle .'>' . htmlentities($item['author-name']) . '</a>';
 
                        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" . '<div class="wall-item-' . $type . '-expanded" id="' . $type . 'list-' . $id . '" style="display: none;" >' . $phrase . EOL . '</div>';
+
                switch($type) {
                        case 'like':
                                $phrase = sprintf( t('<span  %1$s>%2$d people</span> like this'), $spanatts, $cnt);
+                               $explikers = sprintf( t('%s like this.'), $likers);
                                break;
                        case 'dislike':
                                $phrase = sprintf( t('<span  %1$s>%2$d people</span> don\'t like this'), $spanatts, $cnt);
+                               $explikers = sprintf( t('%s don\'t like this.'), $likers);
                                break;
                        case 'attendyes':
                                $phrase = sprintf( t('<span  %1$s>%2$d people</span> attend'), $spanatts, $cnt);
+                               $explikers = sprintf( t('%s attend.'), $likers);
                                break;
                        case 'attendno':
                                $phrase = sprintf( t('<span  %1$s>%2$d people</span> don\'t attend'), $spanatts, $cnt);
+                               $explikers = sprintf( t('%s don\'t attend.'), $likers);
                                break;
                        case 'attendmaybe':
                                $phrase = sprintf( t('<span  %1$s>%2$d people</span> anttend maybe'), $spanatts, $cnt);
-                       case 'agree':
-                               $phrase = sprintf( t('<span  %1$s>%2$d people</span> agree'), $spanatts, $cnt);
+                               $explikers = sprintf( t('%s anttend maybe.'), $likers);
                                break;
-                       case 'disagree':
-                               $phrase = sprintf( t('<span  %1$s>%2$d people</span> don\'t agree'), $spanatts, $cnt);
-                               break;
-                       case 'abstain':
-                               $phrase = sprintf( t('<span  %1$s>%2$d people</span> abstains'), $spanatts, $cnt);
                }
+
+               $expanded .= "\t" . '<div class="wall-item-' . $type . '-expanded" id="' . $type . 'list-' . $id . '" style="display: none;" >' . $explikers . EOL . '</div>';
        }
 
        $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'], '<a href="#" data-toggle="modal" data-target="#' . $v . 'Modal-' 
+                       array_push($ret[$v]['list_part'], '<a href="#" data-toggle="modal" data-target="#' . $v . 'Modal-'
                                . (($ob) ? $ob->get_id() : $item['id']) . '"><b>' . t('View all') . '</b></a>');
                }
                else {