diff --git a/boot.php b/boot.php index 31e8cb05ff..aee236de33 100755 --- a/boot.php +++ b/boot.php @@ -11,7 +11,7 @@ require_once('include/cache.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); define ( 'FRIENDICA_VERSION', '2.3.1267' ); define ( 'DFRN_PROTOCOL_VERSION', '2.22' ); -define ( 'DB_UPDATE_VERSION', 1129 ); +define ( 'DB_UPDATE_VERSION', 1130 ); define ( 'EOL', "
\r\n" ); define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' ); diff --git a/database.sql b/database.sql index 8c74ecddfb..806f75419c 100755 --- a/database.sql +++ b/database.sql @@ -752,14 +752,18 @@ CREATE TABLE IF NOT EXISTS `notify` ( `msg` MEDIUMTEXT NOT NULL , `uid` INT NOT NULL , `link` CHAR( 255 ) NOT NULL , +`parent` INT( 11 ) NOT NULL, `seen` TINYINT( 1 ) NOT NULL DEFAULT '0', `verb` CHAR( 255 ) NOT NULL, `otype` CHAR( 16 ) NOT NULL, INDEX ( `hash` ), INDEX ( `type` ), INDEX ( `uid` ), +INDEX ( `link` ), +INDEX ( `parent` ), INDEX ( `seen` ), -INDEX ( `date` ) +INDEX ( `date` ), +INDEX ( `otype` ) ) ENGINE = MyISAM DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `item_id` ( diff --git a/include/enotify.php b/include/enotify.php index 76e7eb9dcc..80cb7d8fa4 100755 --- a/include/enotify.php +++ b/include/enotify.php @@ -25,6 +25,12 @@ function notification($params) { $title = $body = ''; } + if($params['otype'] === 'item') + $possess_desc = t('%s post'); + if($params['otype'] == 'photo') + $possess_desc = t('%s photo'); + + if($params['type'] == NOTIFY_MAIL) { $subject = sprintf( t('[Friendica:Notify] New mail received at %s'),$sitename); @@ -41,7 +47,26 @@ function notification($params) { // logger("notification: params = " . print_r($params, true), LOGGER_DEBUG); $parent_id = $params['parent']; + + + // if it's a post figure out who's post it is. + + $p = null; + + if($params['otype'] === 'item' && $parent_id) { + $p = q("select * from item where id = %d and uid = %d limit 1", + intval($parent_id), + intval($params['uid']) + ); + } + + $dest_str = sprintf($possess_desc,'a'); + if($p) + $dest_str = sprintf($possess_desc,sprintf( t("%s's"),$p[0]['author-name'])); + if($p[0]['owner-name'] == $p[0]['author-name'] && $p[0]['wall']) + $dest_str = sprintf($possess_desc, t('your') ); + // Some mail softwares relies on subject field for threading. // So, we cannot have different subjects for notifications of the same thread. // Before this we have the name of the replier on the subject rendering @@ -49,7 +74,7 @@ function notification($params) { $subject = sprintf( t('[Friendica:Notify] Comment to conversation #%d by %s'), $parent_id, $params['source_name']); $preamble = sprintf( t('%s commented on an item/conversation you have been following.'), $params['source_name']); - $epreamble = sprintf( t('%s commented in %s.'), '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', '[url=$itemlink]' . t('a watched conversation') . '[/url]'); + $epreamble = sprintf( t('%s commented on %s.'), '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', '[url=$itemlink]' . $dest_str . '[/url]'); $sitelink = t('Please visit %s to view and/or reply to the conversation.'); $tsitelink = sprintf( $sitelink, $siteurl ); @@ -149,6 +174,7 @@ function notification($params) { $datarray['date'] = datetime_convert(); $datarray['uid'] = $params['uid']; $datarray['link'] = $itemlink; + $datarray['parent'] = $parent_id; $datarray['type'] = $params['type']; $datarray['verb'] = $params['verb']; $datarray['otype'] = $params['otype']; @@ -157,8 +183,8 @@ function notification($params) { // create notification entry in DB - $r = q("insert into notify (hash,name,url,photo,date,uid,link,type,verb,otype) - values('%s','%s','%s','%s','%s',%d,'%s',%d,'%s','%s')", + $r = q("insert into notify (hash,name,url,photo,date,uid,link,parent,type,verb,otype) + values('%s','%s','%s','%s','%s',%d,'%s',%d,%d,'%s','%s')", dbesc($datarray['hash']), dbesc($datarray['name']), dbesc($datarray['url']), @@ -166,6 +192,7 @@ function notification($params) { dbesc($datarray['date']), intval($datarray['uid']), dbesc($datarray['link']), + intval($datarray['parent']), intval($datarray['type']), dbesc($datarray['verb']), dbesc($datarray['otype']) diff --git a/mod/notify.php b/mod/notify.php index 16b87b76f5..a572b15344 100644 --- a/mod/notify.php +++ b/mod/notify.php @@ -11,8 +11,10 @@ function notify_init(&$a) { intval(local_user()) ); if(count($r)) { - q("update notify set seen = 1 where link = '%s' and uid = %d", + q("update notify set seen = 1 where ( link = '%s' or ( parent != 0 and parent = %d and otype = '%s' )) and uid = %d", dbesc($r[0]['link']), + intval($r[0]['parent']), + dbesc($r[0]['otype']), intval(local_user()) ); goaway($r[0]['link']); diff --git a/update.php b/update.php index 8ca5ef90b0..6dbd410bcf 100755 --- a/update.php +++ b/update.php @@ -1,6 +1,6 @@