$entry = [
'alt_text' => $alt_text,
- 'url' => Profile::zrl($jj->url),
+ 'url' => Profile::magicLink($jj->url),
'itemurl' => $itemurl,
'name' => htmlentities($jj->name),
'thumb' => proxy_url($jj->photo, false, PROXY_SIZE_THUMB),
$p['photo'] = proxy_url($p['photo'], false, PROXY_SIZE_SMALL);
}
+ $p['url'] = self::magicLink($p['url']);
+
$tpl = get_markup_template('profile_vcard.tpl');
$o .= replace_macros($tpl, [
'$profile' => $p,
}
}
+ /**
+ * @brief Returns a magic link to authenticate remote visitors
+ *
+ * @param string $contact_url The address of the contact profile
+ * @param integer $uid The user id, "local_user" is the default
+ *
+ * @return string with "redir" link
+ */
+ public static function magicLink($contact_url, $uid = -1)
+ {
+ if ($uid == -1) {
+ $uid = local_user();
+ }
+ $condition = ['pending' => false, 'uid' => $uid,
+ 'nurl' => normalise_link($contact_url),
+ 'network' => NETWORK_DFRN, 'self' => false];
+ $contact = dba::selectFirst('contact', ['id'], $condition);
+ if (DBM::is_result($contact)) {
+ return System::baseUrl() . '/redir/' . $contact['id'];
+ }
+ return self::zrl($contact_url);
+ }
+
public static function zrl($s, $force = false)
{
if (!strlen($s)) {