X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Fnotifications.php;h=99031a1d59f0dee8a2050e08def1082dc0f1cf98;hb=1dfd5c4f85f2e0407f006ca962dc3dd62b092aba;hp=083476501abe387c1ca137def7aa00cf99f36b44;hpb=8eedbf30f1da18c7eae8d822293faf8056545e65;p=friendica.git diff --git a/mod/notifications.php b/mod/notifications.php old mode 100644 new mode 100755 index 083476501a..99031a1d59 --- a/mod/notifications.php +++ b/mod/notifications.php @@ -42,12 +42,12 @@ function notifications_post(&$a) { intval(local_user()) ); } - return; + goaway($a->get_baseurl() . '/notifications/intros'); } if($_POST['submit'] == t('Ignore')) { $r = q("UPDATE `intro` SET `ignore` = 1 WHERE `id` = %d LIMIT 1", intval($intro_id)); - return; + goaway($a->get_baseurl() . '/notifications/intros'); } } } @@ -63,10 +63,47 @@ function notifications_content(&$a) { return; } + nav_set_selected('notifications'); + $o = ''; + $tabs = array( + array( + 'label' => t('System'), + 'url'=>$a->get_baseurl() . '/notifications/system', + 'sel'=> (($a->argv[1] == 'system') ? 'active' : ''), + ), + array( + 'label' => t('Network'), + 'url'=>$a->get_baseurl() . '/notifications/network', + 'sel'=> (($a->argv[1] == 'network') ? 'active' : ''), + ), + array( + 'label' => t('Personal'), + 'url'=>$a->get_baseurl() . '/notifications/personal', + 'sel'=> (($a->argv[1] == 'personal') ? 'active' : ''), + ), + array( + 'label' => t('Home'), + 'url' => $a->get_baseurl() . '/notifications/home', + 'sel'=> (($a->argv[1] == 'home') ? 'active' : ''), + ), + array( + 'label' => t('Introductions'), + 'url' => $a->get_baseurl() . '/notifications/intros', + 'sel'=> (($a->argv[1] == 'intros') ? 'active' : ''), + ), + array( + 'label' => t('Messages'), + 'url' => $a->get_baseurl() . '/message', + 'sel'=> '', + ), + ); + + $o = ""; + if( (($a->argc > 1) && ($a->argv[1] == 'intros')) || (($a->argc == 1))) { - + nav_set_selected('introductions'); if(($a->argc > 2) && ($a->argv[2] == 'all')) $sql_extra = ''; else @@ -109,6 +146,9 @@ function notifications_content(&$a) { '$photo' => ((x($rr,'fphoto')) ? $rr['fphoto'] : "images/default-profile.jpg"), '$fullname' => $rr['fname'], '$url' => $rr['furl'], + '$hidden' => array('hidden', t('Hide this contact from others'), ($rr['hidden'] == 1), ''), + '$activity' => array('activity', t('Post a new friend activity'), 1, t('if applicable')), + '$knowyou' => $knowyou, '$approve' => t('Approve'), '$note' => $rr['note'], @@ -153,6 +193,8 @@ function notifications_content(&$a) { '$contact_id' => $rr['contact-id'], '$photo' => ((x($rr,'photo')) ? $rr['photo'] : "images/default-profile.jpg"), '$fullname' => $rr['name'], + '$hidden' => array('hidden', t('Hide this contact from others'), ($rr['hidden'] == 1), ''), + '$activity' => array('activity', t('Post a new friend activity'), 1, t('if applicable')), '$url' => $rr['url'], '$knowyou' => $knowyou, '$approve' => t('Approve'), @@ -164,11 +206,12 @@ function notifications_content(&$a) { } } else - info( t('No notifications.') . EOL); + info( t('No introductions.') . EOL); $o .= replace_macros($notif_tpl,array( + '$notif_header' => t('Notifications'), + '$tabs' => $tabs, '$notif_content' => $notif_content, - '$activetab' => 'intros' )); $o .= paginate($a); @@ -212,7 +255,7 @@ function notifications_content(&$a) { $notif_content .= replace_macros($tpl_item_dislikes,array( '$item_link' => $a->get_baseurl().'/display/'.$a->user['nickname']."/".$it['parent'], '$item_image' => $it['author-avatar'], - '$item_text' => sprintf( t("%s liked %s's post"), $it['author-name'], $it['pname']), + '$item_text' => sprintf( t("%s disliked %s's post"), $it['author-name'], $it['pname']), '$item_when' => relative_date($it['created']) )); break; @@ -226,24 +269,146 @@ function notifications_content(&$a) { $notif_content .= replace_macros($tpl_item_friends,array( '$item_link' => $a->get_baseurl().'/display/'.$a->user['nickname']."/".$it['parent'], '$item_image' => $it['author-avatar'], - '$item_text' => sprintf( t("%s is now friend with %s"), $it['author-name'], $it['fname']), + '$item_text' => sprintf( t("%s is now friends with %s"), $it['author-name'], $it['fname']), + '$item_when' => relative_date($it['created']) + )); + break; + + default: + $item_text = (($it['id'] == $it['parent']) + ? sprintf( t("%s created a new post"), $it['author-name']) + : 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( + '$item_link' => $a->get_baseurl().'/display/'.$a->user['nickname']."/".$it['parent'], + '$item_image' => $it['author-avatar'], + '$item_text' => $item_text, + '$item_when' => relative_date($it['created']) + )); + } + } + + } else { + + $notif_content = t('No more network notifications.'); + } + + $o .= replace_macros($notif_tpl,array( + '$notif_header' => t('Network Notifications'), + '$tabs' => $tabs, + '$notif_content' => $notif_content, + )); + + } else if (($a->argc > 1) && ($a->argv[1] == 'system')) { + + $notif_tpl = get_markup_template('notifications.tpl'); + + $not_tpl = get_markup_template('notify.tpl'); + require_once('include/bbcode.php'); + + $r = q("SELECT * from notify where uid = %d and seen = 0 order by date desc", + intval(local_user()) + ); + + if (count($r) > 0) { + foreach ($r as $it) { + $notif_content .= replace_macros($not_tpl,array( + '$item_link' => $a->get_baseurl().'/notify/view/'. $it['id'], + '$item_image' => $it['photo'], + '$item_text' => strip_tags(bbcode($it['msg'])), + '$item_when' => relative_date($it['date']) + )); + } + } else { + $notif_content .= t('No more system notifications.'); + } + + $o .= replace_macros($notif_tpl,array( + '$notif_header' => t('System Notifications'), + '$tabs' => $tabs, + '$notif_content' => $notif_content, + )); + + } else if (($a->argc > 1) && ($a->argv[1] == 'personal')) { + + $notif_tpl = get_markup_template('notifications.tpl'); + + $myurl = $a->get_baseurl() . '/profile/'. $a->user['nickname']; + $myurl = substr($myurl,strpos($myurl,'://')+3); + $myurl = str_replace(array('www.','.'),array('','\\.'),$myurl); + $diasp_url = str_replace('/profile/','/u/',$myurl); + $sql_extra .= sprintf(" AND ( `item`.`author-link` regexp '%s' or `item`.`tag` regexp '%s' or `item`.`tag` regexp '%s' ) ", + dbesc($myurl . '$'), + dbesc($myurl . '\\]'), + dbesc($diasp_url . '\\]') + ); + + + $r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`, + `item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object` as `object`, + `pitem`.`author-name` as `pname`, `pitem`.`author-link` as `plink` + FROM `item` INNER JOIN `item` as `pitem` ON `pitem`.`id`=`item`.`parent` + WHERE `item`.`unseen` = 1 AND `item`.`visible` = 1 + $sql_extra + AND `item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 0 ORDER BY `item`.`created` DESC" , + intval(local_user()) + ); + + $tpl_item_likes = get_markup_template('notifications_likes_item.tpl'); + $tpl_item_dislikes = get_markup_template('notifications_dislikes_item.tpl'); + $tpl_item_friends = get_markup_template('notifications_friends_item.tpl'); + $tpl_item_comments = get_markup_template('notifications_comments_item.tpl'); + $tpl_item_posts = get_markup_template('notifications_posts_item.tpl'); + + $notif_content = ''; + + if (count($r) > 0) { + + foreach ($r as $it) { + switch($it['verb']){ + case ACTIVITY_LIKE: + $notif_content .= replace_macros($tpl_item_likes,array( + '$item_link' => $a->get_baseurl().'/display/'.$a->user['nickname']."/".$it['parent'], + '$item_image' => $it['author-avatar'], + '$item_text' => sprintf( t("%s liked %s's post"), $it['author-name'], $it['pname']), '$item_when' => relative_date($it['created']) )); break; - case ACTIVITY_POST;$notif_content .= replace_macros($tpl_item_posts,array( + case ACTIVITY_DISLIKE: + $notif_content .= replace_macros($tpl_item_dislikes,array( '$item_link' => $a->get_baseurl().'/display/'.$a->user['nickname']."/".$it['parent'], '$item_image' => $it['author-avatar'], - '$item_text' => sprintf( t("%s posted"), $it['author-name']), + '$item_text' => sprintf( t("%s disliked %s's post"), $it['author-name'], $it['pname']), + '$item_when' => relative_date($it['created']) + )); + break; + + case ACTIVITY_FRIEND: + + $xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">"; + $obj = parse_xml_string($xmlhead.$it['object']); + $it['fname'] = $obj->title; + + $notif_content .= replace_macros($tpl_item_friends,array( + '$item_link' => $a->get_baseurl().'/display/'.$a->user['nickname']."/".$it['parent'], + '$item_image' => $it['author-avatar'], + '$item_text' => sprintf( t("%s is now friends with %s"), $it['author-name'], $it['fname']), '$item_when' => relative_date($it['created']) )); break; default: - $notif_content .= replace_macros($tpl_item_comments,array( + $item_text = (($it['id'] == $it['parent']) + ? sprintf( t("%s created a new post"), $it['author-name']) + : 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( '$item_link' => $a->get_baseurl().'/display/'.$a->user['nickname']."/".$it['parent'], '$item_image' => $it['author-avatar'], - '$item_text' => sprintf( t("%s commented %s's post"), $it['author-name'], $it['pname']), + '$item_text' => $item_text, '$item_when' => relative_date($it['created']) )); } @@ -251,14 +416,20 @@ function notifications_content(&$a) { } else { - $notif_content = 'Nothing new!'; + $notif_content = t('No more personal notifications.'); } $o .= replace_macros($notif_tpl,array( + '$notif_header' => t('Personal Notifications'), + '$tabs' => $tabs, '$notif_content' => $notif_content, - '$activetab' => 'network' )); + + + + + } else if (($a->argc > 1) && ($a->argv[1] == 'home')) { $notif_tpl = get_markup_template('notifications.tpl'); @@ -296,7 +467,7 @@ function notifications_content(&$a) { $notif_content .= replace_macros($tpl_item_dislikes,array( '$item_link' => $a->get_baseurl().'/display/'.$a->user['nickname']."/".$it['parent'], '$item_image' => $it['author-avatar'], - '$item_text' => sprintf( t("%s liked %s's post"), $it['author-name'], $it['pname']), + '$item_text' => sprintf( t("%s disliked %s's post"), $it['author-name'], $it['pname']), '$item_when' => relative_date($it['created']) )); @@ -310,7 +481,7 @@ function notifications_content(&$a) { $notif_content .= replace_macros($tpl_item_friends,array( '$item_link' => $a->get_baseurl().'/display/'.$a->user['nickname']."/".$it['parent'], '$item_image' => $it['author-avatar'], - '$item_text' => sprintf( t("%s is now friend with %s"), $it['author-name'], $it['fname']), + '$item_text' => sprintf( t("%s is now friends with %s"), $it['author-name'], $it['fname']), '$item_when' => relative_date($it['created']) )); @@ -319,19 +490,20 @@ function notifications_content(&$a) { $notif_content .= replace_macros($tpl_item_comments,array( '$item_link' => $a->get_baseurl().'/display/'.$a->user['nickname']."/".$it['parent'], '$item_image' => $it['author-avatar'], - '$item_text' => sprintf( t("%s commented %s's post"), $it['author-name'], $it['pname']), + '$item_text' => sprintf( t("%s commented on %s's post"), $it['author-name'], $it['pname']), '$item_when' => relative_date($it['created']) )); } } } else { - $notif_content = 'Nothing new!'; + $notif_content = t('No more home notifications.'); } $o .= replace_macros($notif_tpl,array( + '$notif_header' => t('Home Notifications'), + '$tabs' => $tabs, '$notif_content' => $notif_content, - '$activetab' => 'home' )); }