"follow" now creates an address book entry, which means we can start tying that into the "connections" module - still have to turn the "contact edit" page from a mockup to real code, but it's all starting to flow.
This commit is contained in:
parent
55df0452b6
commit
295b865d06
@ -3,8 +3,8 @@
|
||||
|
||||
function vcard_from_xchan($xchan) {
|
||||
return replace_macros(get_markup_template('xchan_vcard.tpl'),array(
|
||||
$name => $abook['xchan_name'],
|
||||
$photo => $abook['xchan_photo_l']
|
||||
'$name' => $xchan['xchan_name'],
|
||||
'$photo' => $xchan['xchan_photo_l']
|
||||
));
|
||||
}
|
||||
|
||||
@ -206,26 +206,23 @@ function contact_photo_menu($contact) {
|
||||
$poke_link="";
|
||||
|
||||
$sparkle = false;
|
||||
if($contact['network'] === NETWORK_DFRN) {
|
||||
if($contact['xchan_network'] === NETWORK_ZOT) {
|
||||
$sparkle = true;
|
||||
$profile_link = $a->get_baseurl() . '/redir/' . $contact['id'];
|
||||
$profile_link = $a->get_baseurl() . '/magic?f=&id=' . $contact['abook_id'];
|
||||
}
|
||||
else
|
||||
$profile_link = $contact['url'];
|
||||
|
||||
if($profile_link === 'mailbox')
|
||||
$profile_link = '';
|
||||
$profile_link = $contact['xchan_url'];
|
||||
|
||||
if($sparkle) {
|
||||
$status_link = $profile_link . "?url=status";
|
||||
$photos_link = $profile_link . "?url=photos";
|
||||
$profile_link = $profile_link . "?url=profile";
|
||||
$pm_url = $a->get_baseurl() . '/message/new/' . $contact['id'];
|
||||
$status_link = $profile_link . "&url=status";
|
||||
$photos_link = $profile_link . "&url=photos";
|
||||
$profile_link = $profile_link . "&url=profile";
|
||||
$pm_url = $a->get_baseurl() . '/message/new/' . $contact['xchan_hash'];
|
||||
}
|
||||
|
||||
$poke_link = $a->get_baseurl() . '/poke/?f=&c=' . $contact['id'];
|
||||
$contact_url = $a->get_baseurl() . '/contacts/' . $contact['id'];
|
||||
$posts_link = $a->get_baseurl() . '/network/?cid=' . $contact['id'];
|
||||
$poke_link = $a->get_baseurl() . '/poke/?f=&c=' . $contact['abook_id'];
|
||||
$contact_url = $a->get_baseurl() . '/connections/' . $contact['abook_id'];
|
||||
$posts_link = $a->get_baseurl() . '/network/?cid=' . $contact['abook_id'];
|
||||
|
||||
$menu = Array(
|
||||
t("Poke") => $poke_link,
|
||||
@ -245,9 +242,6 @@ function contact_photo_menu($contact) {
|
||||
$o = "";
|
||||
foreach($menu as $k=>$v){
|
||||
if ($v!="") {
|
||||
if(($k !== t("Network Posts")) && ($k !== t("Send PM")) && ($k !== t('Edit Contact')))
|
||||
$o .= "<li><a target=\"redir\" href=\"$v\">$k</a></li>\n";
|
||||
else
|
||||
$o .= "<li><a href=\"$v\">$k</a></li>\n";
|
||||
}
|
||||
}
|
||||
|
@ -73,6 +73,8 @@ function new_contact($uid,$url,$channel,$interactive = false) {
|
||||
if(! $x['success'])
|
||||
return $x;
|
||||
|
||||
$xchan_hash = $x['hash'];
|
||||
|
||||
// Do we already have an abook entry?
|
||||
// go directly to the abook edit page.
|
||||
|
||||
@ -100,9 +102,19 @@ function new_contact($uid,$url,$channel,$interactive = false) {
|
||||
}
|
||||
|
||||
|
||||
$r = q("insert into abook ( abook_account, abook_channel, abook_xchan, abook_their_perms, abook_created, abook_updated )
|
||||
values( %d, %d, '%s', %d, '%s', '%s' ) ",
|
||||
intval(get_account_id()),
|
||||
intval(local_user()),
|
||||
dbesc($xchan_hash),
|
||||
intval($their_perms),
|
||||
dbesc(datetime_convert()),
|
||||
dbesc(datetime_convert())
|
||||
);
|
||||
if(! $r)
|
||||
logger('mod_follow: abook creation failed');
|
||||
|
||||
|
||||
// Else create an entry
|
||||
|
||||
|
||||
|
||||
|
@ -294,6 +294,7 @@ function import_xchan_from_json($j) {
|
||||
|
||||
if(! x($ret,'message')) {
|
||||
$ret['success'] = true;
|
||||
$ret['hash'] = $xchan_hash;
|
||||
}
|
||||
return $ret;
|
||||
}
|
@ -144,18 +144,36 @@ function connections_content(&$a) {
|
||||
return;
|
||||
}
|
||||
|
||||
$xchan = null;
|
||||
|
||||
if(argc() == 3) {
|
||||
|
||||
$cmd = argv(2);
|
||||
|
||||
$cmd = argv(1);
|
||||
if($cmd === 'profile') {
|
||||
if(argv(1) === 'profile') {
|
||||
$xchan_hash = argv(2);
|
||||
|
||||
if($xchan_hash) {
|
||||
$r = q("select * from xchan where xchan_hash = '%s' limit 1",
|
||||
dbesc($xchan_hash)
|
||||
);
|
||||
if($r && count($r)) {
|
||||
if($r) {
|
||||
$xchan = $r[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif(intval(argv(1)) && argv(2) === 'profile')
|
||||
$r = q("SELECT abook.*, xchan.*
|
||||
FROM abook left join xchan on abook_xchan = xchan_hash
|
||||
WHERE abook_channel = %d and abook_id = %d LIMIT 1",
|
||||
intval(local_user()),
|
||||
intval(argv(1))
|
||||
);
|
||||
if($r)
|
||||
$xchan = $r[0];
|
||||
|
||||
if($xchan) {
|
||||
|
||||
$o .= <<< EOT
|
||||
<script language="JavaScript">
|
||||
<!--
|
||||
@ -188,7 +206,7 @@ window.onresize=resize_iframe;
|
||||
</script>
|
||||
|
||||
|
||||
<iframe id="glu" width="100%" src="{$r[0]['xchan_url']}" onload="resize_iframe()">
|
||||
<iframe id="glu" width="100%" src="{$xchan['xchan_url']}" onload="resize_iframe()">
|
||||
</iframe>
|
||||
|
||||
EOT;
|
||||
@ -196,9 +214,9 @@ EOT;
|
||||
|
||||
// $o .= '<div id="profile-frame-wrapper" style="width: 100%; height: 100%;"><iframe id="profile-frame" src="' . $r[0]['xchan_url'] . '" style="width: 100%; height: 100%;"></iframe></div>';
|
||||
return $o;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$contact_id = intval(argv(1));
|
||||
if(! $contact_id)
|
||||
@ -207,7 +225,7 @@ EOT;
|
||||
$cmd = argv(2);
|
||||
|
||||
$orig_record = q("SELECT abook.*, xchan.* FROM abook left join xchan on abook_xchan = xchan_hash
|
||||
WHERE abook_id = %d AND abook_channel = %d AND NOT abook_flags & %d LIMIT 1",
|
||||
WHERE abook_id = %d AND abook_channel = %d AND NOT ( abook_flags & %d ) LIMIT 1",
|
||||
intval($contact_id),
|
||||
intval(local_user()),
|
||||
intval(ABOOK_FLAG_SELF)
|
||||
@ -305,7 +323,7 @@ EOT;
|
||||
$slider_tpl = get_markup_template('contact_slider.tpl');
|
||||
$slide = replace_macros($slider_tpl,array(
|
||||
'$me' => t('Me'),
|
||||
'$val' => $contact['closeness'],
|
||||
'$val' => $contact['abook_closeness'],
|
||||
'$intimate' => t('Best Friends'),
|
||||
'$friends' => t('Friends'),
|
||||
'$coworkers' => t('Co-workers'),
|
||||
@ -316,7 +334,8 @@ EOT;
|
||||
|
||||
$o .= replace_macros($tpl,array(
|
||||
|
||||
'$header' => t('Contact Settings') . ' for ' . $contact['name'],
|
||||
'$header' => t('Contact Settings') . ' for ' . $contact['xchan_name'],
|
||||
'$viewprof' => t('View Profile'),
|
||||
'$slide' => $slide,
|
||||
'$tab_str' => $tab_str,
|
||||
'$submit' => t('Submit'),
|
||||
@ -324,7 +343,7 @@ EOT;
|
||||
'$lbl_vis2' => sprintf( t('Please choose the profile you would like to display to %s when viewing your profile securely.'), $contact['name']),
|
||||
'$lbl_info1' => t('Contact Information / Notes'),
|
||||
'$infedit' => t('Edit contact notes'),
|
||||
'$close' => $contact['closeness'],
|
||||
'$close' => $contact['abook_closeness'],
|
||||
'$them' => t('Their Settings'),
|
||||
'$me' => t('My Settings'),
|
||||
|
||||
@ -344,7 +363,7 @@ EOT;
|
||||
'$common_link' => $a->get_baseurl(true) . '/common/loc/' . local_user() . '/' . $contact['id'],
|
||||
'$all_friends' => $all_friends,
|
||||
'$relation_text' => $relation_text,
|
||||
'$visit' => sprintf( t('Visit %s\'s profile [%s]'),$contact['name'],$contact['url']),
|
||||
'$visit' => sprintf( t('Visit %s\'s profile [%s]'),$contact['xchan_name'],$contact['xchan_url']),
|
||||
'$blockunblock' => t('Block/Unblock contact'),
|
||||
'$ignorecont' => t('Ignore contact'),
|
||||
'$lblcrepair' => t("Repair URL settings"),
|
||||
@ -360,7 +379,7 @@ EOT;
|
||||
'$last_update' => $last_update,
|
||||
'$udnow' => t('Update now'),
|
||||
'$profile_select' => contact_profile_assign($contact['profile_id'],(($contact['network'] !== NETWORK_DFRN) ? true : false)),
|
||||
'$contact_id' => $contact['id'],
|
||||
'$contact_id' => $contact['abook_id'],
|
||||
'$block_text' => (($contact['blocked']) ? t('Unblock') : t('Block') ),
|
||||
'$ignore_text' => (($contact['readonly']) ? t('Unignore') : t('Ignore') ),
|
||||
'$insecure' => (($contact['network'] !== NETWORK_DFRN && $contact['network'] !== NETWORK_MAIL && $contact['network'] !== NETWORK_FACEBOOK && $contact['network'] !== NETWORK_DIASPORA) ? $insecure : ''),
|
||||
@ -423,7 +442,7 @@ EOT;
|
||||
}
|
||||
}
|
||||
|
||||
$sql_extra = "and ( abook_flags & " . $search_flags . " ) ";
|
||||
$sql_extra = (($search_flags) ? "and ( abook_flags & " . $search_flags . " ) " : "");
|
||||
|
||||
$search = ((x($_REQUEST,'search')) ? notags(trim($_REQUEST['search'])) : '');
|
||||
|
||||
@ -508,7 +527,6 @@ EOT;
|
||||
$total = $r[0]['total'];
|
||||
}
|
||||
|
||||
|
||||
$r = q("SELECT abook.*, xchan.* FROM abook left join xchan on abook.abook_xchan = xchan.xchan_hash
|
||||
WHERE abook_channel = %d and not (abook_flags & %d) $sql_extra $sql_extra2 ORDER BY xchan_name LIMIT %d , %d ",
|
||||
intval(local_user()),
|
||||
@ -540,27 +558,27 @@ EOT;
|
||||
break;
|
||||
}
|
||||
if(($rr['network'] === 'dfrn') && ($rr['rel'])) {
|
||||
$url = "redir/{$rr['id']}";
|
||||
$url = "redir/{$rr['abook_id']}";
|
||||
$sparkle = ' class="sparkle" ';
|
||||
}
|
||||
else {
|
||||
$url = $rr['url'];
|
||||
$url = $rr['xchan_url'];
|
||||
$sparkle = '';
|
||||
}
|
||||
|
||||
|
||||
$contacts[] = array(
|
||||
'img_hover' => sprintf( t('Visit %s\'s profile [%s]'),$rr['name'],$rr['url']),
|
||||
'img_hover' => sprintf( t('Visit %s\'s profile [%s]'),$rr['xchan_name'],$rr['xchan_url']),
|
||||
'edit_hover' => t('Edit contact'),
|
||||
'photo_menu' => contact_photo_menu($rr),
|
||||
'id' => $rr['id'],
|
||||
'id' => $rr['abook_id'],
|
||||
'alt_text' => $alt_text,
|
||||
'dir_icon' => $dir_icon,
|
||||
'thumb' => $rr['thumb'],
|
||||
'name' => $rr['name'],
|
||||
'username' => $rr['name'],
|
||||
'thumb' => $rr['xchan_photo_m'],
|
||||
'name' => $rr['xchan_name'],
|
||||
'username' => $rr['xchan_name'],
|
||||
'sparkle' => $sparkle,
|
||||
'itemurl' => $rr['url'],
|
||||
'itemurl' => $rr['xchan_url'],
|
||||
'url' => $url,
|
||||
'network' => network_to_name($rr['network']),
|
||||
);
|
||||
|
@ -2,7 +2,7 @@
|
||||
<h2>$header</h2>
|
||||
|
||||
<br />
|
||||
<a href="" style="background-color: #CCC; padding: 10px; border-radius: 5px;">View Profile</a><a href="" style="background-color: #CCC; padding: 10px; border-radius: 5px; margin-left: 20px;">Archive</a>
|
||||
<a href="connections/$contact_id/profile">$viewprof</a>
|
||||
|
||||
<div id="contact-edit-wrapper">
|
||||
<br />
|
||||
|
Reference in New Issue
Block a user