The contact template now displays the address if available

This commit is contained in:
Michael Vogel 2015-11-06 00:47:54 +01:00
parent 2e81d0a2b3
commit 0f41f35041
13 changed files with 164 additions and 18 deletions

View file

@ -198,12 +198,16 @@ function get_contact_details_by_url($url, $uid = -1) {
if ($uid == -1) if ($uid == -1)
$uid = local_user(); $uid = local_user();
$r = q("SELECT `url`, `name`, `nick`, `addr`. `photo`, `location`, `about`, `keywords`, `gender`, `community`, `network` FROM `gcontact` WHERE `nurl` = '%s' LIMIT 1", $r = q("SELECT `id` AS `gid`, `url`, `name`, `nick`, `addr`, `photo`, `location`, `about`, `keywords`, `gender`, `community`, `network` FROM `gcontact` WHERE `nurl` = '%s' LIMIT 1",
dbesc(normalise_link($url))); dbesc(normalise_link($url)));
if ($r) if ($r) {
$profile = $r[0]; $profile = $r[0];
else {
if ($profile["addr"] == "")
proc_run('php',"include/update_gcontact.php", $profile["gid"]);
} else {
$r = q("SELECT `url`, `name`, `nick`, `avatar` AS `photo`, `location`, `about` FROM `unique_contacts` WHERE `url` = '%s'", $r = q("SELECT `url`, `name`, `nick`, `avatar` AS `photo`, `location`, `about` FROM `unique_contacts` WHERE `url` = '%s'",
dbesc(normalise_link($url))); dbesc(normalise_link($url)));

114
include/update_gcontact.php Normal file
View file

@ -0,0 +1,114 @@
<?php
require_once("boot.php");
function update_gcontact_run(&$argv, &$argc){
global $a, $db;
if(is_null($a)) {
$a = new App;
}
if(is_null($db)) {
@include(".htconfig.php");
require_once("include/dba.php");
$db = new dba($db_host, $db_user, $db_pass, $db_data);
unset($db_host, $db_user, $db_pass, $db_data);
};
require_once('include/session.php');
require_once('include/datetime.php');
require_once('library/simplepie/simplepie.inc');
require_once('include/items.php');
require_once('include/Contact.php');
require_once('include/email.php');
require_once('include/socgraph.php');
require_once('include/pidfile.php');
require_once('include/queue_fn.php');
load_config('config');
load_config('system');
$a->set_baseurl(get_config('system','url'));
load_hooks();
logger('update_gcontact: start');
$manual_id = 0;
$generation = 0;
$hub_update = false;
$force = false;
$restart = false;
if(($argc > 1) && (intval($argv[1])))
$contact_id = intval($argv[1]);
if(($argc > 2) && ($argv[2] == "force"))
$force = true;
if(!$contact_id) {
logger('update_gcontact: no contact');
return;
}
$lockpath = get_lockpath();
if ($lockpath != '') {
$pidfile = new pidfile($lockpath, 'update_gcontact'.$contact_id);
if ($pidfile->is_already_running()) {
logger("update_gcontact: Already running for contact ".$contact_id);
if ($pidfile->running_time() > 9*60) {
$pidfile->kill();
logger("killed stale process");
}
exit;
}
}
$r = q("SELECT * FROM `gcontact` WHERE `id` = %d", intval($contact_id));
if (!$r)
return;
$data = probe_url($r[0]["url"]);
if (!in_array($data["network"], array(NETWORK_DFRN, NETWORK_DIASPORA, NETWORK_OSTATUS)))
return;
if (($data["name"] == "") AND ($r[0]['name'] != ""))
$data["name"] = $r[0]['name'];
if (($data["nick"] == "") AND ($r[0]['nick'] != ""))
$data["nick"] = $r[0]['nick'];
if (($data["addr"] == "") AND ($r[0]['addr'] != ""))
$data["addr"] = $r[0]['addr'];
if (($data["photo"] == "") AND ($r[0]['photo'] != ""))
$data["photo"] = $r[0]['photo'];
q("UPDATE `gcontact` SET `name` = '%s', `nick` = '%s', `addr` = '%s', `photo` = '%s'
WHERE `id` = %d",
dbesc($data["name"]),
dbesc($data["nick"]),
dbesc($data["addr"]),
dbesc($data["photo"]),
intval($contact_id)
);
q("UPDATE `contact` SET `name` = '%s', `nick` = '%s', `addr` = '%s', `photo` = '%s'
WHERE `uid` = 0 AND `nurl` = '%s'",
dbesc($data["name"]),
dbesc($data["nick"]),
dbesc($data["addr"]),
dbesc($data["photo"]),
dbesc(normalise_link($data["url"]))
);
}
if (array_search(__file__,get_included_files())===0){
update_gcontact_run($_SERVER["argv"],$_SERVER["argc"]);
killme();
}

View file

@ -69,7 +69,7 @@ function allfriends_content(&$a) {
$entry = array( $entry = array(
'url' => $rr['url'], 'url' => $rr['url'],
'itemurl' => $rr['url'], 'itemurl' => (($contact_details['addr'] != "") ? $contact_details['addr'] : $rr['url']),
'name' => htmlentities($rr['name']), 'name' => htmlentities($rr['name']),
'thumb' => proxy_url($rr['photo'], false, PROXY_SIZE_THUMB), 'thumb' => proxy_url($rr['photo'], false, PROXY_SIZE_THUMB),
'img_hover' => htmlentities($rr['name']), 'img_hover' => htmlentities($rr['name']),

View file

@ -112,7 +112,7 @@ function common_content(&$a) {
$entry = array( $entry = array(
'url' => $rr['url'], 'url' => $rr['url'],
'itemurl' => $rr['url'], 'itemurl' => (($contact_details['addr'] != "") ? $contact_details['addr'] : $rr['url']),
'name' => $rr['name'], 'name' => $rr['name'],
'thumb' => proxy_url($rr['photo'], false, PROXY_SIZE_THUMB), 'thumb' => proxy_url($rr['photo'], false, PROXY_SIZE_THUMB),
'img_hover' => htmlentities($rr['name']), 'img_hover' => htmlentities($rr['name']),

View file

@ -867,7 +867,7 @@ function _contact_detail_for_template($rr){
'name' => htmlentities($rr['name']), 'name' => htmlentities($rr['name']),
'username' => htmlentities($rr['name']), 'username' => htmlentities($rr['name']),
'sparkle' => $sparkle, 'sparkle' => $sparkle,
'itemurl' => $rr['url'], 'itemurl' => (($rr['addr'] != "") ? $rr['addr'] : $rr['url']),
'url' => $url, 'url' => $url,
'network' => network_to_name($rr['network'], $rr['url']), 'network' => network_to_name($rr['network'], $rr['url']),
); );

View file

@ -69,7 +69,7 @@ function dirfind_content(&$a, $prefix = "") {
dbesc(escape_tags($search)), dbesc(escape_tags($search)), dbesc(escape_tags($search)), dbesc(escape_tags($search)), dbesc(escape_tags($search)), dbesc(escape_tags($search)),
dbesc(escape_tags($search)), dbesc(escape_tags($search))); dbesc(escape_tags($search)), dbesc(escape_tags($search)));
$results = q("SELECT `contact`.`id` AS `cid`, `gcontact`.`url`, `gcontact`.`name`, `gcontact`.`photo`, `gcontact`.`network` , `gcontact`.`keywords` $results = q("SELECT `contact`.`id` AS `cid`, `gcontact`.`url`, `gcontact`.`name`, `gcontact`.`photo`, `gcontact`.`network`, `gcontact`.`keywords`, `gcontact`.`addr`
FROM `gcontact` FROM `gcontact`
LEFT JOIN `contact` ON `contact`.`nurl` = `gcontact`.`nurl` LEFT JOIN `contact` ON `contact`.`nurl` = `gcontact`.`nurl`
AND `contact`.`uid` = %d AND NOT `contact`.`blocked` AND `contact`.`uid` = %d AND NOT `contact`.`blocked`
@ -101,6 +101,7 @@ function dirfind_content(&$a, $prefix = "") {
$objresult = new stdClass(); $objresult = new stdClass();
$objresult->cid = $result["cid"]; $objresult->cid = $result["cid"];
$objresult->name = $result["name"]; $objresult->name = $result["name"];
$objresult->addr = $result["addr"];
$objresult->url = $result["url"]; $objresult->url = $result["url"];
$objresult->photo = $result["photo"]; $objresult->photo = $result["photo"];
$objresult->tags = $result["keywords"]; $objresult->tags = $result["keywords"];
@ -134,7 +135,9 @@ function dirfind_content(&$a, $prefix = "") {
$alt_text = ""; $alt_text = "";
$itemurl = $jj->url; $contact_details = get_contact_details_by_url($jj->url, local_user());
$itemurl = (($contact_details["addr"] != "") ? $contact_details["addr"] : $jj->url);
// If We already know this contact then don't show the "connect" button // If We already know this contact then don't show the "connect" button
if ($jj->cid > 0) { if ($jj->cid > 0) {
@ -167,6 +170,9 @@ function dirfind_content(&$a, $prefix = "") {
'conntxt' => $conntxt, 'conntxt' => $conntxt,
'connlnk' => $connlnk, 'connlnk' => $connlnk,
'photo_menu' => $photo_menu, 'photo_menu' => $photo_menu,
'details' => $contact_details['location'],
'tags' => $contact_details['keywords'],
'about' => $contact_details['about'],
'network' => network_to_name($jj->network, $jj->url), 'network' => network_to_name($jj->network, $jj->url),
'id' => ++$id, 'id' => ++$id,
); );

View file

@ -70,10 +70,15 @@ function match_content(&$a) {
$photo_menu = array(array(t("View Profile"), zrl($jj->url))); $photo_menu = array(array(t("View Profile"), zrl($jj->url)));
$photo_menu[] = array(t("Connect/Follow"), $connlnk); $photo_menu[] = array(t("Connect/Follow"), $connlnk);
$contact_details = get_contact_details_by_url($jj->url, local_user());
$entry = array( $entry = array(
'url' => zrl($jj->url), 'url' => zrl($jj->url),
'itemurl' => $jj->url, 'itemurl' => (($contact_details['addr'] != "") ? $contact_details['addr'] : $jj->url),
'name' => $jj->name, 'name' => $jj->name,
'details' => $contact_details['location'],
'tags' => $contact_details['keywords'],
'about' => $contact_details['about'],
'thumb' => proxy_url($jj->photo, false, PROXY_SIZE_THUMB), 'thumb' => proxy_url($jj->photo, false, PROXY_SIZE_THUMB),
'inttxt' => ' ' . t('is interested in:'), 'inttxt' => ' ' . t('is interested in:'),
'conntxt' => t('Connect'), 'conntxt' => t('Connect'),

View file

@ -35,6 +35,7 @@ function nogroup_content(&$a) {
if(count($r)) { if(count($r)) {
foreach($r as $rr) { foreach($r as $rr) {
$contact_details = get_contact_details_by_url($rr['url'], local_user());
$contacts[] = array( $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['name'],$rr['url']),
@ -46,8 +47,11 @@ function nogroup_content(&$a) {
'thumb' => $rr['thumb'], 'thumb' => $rr['thumb'],
'name' => $rr['name'], 'name' => $rr['name'],
'username' => $rr['name'], 'username' => $rr['name'],
'details' => $contact_details['location'],
'tags' => $contact_details['keywords'],
'about' => $contact_details['about'],
'sparkle' => $sparkle, 'sparkle' => $sparkle,
'itemurl' => $rr['url'], 'itemurl' => (($contact_details['addr'] != "") ? $contact_details['addr'] : $rr['url']),
'url' => $url, 'url' => $url,
'network' => network_to_name($rr['network'], $url), 'network' => network_to_name($rr['network'], $url),
); );

View file

@ -78,16 +78,20 @@ function suggest_content(&$a) {
$connlnk = $a->get_baseurl() . '/follow/?url=' . (($rr['connect']) ? $rr['connect'] : $rr['url']); $connlnk = $a->get_baseurl() . '/follow/?url=' . (($rr['connect']) ? $rr['connect'] : $rr['url']);
$ignlnk = $a->get_baseurl() . '/suggest?ignore=' . $rr['id']; $ignlnk = $a->get_baseurl() . '/suggest?ignore=' . $rr['id'];
$photo_menu = array(array(t("View Profile"), zrl($jj->url))); $photo_menu = array(array(t("View Profile"), zrl($rr["url"])));
$photo_menu[] = array(t("Connect/Follow"), $connlnk); $photo_menu[] = array(t("Connect/Follow"), $connlnk);
$photo_menu[] = array(t('Ignore/Hide'), $ignlnk); $photo_menu[] = array(t('Ignore/Hide'), $ignlnk);
$contact_details = get_contact_details_by_url($rr["url"], local_user());
$entry = array( $entry = array(
'url' => zrl($rr['url']), 'url' => zrl($rr['url']),
'itemurl' => $rr['url'], 'itemurl' => (($contact_details['addr'] != "") ? $contact_details['addr'] : $rr['url']),
'img_hover' => $rr['url'], 'img_hover' => $rr['url'],
'name' => $rr['name'], 'name' => $rr['name'],
'thumb' => proxy_url($rr['photo'], false, PROXY_SIZE_THUMB), 'thumb' => proxy_url($rr['photo'], false, PROXY_SIZE_THUMB),
'details' => $contact_details['location'],
'tags' => $contact_details['keywords'],
'about' => $contact_details['about'],
'ignlnk' => $ignlnk, 'ignlnk' => $ignlnk,
'ignid' => $rr['id'], 'ignid' => $rr['id'],
'conntxt' => t('Connect'), 'conntxt' => t('Connect'),

View file

@ -1,4 +1,5 @@
<?php <?php
require_once('include/Contact.php');
require_once('include/contact_selectors.php'); require_once('include/contact_selectors.php');
function viewcontacts_init(&$a) { function viewcontacts_init(&$a) {
@ -12,7 +13,6 @@ function viewcontacts_init(&$a) {
function viewcontacts_content(&$a) { function viewcontacts_content(&$a) {
require_once("mod/proxy.php"); require_once("mod/proxy.php");
if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) { if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
@ -59,15 +59,20 @@ function viewcontacts_content(&$a) {
else else
$url = zrl($url); $url = zrl($url);
$contact_details = get_contact_details_by_url($rr['url'], $a->profile['uid']);
$contacts[] = array( $contacts[] = array(
'id' => $rr['id'], 'id' => $rr['id'],
'img_hover' => sprintf( t('Visit %s\'s profile [%s]'), $rr['name'], $rr['url']), 'img_hover' => sprintf( t('Visit %s\'s profile [%s]'), $rr['name'], $rr['url']),
'thumb' => proxy_url($rr['thumb'], false, PROXY_SIZE_THUMB), 'thumb' => proxy_url($rr['thumb'], false, PROXY_SIZE_THUMB),
'name' => htmlentities(substr($rr['name'],0,20)), 'name' => htmlentities(substr($rr['name'],0,20)),
'username' => htmlentities($rr['name']), 'username' => htmlentities($rr['name']),
'details' => $contact_details['location'],
'tags' => $contact_details['keywords'],
'about' => $contact_details['about'],
'url' => $url, 'url' => $url,
'sparkle' => '', 'sparkle' => '',
'itemurl' => $rr['url'], 'itemurl' => (($contact_details['addr'] != "") ? $contact_details['addr'] : $rr['url']),
'network' => network_to_name($rr['network'], $rr['url']), 'network' => network_to_name($rr['network'], $rr['url']),
); );
} }

View file

@ -29,6 +29,8 @@ nav {
.wall-item-container .wall-item-content { .wall-item-container .wall-item-content {
max-width: 100%; max-width: 100%;
overflow: hidden;
text-overflow: ellipsis;
/* margin-left: -70px; /* margin-left: -70px;
padding-top: 25px; */ padding-top: 25px; */
} }

View file

@ -2294,7 +2294,7 @@ aside #id_password {
.contact-entry-wrapper { .contact-entry-wrapper {
float: left; float: left;
width: 363px; width: 363px;
height: 90px; height: 100px;
padding-right: 10px; padding-right: 10px;
margin: 0 10px 10px 0px; margin: 0 10px 10px 0px;
} }

View file

@ -36,10 +36,12 @@
{{if $contact.account_type}} <span class="contact-entry-details" id="contact-entry-accounttype-{{$contact.id}}">({{$contact.account_type}})</span>{{/if}} {{if $contact.account_type}} <span class="contact-entry-details" id="contact-entry-accounttype-{{$contact.id}}">({{$contact.account_type}})</span>{{/if}}
</div> </div>
{{if $contact.alt_text}}<div class="contact-entry-details" id="contact-entry-rel-{{$contact.id}}" >{{$contact.alt_text}}</div>{{/if}} {{if $contact.alt_text}}<div class="contact-entry-details" id="contact-entry-rel-{{$contact.id}}" >{{$contact.alt_text}}</div>{{/if}}
{{if $contact.itemurl}}<div class="contact-entry-details" id="contact-entry-url-{{$contact.id}}" >{{$contact.itemurl}}</div>{{/if}} <div class="contact-entry-details">
{{if $contact.itemurl}}<span class="contact-entry-details" id="contact-entry-url-{{$contact.id}}" >{{$contact.itemurl}}</span>{{/if}}
{{if $contact.network}}<span class="contact-entry-details" id="contact-entry-network-{{$contact.id}}" > ({{$contact.network}})</span>{{/if}}
</div>
{{if $contact.tags}}<div class="contact-entry-details" id="contact-entry-tags-{{$contact.id}}" >{{$contact.tags}}</div>{{/if}} {{if $contact.tags}}<div class="contact-entry-details" id="contact-entry-tags-{{$contact.id}}" >{{$contact.tags}}</div>{{/if}}
{{if $contact.details}}<div class="contact-entry-details" id="contact-entry-details-{{$contact.id}}" >{{$contact.details}}</div>{{/if}} {{if $contact.details}}<div class="contact-entry-details" id="contact-entry-details-{{$contact.id}}" >{{$contact.details}}</div>{{/if}}
{{if $contact.network}}<div class="contact-entry-details" id="contact-entry-network-{{$contact.id}}" >{{$contact.network}}</div>{{/if}}
</div> </div>