if ($uid == -1)
$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)));
- if ($r)
+ if ($r) {
$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'",
dbesc(normalise_link($url)));
--- /dev/null
+<?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();
+}
$entry = array(
'url' => $rr['url'],
- 'itemurl' => $rr['url'],
+ 'itemurl' => (($contact_details['addr'] != "") ? $contact_details['addr'] : $rr['url']),
'name' => htmlentities($rr['name']),
'thumb' => proxy_url($rr['photo'], false, PROXY_SIZE_THUMB),
'img_hover' => htmlentities($rr['name']),
if($cid == 0 && $zcid == 0)
- return;
+ return;
if($cid)
$entry = array(
'url' => $rr['url'],
- 'itemurl' => $rr['url'],
+ 'itemurl' => (($contact_details['addr'] != "") ? $contact_details['addr'] : $rr['url']),
'name' => $rr['name'],
'thumb' => proxy_url($rr['photo'], false, PROXY_SIZE_THUMB),
'img_hover' => htmlentities($rr['name']),
'name' => htmlentities($rr['name']),
'username' => htmlentities($rr['name']),
'sparkle' => $sparkle,
- 'itemurl' => $rr['url'],
+ 'itemurl' => (($rr['addr'] != "") ? $rr['addr'] : $rr['url']),
'url' => $url,
'network' => network_to_name($rr['network'], $rr['url']),
);
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`
LEFT JOIN `contact` ON `contact`.`nurl` = `gcontact`.`nurl`
AND `contact`.`uid` = %d AND NOT `contact`.`blocked`
$objresult = new stdClass();
$objresult->cid = $result["cid"];
$objresult->name = $result["name"];
+ $objresult->addr = $result["addr"];
$objresult->url = $result["url"];
$objresult->photo = $result["photo"];
$objresult->tags = $result["keywords"];
$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 ($jj->cid > 0) {
'conntxt' => $conntxt,
'connlnk' => $connlnk,
'photo_menu' => $photo_menu,
+ 'details' => $contact_details['location'],
+ 'tags' => $contact_details['keywords'],
+ 'about' => $contact_details['about'],
'network' => network_to_name($jj->network, $jj->url),
'id' => ++$id,
);
$photo_menu = array(array(t("View Profile"), zrl($jj->url)));
$photo_menu[] = array(t("Connect/Follow"), $connlnk);
+ $contact_details = get_contact_details_by_url($jj->url, local_user());
+
$entry = array(
'url' => zrl($jj->url),
- 'itemurl' => $jj->url,
+ 'itemurl' => (($contact_details['addr'] != "") ? $contact_details['addr'] : $jj->url),
'name' => $jj->name,
+ 'details' => $contact_details['location'],
+ 'tags' => $contact_details['keywords'],
+ 'about' => $contact_details['about'],
'thumb' => proxy_url($jj->photo, false, PROXY_SIZE_THUMB),
'inttxt' => ' ' . t('is interested in:'),
'conntxt' => t('Connect'),
if(count($r)) {
foreach($r as $rr) {
+ $contact_details = get_contact_details_by_url($rr['url'], local_user());
$contacts[] = array(
'img_hover' => sprintf( t('Visit %s\'s profile [%s]'),$rr['name'],$rr['url']),
'thumb' => $rr['thumb'],
'name' => $rr['name'],
'username' => $rr['name'],
+ 'details' => $contact_details['location'],
+ 'tags' => $contact_details['keywords'],
+ 'about' => $contact_details['about'],
'sparkle' => $sparkle,
- 'itemurl' => $rr['url'],
+ 'itemurl' => (($contact_details['addr'] != "") ? $contact_details['addr'] : $rr['url']),
'url' => $url,
'network' => network_to_name($rr['network'], $url),
);
$connlnk = $a->get_baseurl() . '/follow/?url=' . (($rr['connect']) ? $rr['connect'] : $rr['url']);
$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('Ignore/Hide'), $ignlnk);
+ $contact_details = get_contact_details_by_url($rr["url"], local_user());
$entry = array(
'url' => zrl($rr['url']),
- 'itemurl' => $rr['url'],
+ 'itemurl' => (($contact_details['addr'] != "") ? $contact_details['addr'] : $rr['url']),
'img_hover' => $rr['url'],
'name' => $rr['name'],
'thumb' => proxy_url($rr['photo'], false, PROXY_SIZE_THUMB),
+ 'details' => $contact_details['location'],
+ 'tags' => $contact_details['keywords'],
+ 'about' => $contact_details['about'],
'ignlnk' => $ignlnk,
'ignid' => $rr['id'],
'conntxt' => t('Connect'),
<?php
+require_once('include/Contact.php');
require_once('include/contact_selectors.php');
function viewcontacts_init(&$a) {
function viewcontacts_content(&$a) {
-
require_once("mod/proxy.php");
if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
else
$url = zrl($url);
+ $contact_details = get_contact_details_by_url($rr['url'], $a->profile['uid']);
+
$contacts[] = array(
'id' => $rr['id'],
'img_hover' => sprintf( t('Visit %s\'s profile [%s]'), $rr['name'], $rr['url']),
'thumb' => proxy_url($rr['thumb'], false, PROXY_SIZE_THUMB),
'name' => htmlentities(substr($rr['name'],0,20)),
'username' => htmlentities($rr['name']),
+ 'details' => $contact_details['location'],
+ 'tags' => $contact_details['keywords'],
+ 'about' => $contact_details['about'],
'url' => $url,
'sparkle' => '',
- 'itemurl' => $rr['url'],
+ 'itemurl' => (($contact_details['addr'] != "") ? $contact_details['addr'] : $rr['url']),
'network' => network_to_name($rr['network'], $rr['url']),
);
}
.wall-item-container .wall-item-content {
max-width: 100%;
+ overflow: hidden;
+ text-overflow: ellipsis;
/* margin-left: -70px;
padding-top: 25px; */
}
.contact-entry-wrapper {
float: left;
width: 363px;
- height: 90px;
+ height: 100px;
padding-right: 10px;
margin: 0 10px 10px 0px;
}
{{if $contact.account_type}} <span class="contact-entry-details" id="contact-entry-accounttype-{{$contact.id}}">({{$contact.account_type}})</span>{{/if}}
</div>
{{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.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>