]> git.mxchange.org Git - friendica.git/commitdiff
yet more work on notifications
authorfriendica <info@friendica.com>
Thu, 1 Mar 2012 03:23:01 +0000 (19:23 -0800)
committerfriendica <info@friendica.com>
Thu, 1 Mar 2012 03:23:01 +0000 (19:23 -0800)
include/enotify.php
include/items.php
include/text.php

index 80cb7d8fa46fa33eeb8ca0aa4caf9c7697312427..a505f1f04011f2f4ff659a78a2a7546a47a7cb97 100755 (executable)
@@ -25,11 +25,8 @@ function notification($params) {
                $title = $body = '';
        }
 
-       if($params['otype'] === 'item')
-               $possess_desc = t('%s post');
-       if($params['otype'] == 'photo')
-               $possess_desc = t('%s photo');
-
+       // e.g. "your post", "David's photo", etc.
+       $possess_desc = t('%s <!item_type!>');
 
        if($params['type'] == NOTIFY_MAIL) {
 
@@ -60,10 +57,16 @@ function notification($params) {
                        );
                }
 
+               $possess_desc = str_replace('<!item_type!>',item_post_type($p[0]),$possess_desc);
+
+               // "a post"
                $dest_str = sprintf($possess_desc,'a');
+
+               // "George Bull's post"
                if($p)
                        $dest_str = sprintf($possess_desc,sprintf( t("%s's"),$p[0]['author-name']));
                
+               // "your post"
                if($p[0]['owner-name'] == $p[0]['author-name'] && $p[0]['wall'])
                        $dest_str = sprintf($possess_desc, t('your') );
 
index 250d023cec1b2687a630dda4d0da7815b34b89fc..a1254e165ac9cbc162e4da590cb61eb04339ed9d 100755 (executable)
@@ -2325,35 +2325,44 @@ function local_delivery($importer,$data) {
 
                                        if(count($myconv)) {
                                                $importer_url = $a->get_baseurl() . '/profile/' . $importer['nickname'];
-                                               foreach($myconv as $conv) {
 
-                                                       if(! link_compare($conv['author-link'],$importer_url))
-                                                               continue;
+                                               // first make sure this isn't our own post coming back to us from a wall-to-wall event
+                                               if(! link_compare($datarray['author-link'],$importer_url)) {
 
-                                                       require_once('include/enotify.php');
                                                        
-                                                       $conv_parent = $conv['parent'];
-
-                                                       notification(array(
-                                                               'type'         => NOTIFY_COMMENT,
-                                                               'notify_flags' => $importer['notify-flags'],
-                                                               'language'     => $importer['language'],
-                                                               'to_name'      => $importer['username'],
-                                                               'to_email'     => $importer['email'],
-                                                               'uid'          => $importer['importer_uid'],
-                                                               'item'         => $datarray,
-                                                               'link'             => $a->get_baseurl() . '/display/' . $importer['nickname'] . '/' . $posted_id,
-                                                               'source_name'  => stripslashes($datarray['author-name']),
-                                                               'source_link'  => $datarray['author-link'],
-                                                               'source_photo' => ((link_compare($datarray['author-link'],$importer['url'])) 
-                                                                       ? $importer['thumb'] : $datarray['author-avatar']),
-                                                               'verb'         => ACTIVITY_POST,
-                                                               'otype'        => 'item',
-                                                               'parent'       => $conv_parent,
+                                                       foreach($myconv as $conv) {
 
-                                                       ));
+                                                               // now if we find a match, it means we're in this conversation
+       
+                                                               if(! link_compare($conv['author-link'],$importer_url))
+                                                                       continue;
 
-                                                       break;
+                                                               require_once('include/enotify.php');
+                                                               
+                                                               $conv_parent = $conv['parent'];
+
+                                                               notification(array(
+                                                                       'type'         => NOTIFY_COMMENT,
+                                                                       'notify_flags' => $importer['notify-flags'],
+                                                                       'language'     => $importer['language'],
+                                                                       'to_name'      => $importer['username'],
+                                                                       'to_email'     => $importer['email'],
+                                                                       'uid'          => $importer['importer_uid'],
+                                                                       'item'         => $datarray,
+                                                                       'link'             => $a->get_baseurl() . '/display/' . $importer['nickname'] . '/' . $posted_id,
+                                                                       'source_name'  => stripslashes($datarray['author-name']),
+                                                                       'source_link'  => $datarray['author-link'],
+                                                                       'source_photo' => ((link_compare($datarray['author-link'],$importer['url'])) 
+                                                                               ? $importer['thumb'] : $datarray['author-avatar']),
+                                                                       'verb'         => ACTIVITY_POST,
+                                                                       'otype'        => 'item',
+                                                                       'parent'       => $conv_parent,
+
+                                                               ));
+
+                                                               // only send one notification
+                                                               break;
+                                                       }
                                                }
                                        }
                                }
index 1f5d4a3e12ae035a094f9129eb3a4007095a391e..81e22527a679c657f3dc5d0df4f167a17e655353 100755 (executable)
@@ -1201,3 +1201,16 @@ function reltoabs($text, $base)
   return $text;
 }
 
+function item_post_type($item) {
+       if(intval($item['event-id']))
+               return t('event');
+       if(strlen($item['resource-id']))
+               return t('photo');
+       if(strlen($item['verb']) && $item['verb'] !== ACTIVITY_POST)
+               return t('activity');
+       if($item['id'] != $item['parent'])
+               return t('comment');
+       return t('post');
+}
+
+