]> git.mxchange.org Git - friendica.git/blobdiff - include/Contact.php
Merge pull request #2223 from rabuzarus/2912_photo_widget
[friendica.git] / include / Contact.php
index eeb38a5d7a519f031b3e1b3ae939519da55f3632..a3cbbfed15265c765a8bd6278e1f6c160e4f76fe 100644 (file)
@@ -144,7 +144,7 @@ function terminate_friendship($user,$self,$contact) {
 // and we won't waste any more time trying to communicate with them.
 // This provides for the possibility that their database is temporarily messed
 // up or some other transient event and that there's a possibility we could recover from it.
+
 if(! function_exists('mark_for_death')) {
 function mark_for_death($contact) {
 
@@ -159,14 +159,15 @@ function mark_for_death($contact) {
        }
        else {
 
-               // TODO: We really should send a notification to the owner after 2-3 weeks
-               // so they won't be surprised when the contact vanishes and can take
-               // remedial action if this was a serious mistake or glitch
+               /// @todo 
+               /// We really should send a notification to the owner after 2-3 weeks
+               /// so they won't be surprised when the contact vanishes and can take
+               /// remedial action if this was a serious mistake or glitch
 
                $expiry = $contact['term-date'] . ' + 32 days ';
                if(datetime_convert() > datetime_convert('UTC','UTC',$expiry)) {
 
-                       // relationship is really truly dead. 
+                       // relationship is really truly dead.
                        // archive them rather than delete
                        // though if the owner tries to unarchive them we'll start the whole process over again
 
@@ -192,9 +193,6 @@ function unmark_for_death($contact) {
 }}
 
 function get_contact_details_by_url($url, $uid = -1) {
-       require_once("mod/proxy.php");
-       require_once("include/bbcode.php");
-
        if ($uid == -1)
                $uid = local_user();
 
@@ -268,15 +266,6 @@ function get_contact_details_by_url($url, $uid = -1) {
        } 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"] = "";
@@ -286,7 +275,7 @@ function get_contact_details_by_url($url, $uid = -1) {
 }
 
 if(! function_exists('contact_photo_menu')){
-function contact_photo_menu($contact) {
+function contact_photo_menu($contact, $uid = 0) {
 
        $a = get_app();
 
@@ -298,6 +287,33 @@ function contact_photo_menu($contact) {
        $contact_drop_link = "";
        $poke_link="";
 
+       if ($uid == 0)
+               $uid = local_user();
+
+       if ($contact["uid"] != $uid) {
+               if ($uid == 0) {
+                       $profile_link = zrl($contact['url']);
+                       $menu = Array('profile' => array(t("View Profile"), $profile_link, true));
+
+                       return $menu;
+               }
+
+               $r = q("SELECT * FROM `contact` WHERE `nurl` = '%s' AND `network` = '%s' AND `uid` = %d",
+                       dbesc($contact["nurl"]), dbesc($contact["network"]), intval($uid));
+               if ($r)
+                       return contact_photo_menu($r[0], $uid);
+               else {
+                       $profile_link = zrl($contact['url']);
+                       $connlnk = 'follow/?url='.$contact['url'];
+                       $menu = Array(
+                               'profile' => array(t("View Profile"), $profile_link, true),
+                               'follow' => array(t("Connect/Follow"), $connlnk, true)
+                               );
+
+                       return $menu;
+               }
+       }
+
        $sparkle = false;
        if($contact['network'] === NETWORK_DFRN) {
                $sparkle = true;
@@ -322,19 +338,23 @@ function contact_photo_menu($contact) {
                $poke_link = $a->get_baseurl() . '/poke/?f=&c=' . $contact['id'];
 
        $contact_url = $a->get_baseurl() . '/contacts/' . $contact['id'];
-       $posts_link = $a->get_baseurl() . '/network/0?nets=all&cid=' . $contact['id'];
+       $posts_link = $a->get_baseurl() . "/contacts/" . $contact['id'] . '/posts';
        $contact_drop_link = $a->get_baseurl() . "/contacts/" . $contact['id'] . '/drop?confirm=1';
 
 
+       /**
+        * menu array:
+        * "name" => [ "Label", "link", (bool)Should the link opened in a new tab? ]
+        */
        $menu = Array(
-               'status' => array(t("View Status"), $status_link),
-               'profile' => array(t("View Profile"), $profile_link),
-               'photos' => array(t("View Photos"), $photos_link),
-               'network' => array(t("Network Posts"), $posts_link),
-               'edit' => array(t("Edit Contact"), $contact_url),
-               'drop' => array(t("Drop Contact"), $contact_drop_link),
-               'pm' => array(t("Send PM"), $pm_url),
-               'poke' => array(t("Poke"), $poke_link),
+               'status' => array(t("View Status"), $status_link, true),
+               'profile' => array(t("View Profile"), $profile_link, true),
+               'photos' => array(t("View Photos"), $photos_link,true),
+               'network' => array(t("Network Posts"), $posts_link,false),
+               'edit' => array(t("Edit Contact"), $contact_url, false),
+               'drop' => array(t("Drop Contact"), $contact_drop_link, false),
+               'pm' => array(t("Send PM"), $pm_url, false),
+               'poke' => array(t("Poke"), $poke_link, false),
        );
 
 
@@ -342,31 +362,11 @@ function contact_photo_menu($contact) {
 
        call_hooks('contact_photo_menu', $args);
 
-/*     $o = "";
-       foreach($menu as $k=>$v){
-               if ($v!="") {
-                       if(($k !== t("Network Posts")) && ($k !== t("Send PM")) && ($k !== t('Edit Contact')))
-                               $o .= "<li><a target=\"redir\" href=\"$v\">$k</a></li>\n";
-                       else
-                               $o .= "<li><a href=\"$v\">$k</a></li>\n";
-               }
-       }
-       return $o;*/
-
-       foreach($menu as $k=>$v){
-               if ($v[1]!="") {
-                       if(($v[0] !== t("Network Posts")) && ($v[0] !== t("Send PM")) && ($v[0] !== t('Edit Contact')))
-                               $menu[$k][2] = 1;
-                       else
-                               $menu[$k][2] = 0;
-               }
-       }
-
        $menucondensed = array();
 
-       foreach ($menu AS $menuitem)
+       foreach ($menu AS $menuname=>$menuitem)
                if ($menuitem[1] != "")
-                       $menucondensed[] = $menuitem;
+                       $menucondensed[$menuname] = $menuitem;
 
        return $menucondensed;
 }}