email notify now redirected through mod_notify, weirdness in local deliver caused by community page changes

This commit is contained in:
friendica 2012-02-20 19:50:05 -08:00
commit b821399f00
6 changed files with 72 additions and 7 deletions

View file

@ -116,10 +116,23 @@ function notification($params) {
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
$r = q("insert into notify (name,url,photo,date,msg,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,msg,uid,link,type,verb,otype)
values('%s','%s','%s','%s','%s','%s',%d,'%s',%d,'%s','%s')",
dbesc($hash),
dbesc($params['source_name']),
dbesc($params['source_link']),
dbesc($params['source_photo']),
@ -132,6 +145,17 @@ function notification($params) {
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
require_once('bbcode.php');

View file

@ -2040,7 +2040,6 @@ function local_delivery($importer,$data) {
}
if($is_reply) {
$community = false;
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?
// 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`
LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
WHERE `item`.`uri` = '%s' AND `item`.`parent-uri` = '%s'
@ -2065,9 +2066,13 @@ function local_delivery($importer,$data) {
dbesc($parent_uri),
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');
$is_like = false;
// remote reply to our post. Import and then notify everybody else.
@ -2188,6 +2193,7 @@ function local_delivery($importer,$data) {
}
}
return 0;
// NOTREACHED
}