diff --git a/include/identity.php b/include/identity.php index 888a09ee6f..580539c071 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 8108ff96bd..f0ab7d2ac9 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 b8859badd3..8642624a47 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 0a3a13f9dc..0f1cf070c4 100644 --- a/view/templates/profile_vcard.tpl +++ b/view/templates/profile_vcard.tpl @@ -54,7 +54,7 @@ {{/if}} {{/if}} {{if $wallmessage}} -
  • {{$wallmessage}}
  • +
  • {{$wallmessage}}
  • {{/if}} {{if $subscribe_feed}}
  • {{$subscribe_feed}}
  • diff --git a/view/theme/decaf-mobile/templates/profile_vcard.tpl b/view/theme/decaf-mobile/templates/profile_vcard.tpl index 6e097c62bf..0ce464dbf5 100644 --- a/view/theme/decaf-mobile/templates/profile_vcard.tpl +++ b/view/theme/decaf-mobile/templates/profile_vcard.tpl @@ -41,7 +41,7 @@
  • {{$connect}}
  • {{/if}} {{if $wallmessage}} -
  • {{$wallmessage}}
  • +
  • {{$wallmessage}}
  • {{/if}} diff --git a/view/theme/duepuntozero/templates/profile_vcard.tpl b/view/theme/duepuntozero/templates/profile_vcard.tpl index bd2e92f9e4..1b084ba872 100644 --- a/view/theme/duepuntozero/templates/profile_vcard.tpl +++ b/view/theme/duepuntozero/templates/profile_vcard.tpl @@ -47,7 +47,7 @@ {{/if}} {{/if}} {{if $wallmessage}} -
  • {{$wallmessage}}
  • +
  • {{$wallmessage}}
  • {{/if}} {{if $subscribe_feed}}
  • {{$subscribe_feed}}
  • diff --git a/view/theme/frio/templates/profile_vcard.tpl b/view/theme/frio/templates/profile_vcard.tpl index 50b03bad11..e0babdc3a5 100644 --- a/view/theme/frio/templates/profile_vcard.tpl +++ b/view/theme/frio/templates/profile_vcard.tpl @@ -49,7 +49,7 @@ {{/if}} {{if $wallmessage}} diff --git a/view/theme/frost/templates/profile_vcard.tpl b/view/theme/frost/templates/profile_vcard.tpl index 1a0c39a826..26730f8253 100644 --- a/view/theme/frost/templates/profile_vcard.tpl +++ b/view/theme/frost/templates/profile_vcard.tpl @@ -43,7 +43,7 @@
  • {{$connect}}
  • {{/if}} {{if $wallmessage}} -
  • {{$wallmessage}}
  • +
  • {{$wallmessage}}
  • {{/if}} {{if $subscribe_feed}}
  • {{$subscribe_feed}}
  • diff --git a/view/theme/quattro/templates/profile_vcard.tpl b/view/theme/quattro/templates/profile_vcard.tpl index f4eae78d2b..ca702380d2 100644 --- a/view/theme/quattro/templates/profile_vcard.tpl +++ b/view/theme/quattro/templates/profile_vcard.tpl @@ -73,7 +73,7 @@ {{/if}} {{/if}} {{if $wallmessage}} -
  • {{$wallmessage}}
  • +
  • {{$wallmessage}}
  • {{/if}} {{if $subscribe_feed}}
  • {{$subscribe_feed}}
  • diff --git a/view/theme/vier/templates/profile_vcard.tpl b/view/theme/vier/templates/profile_vcard.tpl index a3b08947d0..2d7c72f8c8 100644 --- a/view/theme/vier/templates/profile_vcard.tpl +++ b/view/theme/vier/templates/profile_vcard.tpl @@ -65,7 +65,7 @@ {{/if}} {{/if}} {{if $wallmessage}} -
  • {{$wallmessage}}
  • +
  • {{$wallmessage}}
  • {{/if}} {{if $subscribe_feed}}
  • {{$subscribe_feed}}