From 969cd145ce0e717399dbfff6cbc1a45342206e1a Mon Sep 17 00:00:00 2001 From: friendica Date: Tue, 3 Jan 2012 17:29:07 -0800 Subject: [PATCH] suggestion notifications --- boot.php | 3 +++ include/conversation.php | 35 +++++++++++++++++++++-------------- include/enotify.php | 13 +++++++++++++ include/items.php | 13 ++++++++++++- mod/settings.php | 6 +++++- view/settings.tpl | 1 + 6 files changed, 55 insertions(+), 16 deletions(-) diff --git a/boot.php b/boot.php index 619a3fead..df9daf483 100644 --- a/boot.php +++ b/boot.php @@ -127,6 +127,9 @@ define ( 'NOTIFY_CONFIRM', 0x0002 ); define ( 'NOTIFY_WALL', 0x0004 ); define ( 'NOTIFY_COMMENT', 0x0008 ); define ( 'NOTIFY_MAIL', 0x0010 ); +define ( 'NOTIFY_SUGGEST', 0x0020 ); +define ( 'NOTIFY_PROFILE', 0x0040 ); + /** * various namespaces we may need to parse diff --git a/include/conversation.php b/include/conversation.php index 1b1d09d6b..a30a78271 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -902,29 +902,35 @@ function conv_sort($arr,$order) { elseif(stristr($order,'commented')) usort($parents,'sort_thr_commented'); - foreach($parents as $x) - $x['children'] = array(); + if(count($parents)) + foreach($parents as $x) + $x['children'] = array(); foreach($arr as $x) { if($x['id'] != $x['parent']) { $p = find_thread_parent_index($parents,$x); - $parents[$p]['children'][] = $x; + if($p !== false) + $parents[$p]['children'][] = $x; } } - foreach($parents as $k => $v) { - if(count($parents[$k]['children'])) { - $y = $parents[$k]['children']; - usort($y,'sort_thr_created_rev'); - $parents[$k]['children'] = $y; - } + if(count($parents)) { + foreach($parents as $k => $v) { + if(count($parents[$k]['children'])) { + $y = $parents[$k]['children']; + usort($y,'sort_thr_created_rev'); + $parents[$k]['children'] = $y; + } + } } $ret = array(); - foreach($parents as $x) { - $ret[] = $x; - if(count($x['children'])) - foreach($x['children'] as $y) - $ret[] = $y; + if(count($parents)) { + foreach($parents as $x) { + $ret[] = $x; + if(count($x['children'])) + foreach($x['children'] as $y) + $ret[] = $y; + } } return $ret; @@ -947,4 +953,5 @@ function find_thread_parent_index($arr,$x) { foreach($arr as $k => $v) if($v['id'] == $x['parent']) return $k; + return false; } \ No newline at end of file diff --git a/include/enotify.php b/include/enotify.php index f6f291e5d..9df9b57e5 100644 --- a/include/enotify.php +++ b/include/enotify.php @@ -65,6 +65,19 @@ function notification($params) { $itemlink = $params['link']; } + if($params['type'] == NOTIFY_SUGGEST) { + $subject = sprintf( t('Friend suggestion received at %s'), $sitename); + $preamble = sprintf( t('You\'ve received a friend suggestion from \'%s\' at %s'), $params['source_name'], $sitename); + $body = t('Name:') . ' ' . $params['item']['name'] . "\n"; + $body .= t('Photo:') . ' ' . $params['item']['photo'] . "\n"; + $body .= sprintf( t('You may visit their profile at %s'),$params['item']['url']); + + $sitelink = t('Please visit %s to approve or reject the suggestion.'); + $tsitelink = sprintf( $sitelink, $siteurl ); + $hsitelink = sprintf( $sitelink, '' . $sitename . ''); + $itemlink = $params['link']; + } + if($params['type'] == NOTIFY_CONFIRM) { } diff --git a/include/items.php b/include/items.php index 7f003ab57..9f006306f 100644 --- a/include/items.php +++ b/include/items.php @@ -1788,7 +1788,18 @@ function local_delivery($importer,$data) { intval(0) ); - // TODO - send email notify (which may require a new notification preference) + notification(array( + 'type' => NOTIFY_SUGGEST, + 'notify_flags' => $importer['notify-flags'], + 'language' => $importer['language'], + 'to_name' => $importer['username'], + 'to_email' => $importer['email'], + 'item' => $fsugg, + 'link' => $a->get_baseurl() . '/notifications/intros', + 'source_name' => $importer['name'], + 'source_link' => $importer['url'], + 'source_photo' => $importer['photo'] + )); return 0; } diff --git a/mod/settings.php b/mod/settings.php index 35902f831..8ca0bb7f8 100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -255,6 +255,10 @@ function settings_post(&$a) { $notify += intval($_POST['notify4']); if(x($_POST,'notify5')) $notify += intval($_POST['notify5']); + if(x($_POST,'notify6')) + $notify += intval($_POST['notify6']); + if(x($_POST,'notify7')) + $notify += intval($_POST['notify7']); $email_changed = false; @@ -807,7 +811,7 @@ function settings_content(&$a) { '$notify3' => array('notify3', t('Someone writes on your profile wall'), ($notify & NOTIFY_WALL), NOTIFY_WALL, ''), '$notify4' => array('notify4', t('Someone writes a followup comment'), ($notify & NOTIFY_COMMENT), NOTIFY_COMMENT, ''), '$notify5' => array('notify5', t('You receive a private message'), ($notify & NOTIFY_MAIL), NOTIFY_MAIL, ''), - + '$notify6' => array('notify6', t('You receive a friend suggestion'), ($notify & NOTIFY_SUGGEST), NOTIFY_SUGGEST, ''), '$h_advn' => t('Advanced Page Settings'), diff --git a/view/settings.tpl b/view/settings.tpl index e15976581..6310ff47e 100644 --- a/view/settings.tpl +++ b/view/settings.tpl @@ -107,6 +107,7 @@ $suggestme {{inc field_intcheckbox.tpl with $field=$notify3 }}{{endinc}} {{inc field_intcheckbox.tpl with $field=$notify4 }}{{endinc}} {{inc field_intcheckbox.tpl with $field=$notify5 }}{{endinc}} +{{inc field_intcheckbox.tpl with $field=$notify6 }}{{endinc}}