aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2012-02-29 18:19:08 -0800
committerfriendica <info@friendica.com>2012-02-29 18:19:08 -0800
commitbbebb4c2a050f22e9aa51cb123359b169bcb3b3c (patch)
tree691c6f2b64556df936a7f9e9b23a69b3873b962a
parent84d5f495e6e6edd7114b7e72711035e96479e39a (diff)
downloadvolse-hubzilla-bbebb4c2a050f22e9aa51cb123359b169bcb3b3c.tar.gz
volse-hubzilla-bbebb4c2a050f22e9aa51cb123359b169bcb3b3c.tar.bz2
volse-hubzilla-bbebb4c2a050f22e9aa51cb123359b169bcb3b3c.zip
notification enhancements
-rwxr-xr-xboot.php2
-rwxr-xr-xdatabase.sql6
-rwxr-xr-xinclude/enotify.php33
-rw-r--r--mod/notify.php4
-rwxr-xr-xupdate.php5
5 files changed, 43 insertions, 7 deletions
diff --git a/boot.php b/boot.php
index 31e8cb05f..aee236de3 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', "<br />\r\n" );
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
diff --git a/database.sql b/database.sql
index 8c74ecddf..806f75419 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 76e7eb9dc..80cb7d8fa 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 16b87b76f..a572b1534 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 8ca5ef90b..6dbd410bc 100755
--- a/update.php
+++ b/update.php
@@ -1,6 +1,6 @@
<?php
-define( 'UPDATE_VERSION' , 1129 );
+define( 'UPDATE_VERSION' , 1130 );
/**
*
@@ -1114,3 +1114,6 @@ function update_1128() {
q("alter table spam add `date` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER `term` ");
}
+function update_1129() {
+ q("ALTER TABLE `notify` ADD `parent` INT NOT NULL AFTER `link` , ADD INDEX ( `parent` ), ADD INDEX ( `link` ), ADD INDEX ( `otype` ) ");
+} \ No newline at end of file