]> git.mxchange.org Git - friendica.git/commitdiff
The contact template now displays the address if available
authorMichael Vogel <icarus@dabo.de>
Thu, 5 Nov 2015 23:47:54 +0000 (00:47 +0100)
committerMichael Vogel <icarus@dabo.de>
Thu, 5 Nov 2015 23:47:54 +0000 (00:47 +0100)
13 files changed:
include/Contact.php
include/update_gcontact.php [new file with mode: 0644]
mod/allfriends.php
mod/common.php
mod/contacts.php
mod/dirfind.php
mod/match.php
mod/nogroup.php
mod/suggest.php
mod/viewcontacts.php
view/theme/vier/mobile.css
view/theme/vier/style.css
view/theme/vier/templates/contact_template.tpl

index 04cf3b43953063dcb835db720f14efb9aaeacd5d..5138f276be4a9c5a192766d9fc5c7167cfac113d 100644 (file)
@@ -198,12 +198,16 @@ function get_contact_details_by_url($url, $uid = -1) {
        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)));
 
diff --git a/include/update_gcontact.php b/include/update_gcontact.php
new file mode 100644 (file)
index 0000000..05cfba9
--- /dev/null
@@ -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();
+}
index 8396efdd2d4eb185f2d7ef807edd2750c60ed64b..1be9550b10be2f16944a1884edf68b19ec71faf9 100644 (file)
@@ -69,7 +69,7 @@ function allfriends_content(&$a) {
 
                $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']),
index 560865b15402de32449ef30c428ee3781289d030..08609222972e68dfcd832647f2709d2fbe619967 100644 (file)
@@ -70,7 +70,7 @@ function common_content(&$a) {
 
 
        if($cid == 0 && $zcid == 0)
-               return; 
+               return;
 
 
        if($cid)
@@ -112,7 +112,7 @@ function common_content(&$a) {
 
                $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']),
index 934472b39ff9c4172db531056b1d8ce551efdbef..017b1d6435fd8456953d3fadcc312312fdc0b6e7 100644 (file)
@@ -867,7 +867,7 @@ function _contact_detail_for_template($rr){
                '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']),
        );
index 4213ec4b60d0055bf9877d8aa07818c70546e87d..3df27e5fb7840da113614a6cabf8715f24f6e271 100644 (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)));
 
-                       $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`
@@ -101,6 +101,7 @@ function dirfind_content(&$a, $prefix = "") {
                                $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"];
@@ -134,7 +135,9 @@ function dirfind_content(&$a, $prefix = "") {
 
                                $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) {
@@ -167,6 +170,9 @@ function dirfind_content(&$a, $prefix = "") {
                                        '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,
                                );
index bbf1a6c6342fe42bf9e99b8df877146d382b292f..db1cac0f7876d8b7106c87b8559c9d0f5e492974 100644 (file)
@@ -70,10 +70,15 @@ function match_content(&$a) {
                                        $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'),
index adbcfcb5154d37cbcadd23e1e1c48ede9a0b022b..06fa730e0d1a581ef7f3c1a8df8d678da6a2e029 100644 (file)
@@ -35,6 +35,7 @@ function nogroup_content(&$a) {
        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']),
@@ -46,8 +47,11 @@ function nogroup_content(&$a) {
                                '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),
                        );
index 8870c65df8708152eab3681879ad441c8bec2245..578338b5058055ff85d57dbb22d7c6abff4aab9f 100644 (file)
@@ -78,16 +78,20 @@ function suggest_content(&$a) {
 
                $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'),
index 927a597524adaa7b17565aea86e629e75b4a1128..f199574c69483945f63f4e632c155aa49ba500d2 100644 (file)
@@ -1,4 +1,5 @@
 <?php
+require_once('include/Contact.php');
 require_once('include/contact_selectors.php');
 
 function viewcontacts_init(&$a) {
@@ -12,7 +13,6 @@ function viewcontacts_init(&$a) {
 
 
 function viewcontacts_content(&$a) {
-
        require_once("mod/proxy.php");
 
        if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
@@ -59,15 +59,20 @@ function viewcontacts_content(&$a) {
                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']),
                );
        }
index ba8254d7fe289442bf5d1a7b3436a3153b0fbba4..90e8e64d7754dbc1a64abcff79bfbff2766fc4aa 100644 (file)
@@ -29,6 +29,8 @@ nav {
 
 .wall-item-container .wall-item-content {
   max-width: 100%;
+  overflow: hidden;
+  text-overflow: ellipsis;
 /*  margin-left: -70px;
   padding-top: 25px; */
 }
index 15e42e79a65cfe3ee1dbc0ed4d156d2b51de9dad..c48801d829be0f3aac3b40e7977a8c9186d9e468 100644 (file)
@@ -2294,7 +2294,7 @@ aside #id_password {
 .contact-entry-wrapper {
   float: left;
   width: 363px;
-  height: 90px;
+  height: 100px;
   padding-right: 10px;
   margin: 0 10px 10px 0px;
 }
index 60e05610f65bf93fed7538aa238ae4da70f98be7..c4ed99caa479293649e86358167e996f69f98252 100644 (file)
                        {{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>