diff --git a/include/identity.php b/include/identity.php index 888a09ee6..580539c07 100644 --- a/include/identity.php +++ b/include/identity.php @@ -246,10 +246,30 @@ function profile_sidebar($profile, $block = 0) { else $subscribe_feed = false; - if(get_my_url() && $profile['unkmail'] && ($profile['uid'] != local_user())) + if (remote_user() OR (get_my_url() && $profile['unkmail'] && ($profile['uid'] != local_user()))) { $wallmessage = t('Message'); - else + $wallmessage_link = "wallmessage/".$profile["nickname"]; + + if (remote_user()) { + $r = q("SELECT `url` FROM `contact` WHERE `uid` = %d AND `id` = '%s' AND `rel` = %d", + intval($profile['uid']), + intval(remote_user()), + intval(CONTACT_IS_FRIEND)); + } else { + $r = q("SELECT `url` FROM `contact` WHERE `uid` = %d AND `nurl` = '%s' AND `rel` = %d", + intval($profile['uid']), + dbesc(normalise_link(get_my_url())), + intval(CONTACT_IS_FRIEND)); + } + if ($r) { + $remote_url = $r[0]["url"]; + $message_path = preg_replace("=(.*)/profile/(.*)=ism", "$1/message/new/", $remote_url); + $wallmessage_link = $message_path.base64_encode($profile["addr"]); + } + } else { $wallmessage = false; + $wallmessage_link = false; + } // show edit profile to yourself if ($profile['uid'] == local_user() && feature_enabled(local_user(),'multi_profiles')) { @@ -386,6 +406,7 @@ function profile_sidebar($profile, $block = 0) { '$remoteconnect' => $remoteconnect, '$subscribe_feed' => $subscribe_feed, '$wallmessage' => $wallmessage, + '$wallmessage_link' => $wallmessage_link, '$account_type' => $account_type, '$location' => $location, '$gender' => $gender, @@ -400,7 +421,6 @@ function profile_sidebar($profile, $block = 0) { '$contact_block' => $contact_block, )); - $arr = array('profile' => &$profile, 'entry' => &$o); call_hooks('profile_sidebar', $arr); diff --git a/mod/message.php b/mod/message.php index 8108ff96b..f0ab7d2ac 100644 --- a/mod/message.php +++ b/mod/message.php @@ -305,15 +305,29 @@ function message_content(&$a) { $prename = $preurl = $preid = ''; if($preselect) { - $r = q("select name, url, id from contact where uid = %d and id = %d limit 1", + $r = q("SELECT `name`, `url`, `id` FROM `contact` WHERE `uid` = %d AND `id` = %d LIMIT 1", intval(local_user()), intval($a->argv[2]) ); + if(!$r) { + $r = q("SELECT `name`, `url`, `id` FROM `contact` WHERE `uid` = %d AND `nurl` = '%s' LIMIT 1", + intval(local_user()), + dbesc(normalise_link(base64_decode($a->argv[2]))) + ); + } + if(!$r) { + $r = q("SELECT `name`, `url`, `id` FROM `contact` WHERE `uid` = %d AND `addr` = '%s' LIMIT 1", + intval(local_user()), + dbesc(base64_decode($a->argv[2])) + ); + } if(count($r)) { $prename = $r[0]['name']; $preurl = $r[0]['url']; $preid = $r[0]['id']; - } + $preselect = array($preid); + } else + $preselect = false; } $prefill = (($preselect) ? $prename : ''); @@ -342,7 +356,6 @@ function message_content(&$a) { '$wait' => t('Please wait'), '$submit' => t('Submit') )); - return $o; } @@ -446,9 +459,11 @@ function message_content(&$a) { if($message['from-url'] == $myprofile) { $from_url = $myprofile; $sparkle = ''; - } - else { - $from_url = 'redir/' . $message['contact-id']; + } elseif ($message['contact-id'] != 0) { + $from_url = 'redir/'.$message['contact-id']; + $sparkle = ' sparkle'; + } else { + $from_url = $message['from-url']."?zrl=".urlencode($myprofile); $sparkle = ' sparkle'; } @@ -462,8 +477,7 @@ function message_content(&$a) { $subject_e = template_escape($message['title']); $body_e = template_escape(Smilies::replace(bbcode($message['body']))); $to_name_e = template_escape($message['name']); - } - else { + } else { $from_name_e = $message['from-name']; $subject_e = $message['title']; $body_e = Smilies::replace(bbcode($message['body'])); diff --git a/mod/wallmessage.php b/mod/wallmessage.php index b8859badd..8642624a4 100644 --- a/mod/wallmessage.php +++ b/mod/wallmessage.php @@ -48,7 +48,7 @@ function wallmessage_post(&$a) { $body = str_replace("\r\n","\n",$body); $body = str_replace("\n\n","\n",$body); - + $ret = send_wallmessage($user, $body, $subject, $replyto); switch($ret){ @@ -68,8 +68,8 @@ function wallmessage_post(&$a) { info( t('Message sent.') . EOL ); } -// goaway($a->get_baseurl() . '/profile/' . $user['nickname']); - + goaway('profile/'.$user['nickname']); + } diff --git a/view/templates/profile_vcard.tpl b/view/templates/profile_vcard.tpl index 0a3a13f9d..0f1cf070c 100644 --- a/view/templates/profile_vcard.tpl +++ b/view/templates/profile_vcard.tpl @@ -54,7 +54,7 @@ {{/if}} {{/if}} {{if $wallmessage}} -