email notify now redirected through mod_notify, weirdness in local deliver caused by community page changes
This commit is contained in:
parent
6edd6d8ae1
commit
b821399f00
2
boot.php
2
boot.php
|
@ -11,7 +11,7 @@ require_once('include/cache.php');
|
||||||
define ( 'FRIENDICA_PLATFORM', 'Friendica');
|
define ( 'FRIENDICA_PLATFORM', 'Friendica');
|
||||||
define ( 'FRIENDICA_VERSION', '2.3.1258' );
|
define ( 'FRIENDICA_VERSION', '2.3.1258' );
|
||||||
define ( 'DFRN_PROTOCOL_VERSION', '2.22' );
|
define ( 'DFRN_PROTOCOL_VERSION', '2.22' );
|
||||||
define ( 'DB_UPDATE_VERSION', 1122 );
|
define ( 'DB_UPDATE_VERSION', 1123 );
|
||||||
|
|
||||||
define ( 'EOL', "<br />\r\n" );
|
define ( 'EOL', "<br />\r\n" );
|
||||||
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
|
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
|
||||||
|
|
|
@ -741,6 +741,7 @@ CREATE TABLE IF NOT EXISTS `conv` (
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `notify` (
|
CREATE TABLE IF NOT EXISTS `notify` (
|
||||||
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
|
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
|
||||||
|
`hash` CHAR( 64 ) NOT NULL,
|
||||||
`type` INT( 11 ) NOT NULL ,
|
`type` INT( 11 ) NOT NULL ,
|
||||||
`name` CHAR( 255 ) NOT NULL ,
|
`name` CHAR( 255 ) NOT NULL ,
|
||||||
`url` CHAR( 255 ) NOT NULL ,
|
`url` CHAR( 255 ) NOT NULL ,
|
||||||
|
@ -752,6 +753,7 @@ CREATE TABLE IF NOT EXISTS `notify` (
|
||||||
`seen` TINYINT( 1 ) NOT NULL DEFAULT '0',
|
`seen` TINYINT( 1 ) NOT NULL DEFAULT '0',
|
||||||
`verb` CHAR( 255 ) NOT NULL,
|
`verb` CHAR( 255 ) NOT NULL,
|
||||||
`otype` CHAR( 16 ) NOT NULL,
|
`otype` CHAR( 16 ) NOT NULL,
|
||||||
|
INDEX ( `hash` ),
|
||||||
INDEX ( `type` ),
|
INDEX ( `type` ),
|
||||||
INDEX ( `uid` ),
|
INDEX ( `uid` ),
|
||||||
INDEX ( `seen` ),
|
INDEX ( `seen` ),
|
||||||
|
|
|
@ -116,10 +116,23 @@ function notification($params) {
|
||||||
|
|
||||||
require_once('include/html2bbcode.php');
|
require_once('include/html2bbcode.php');
|
||||||
|
|
||||||
|
do {
|
||||||
|
$dups = false;
|
||||||
|
$hash = random_string();
|
||||||
|
$r = q("SELECT `id` FROM `notify` WHERE `hash` = '%s' LIMIT 1",
|
||||||
|
dbesc($hash));
|
||||||
|
if(count($r))
|
||||||
|
$dups = true;
|
||||||
|
} while($dups == true);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// create notification entry in DB
|
// create notification entry in DB
|
||||||
|
|
||||||
$r = q("insert into notify (name,url,photo,date,msg,uid,link,type,verb,otype)
|
$r = q("insert into notify (hash,name,url,photo,date,msg,uid,link,type,verb,otype)
|
||||||
values('%s','%s','%s','%s','%s',%d,'%s',%d,'%s','%s')",
|
values('%s','%s','%s','%s','%s','%s',%d,'%s',%d,'%s','%s')",
|
||||||
|
dbesc($hash),
|
||||||
dbesc($params['source_name']),
|
dbesc($params['source_name']),
|
||||||
dbesc($params['source_link']),
|
dbesc($params['source_link']),
|
||||||
dbesc($params['source_photo']),
|
dbesc($params['source_photo']),
|
||||||
|
@ -132,6 +145,17 @@ function notification($params) {
|
||||||
dbesc($params['otype'])
|
dbesc($params['otype'])
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$r = q("select id from notify where hash = '%s' and uid = %d limit 1",
|
||||||
|
dbesc($hash),
|
||||||
|
intval($params['uid'])
|
||||||
|
);
|
||||||
|
if($r)
|
||||||
|
$notify_id = $r[0]['id'];
|
||||||
|
else
|
||||||
|
return;
|
||||||
|
|
||||||
|
$itemlink = $a->get_baseurl() . '/notify/view/' . $notify_id;
|
||||||
|
|
||||||
// send email notification if notification preferences permit
|
// send email notification if notification preferences permit
|
||||||
|
|
||||||
require_once('bbcode.php');
|
require_once('bbcode.php');
|
||||||
|
|
|
@ -2040,7 +2040,6 @@ function local_delivery($importer,$data) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if($is_reply) {
|
if($is_reply) {
|
||||||
|
|
||||||
$community = false;
|
$community = false;
|
||||||
|
|
||||||
if($importer['page-flags'] == PAGE_COMMUNITY) {
|
if($importer['page-flags'] == PAGE_COMMUNITY) {
|
||||||
|
@ -2054,7 +2053,9 @@ function local_delivery($importer,$data) {
|
||||||
// was the top-level post for this reply written by somebody on this site?
|
// was the top-level post for this reply written by somebody on this site?
|
||||||
// Specifically, the recipient?
|
// Specifically, the recipient?
|
||||||
|
|
||||||
$r = q("select `item`.`id`, `item`.`uri`, `item`.`tag`,
|
$is_a_remote_comment = false;
|
||||||
|
|
||||||
|
$r = q("select `item`.`id`, `item`.`uri`, `item`.`tag`, `item`.`forum_mode`,`item`.`origin`,
|
||||||
`contact`.`name`, `contact`.`url`, `contact`.`thumb` from `item`
|
`contact`.`name`, `contact`.`url`, `contact`.`thumb` from `item`
|
||||||
LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
|
LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
|
||||||
WHERE `item`.`uri` = '%s' AND `item`.`parent-uri` = '%s'
|
WHERE `item`.`uri` = '%s' AND `item`.`parent-uri` = '%s'
|
||||||
|
@ -2065,9 +2066,13 @@ function local_delivery($importer,$data) {
|
||||||
dbesc($parent_uri),
|
dbesc($parent_uri),
|
||||||
intval($importer['importer_uid'])
|
intval($importer['importer_uid'])
|
||||||
);
|
);
|
||||||
|
if($r && count($r))
|
||||||
|
$is_a_remote_comment = true;
|
||||||
|
|
||||||
if($r && count($r)) {
|
if(($community) && (! $r[0]['forum_mode']))
|
||||||
|
$is_a_remote_comment = false;
|
||||||
|
|
||||||
|
if($is_a_remote_comment) {
|
||||||
logger('local_delivery: received remote comment');
|
logger('local_delivery: received remote comment');
|
||||||
$is_like = false;
|
$is_like = false;
|
||||||
// remote reply to our post. Import and then notify everybody else.
|
// remote reply to our post. Import and then notify everybody else.
|
||||||
|
@ -2188,6 +2193,7 @@ function local_delivery($importer,$data) {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
// NOTREACHED
|
// NOTREACHED
|
||||||
}
|
}
|
||||||
|
|
29
mod/notify.php
Normal file
29
mod/notify.php
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
|
||||||
|
function notify_init(&$a) {
|
||||||
|
if(! local_user())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if($a->argc > 2 && $a->argv[1] === 'view' && intval($a->argv[2])) {
|
||||||
|
$r = q("select * from notify where id = %d and uid = %d limit 1",
|
||||||
|
intval($a->argv[2]),
|
||||||
|
intval(local_user())
|
||||||
|
);
|
||||||
|
if(count($r)) {
|
||||||
|
q("update notify set seen = 1 where id = %d and uid = %d limit 1",
|
||||||
|
intval($a->argv[2]),
|
||||||
|
intval(local_user())
|
||||||
|
);
|
||||||
|
goaway($r[0]['link']);
|
||||||
|
}
|
||||||
|
|
||||||
|
goaway($a->get_baseurl());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function notify_content(&$a) {
|
||||||
|
if(! local_user())
|
||||||
|
return login();
|
||||||
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
define( 'UPDATE_VERSION' , 1122 );
|
define( 'UPDATE_VERSION' , 1123 );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -1065,3 +1065,7 @@ function update_1121() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function update_1122() {
|
||||||
|
q("ALTER TABLE `notify` ADD `hash` CHAR( 64 ) NOT NULL AFTER `id` ,
|
||||||
|
ADD INDEX ( `hash` ) ");
|
||||||
|
}
|
Loading…
Reference in a new issue