suggestion notifications

This commit is contained in:
friendica 2012-01-03 17:29:07 -08:00
parent c583d16209
commit 969cd145ce
6 changed files with 55 additions and 16 deletions

View File

@ -127,6 +127,9 @@ define ( 'NOTIFY_CONFIRM', 0x0002 );
define ( 'NOTIFY_WALL', 0x0004 ); define ( 'NOTIFY_WALL', 0x0004 );
define ( 'NOTIFY_COMMENT', 0x0008 ); define ( 'NOTIFY_COMMENT', 0x0008 );
define ( 'NOTIFY_MAIL', 0x0010 ); define ( 'NOTIFY_MAIL', 0x0010 );
define ( 'NOTIFY_SUGGEST', 0x0020 );
define ( 'NOTIFY_PROFILE', 0x0040 );
/** /**
* various namespaces we may need to parse * various namespaces we may need to parse

View File

@ -902,29 +902,35 @@ function conv_sort($arr,$order) {
elseif(stristr($order,'commented')) elseif(stristr($order,'commented'))
usort($parents,'sort_thr_commented'); usort($parents,'sort_thr_commented');
foreach($parents as $x) if(count($parents))
$x['children'] = array(); foreach($parents as $x)
$x['children'] = array();
foreach($arr as $x) { foreach($arr as $x) {
if($x['id'] != $x['parent']) { if($x['id'] != $x['parent']) {
$p = find_thread_parent_index($parents,$x); $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)) {
if(count($parents[$k]['children'])) { foreach($parents as $k => $v) {
$y = $parents[$k]['children']; if(count($parents[$k]['children'])) {
usort($y,'sort_thr_created_rev'); $y = $parents[$k]['children'];
$parents[$k]['children'] = $y; usort($y,'sort_thr_created_rev');
} $parents[$k]['children'] = $y;
}
}
} }
$ret = array(); $ret = array();
foreach($parents as $x) { if(count($parents)) {
$ret[] = $x; foreach($parents as $x) {
if(count($x['children'])) $ret[] = $x;
foreach($x['children'] as $y) if(count($x['children']))
$ret[] = $y; foreach($x['children'] as $y)
$ret[] = $y;
}
} }
return $ret; return $ret;
@ -947,4 +953,5 @@ function find_thread_parent_index($arr,$x) {
foreach($arr as $k => $v) foreach($arr as $k => $v)
if($v['id'] == $x['parent']) if($v['id'] == $x['parent'])
return $k; return $k;
return false;
} }

View File

@ -65,6 +65,19 @@ function notification($params) {
$itemlink = $params['link']; $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, '<a href="' . $siteurl . '">' . $sitename . '</a>');
$itemlink = $params['link'];
}
if($params['type'] == NOTIFY_CONFIRM) { if($params['type'] == NOTIFY_CONFIRM) {
} }

View File

@ -1788,7 +1788,18 @@ function local_delivery($importer,$data) {
intval(0) 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; return 0;
} }

View File

@ -255,6 +255,10 @@ function settings_post(&$a) {
$notify += intval($_POST['notify4']); $notify += intval($_POST['notify4']);
if(x($_POST,'notify5')) if(x($_POST,'notify5'))
$notify += intval($_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; $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, ''), '$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, ''), '$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, ''), '$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'), '$h_advn' => t('Advanced Page Settings'),

View File

@ -107,6 +107,7 @@ $suggestme
{{inc field_intcheckbox.tpl with $field=$notify3 }}{{endinc}} {{inc field_intcheckbox.tpl with $field=$notify3 }}{{endinc}}
{{inc field_intcheckbox.tpl with $field=$notify4 }}{{endinc}} {{inc field_intcheckbox.tpl with $field=$notify4 }}{{endinc}}
{{inc field_intcheckbox.tpl with $field=$notify5 }}{{endinc}} {{inc field_intcheckbox.tpl with $field=$notify5 }}{{endinc}}
{{inc field_intcheckbox.tpl with $field=$notify6 }}{{endinc}}
</div> </div>