X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fconversation.php;h=6aad2485a7ab505d4ead881af73ea14e2b0295cd;hb=0e441fe19618ab40722e79dfe531ae5a181fc990;hp=0d3123831e14e53accabdf8e69ecde22a5729330;hpb=b61a7158da4c8a0b41651a082f0ce2f9ad431f14;p=friendica.git diff --git a/include/conversation.php b/include/conversation.php index 0d3123831e..6aad2485a7 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -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';", @@ -17,23 +16,42 @@ function localize_item(&$item){ $author = '[url=' . $item['author-link'] . ']' . $item['author-name'] . '[/url]'; $objauthor = '[url=' . $obj['author-link'] . ']' . $obj['author-name'] . '[/url]'; - $post_type = (($obj['resource-id']) ? t('photo') : t('status')); + switch($obj['verb']){ + case ACTIVITY_POST: + switch ($obj['object-type']){ + case ACTIVITY_OBJ_EVENT: + $post_type = t('event'); + break; + default: + $post_type = t('status'); + } + break; + default: + if($obj['resource-id']){ + $post_type = t('photo'); + $m=array(); preg_match("/\[url=([^]]*)\]/", $obj['body'], $m); + $rr['plink'] = $m[1]; + } else { + $post_type = t('status'); + } + } + $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']; @@ -62,6 +80,7 @@ function localize_item(&$item){ } + } /** @@ -92,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; } @@ -101,6 +120,11 @@ function conversation(&$a, $items, $mode, $update) { $page_writeable = can_write_wall($a,$profile_owner); } + if($mode === 'community') { + $profile_owner = 0; + $page_writeable = false; + } + if($update) $return_url = $_SESSION['return_url']; else @@ -122,7 +146,7 @@ function conversation(&$a, $items, $mode, $update) { if(count($items)) { - if($mode === 'network-new' || $mode === 'search') { + if($mode === 'network-new' || $mode === 'search' || $mode === 'community') { // "New Item View" on network page or search page results // - just loop through the items and format them minimally for display @@ -137,7 +161,7 @@ function conversation(&$a, $items, $mode, $update) { $owner_name = ''; $sparkle = ''; - if($mode === 'search') { + if($mode === 'search' || $mode === 'community') { if(((activity_match($item['verb'],ACTIVITY_LIKE)) || (activity_match($item['verb'],ACTIVITY_DISLIKE))) && ($item['id'] != $item['parent'])) continue; @@ -174,9 +198,14 @@ function conversation(&$a, $items, $mode, $update) { $drop = ''; localize_item($item); + if($mode === 'network-new') + $t = $droptpl; + else + $t = $fakedrop; - $drop = replace_macros($droptpl,array('$id' => $item['id'])); + $drop = replace_macros($t,array('$id' => $item['id'])); $lock = '
'; + $star = ''; $body = prepare_body($item,true); @@ -191,12 +220,13 @@ function conversation(&$a, $items, $mode, $update) { '$thumb' => $profile_avatar, '$title' => $item['title'], '$body' => $body, - '$ago' => relative_date($item['created']), + '$ago' => (($item['app']) ? sprintf( t('%s from %s'),relative_date($item['created']),$item['app']) : relative_date($item['created'])), '$location' => $location, '$indent' => '', '$owner_url' => $owner_url, '$owner_photo' => $owner_photo, '$owner_name' => $owner_name, + '$star' => $star, '$drop' => $drop, '$conv' => '' . t('View in context') . '' )); @@ -254,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')) { @@ -283,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); @@ -318,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. @@ -330,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. @@ -348,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"), @@ -381,8 +414,8 @@ function conversation(&$a, $items, $mode, $update) { } $edpost = (((($profile_owner == local_user()) && ($toplevelpost) && (intval($item['wall']) == 1)) || ($mode === 'notes')) - ? '' + ? '' : ''); @@ -392,7 +425,9 @@ function conversation(&$a, $items, $mode, $update) { if((intval($item['contact-id']) && $item['contact-id'] == remote_user()) || ($item['uid'] == local_user())) $dropping = true; - $drop = replace_macros((($dropping)? $droptpl : $fakedrop), array('$id' => $item['id'], '$delete' => t('Delete'))); + $drop = replace_macros((($dropping)? $droptpl : $fakedrop), array('$id' => $item['id'], '$select' => t('Select'), '$delete' => t('Delete'))); + + $star = (($profile_owner == local_user() && $toplevelpost) ? '' : ''); $photo = $item['photo']; @@ -413,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); @@ -464,7 +499,7 @@ function conversation(&$a, $items, $mode, $update) { '$sparkle' => $sparkle, '$title' => $item['title'], '$body' => $body, - '$ago' => relative_date($item['created']), + '$ago' => ((($item['app']) && ($item['id'] == $item['parent'])) ? sprintf( t('%s from %s'),relative_date($item['created']),$item['app']) : relative_date($item['created'])), '$lock' => $lock, '$location' => $location, '$indent' => $indent, @@ -473,6 +508,7 @@ function conversation(&$a, $items, $mode, $update) { '$owner_name' => $owner_name, '$plink' => get_plink($item), '$edpost' => $edpost, + '$star' => $star, '$drop' => $drop, '$vote' => $likebuttons, '$like' => $like, @@ -501,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(); @@ -765,4 +774,4 @@ function status_editor($a,$x, $notes_cid = 0) { )); return $o; -} \ No newline at end of file +}