/contacts (single contact view)
-------------------------------
+* m: Status messages
+* o: Profile
+* t: Contacts
+* d: Common friends
* b: Toggle Blocked status
* i: Toggle Ignored status
* v: Toggle Archive status
if ($notify)
$guid_prefix = "";
- else
- $guid_prefix = $arr['network'];
+ else {
+ $parsed = parse_url($arr["author-link"]);
+ $guid_prefix = hash("crc32", $parsed["host"]);
+ }
$arr['wall'] = ((x($arr,'wall')) ? intval($arr['wall']) : 0);
$arr['guid'] = ((x($arr,'guid')) ? notags(trim($arr['guid'])) : get_guid(32, $guid_prefix));
function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0) {
if ($contact['network'] === NETWORK_OSTATUS) {
if ($pass < 2) {
+ // Test - remove before flight
+ //$tempfile = tempnam(get_temppath(), "ostatus2");
+ //file_put_contents($tempfile, $xml);
logger("Consume OStatus messages ", LOGGER_DEBUG);
ostatus_import($xml,$importer,$contact, $hub);
}
return $author;
}
+/*
+To-Do: Picture attachments should look like this:
+
+<a href="https://status.pirati.ca/attachment/572819" title="https://status.pirati.ca/file/heluecht-20151202T222602-rd3u49p.gif"
+class="attachment thumbnail" id="attachment-572819" rel="nofollow external">https://status.pirati.ca/attachment/572819</a>
+
+*/
+
function ostatus_entry($doc, $item, $owner, $toplevel = false) {
$a = get_app();
require_once('include/socgraph.php');
require_once('include/Contact.php');
require_once('include/contact_selectors.php');
+require_once('mod/contacts.php');
function allfriends_content(&$a) {
intval(local_user())
);
- $vcard_widget .= replace_macros(get_markup_template("vcard-widget.tpl"),array(
- '$name' => htmlentities($c[0]['name']),
- '$photo' => $c[0]['photo'],
- 'url' => z_root() . '/contacts/' . $cid
- ));
-
- if(! x($a->page,'aside'))
- $a->page['aside'] = '';
- $a->page['aside'] .= $vcard_widget;
-
if(! count($c))
return;
+ $a->page['aside'] = "";
+ profile_load($a, "", 0, get_contact_details_by_url($c[0]["url"]));
$r = all_friends(local_user(),$cid);
$entries[] = $entry;
}
+ $tab_str = contacts_tab($a, $cid, 3);
+
$tpl = get_markup_template('viewcontact_template.tpl');
$o .= replace_macros($tpl,array(
- '$title' => sprintf( t('Friends of %s'), htmlentities($c[0]['name'])),
+ //'$title' => sprintf( t('Friends of %s'), htmlentities($c[0]['name'])),
+ '$tab_str' => $tab_str,
'$contacts' => $entries,
));
require_once('include/socgraph.php');
require_once('include/Contact.php');
require_once('include/contact_selectors.php');
+require_once('mod/contacts.php');
function common_content(&$a) {
intval($cid),
intval($uid)
);
- }
- else {
+ $a->page['aside'] = "";
+ profile_load($a, "", 0, get_contact_details_by_url($c[0]["url"]));
+ } else {
$c = q("SELECT `name`, `url`, `photo` FROM `contact` WHERE `self` = 1 AND `uid` = %d LIMIT 1",
intval($uid)
);
- }
- $vcard_widget .= replace_macros(get_markup_template("vcard-widget.tpl"),array(
- '$name' => htmlentities($c[0]['name']),
- '$photo' => $c[0]['photo'],
- 'url' => z_root() . '/contacts/' . $cid
- ));
+ $vcard_widget .= replace_macros(get_markup_template("vcard-widget.tpl"),array(
+ '$name' => htmlentities($c[0]['name']),
+ '$photo' => $c[0]['photo'],
+ 'url' => z_root() . '/contacts/' . $cid
+ ));
- if(! x($a->page,'aside'))
- $a->page['aside'] = '';
- $a->page['aside'] .= $vcard_widget;
+ if(! x($a->page,'aside'))
+ $a->page['aside'] = '';
+ $a->page['aside'] .= $vcard_widget;
+ }
if(! count($c))
return;
$entries[] = $entry;
}
+ if($cmd === 'loc' && $cid && $uid == local_user()) {
+ $tab_str = contacts_tab($a, $cid, 4);
+ } else
+ $title = t('Common Friends');
+
$tpl = get_markup_template('viewcontact_template.tpl');
$o .= replace_macros($tpl,array(
- '$title' => t('Common Friends'),
+ '$title' => $title,
+ '$tab_str' => $tab_str,
'$contacts' => $entries,
));
$nettype = sprintf( t('Network type: %s'),network_to_name($contact['network'], $contact["url"]));
- $common = count_common_friends(local_user(),$contact['id']);
- $common_text = (($common) ? sprintf( tt('%d contact in common','%d contacts in common', $common),$common) : '');
+ //$common = count_common_friends(local_user(),$contact['id']);
+ //$common_text = (($common) ? sprintf( tt('%d contact in common','%d contacts in common', $common),$common) : '');
$polling = (($contact['network'] === NETWORK_MAIL | $contact['network'] === NETWORK_FEED) ? 'polling' : '');
- $x = count_all_friends(local_user(), $contact['id']);
- $all_friends = (($x) ? t('View all contacts') : '');
+ //$x = count_all_friends(local_user(), $contact['id']);
+ //$all_friends = (($x) ? t('View all contacts') : '');
// tabs
- $tab_str = contact_tabs($a, $contact_id, 2);
+ $tab_str = contacts_tab($a, $contact_id, 2);
$lost_contact = (($contact['archive'] && $contact['term-date'] != '0000-00-00 00:00:00' && $contact['term-date'] < datetime_convert('','','now')) ? t('Communications lost with this contact!') : '');
return $o;
}
-function contact_tabs($a, $contact_id, $active_tab) {
+function contacts_tab($a, $contact_id, $active_tab) {
// tabs
$tabs = array(
array(
'sel' => (($active_tab == 2)?'active':''),
'title' => t('Profile Details'),
'id' => 'status-tab',
- 'accesskey' => 'r',
- ),
- array(
- 'label' => t('Repair'),
+ 'accesskey' => 'o',
+ )
+ );
+
+ $x = count_all_friends(local_user(), $contact_id);
+ if ($x)
+ $tabs[] = array('label'=>t('Contacts'),
+ 'url' => "allfriends/".$contact_id,
+ 'sel' => (($active_tab == 3)?'active':''),
+ 'title' => t('View all contacts'),
+ 'id' => 'allfriends-tab',
+ 'accesskey' => 't');
+
+ $common = count_common_friends(local_user(),$contact_id);
+ if ($common)
+ $tabs[] = array('label'=>t('Common Friends'),
+ 'url' => "common/loc/".local_user()."/".$contact_id,
+ 'sel' => (($active_tab == 4)?'active':''),
+ 'title' => t('View all common friends'),
+ 'id' => 'common-loc-tab',
+ 'accesskey' => 'd');
+
+ $tabs[] = array('label' => t('Repair'),
'url' => $a->get_baseurl(true) . '/crepair/' . $contact_id,
- 'sel' => (($active_tab == 3)?'active':''),
+ 'sel' => (($active_tab == 5)?'active':''),
'title' => t('Advanced Contact Settings'),
'id' => 'repair-tab',
- 'accesskey' => 'r',
- ),
- array(
- 'label' => (($contact['blocked']) ? t('Unblock') : t('Block') ),
+ 'accesskey' => 'r');
+
+
+ $tabs[] = array('label' => (($contact['blocked']) ? t('Unblock') : t('Block') ),
'url' => $a->get_baseurl(true) . '/contacts/' . $contact_id . '/block',
'sel' => '',
'title' => t('Toggle Blocked status'),
'id' => 'toggle-block-tab',
- 'accesskey' => 'b',
- ),
- array(
- 'label' => (($contact['readonly']) ? t('Unignore') : t('Ignore') ),
+ 'accesskey' => 'b');
+
+ $tabs[] = array('label' => (($contact['readonly']) ? t('Unignore') : t('Ignore') ),
'url' => $a->get_baseurl(true) . '/contacts/' . $contact_id . '/ignore',
'sel' => '',
'title' => t('Toggle Ignored status'),
'id' => 'toggle-ignore-tab',
- 'accesskey' => 'i',
- ),
- array(
- 'label' => (($contact['archive']) ? t('Unarchive') : t('Archive') ),
+ 'accesskey' => 'i');
+
+ $tabs[] = array('label' => (($contact['archive']) ? t('Unarchive') : t('Archive') ),
'url' => $a->get_baseurl(true) . '/contacts/' . $contact_id . '/archive',
'sel' => '',
'title' => t('Toggle Archive status'),
'id' => 'toggle-archive-tab',
- 'accesskey' => 'v',
- )
- );
+ 'accesskey' => 'v');
+
$tab_tpl = get_markup_template('common_tabs.tpl');
$tab_str = replace_macros($tab_tpl, array('$tabs' => $tabs));
if(get_config('system', 'old_pager')) {
$r = q("SELECT COUNT(*) AS `total` FROM `item`
- WHERE `item`.`uid` = %d AND (`author-link` = '%s')",
- intval(local_user()), dbesc($contact["url"]));
+ WHERE `item`.`uid` = %d AND `author-link` IN ('%s', '%s')",
+ intval(local_user()),
+ dbesc(normalise_link($contact["url"])),
+ dbesc(str_replace("http://", "https://", $contact["url"])));
$a->set_pager_total($r[0]['total']);
}
`owner-link` AS `url`, `owner-avatar` AS `thumb`
FROM `item` FORCE INDEX (uid_contactid_created)
WHERE `item`.`uid` = %d AND `contact-id` = %d
- AND (`author-link` = '%s')
+ AND `author-link` IN ('%s', '%s')
ORDER BY `item`.`created` DESC LIMIT %d, %d",
intval(local_user()),
intval($contact_id),
- dbesc($contact["url"]),
+ dbesc(normalise_link($contact["url"])),
+ dbesc(str_replace("http://", "https://", $contact["url"])),
intval($a->pager['start']),
intval($a->pager['itemspage'])
);
- $tab_str = contact_tabs($a, $contact_id, 1);
+ $tab_str = contacts_tab($a, $contact_id, 1);
$o .= $tab_str;
$a->page['aside'] = '';
if($contact_id) {
- $a->data['contact'] = $r[0];
-
- if (($a->data['contact']['network'] != "") AND ($a->data['contact']['network'] != NETWORK_DFRN)) {
- $networkname = format_network_name($a->data['contact']['network'],$a->data['contact']['url']);
- } else
- $networkname = '';
-
- $vcard_widget = replace_macros(get_markup_template("vcard-widget.tpl"),array(
- '$name' => htmlentities($a->data['contact']['name']),
- '$photo' => $a->data['contact']['photo'],
- '$url' => ($a->data['contact']['network'] == NETWORK_DFRN) ? z_root()."/redir/".$a->data['contact']['id'] : $a->data['contact']['url'],
- '$addr' => (($a->data['contact']['addr'] != "") ? ($a->data['contact']['addr']) : ""),
- '$network_name' => $networkname,
- '$network' => t('Network:'),
- 'account_type' => (($a->data['contact']['forum'] || $a->data['contact']['prv']) ? t('Forum') : '')
- ));
-
- $a->page['aside'] .= $vcard_widget;
-
+ $a->data['contact'] = $r[0];
+ $contact = $r[0];
+ profile_load($a, "", 0, get_contact_details_by_url($contact["url"]));
}
}
$update_profile = in_array($contact['network'], array(NETWORK_DFRN, NETWORK_DSPR, NETWORK_OSTATUS));
- $tab_str = contact_tabs($a, $contact['id'], 3);
+ $tab_str = contacts_tab($a, $contact['id'], 5);
$tpl = get_markup_template('crepair.tpl');
-<h2>{{$header}}</h2>
+{{if $header}}<h2>{{$header}}</h2>{{/if}}
<div id="contact-edit-wrapper" >
<div class="section-title-wrapper">
- <h2>{{$title}}</h2>
+ {{if $title}}<h2>{{$title}}</h2>{{/if}}
<div class="clear"></div>
</div>
{{include file="section_title.tpl"}}
+{{$tab_str}}
+
<div id="viewcontact_wrapper-{{$id}}">
{{foreach $contacts as $contact}}
{{include file="contact_template.tpl"}}
{{/foreach}}
</div>
-
+<div class="clear"></div>
<div id="view-contact-end"></div>
{{$paginate}}