diff options
Diffstat (limited to 'mod/profile.php')
-rw-r--r-- | mod/profile.php | 62 |
1 files changed, 33 insertions, 29 deletions
diff --git a/mod/profile.php b/mod/profile.php index 808ceedb8..44f718102 100644 --- a/mod/profile.php +++ b/mod/profile.php @@ -51,12 +51,12 @@ function profile_init(&$a) { if((remote_user()) && ($a->argc > 2) && ($a->argv[2] == 'visit')) $_SESSION['is_visitor'] = 1; - else { - unset($_SESSION['is_visitor']); - unset($_SESSION['visitor_id']); - if(! $_SESSION['uid']) - unset($_SESSION['authenticated']); - } +// else { +// unset($_SESSION['is_visitor']); +// unset($_SESSION['visitor_id']); +// if(! $_SESSION['uid']) +// unset($_SESSION['authenticated']); +// } $profile = 0; if((local_user()) && ($a->argc > 2) && ($a->argv[2] == 'view')) { @@ -87,33 +87,39 @@ function profile_content(&$a, $update = false) { $tab = 'posts'; - if(! $update) { + if($update) { + // Ensure we've got a profile owner if updating. + $a->profile['profile_uid'] = $_SESSION['profile_uid']; + } + else { + // set the uid so we can pick it up during update $_SESSION['profile_uid'] = $a->profile['uid']; } + $contact = null; + $remote_contact = false; + if(remote_user()) { $contact_id = $_SESSION['visitor_id']; $groups = init_groups_visitor($contact_id); $r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1", intval($contact_id), - intval($a->profile['uid']) + intval($a->profile['profile_uid']) ); - if(count($r)) + if(count($r)) { $contact = $r[0]; + $remote_contact = true; + } } - else { + + if(! $remote_contact) { if(local_user()) { $contact_id = $_SESSION['cid']; $contact = $a->contact; } } - if($update) { - // Ensure we've got a profile owner if updating. - $a->profile['profile_uid'] = $_SESSION['profile_uid']; - } - - else { + if(! $update) { if(x($_GET,'tab')) $tab = notags(trim($_GET['tab'])); @@ -161,6 +167,9 @@ function profile_content(&$a, $update = false) { $sql_extra = " AND `allow_cid` = '' AND `allow_gid` = '' AND `deny_cid` = '' AND `deny_gid` = '' "; + + + // Profile owner - everything is visible if(local_user() && ($_SESSION['uid'] == $a->profile['uid'])) { @@ -176,7 +185,10 @@ function profile_content(&$a, $update = false) { } // authenticated visitor - here lie dragons - elseif(remote_user()) { + // If $remotecontact is true, we know that not only is this a remotely authenticated + // person, but that it is *our* contact, which is important in multi-user mode. + + elseif($remote_contact) { $gs = '<<>>'; // should be impossible to match if(count($groups)) { foreach($groups as $g) @@ -201,7 +213,7 @@ function profile_content(&$a, $update = false) { AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 AND `item`.`parent` IN ( SELECT `parent` FROM `item` WHERE `id` = `parent` AND `type` != 'remote') $sql_extra ", - intval($a->profile['uid']) + intval($a->profile['profile_uid']) ); @@ -218,7 +230,7 @@ function profile_content(&$a, $update = false) { AND `item`.`parent` IN ( SELECT `parent` FROM `item` WHERE `id` = `parent` AND `type` != 'remote') $sql_extra ORDER BY `parent` DESC, `id` ASC LIMIT %d ,%d ", - intval($a->profile['uid']), + intval($a->profile['profile_uid']), intval($a->pager['start']), intval($a->pager['itemspage']) @@ -242,15 +254,14 @@ function profile_content(&$a, $update = false) { $redirect_url = $a->get_baseurl() . '/redir/' . $item['cid'] ; - - if(can_write_wall($a,$a->profile['uid'])) { + if(can_write_wall($a,$a->profile['profile_uid'])) { if($item['last-child']) { $comment = replace_macros($cmnt_tpl,array( '$return_path' => $_SESSION['return_url'], '$type' => 'wall-comment', '$id' => $item['item_id'], '$parent' => $item['parent'], - '$profile_uid' => $a->profile['uid'], + '$profile_uid' => $a->profile['profile_uid'], '$mylink' => $contact['url'], '$mytitle' => t('Me'), '$myphoto' => $contact['thumb'], @@ -268,11 +279,6 @@ function profile_content(&$a, $update = false) { if(local_user() && ($item['contact-uid'] == $_SESSION['uid']) && ($item['rel'] == DIRECTION_IN || $item['rel'] == DIRECTION_BOTH) && (! $item['self'] )) $profile_url = $redirect_url; - - // FIXME tryng to solve the mishmash of profile photos. - - // $photo = (($item['self']) ? $a->profile['photo'] : $item['photo']); - // $thumb = (($item['self']) ? $a->profile['thumb'] : $item['thumb']); // We received this post via a remote feed. It's either a wall-to-wall or a remote comment. The author is @@ -289,8 +295,6 @@ function profile_content(&$a, $update = false) { $drop = replace_macros(file_get_contents('view/wall_item_drop.tpl'), array('$id' => $item['id'])); - - $o .= replace_macros($template,array( '$id' => $item['item_id'], '$profile_url' => $profile_link, |