]> git.mxchange.org Git - friendica.git/commitdiff
New function for fetching contact data
authorMichael Vogel <icarus@dabo.de>
Fri, 30 Oct 2015 00:30:42 +0000 (01:30 +0100)
committerMichael Vogel <icarus@dabo.de>
Fri, 30 Oct 2015 00:30:42 +0000 (01:30 +0100)
include/Contact.php
mod/network.php

index e6ec8daade967cfa5dbb798e42e38144f27a1e4f..c747f04ea1e496068c663b866f406b6eaac89e6f 100644 (file)
@@ -191,6 +191,92 @@ function unmark_for_death($contact) {
        );
 }}
 
+function contact_data($url, $uid = -1) {
+       require_once("mod/proxy.php");
+       require_once("include/bbcode.php");
+
+       if ($uid == -1)
+               $uid = local_user();
+
+       $r = q("SELECT `url`, `name`, `nick`, `photo`, `location`, `about`, `keywords`, `gender`, `community`, `network` FROM `gcontact` WHERE `nurl` = '%s' LIMIT 1",
+               dbesc(normalise_link($url)));
+
+       if ($r)
+               $profile = $r[0];
+       else {
+               $r = q("SELECT `url`, `name`, `nick`, `avatar` AS `photo`, `location`, `about` FROM `unique_contacts` WHERE `url` = '%s'",
+                       dbesc(normalise_link($url)));
+
+               if (count($r)) {
+                       $profile = $r[0];
+                       $profile["keywords"] = "";
+                       $profile["gender"] = "";
+                       $profile["community"] = false;
+                       $profile["network"] = "";
+               }
+       }
+
+       // Fetching further contact data from the contact table
+       $r = q("SELECT `id`, `uid`, `url`, `network`, `name`, `nick`, `location`, `about`, `keywords`, `gender`, `photo`, `addr`, `forum`, `prv`, `bd` FROM `contact` WHERE `nurl` = '%s' AND `uid` = %d AND `network` = '%s'",
+               dbesc(normalise_link($url)), intval($uid), dbesc($profile["network"]));
+
+       if (!count($r))
+               $r = q("SELECT `id`, `uid`, `url`, `network`, `name`, `nick`, `location`, `about`, `keywords`, `gender`, `photo`, `addr`, `forum`, `prv`, `bd` FROM `contact` WHERE `nurl` = '%s' AND `uid` = %d",
+                       dbesc(normalise_link($url)), intval($uid));
+
+       if (!count($r))
+               $r = q("SELECT `id`, `uid`, `url`, `network`, `name`, `nick`, `location`, `about`, `keywords`, `gender`, `photo`, `addr`, `forum`, `prv`, `bd` FROM `contact` WHERE `nurl` = '%s' AND `uid` = 0",
+                       dbesc(normalise_link($url)));
+
+       if ($r) {
+               if (isset($r[0]["url"]) AND $r[0]["url"])
+                       $profile["url"] = $r[0]["url"];
+               if (isset($r[0]["name"]) AND $r[0]["name"])
+                       $profile["name"] = $r[0]["name"];
+               if (isset($r[0]["nick"]) AND $r[0]["nick"] AND ($profile["nick"] == ""))
+                       $profile["nick"] = $r[0]["nick"];
+               if (isset($r[0]["photo"]) AND $r[0]["photo"])
+                       $profile["photo"] = $r[0]["photo"];
+               if (isset($r[0]["location"]) AND $r[0]["location"])
+                       $profile["location"] = $r[0]["location"];
+               if (isset($r[0]["about"]) AND $r[0]["about"])
+                       $profile["about"] = $r[0]["about"];
+               if (isset($r[0]["keywords"]) AND $r[0]["keywords"])
+                       $profile["keywords"] = $r[0]["keywords"];
+               if (isset($r[0]["gender"]) AND $r[0]["gender"])
+                       $profile["gender"] = $r[0]["gender"];
+               if (isset($r[0]["forum"]) AND isset($r[0]["prv"]))
+                       $profile["community"] = ($r[0]["forum"] OR $r[0]["prv"]);
+               if (isset($r[0]["network"]) AND $r[0]["network"])
+                       $profile["network"] = $r[0]["network"];
+               if (isset($r[0]["addr"]) AND $r[0]["addr"])
+                       $profile["addr"] = $r[0]["addr"];
+               if (isset($r[0]["bd"]) AND $r[0]["bd"])
+                       $profile["bd"] = $r[0]["bd"];
+               if ($r[0]["uid"] == 0)
+                       $profile["cid"] = 0;
+               else
+                       $profile["cid"] = $r[0]["id"];
+       } else
+               $profile["cid"] = 0;
+
+       if (isset($profile["photo"]))
+               $profile["photo"] = proxy_url($profile["photo"], false, PROXY_SIZE_SMALL);
+
+       if (isset($profile["location"]))
+               $profile["location"] = bbcode($profile["location"]);
+
+       if (isset($profile["about"]))
+               $profile["about"] = bbcode($profile["about"]);
+
+       if (($profile["cid"] == 0) AND ($profile["network"] == NETWORK_DIASPORA)) {
+               $profile["location"] = "";
+               $profile["about"] = "";
+       }
+
+       return($profile);
+}
+
 if(! function_exists('contact_photo_menu')){
 function contact_photo_menu($contact) {
 
index 66beface0872a383f095003ad443a0e5d6d8c3c1..0cfdf5b611d89276b87c382c254c291750582a4b 100644 (file)
@@ -151,11 +151,11 @@ function network_init(&$a) {
        $a->page['aside'] .= fileas_widget($a->get_baseurl(true) . '/network',(x($_GET, 'file') ? $_GET['file'] : ''));
 
        if(x($_GET['cid']) && intval($_GET['cid']) != 0) {
-               $r = q("SELECT * FROM `contact` WHERE `id` = %d",
+               $r = q("SELECT `url` FROM `contact` WHERE `id` = %d",
                        intval($_GET['cid']));
                if ($r) {
                        $a->page['aside'] = "";
-                       profile_load($a, "", 0, $r[0]);
+                       profile_load($a, "", 0, contact_data($r[0]["url"]));
                }
        }
 }