sparkle links for friends-of-friends, bug #13

This commit is contained in:
Friendika 2011-03-06 19:24:01 -08:00
parent fecef140d5
commit 7f1f18675c
2 changed files with 51 additions and 28 deletions

View file

@ -2591,3 +2591,29 @@ function unamp($s) {
return str_replace('&', '&', $s); return str_replace('&', '&', $s);
}} }}
if(! function_exists('extract_item_authors')) {
function extract_item_authors($arr,$uid) {
if((! $uid) || (! is_array($arr)) || (! count($arr)))
return array();
$urls = array();
foreach($arr as $rr) {
if(! in_array("'" . dbesc($rr['author-link']) . "'",$urls))
$urls[] = "'" . dbesc($rr['author-link']) . "'";
}
// pre-quoted, don't put quotes on %s
if(count($urls)) {
$r = q("SELECT `id`,`url` FROM `contact` WHERE `uid` = %d AND `url` IN ( %s ) AND `network` = 'dfrn' AND `self` = 0 AND `blocked` = 0 ",
intval($uid),
implode(',',$urls)
);
if(count($r)) {
$ret = array();
foreach($r as $rr)
$ret[$rr['url']] = $rr['id'];
return $ret;
}
}
return array();
}}

View file

@ -196,12 +196,13 @@ function network_content(&$a, $update = 0) {
AND `item`.`parent` = `parentitem`.`id` AND `item`.`parent` = `parentitem`.`id`
$sql_extra $sql_extra
ORDER BY `parentitem`.`created` DESC, `item`.`gravity` ASC, `item`.`created` ASC LIMIT %d ,%d ", ORDER BY `parentitem`.`created` DESC, `item`.`gravity` ASC, `item`.`created` ASC LIMIT %d ,%d ",
intval($_SESSION['uid']), intval(local_user()),
intval($a->pager['start']), intval($a->pager['start']),
intval($a->pager['itemspage']) intval($a->pager['itemspage'])
); );
} }
$author_contacts = extract_item_authors($r,local_user());
$cmnt_tpl = load_view_file('view/comment_item.tpl'); $cmnt_tpl = load_view_file('view/comment_item.tpl');
$like_tpl = load_view_file('view/like.tpl'); $like_tpl = load_view_file('view/like.tpl');
@ -232,10 +233,16 @@ function network_content(&$a, $update = 0) {
$redirect_url = $a->get_baseurl() . '/redir/' . $item['cid'] ; $redirect_url = $a->get_baseurl() . '/redir/' . $item['cid'] ;
if(strlen($item['author-link']) && link_compare($item['author-link'],$item['url']) if(strlen($item['author-link']) && link_compare($item['author-link'],$item['url'])) {
&& ($item['network'] === 'dfrn') && (! $item['self'])) { if(($item['network'] === 'dfrn') && (! $item['self'])) {
$profile_link = $redirect_url; $profile_link = $redirect_url;
$sparkle = ' sparkle'; $sparkle = ' sparkle';
}
elseif(isset($author_contacts[$item['author-link']])) {
$profile_link = $a->get_baseurl() . '/redir/' . $author_contacts[$item['author-link']];
$sparkle = ' sparkle';
}
} }
$location = (($item['location']) ? '<a target="map" href="http://maps.google.com/?q=' . urlencode($item['location']) . '">' . $item['location'] . '</a>' : ''); $location = (($item['location']) ? '<a target="map" href="http://maps.google.com/?q=' . urlencode($item['location']) . '">' . $item['location'] . '</a>' : '');
@ -289,15 +296,15 @@ function network_content(&$a, $update = 0) {
$comment = ''; $comment = '';
$template = $tpl; $template = $tpl;
$commentww = ''; $commentww = '';
$sparkle = '';
$owner_url = $owner_photo = $owner_name = ''; $owner_url = $owner_photo = $owner_name = '';
$profile_url = $item['url'];
$redirect_url = $a->get_baseurl() . '/redir/' . $item['cid'] ;
if(((activity_match($item['verb'],ACTIVITY_LIKE)) || (activity_match($item['verb'],ACTIVITY_DISLIKE))) && ($item['id'] != $item['parent'])) if(((activity_match($item['verb'],ACTIVITY_LIKE)) || (activity_match($item['verb'],ACTIVITY_DISLIKE))) && ($item['id'] != $item['parent']))
continue; continue;
$redirect_url = $a->get_baseurl() . '/redir/' . $item['cid'] ;
$lock = ((($item['private']) || (($item['uid'] == local_user()) && (strlen($item['allow_cid']) || strlen($item['allow_gid']) $lock = ((($item['private']) || (($item['uid'] == local_user()) && (strlen($item['allow_cid']) || strlen($item['allow_gid'])
|| strlen($item['deny_cid']) || strlen($item['deny_gid'])))) || strlen($item['deny_cid']) || strlen($item['deny_gid']))))
@ -333,7 +340,6 @@ function network_content(&$a, $update = 0) {
$owner_url = $redirect_url; $owner_url = $redirect_url;
$osparkle = ' sparkle'; $osparkle = ' sparkle';
} }
} }
} }
@ -364,13 +370,6 @@ function network_content(&$a, $update = 0) {
$drop = replace_macros(load_view_file('view/wall_item_drop.tpl'), array('$id' => $item['id'], '$delete' => t('Delete'))); $drop = replace_macros(load_view_file('view/wall_item_drop.tpl'), array('$id' => $item['id'], '$delete' => t('Delete')));
if(($item['network'] === 'dfrn') && (! $item['self'] )) {
$profile_url = $redirect_url;
$sparkle = ' sparkle';
}
$photo = $item['photo']; $photo = $item['photo'];
$thumb = $item['thumb']; $thumb = $item['thumb'];
@ -381,22 +380,20 @@ function network_content(&$a, $update = 0) {
$profile_name = (((strlen($item['author-name'])) && $diff_author) ? $item['author-name'] : $item['name']); $profile_name = (((strlen($item['author-name'])) && $diff_author) ? $item['author-name'] : $item['name']);
$profile_avatar = (((strlen($item['author-avatar'])) && $diff_author) ? $item['author-avatar'] : $thumb); $profile_avatar = (((strlen($item['author-avatar'])) && $diff_author) ? $item['author-avatar'] : $thumb);
if(strlen($item['author-link']) && link_compare($item['author-link'],$item['url'])) {
$profile_link = $profile_url; if(($item['network'] === 'dfrn') && (! $item['self'])) {
// Can we use our special contact URL for this author?
if(strlen($item['author-link'])) {
if((link_compare($item['author-link'],$item['url'])) && ($item['network'] === 'dfrn') && (! $item['self'])) {
$profile_link = $redirect_url; $profile_link = $redirect_url;
$sparkle = ' sparkle'; $sparkle = ' sparkle';
} }
else { elseif(isset($author_contacts[$item['author-link']])) {
$profile_link = $item['author-link']; $profile_link = $a->get_baseurl() . '/redir/' . $author_contacts[$item['author-link']];
$sparkle = ''; $sparkle = ' sparkle';
} }
else
$profile_link = $item['author-link'];
} }
else
$profile_link = $item['url'];
$like = ((x($alike,$item['id'])) ? format_like($alike[$item['id']],$alike[$item['id'] . '-l'],'like',$item['id']) : ''); $like = ((x($alike,$item['id'])) ? format_like($alike[$item['id']],$alike[$item['id'] . '-l'],'like',$item['id']) : '');
$dislike = ((x($dlike,$item['id'])) ? format_like($dlike[$item['id']],$dlike[$item['id'] . '-l'],'dislike',$item['id']) : ''); $dislike = ((x($dlike,$item['id'])) ? format_like($dlike[$item['id']],$dlike[$item['id'] . '-l'],'dislike',$item['id']) : '');