From 320751660d7f17cd80aa2c5360d25d167b331854 Mon Sep 17 00:00:00 2001 From: rabuzarus <> Date: Wed, 27 Jul 2016 19:53:22 +0200 Subject: [PATCH] frio: intro notifications + some restructuring in core for notifications --- mod/notifications.php | 152 +++++++++++--------- view/templates/intros.tpl | 2 +- view/templates/notifications.tpl | 15 +- view/theme/frio/css/style.css | 50 ++++++- view/theme/frio/js/modal.js | 13 ++ view/theme/frio/templates/intros.tpl | 54 +++++++ view/theme/frio/templates/notifications.tpl | 25 ++++ 7 files changed, 240 insertions(+), 71 deletions(-) create mode 100644 view/theme/frio/templates/intros.tpl create mode 100644 view/theme/frio/templates/notifications.tpl diff --git a/mod/notifications.php b/mod/notifications.php index e0f07118f7..ae27de864c 100644 --- a/mod/notifications.php +++ b/mod/notifications.php @@ -59,10 +59,6 @@ function notifications_post(&$a) { } } - - - - function notifications_content(&$a) { if(! local_user()) { @@ -76,46 +72,9 @@ function notifications_content(&$a) { $o = ''; - $tabs = array( - array( - 'label' => t('System'), - 'url'=>'notifications/system', - 'sel'=> (($a->argv[1] == 'system') ? 'active' : ''), - 'accesskey' => 'y', - ), - array( - 'label' => t('Network'), - 'url'=>'notifications/network', - 'sel'=> (($a->argv[1] == 'network') ? 'active' : ''), - 'accesskey' => 'w', - ), - array( - 'label' => t('Personal'), - 'url'=>'notifications/personal', - 'sel'=> (($a->argv[1] == 'personal') ? 'active' : ''), - 'accesskey' => 'r', - ), - array( - 'label' => t('Home'), - 'url' => 'notifications/home', - 'sel'=> (($a->argv[1] == 'home') ? 'active' : ''), - 'accesskey' => 'h', - ), - array( - 'label' => t('Introductions'), - 'url' => 'notifications/intros', - 'sel'=> (($a->argv[1] == 'intros') ? 'active' : ''), - 'accesskey' => 'i', - ), - /*array( - 'label' => t('Messages'), - 'url' => 'message', - 'sel'=> '', - ),*/ /*while I can have notifications for messages, this tablist is not place for message page link */ - ); - - $o = ""; - + // get the nav tabs for the notification pages + $tabs = notifications_tabs($a); + $notif_content = array(); if( (($a->argc > 1) && ($a->argv[1] == 'intros')) || (($a->argc == 1))) { nav_set_selected('introductions'); @@ -126,7 +85,7 @@ function notifications_content(&$a) { $notif_tpl = get_markup_template('notifications.tpl'); - $notif_content .= '' + $notif_ignored_lnk .= '' . ((strlen($sql_extra)) ? t('Show Ignored Requests') : t('Hide Ignored Requests')) . '' . "\r\n"; $r = q("SELECT COUNT(*) AS `total` FROM `intro` @@ -162,7 +121,7 @@ function notifications_content(&$a) { $return_addr = bin2hex($a->user['nickname'] . '@' . $a->get_hostname() . (($a->path) ? '/' . $a->path : '')); - $notif_content .= replace_macros($sugg, array( + $notif_content[] = replace_macros($sugg, array( '$str_notifytype' => t('Notification type: '), '$notify_type' => t('Friend Suggestion'), '$intro_id' => $rr['intro_id'], @@ -195,7 +154,8 @@ function notifications_content(&$a) { if($rr['network'] === NETWORK_DFRN || $rr['network'] === NETWORK_DIASPORA) { if($rr['network'] === NETWORK_DFRN) { - $knowyou = t('Claims to be known to you: ') . (($rr['knowyou']) ? t('yes') : t('no')); + $lbl_knowyou = t('Claims to be known to you: '); + $knowyou = (($rr['knowyou']) ? t('yes') : t('no')); $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 = ''; @@ -231,7 +191,7 @@ function notifications_content(&$a) { $rr['ggender'] = ""; } - $notif_content .= replace_macros($tpl, array( + $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')), @@ -255,6 +215,10 @@ function notifications_content(&$a) { '$url' => $rr['url'], '$zrl' => zrl($rr['url']), '$url_label' => t('Profile URL'), + '$addr' => $rr['addr'], + '$lbl_knowyou' => $lbl_knowyou, + '$lbl_network' => t('Network:'), + '$network' => network_to_name($rr['gnetwork'], $rr['url']), '$knowyou' => $knowyou, '$approve' => t('Approve'), '$note' => $rr['note'], @@ -270,6 +234,7 @@ function notifications_content(&$a) { $o .= replace_macros($notif_tpl, array( '$notif_header' => t('Notifications'), '$tabs' => $tabs, + '$notif_ignored_lnk' => $notif_ignored_lnk, '$notif_content' => $notif_content, )); @@ -295,14 +260,14 @@ function notifications_content(&$a) { $tpl_item_comments = get_markup_template('notifications_comments_item.tpl'); $tpl_item_posts = get_markup_template('notifications_posts_item.tpl'); - $notif_content = ''; + $notif_content = array(); if ($r) { foreach ($r as $it) { switch($it['verb']){ case ACTIVITY_LIKE: - $notif_content .= replace_macros($tpl_item_likes,array( + $notif_content[] = replace_macros($tpl_item_likes,array( //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'], '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'], '$item_image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO), @@ -312,7 +277,7 @@ function notifications_content(&$a) { break; case ACTIVITY_DISLIKE: - $notif_content .= replace_macros($tpl_item_dislikes,array( + $notif_content[] = replace_macros($tpl_item_dislikes,array( //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'], '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'], '$item_image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO), @@ -327,7 +292,7 @@ function notifications_content(&$a) { $obj = parse_xml_string($xmlhead.$it['object']); $it['fname'] = $obj->title; - $notif_content .= replace_macros($tpl_item_friends,array( + $notif_content[] = replace_macros($tpl_item_friends,array( //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'], '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'], '$item_image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO), @@ -342,7 +307,7 @@ function notifications_content(&$a) { : sprintf( t("%s commented on %s's post"), $it['author-name'], $it['pname'])); $tpl = (($it['id'] == $it['parent']) ? $tpl_item_posts : $tpl_item_comments); - $notif_content .= replace_macros($tpl,array( + $notif_content[] = replace_macros($tpl,array( //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'], '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'], '$item_image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO), @@ -354,13 +319,14 @@ function notifications_content(&$a) { } else { - $notif_content = t('No more network notifications.'); + $notif_nocontent = t('No more network notifications.'); } $o .= replace_macros($notif_tpl, array( '$notif_header' => t('Network Notifications'), '$tabs' => $tabs, '$notif_content' => $notif_content, + '$notif_nocontent' => $notif_nocontent, )); } else if (($a->argc > 1) && ($a->argv[1] == 'system')) { @@ -376,7 +342,7 @@ function notifications_content(&$a) { if (count($r) > 0) { foreach ($r as $it) { - $notif_content .= replace_macros($not_tpl,array( + $notif_content[] = replace_macros($not_tpl,array( '$item_link' => $a->get_baseurl(true).'/notify/view/'. $it['id'], '$item_image' => proxy_url($it['photo'], false, PROXY_SIZE_MICRO), '$item_text' => strip_tags(bbcode($it['msg'])), @@ -384,13 +350,14 @@ function notifications_content(&$a) { )); } } else { - $notif_content .= t('No more system notifications.'); + $notif_nocontent = t('No more system notifications.'); } $o .= replace_macros($notif_tpl, array( '$notif_header' => t('System Notifications'), '$tabs' => $tabs, '$notif_content' => $notif_content, + '$notif_nocontent' => $notif_nocontent, )); } else if (($a->argc > 1) && ($a->argv[1] == 'personal')) { @@ -424,14 +391,14 @@ function notifications_content(&$a) { $tpl_item_comments = get_markup_template('notifications_comments_item.tpl'); $tpl_item_posts = get_markup_template('notifications_posts_item.tpl'); - $notif_content = ''; + $notif_content = array(); if (count($r) > 0) { foreach ($r as $it) { switch($it['verb']){ case ACTIVITY_LIKE: - $notif_content .= replace_macros($tpl_item_likes,array( + $notif_content[] = replace_macros($tpl_item_likes,array( //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'], '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'], '$item_image' => $it['author-avatar'], @@ -441,7 +408,7 @@ function notifications_content(&$a) { break; case ACTIVITY_DISLIKE: - $notif_content .= replace_macros($tpl_item_dislikes,array( + $notif_content[] = replace_macros($tpl_item_dislikes,array( //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'], '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'], '$item_image' => $it['author-avatar'], @@ -456,7 +423,7 @@ function notifications_content(&$a) { $obj = parse_xml_string($xmlhead.$it['object']); $it['fname'] = $obj->title; - $notif_content .= replace_macros($tpl_item_friends,array( + $notif_content[] = replace_macros($tpl_item_friends,array( //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'], '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'], '$item_image' => $it['author-avatar'], @@ -471,7 +438,7 @@ function notifications_content(&$a) { : sprintf( t("%s commented on %s's post"), $it['author-name'], $it['pname'])); $tpl = (($it['id'] == $it['parent']) ? $tpl_item_posts : $tpl_item_comments); - $notif_content .= replace_macros($tpl,array( + $notif_content[] = replace_macros($tpl,array( //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'], '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'], '$item_image' => $it['author-avatar'], @@ -483,13 +450,14 @@ function notifications_content(&$a) { } else { - $notif_content = t('No more personal notifications.'); + $notif_nocontent = t('No more personal notifications.'); } $o .= replace_macros($notif_tpl, array( '$notif_header' => t('Personal Notifications'), '$tabs' => $tabs, '$notif_content' => $notif_content, + '$notif_nocontent' => $notif_nocontent, )); @@ -515,14 +483,14 @@ function notifications_content(&$a) { $tpl_item_friends = get_markup_template('notifications_friends_item.tpl'); $tpl_item_comments = get_markup_template('notifications_comments_item.tpl'); - $notif_content = ''; + $notif_content = array(); if (count($r) > 0) { foreach ($r as $it) { switch($it['verb']){ case ACTIVITY_LIKE: - $notif_content .= replace_macros($tpl_item_likes,array( + $notif_content[] = replace_macros($tpl_item_likes,array( //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'], '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'], '$item_image' => $it['author-avatar'], @@ -532,7 +500,7 @@ function notifications_content(&$a) { break; case ACTIVITY_DISLIKE: - $notif_content .= replace_macros($tpl_item_dislikes,array( + $notif_content[] = replace_macros($tpl_item_dislikes,array( //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'], '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'], '$item_image' => $it['author-avatar'], @@ -547,7 +515,7 @@ function notifications_content(&$a) { $obj = parse_xml_string($xmlhead.$it['object']); $it['fname'] = $obj->title; - $notif_content .= replace_macros($tpl_item_friends,array( + $notif_content[] = replace_macros($tpl_item_friends,array( //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'], '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'], '$item_image' => $it['author-avatar'], @@ -557,7 +525,7 @@ function notifications_content(&$a) { break; default: - $notif_content .= replace_macros($tpl_item_comments,array( + $notif_content[] = replace_macros($tpl_item_comments,array( //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'], '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'], '$item_image' => $it['author-avatar'], @@ -568,16 +536,64 @@ function notifications_content(&$a) { } } else { - $notif_content = t('No more home notifications.'); + $notif_nocontent = t('No more home notifications.'); } $o .= replace_macros($notif_tpl, array( '$notif_header' => t('Home Notifications'), '$tabs' => $tabs, '$notif_content' => $notif_content, + '$notif_nocontent' => $notif_nocontent, )); } $o .= paginate($a); return $o; } +/** + * @brief List of pages for the Notifications TabBar + * + * @param app $a The + * @return array with with notifications TabBar data + */ +function notifications_tabs($a) { + $tabs = array( + array( + 'label' => t('System'), + 'url'=>'notifications/system', + 'sel'=> (($a->argv[1] == 'system') ? 'active' : ''), + 'accesskey' => 'y', + ), + array( + 'label' => t('Network'), + 'url'=>'notifications/network', + 'sel'=> (($a->argv[1] == 'network') ? 'active' : ''), + 'accesskey' => 'w', + ), + array( + 'label' => t('Personal'), + 'url'=>'notifications/personal', + 'sel'=> (($a->argv[1] == 'personal') ? 'active' : ''), + 'accesskey' => 'r', + ), + array( + 'label' => t('Home'), + 'url' => 'notifications/home', + 'sel'=> (($a->argv[1] == 'home') ? 'active' : ''), + 'accesskey' => 'h', + ), + array( + 'label' => t('Introductions'), + 'url' => 'notifications/intros', + 'sel'=> (($a->argv[1] == 'intros') ? 'active' : ''), + 'accesskey' => 'i', + ), + /*array( + 'label' => t('Messages'), + 'url' => 'message', + 'sel'=> '', + ),*/ /*while I can have notifications for messages, this tablist is not place for message page link */ + ); + + return $tabs; +} \ No newline at end of file diff --git a/view/templates/intros.tpl b/view/templates/intros.tpl index b9f7f15418..fa823ca71a 100644 --- a/view/templates/intros.tpl +++ b/view/templates/intros.tpl @@ -9,7 +9,7 @@ {{if $gender}}