]> git.mxchange.org Git - friendica.git/blobdiff - include/conversation.php
Send notifications for each new post of a contact, option for creating a summary...
[friendica.git] / include / conversation.php
index 5296011bb37e080a220f4eb024455b79115ac13c..31f40aa6f8ca20767b47f90e94194719e091a8f5 100644 (file)
@@ -369,7 +369,6 @@ function visible_activity($item) {
 if(!function_exists('conversation')) {
 function conversation(&$a, $items, $mode, $update, $preview = false) {
 
-
        require_once('include/bbcode.php');
 
        $ssl_state = ((local_user()) ? true : false);
@@ -378,6 +377,18 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
        $page_writeable = false;
        $live_update_div = '';
 
+       $arr_blocked = null;
+
+       if(local_user()) {
+               $str_blocked = get_pconfig(local_user(),'system','blocked');
+               if($str_blocked) {
+                       $arr_blocked = explode(',',$str_blocked);
+                       for($x = 0; $x < count($arr_blocked); $x ++)
+                               $arr_blocked[$x] = trim($arr_blocked[$x]);
+               }
+
+       }
+
        $previewing = (($preview) ? ' preview ' : '');
 
        if($mode === 'network') {
@@ -476,7 +487,6 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
        $alike = array();
        $dlike = array();
 
-
        // array with html for each thread (parent+comments)
        $threads = array();
        $threadsid = -1;
@@ -494,6 +504,19 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
                        $tpl = 'search_item.tpl';
 
                        foreach($items as $item) {
+                               if($arr_blocked) {
+                                       $blocked = false;
+                                       foreach($arr_blocked as $b) {
+                                               if($b && link_compare($item['author-link'],$b)) {
+                                                       $blocked = true;
+                                                       break;
+                                               }
+                                       }
+                                       if($blocked)
+                                               continue;
+                               }
+
+
                                $threadsid++;
 
                                $comment     = '';
@@ -524,7 +547,26 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
                                $tags=array();
                                $hashtags = array();
                                $mentions = array();
-                               foreach(explode(',',$item['tag']) as $tag){
+
+                               $taglist = q("SELECT `type`, `term`, `url` FROM `term` WHERE `otype` = %d AND `oid` = %d AND `type` IN (%d, %d) ORDER BY `tid`",
+                                               intval(TERM_OBJ_POST), intval($item['id']), intval(TERM_HASHTAG), intval(TERM_MENTION));
+
+                               foreach($taglist as $tag) {
+
+                                       if ($tag["url"] == "")
+                                               $tag["url"] = $searchpath.strtolower($tag["term"]);
+
+                                       if ($tag["type"] == TERM_HASHTAG) {
+                                               $hashtags[] = "#<a href=\"".$tag["url"]."\" target=\"external-link\">".$tag["term"]."</a>";
+                                               $prefix = "#";
+                                       } elseif ($tag["type"] == TERM_MENTION) {
+                                               $mentions[] = "@<a href=\"".$tag["url"]."\" target=\"external-link\">".$tag["term"]."</a>";
+                                               $prefix = "@";
+                                       }
+                                       $tags[] = $prefix."<a href=\"".$tag["url"]."\" target=\"external-link\">".$tag["term"]."</a>";
+                               }
+
+                               /*foreach(explode(',',$item['tag']) as $tag){
                                        $tag = trim($tag);
                                        if ($tag!="") {
                                                $t = bbcode($tag);
@@ -534,7 +576,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
                                                elseif($t[0] == '@')
                                                        $mentions[] = $t;
                                        }
-                               }
+                               }*/
 
                                $sp = false;
                                $profile_link = best_link_url($item,$sp);
@@ -654,7 +696,6 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
                                $threads[$threadsid]['items'] = array($arr['output']);
 
                        }
-
                }
                else
                {
@@ -673,6 +714,21 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
                        $threads = array();
                        foreach($items as $item) {
 
+                               if($arr_blocked) {
+                                       $blocked = false;
+                                       foreach($arr_blocked as $b) {
+
+                                               if($b && link_compare($item['author-link'],$b)) {
+                                                       $blocked = true;
+                                                       break;
+                                               }
+                                       }
+                                       if($blocked)
+                                               continue;
+                               }
+
+
+
                                // Can we put this after the visibility check?
                                like_puller($a,$item,$alike,'like');
                                like_puller($a,$item,$dlike,'dislike');
@@ -696,6 +752,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
                        }
 
                        $threads = $conv->get_template_data($alike, $dlike);
+
                        if(!$threads) {
                                logger('[ERROR] conversation : Failed to get template data.', LOGGER_DEBUG);
                                $threads = array();