]> git.mxchange.org Git - friendica.git/blobdiff - include/conversation.php
bug #147 comments not working on private notes page
[friendica.git] / include / conversation.php
index 6b52f51cdb300a36a56679aa5171809d586521c0..6aad2485a7ab505d4ead881af73ea14e2b0295cd 100644 (file)
@@ -5,8 +5,7 @@
  */
 function localize_item(&$item){
        
-       if ($item['verb']=="http://activitystrea.ms/schema/1.0/like" ||
-               $item['verb']=="http://activitystrea.ms/schema/1.0/dislike"){
+       if ($item['verb']=== ACTIVITY_LIKE || $item['verb']=== ACTIVITY_DISLIKE){
 
                $r = q("SELECT * from `item`,`contact` WHERE 
                                `item`.`contact-id`=`contact`.`id` AND `item`.`uri`='%s';",
@@ -18,9 +17,9 @@ function localize_item(&$item){
                $objauthor =  '[url=' . $obj['author-link'] . ']' . $obj['author-name'] . '[/url]';
                
                switch($obj['verb']){
-                       case 'http://activitystrea.ms/schema/1.0/post':
+                       case ACTIVITY_POST:
                                switch ($obj['object-type']){
-                                       case 'http://activitystrea.ms/schema/1.0/event':
+                                       case ACTIVITY_OBJ_EVENT:
                                                $post_type = t('event');
                                                break;
                                        default:
@@ -40,19 +39,19 @@ function localize_item(&$item){
                $plink = '[url=' . $obj['plink'] . ']' . $post_type . '[/url]';
                 
                switch($item['verb']){
-                       case "http://activitystrea.ms/schema/1.0/like":
+                       case ACTIVITY_LIKE :
                                $bodyverb = t('%1$s likes %2$s\'s %3$s');
                                break;
-                       case "http://activitystrea.ms/schema/1.0/dislike":
+                       case ACTIVITY_DISLIKE:
                                $bodyverb = t('%1$s doesn\'t like %2$s\'s %3$s');
                                break;
                }
                $item['body'] = sprintf($bodyverb, $author, $objauthor, $plink);
                        
        }
-       if ($item['verb']=='http://activitystrea.ms/schema/1.0/make-friend'){
+       if ($item['verb']=== ACTIVITY_FRIEND){
 
-               if ($item['object-type']=="" || $item['object-type']!='http://activitystrea.ms/schema/1.0/person') return;
+               if ($item['object-type']=="" || $item['object-type']!== ACTIVITY_OBJ_PERSON) return;
 
                $Aname = $item['author-name'];
                $Alink = $item['author-link'];
@@ -81,6 +80,7 @@ function localize_item(&$item){
 
        }
         
+
 }
 
 /**
@@ -111,7 +111,7 @@ function conversation(&$a, $items, $mode, $update) {
        }
 
        if($mode === 'notes') {
-               $profile_owner = $a->profile['profile_uid'];
+               $profile_owner = local_user();
                $page_writeable = true;
        }
 
@@ -284,14 +284,14 @@ function conversation(&$a, $items, $mode, $update) {
                                continue;
 
                        $toplevelpost = (($item['id'] == $item['parent']) ? true : false);
-
+                       $toplevelprivate = false;
 
                        // Take care of author collapsing and comment collapsing
                        // If a single author has more than 3 consecutive top-level posts, squash the remaining ones.
                        // If there are more than two comments, squash all but the last 2.
-
+               
                        if($toplevelpost) {
-
+                               $toplevelprivate = (($toplevelpost && $item['private']) ? true : false);
                                $item_writeable = (($item['writable'] || $item['self']) ? true : false);
 
                                if($blowhard == $item['cid'] && (! $item['self']) && ($mode != 'profile') && ($mode != 'notes')) {
@@ -313,9 +313,12 @@ function conversation(&$a, $items, $mode, $update) {
                                $comments_seen = 0;
                                $comments_collapsed = false;
                        }
-                       else
+                       else {
+                               // prevent private email from leaking into public conversation
+                               if((! $toplevelpost) && (! toplevelprivate) && ($item['private']) && ($profile_owner != local_user()))
+                                       continue;
                                $comments_seen ++;
-
+                       }       
 
                        $override_comment_box = ((($page_writeable) && ($item_writeable)) ? true : false);
                        $show_comment_box = ((($page_writeable) && ($item_writeable) && ($comments_seen == $comments[$item['parent']])) ? true : false);
@@ -348,7 +351,7 @@ function conversation(&$a, $items, $mode, $update) {
 
                        if(($toplevelpost) && (! $item['self']) && ($mode !== 'profile')) {
 
-                               if($item['type'] === 'wall') {
+                               if($item['wall']) {
 
                                        // On the network page, I am the owner. On the display page it will be the profile owner.
                                        // This will have been stored in $a->page_contact by our calling page.
@@ -360,7 +363,7 @@ function conversation(&$a, $items, $mode, $update) {
                                        $template = $wallwall;
                                        $commentww = 'ww';      
                                }
-                               if(($item['type'] === 'remote') && (strlen($item['owner-link'])) && ($item['owner-link'] != $item['author-link'])) {
+                               if((! $item['wall']) && (strlen($item['owner-link'])) && ($item['owner-link'] != $item['author-link'])) {
 
                                        // Could be anybody. 
 
@@ -378,12 +381,12 @@ function conversation(&$a, $items, $mode, $update) {
                                }
                        }
 
-
                        $likebuttons = '';
+                       $shareable = ((($profile_owner == local_user()) && ($mode != 'display') && (! $item['private'])) ? true : false);
 
                        if($page_writeable) {
                                if($toplevelpost) {
-                                       $likebuttons = replace_macros((($item['private'] || ($profile_owner != local_user())) ? $noshare_tpl : $like_tpl),array(
+                                       $likebuttons = replace_macros(((($shareable)) ? $like_tpl : $noshare_tpl),array(
                                                '$id' => $item['id'],
                                                '$likethis' => t("I like this \x28toggle\x29"),
                                                '$nolike' => t("I don't like this \x28toggle\x29"),
@@ -445,7 +448,7 @@ function conversation(&$a, $items, $mode, $update) {
                                $profile_link = '';
 
                        $normalised = normalise_link((strlen($item['author-link'])) ? $item['author-link'] : $item['url']);
-                       if(($normalised != 'mailbox') && (x($a->contacts[$normalised])))
+                       if(($normalised != 'mailbox') && (x($a->contacts,$normalised)))
                                $profile_avatar = $a->contacts[$normalised]['thumb'];
                        else
                                $profile_avatar = (((strlen($item['author-avatar'])) && $diff_author) ? $item['author-avatar'] : $thumb);
@@ -534,33 +537,6 @@ function conversation(&$a, $items, $mode, $update) {
        return $o;
 } 
 
-
-if(! function_exists('load_contact_links')) {
-function load_contact_links($uid) {
-
-       $a = get_app();
-
-       $ret = array();
-
-       if(! $uid || x($a->contacts,'empty'))
-               return;
-
-       $r = q("SELECT `id`,`network`,`url`,`thumb` FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 ",
-                       intval($uid)
-       );
-       if(count($r)) {
-               foreach($r as $rr){
-                       $url = normalise_link($rr['url']);
-                       $ret[$url] = $rr;
-               }
-       }
-       else 
-               $ret['empty'] = true;   
-       $a->contacts = $ret;
-       return;         
-}}
-
-
 function best_link_url($item,&$sparkle) {
 
        $a = get_app();