]> git.mxchange.org Git - friendica.git/blobdiff - mod/notifications.php
Reworked fetching of contact data on "display" page
[friendica.git] / mod / notifications.php
index 62db8c8f96d2c0c91c7a3424a8e0eccd5002c797..fadd1e94e563c42c66f3b6407b7c299fbf07e763 100644 (file)
@@ -1,4 +1,7 @@
 <?php
+include_once("include/bbcode.php");
+include_once("include/contact_selectors.php");
+include_once("include/Scrape.php");
 
 function notifications_post(&$a) {
 
@@ -78,32 +81,37 @@ function notifications_content(&$a) {
                        'label' => t('System'),
                        'url'=>$a->get_baseurl(true) . '/notifications/system',
                        'sel'=> (($a->argv[1] == 'system') ? 'active' : ''),
+                       'accesskey' => 'y',
                ),
                array(
                        'label' => t('Network'),
                        'url'=>$a->get_baseurl(true) . '/notifications/network',
                        'sel'=> (($a->argv[1] == 'network') ? 'active' : ''),
+                       'accesskey' => 'w',
                ),
                array(
                        'label' => t('Personal'),
                        'url'=>$a->get_baseurl(true) . '/notifications/personal',
                        'sel'=> (($a->argv[1] == 'personal') ? 'active' : ''),
+                       'accesskey' => 'r',
                ),
                array(
                        'label' => t('Home'),
                        'url' => $a->get_baseurl(true) . '/notifications/home',
                        'sel'=> (($a->argv[1] == 'home') ? 'active' : ''),
+                       'accesskey' => 'h',
                ),
                array(
                        'label' => t('Introductions'),
                        'url' => $a->get_baseurl(true) . '/notifications/intros',
                        'sel'=> (($a->argv[1] == 'intros') ? 'active' : ''),
+                       'accesskey' => 'i',
                ),
-               array(
+               /*array(
                        'label' => t('Messages'),
                        'url' => $a->get_baseurl(true) . '/message',
                        'sel'=> '',
-               ),
+               ),*/ /*while I can have notifications for messages, this tablist is not place for message page link */
        );
 
        $o = "";
@@ -130,8 +138,14 @@ function notifications_content(&$a) {
                        $a->set_pager_itemspage(20);
                }
 
-               $r = q("SELECT `intro`.`id` AS `intro_id`, `intro`.*, `contact`.*, `fcontact`.`name` AS `fname`,`fcontact`.`url` AS `furl`,`fcontact`.`photo` AS `fphoto`,`fcontact`.`request` AS `frequest`
-                       FROM `intro` LEFT JOIN `contact` ON `contact`.`id` = `intro`.`contact-id` LEFT JOIN `fcontact` ON `intro`.`fid` = `fcontact`.`id`
+               $r = q("SELECT `intro`.`id` AS `intro_id`, `intro`.*, `contact`.*, `fcontact`.`name` AS `fname`,`fcontact`.`url` AS `furl`,`fcontact`.`photo` AS `fphoto`,`fcontact`.`request` AS `frequest`,
+                               `gcontact`.`location` AS `glocation`, `gcontact`.`about` AS `gabout`,
+                               `gcontact`.`keywords` AS `gkeywords`, `gcontact`.`gender` AS `ggender`,
+                               `gcontact`.`network` AS `gnetwork`
+                       FROM `intro`
+                               LEFT JOIN `contact` ON `contact`.`id` = `intro`.`contact-id`
+                               LEFT JOIN `gcontact` ON `gcontact`.`nurl` = `contact`.`nurl`
+                               LEFT JOIN `fcontact` ON `intro`.`fid` = `fcontact`.`id`
                        WHERE `intro`.`uid` = %d $sql_extra AND `intro`.`blocked` = 0 ",
                                intval($_SESSION['uid']));
 
@@ -141,6 +155,7 @@ function notifications_content(&$a) {
                        $tpl = get_markup_template("intros.tpl");
 
                        foreach($r as $rr) {
+
                                if($rr['fid']) {
 
                                        $return_addr = bin2hex($a->user['nickname'] . '@' . $a->get_hostname() . (($a->path) ? '/' . $a->path : ''));
@@ -151,7 +166,7 @@ function notifications_content(&$a) {
                                                '$intro_id' => $rr['intro_id'],
                                                '$madeby' => sprintf( t('suggested by %s'),$rr['name']),
                                                '$contact_id' => $rr['contact-id'],
-                                               '$photo' => ((x($rr,'fphoto')) ? $rr['fphoto'] : "images/person-175.jpg"),
+                                               '$photo' => ((x($rr,'fphoto')) ? proxy_url($rr['fphoto']) : "images/person-175.jpg"),
                                                '$fullname' => $rr['fname'],
                                                '$url' => zrl($rr['furl']),
                                                '$hidden' => array('hidden', t('Hide this contact from others'), ($rr['hidden'] == 1), ''),
@@ -177,21 +192,45 @@ function notifications_content(&$a) {
                                $dfrn_text = '';
 
                                if($rr['network'] === NETWORK_DFRN || $rr['network'] === NETWORK_DIASPORA) {
-                                       if($rr['network'] === NETWORK_DFRN)
+                                       if($rr['network'] === NETWORK_DFRN) {
                                                $knowyou = t('Claims to be known to you: ') . (($rr['knowyou']) ? t('yes') : t('no'));
-                                       else
+                                               $helptext = t('Shall your connection be bidirectional or not? "Friend" implies that you allow to read and you subscribe to their posts. "Fan/Admirer" means that you allow to read but you do not want to read theirs. Approve as: ');
+                                       } else {
                                                $knowyou = '';
+                                               $helptext = t('Shall your connection be bidirectional or not? "Friend" implies that you allow to read and you subscribe to their posts. "Sharer" means that you allow to read but you do not want to read theirs. Approve as: ');
+                                       }
+
                                        $dfrn_text = replace_macros($dfrn_tpl,array(
                                                '$intro_id' => $rr['intro_id'],
                                                '$friend_selected' => $friend_selected,
                                                '$fan_selected' => $fan_selected,
-                                               '$approve_as' => t('Approve as: '),
+                                               '$approve_as' => $helptext,
                                                '$as_friend' => t('Friend'),
                                                '$as_fan' => (($rr['network'] == NETWORK_DIASPORA) ? t('Sharer') : t('Fan/Admirer'))
                                        ));
                                }
 
+                               $header = $rr["name"];
+
+                               $ret = probe_url($rr["url"]);
+
+                               if ($rr['gnetwork'] == "")
+                                       $rr['gnetwork'] = $ret["network"];
+
+                               if ($ret["addr"] != "")
+                                       $header .= " <".$ret["addr"].">";
+
+                               $header .= " (".network_to_name($rr['gnetwork'], $rr['url']).")";
+
+                               // Don't show these data until you are connected. Diaspora is doing the same.
+                               if($rr['gnetwork'] === NETWORK_DIASPORA) {
+                                       $rr['glocation'] = "";
+                                       $rr['gabout'] = "";
+                                       $rr['ggender'] = "";
+                               }
+
                                $notif_content .= replace_macros($tpl, array(
+                                       '$header' => htmlentities($header),
                                        '$str_notifytype' => t('Notification type: '),
                                        '$notify_type' => (($rr['network'] !== NETWORK_OSTATUS) ? t('Friend/Connect Request') : t('New Follower')),
                                        '$dfrn_text' => $dfrn_text,
@@ -199,11 +238,21 @@ function notifications_content(&$a) {
                                        '$uid' => $_SESSION['uid'],
                                        '$intro_id' => $rr['intro_id'],
                                        '$contact_id' => $rr['contact-id'],
-                                       '$photo' => ((x($rr,'photo')) ? $rr['photo'] : "images/person-175.jpg"),
+                                       '$photo' => ((x($rr,'photo')) ? proxy_url($rr['photo']) : "images/person-175.jpg"),
                                        '$fullname' => $rr['name'],
+                                       '$location' => bbcode($rr['glocation'], false, false),
+                                       '$location_label' => t('Location:'),
+                                       '$about' => bbcode($rr['gabout'], false, false),
+                                       '$about_label' => t('About:'),
+                                       '$keywords' => $rr['gkeywords'],
+                                       '$keywords_label' => t('Tags:'),
+                                       '$gender' => $rr['ggender'],
+                                       '$gender_label' => t('Gender:'),
                                        '$hidden' => array('hidden', t('Hide this contact from others'), ($rr['hidden'] == 1), ''),
                                        '$activity' => array('activity', t('Post a new friend activity'), (intval(get_pconfig(local_user(),'system','post_newfriend')) ? '1' : 0), t('if applicable')),
-                                       '$url' => zrl($rr['url']),
+                                       '$url' => $rr['url'],
+                                       '$zrl' => zrl($rr['url']),
+                                       '$url_label' => t('Profile URL'),
                                        '$knowyou' => $knowyou,
                                        '$approve' => t('Approve'),
                                        '$note' => $rr['note'],
@@ -327,7 +376,7 @@ function notifications_content(&$a) {
                        foreach ($r as $it) {
                                $notif_content .= replace_macros($not_tpl,array(
                                        '$item_link' => $a->get_baseurl(true).'/notify/view/'. $it['id'],
-                                       '$item_image' => $it['photo'],
+                                       '$item_image' => proxy_url($it['photo']),
                                        '$item_text' => strip_tags(bbcode($it['msg'])),
                                        '$item_when' => relative_date($it['date'])
                                ));