]> git.mxchange.org Git - friendica.git/blobdiff - include/notifier.php
string update
[friendica.git] / include / notifier.php
index d12119b05ffa35a87889d3da74217a701717144f..2562f09eb05bb53f64187268a54d3ba1c72afe86 100644 (file)
@@ -206,7 +206,7 @@ function notifier_run($argv, $argc){
 
                /**
                 *
-                * Be VERY CAREFUL if you make any changes to the following lines. Seemingly innocuous changes 
+                * Be VERY CAREFUL if you make any changes to the following several lines. Seemingly innocuous changes 
                 * have been known to cause runaway conditions which affected several servers, along with 
                 * permissions issues. 
                 *
@@ -219,6 +219,22 @@ function notifier_run($argv, $argc){
                }
 
 
+               if(($cmd === 'uplink') && (intval($parent['forum_mode'])) && (! $top_level)) {
+                       $relay_to_owner = true;                 
+               } 
+
+               // until the 'origin' flag has been in use for several months
+               // we will just use it as a fallback test
+               // later we will be able to use it as the primary test of whether or not to relay.
+
+               if(! $target_item['origin'])
+                       $relay_to_owner = false;
+
+               if($parent['origin'])
+                       $relay_to_owner = false;
+
+
+
                if($relay_to_owner) {
                        logger('notifier: followup', LOGGER_DEBUG);
                        // local followup to remote post
@@ -248,6 +264,13 @@ function notifier_run($argv, $argc){
                        $deny_people  = expand_acl($parent['deny_cid']);
                        $deny_groups  = expand_groups(expand_acl($parent['deny_gid']));
 
+                       // if our parent is a forum, uplink to the origonal author causing
+                       // a delivery fork
+
+                       if(intval($parent['forum_mode']) && (! $top_level) && ($cmd !== 'uplink')) {
+                               proc_run('php','include/notifier','uplink',$item_id);
+                       }
+
                        $conversants = array();
 
                        foreach($items as $item) {
@@ -300,7 +323,7 @@ function notifier_run($argv, $argc){
                $birthday = '<dfrn:birthday>' . xmlify($birthday) . '</dfrn:birthday>';
 
        $atom .= replace_macros($feed_template, array(
-                       '$version'      => xmlify(FRIENDIKA_VERSION),
+                       '$version'      => xmlify(FRIENDICA_VERSION),
                        '$feed_id'      => xmlify($a->get_baseurl() . '/profile/' . $owner['nickname'] ),
                        '$feed_title'   => xmlify($owner['name']),
                        '$feed_updated' => xmlify(datetime_convert('UTC', 'UTC', $updated . '+00:00' , ATOM_TIME)) ,
@@ -640,7 +663,15 @@ function notifier_run($argv, $argc){
                                case NETWORK_DIASPORA:
                                        require_once('include/diaspora.php');
 
-                                       if(get_config('system','dfrn_only') || (! get_config('system','diaspora_enabled')) || (! $normal_mode))
+                                       if(get_config('system','dfrn_only') || (! get_config('system','diaspora_enabled')))
+                                               break;
+
+                                       if($mail) {
+                                               diaspora_send_mail($item,$owner,$contact);
+                                               break;
+                                       }
+
+                                       if(! $normal_mode)
                                                break;
 
                                        // special handling for followup to public post
@@ -710,7 +741,7 @@ function notifier_run($argv, $argc){
        if($public_message) {
 
                $r1 = q("SELECT DISTINCT(`batch`), `id`, `name`,`network` FROM `contact` WHERE `network` = '%s' 
-                       AND `uid` = %d AND `rel` != %d ORDER BY rand() ",
+                       AND `uid` = %d AND `rel` != %d group by `batch` ORDER BY rand() ",
                        dbesc(NETWORK_DIASPORA),
                        intval($owner['uid']),
                        intval(CONTACT_IS_SHARING)
@@ -784,7 +815,6 @@ function notifier_run($argv, $argc){
 
        call_hooks('notifier_end',$target_item);
 
-
        return;
 }