]> git.mxchange.org Git - friendica.git/blobdiff - mod/contacts.php
Merge pull request #1927 from annando/issue-1914
[friendica.git] / mod / contacts.php
index 6ee9a4a92b23165e2df3a49cfb4583482d14e338..89154eded9ce0437177db0546a2ef515022c401e 100644 (file)
@@ -206,15 +206,36 @@ function contacts_post(&$a) {
 
 /*contact actions*/
 function _contact_update($contact_id) {
-       // pull feed and consume it, which should subscribe to the hub.
-       proc_run('php',"include/poller.php","$contact_id");
+       $r = q("SELECT `uid`, `url`, `network` FROM `contact` WHERE `id` = %d", intval($contact_id));
+       if (!$r)
+               return;
+
+       $uid = $r[0]["uid"];
+
+       if ($uid != local_user())
+               return;
+
+       if ($r[0]["network"] == NETWORK_OSTATUS) {
+               $result = new_contact($uid, $r[0]["url"], false);
+
+               if ($result['success'])
+                       $r = q("UPDATE `contact` SET `subhub` = 1 WHERE `id` = %d",
+                               intval($contact_id));
+       } else
+               // pull feed and consume it, which should subscribe to the hub.
+               proc_run('php',"include/onepoll.php","$contact_id", "force");
 }
 
 function _contact_update_profile($contact_id) {
-       $r = q("SELECT `url`, `network` FROM `contact` WHERE `id` = %d", intval($contact_id));
+       $r = q("SELECT `uid`, `url`, `network` FROM `contact` WHERE `id` = %d", intval($contact_id));
        if (!$r)
                return;
 
+       $uid = $r[0]["uid"];
+
+       if ($uid != local_user())
+               return;
+
        $data = probe_url($r[0]["url"]);
 
        // "Feed" is mostly a sign of communication problems
@@ -225,6 +246,13 @@ function _contact_update_profile($contact_id) {
                                "poco", "network", "alias", "pubkey");
        $update = array();
 
+       if ($data["network"] == NETWORK_OSTATUS) {
+               $result = new_contact($uid, $data["url"], false);
+
+               if ($result['success'])
+                       $update["subhub"] = true;
+       }
+
        foreach($updatefields AS $field)
                if (isset($data[$field]) AND ($data[$field] != ""))
                        $update[$field] = $data[$field];
@@ -505,7 +533,7 @@ function contacts_content(&$a) {
 
                $poll_enabled = in_array($contact['network'], array(NETWORK_DFRN, NETWORK_OSTATUS, NETWORK_FEED, NETWORK_MAIL, NETWORK_MAIL2));
 
-               $nettype = sprintf( t('Network type: %s'),network_to_name($contact['network']));
+               $nettype = sprintf( t('Network type: %s'),network_to_name($contact['network'], $contact["url"]));
 
                $common = count_common_friends(local_user(),$contact['id']);
                $common_text = (($common) ? sprintf( tt('%d contact in common','%d contacts in common', $common),$common) : '');
@@ -522,12 +550,14 @@ function contacts_content(&$a) {
                                'url'   => $a->get_baseurl(true) . '/contacts/' . $contact_id . '/block',
                                'sel'   => '',
                                'title' => t('Toggle Blocked status'),
+                               'accesskey' => 'b',
                        ),
                        array(
                                'label' => (($contact['readonly']) ? t('Unignore') : t('Ignore') ),
                                'url'   => $a->get_baseurl(true) . '/contacts/' . $contact_id . '/ignore',
                                'sel'   => '',
                                'title' => t('Toggle Ignored status'),
+                               'accesskey' => 'i',
                        ),
 
                        array(
@@ -535,12 +565,14 @@ function contacts_content(&$a) {
                                'url'   => $a->get_baseurl(true) . '/contacts/' . $contact_id . '/archive',
                                'sel'   => '',
                                'title' => t('Toggle Archive status'),
+                               'accesskey' => 'v',
                        ),
                        array(
                                'label' => t('Repair'),
                                'url'   => $a->get_baseurl(true) . '/crepair/' . $contact_id,
                                'sel'   => '',
                                'title' => t('Advanced Contact Settings'),
+                               'accesskey' => 'r',
                        )
                );
                $tab_tpl = get_markup_template('common_tabs.tpl');
@@ -605,6 +637,8 @@ function contacts_content(&$a) {
                        '$alt_text' => $alt_text,
                        '$sparkle' => $sparkle,
                        '$url' => $url,
+                       '$profileurllabel' => t('Profile URL'),
+                       '$profileurl' => $contact['url'],
 
                ));
 
@@ -650,21 +684,24 @@ function contacts_content(&$a) {
        $tabs = array(
                array(
                        'label' => t('Suggestions'),
-                       'url'   => $a->get_baseurl(true) . '/suggest', 
+                       'url'   => $a->get_baseurl(true) . '/suggest',
                        'sel'   => '',
                        'title' => t('Suggest potential friends'),
+                       'accesskey' => 'g',
                ),
                array(
                        'label' => t('All Contacts'),
-                       'url'   => $a->get_baseurl(true) . '/contacts/all', 
+                       'url'   => $a->get_baseurl(true) . '/contacts/all',
                        'sel'   => ($all) ? 'active' : '',
                        'title' => t('Show all contacts'),
+                       'accesskey' => 'l',
                ),
                array(
                        'label' => t('Unblocked'),
                        'url'   => $a->get_baseurl(true) . '/contacts',
                        'sel'   => ((! $all) && (! $blocked) && (! $hidden) && (! $search) && (! $nets) && (! $ignored) && (! $archived)) ? 'active' : '',
                        'title' => t('Only show unblocked contacts'),
+                       'accesskey' => 'o',
                ),
 
                array(
@@ -672,6 +709,7 @@ function contacts_content(&$a) {
                        'url'   => $a->get_baseurl(true) . '/contacts/blocked',
                        'sel'   => ($blocked) ? 'active' : '',
                        'title' => t('Only show blocked contacts'),
+                       'accesskey' => 'b',
                ),
 
                array(
@@ -679,6 +717,7 @@ function contacts_content(&$a) {
                        'url'   => $a->get_baseurl(true) . '/contacts/ignored',
                        'sel'   => ($ignored) ? 'active' : '',
                        'title' => t('Only show ignored contacts'),
+                       'accesskey' => 'i',
                ),
 
                array(
@@ -686,6 +725,7 @@ function contacts_content(&$a) {
                        'url'   => $a->get_baseurl(true) . '/contacts/archived',
                        'sel'   => ($archived) ? 'active' : '',
                        'title' => t('Only show archived contacts'),
+                       'accesskey' => 'y',
                ),
 
                array(
@@ -693,6 +733,7 @@ function contacts_content(&$a) {
                        'url'   => $a->get_baseurl(true) . '/contacts/hidden',
                        'sel'   => ($hidden) ? 'active' : '',
                        'title' => t('Only show hidden contacts'),
+                       'accesskey' => 'h',
                ),
 
        );
@@ -806,7 +847,7 @@ function _contact_detail_for_template($rr){
                'sparkle' => $sparkle,
                'itemurl' => $rr['url'],
                'url' => $url,
-               'network' => network_to_name($rr['network']),
+               'network' => network_to_name($rr['network'], $rr['url']),
        );
-       
-}
\ No newline at end of file
+
+}