]> git.mxchange.org Git - friendica.git/blobdiff - mod/dfrn_notify.php
Fix spaces around t() and tt()
[friendica.git] / mod / dfrn_notify.php
index ffd9020c5997942ebaa9c818f03e66b73748b0b1..3a75123a52a88f6830bf1c2387ae10dc0cb17f5e 100644 (file)
@@ -173,63 +173,70 @@ function dfrn_notify_post(&$a) {
                require_once('bbcode.php');
                if($importer['notify-flags'] & NOTIFY_MAIL) {
 
-//                     $body = html_entity_decode(strip_tags(bbcode(stripslashes(nl2br($msg['body'])))),ENT_QUOTES,'UTF-8');
-//                     $body = strip_tags(bbcode(stripslashes(nl2br($msg['body']))));
-                       
-                       /*if(function_exists('quoted_printable_encode'))
-                               $body = quoted_printable_encode($body);
-                       else
-                               $body = qp($body);*/
-
-                       //$msg['body'] = str_replace(array("\\r\\n", "\\r", "\\n"), "<br />", $msg['body']);
-                       //$msg['body'] = html_entity_decode(strip_tags(bbcode($msg['body'])));  
-                       $msg['mimeboundary']   =rand(0,9)."-"
-                               .rand(10000000000,9999999999)."-"
-                               .rand(10000000000,9999999999)."=:"
-                               .rand(10000,99999);
-
+                       // name of the automated email sender
                        $msg['notificationfromname']    = t('Administrator');
+                       // noreply address to send from
                        $msg['notificationfromemail']   = t('noreply') . '@' . $a->get_hostname();                              
-                       $msg['headers'] =
-                               "From: {$msg['notificationfromname']} <{$msg['notificationfromemail']}>\n" . 
-                               "Reply-To: {$msg['notificationfromemail']}\n" .
-                               "MIME-Version: 1.0\n" .
-                               "Content-Type: multipart/alternative; boundary=\"{$msg['mimeboundary']}\"";
-
 
+                       // text version
+                       // process the message body to display properly in text mode
+                       //              1) substitute a \n character for the "\" then "n", so it behaves properly (it doesn't come in as a \n character)
+                       //              2) remove escape slashes
+                       //              3) decode any bbcode from the message editor
+                       //              4) decode any encoded html tags
+                       //              5) remove html tags
                        $msg['textversion']
-                               = html_entity_decode(strip_tags(bbcode(stripslashes($msg['body']))),ENT_QUOTES,'UTF-8');
-                       //$TextMessage  = html_entity_decode(strip_tags(bbcode(str_replace(array("\\r\\n", "\\r", "\\n"), "\n",$msg['body']))));        ;
+                               = strip_tags(html_entity_decode(bbcode(stripslashes(str_replace(array("\\r\\n", "\\r", "\\n"), "\n",$msg['body']))),ENT_QUOTES,'UTF-8'));
+                               
+                       // html version
+                       // process the message body to display properly in text mode
+                       //              1) substitute a <br /> tag for the "\" then "n", so it behaves properly (it doesn't come in as a \n character)
+                       //              2) remove escape slashes
+                       //              3) decode any bbcode from the message editor
+                       //              4) decode any encoded html tags
                        $msg['htmlversion']     
-                               = str_replace(array("\\r\\n", "\\r", "\\n"), "<br />\n",html_entity_decode($msg['body']));
-                                                               
-                       $tpl = load_view_file('view/mail_received_eml.tpl');                    
-                       $email_tpl = replace_macros($tpl, array(
-                               '$siteName'             => $a->config['sitename'],
-                               '$siteurl'              => $a->get_baseurl(),
-                               '$username'             => $importer['username'],
-                               '$thumb'                => $importer['thumb'],
-                               '$email'                => $importer['email'],
-                               '$url'                  => $importer['url'],
-                               '$senderName'   => $importer['senderName'],
-                               '$from'                 => $msg['from-name'],
-                               '$title'                => stripslashes($msg['title']),
-                               '$textversion'  => $msg['textversion'],
-                               '$htmlversion'  => $msg['htmlversion'],
-                               '$mimeboundary' => $msg['mimeboundary'],
-                               '$hostname'             => $a->get_hostname()
+                               = html_entity_decode(bbcode(stripslashes(str_replace(array("\\r\\n", "\\r","\\n\\n" ,"\\n"), "<br />\n",$msg['body']))));
+
+                       // load the template for private message notifications
+                       $tpl = load_view_file('view/mail_received_html_body_eml.tpl');
+                       $email_html_body_tpl = replace_macros($tpl,array(
+                               '$siteName'             => $a->config['sitename'],                              // name of this site
+                               '$siteurl'              => $a->get_baseurl(),                                   // descriptive url of this site
+                               '$thumb'                => $importer['thumb'],                                  // thumbnail url for sender icon
+                               '$email'                => $importer['email'],                                  // email address to send to
+                               '$url'                  => $importer['url'],                                    // full url for the site
+                               '$from'                 => $msg['from-name'],                                   // name of the person sending the message
+                               '$title'                => stripslashes($msg['title']),                 // subject of the message
+                               '$htmlversion'  => $msg['htmlversion'],                                 // html version of the message
+                               '$mimeboundary' => $msg['mimeboundary'],                                // mime message divider
+                               '$hostname'             => $a->get_hostname()                                   // name of this host
                        ));
                        
-                       logger("message headers: " . $msg['headers']);
-                       logger("message body: " . $mail_tpl);
-                       
-                       
-                       $res = mail($importer['email'], t('New mail received at ') . $a->config['sitename'],
-                               $email_tpl, $msg['headers']
-                       /*              'From: ' . t('Administrator') . '@' . $a->get_hostname() . "\r\n"
-                                       . 'MIME-Version: 1.0' . "\r\n"
-                                       . 'Content-type: text/html; charset=utf-8' . "\r\n" 
-                                       . 'Content-transfer-encoding: quoted-printable' . "\r\n" */
+                       // load the template for private message notifications
+                       $tpl = load_view_file('view/mail_received_text_body_eml.tpl');
+                       $email_text_body_tpl = replace_macros($tpl,array(
+                               '$siteName'             => $a->config['sitename'],                              // name of this site
+                               '$siteurl'              => $a->get_baseurl(),                                   // descriptive url of this site
+                               '$thumb'                => $importer['thumb'],                                  // thumbnail url for sender icon
+                               '$email'                => $importer['email'],                                  // email address to send to
+                               '$url'                  => $importer['url'],                                    // full url for the site
+                               '$from'                 => $msg['from-name'],                                   // name of the person sending the message
+                               '$title'                => stripslashes($msg['title']),                 // subject of the message
+                               '$textversion'  => $msg['textversion'],                                 // text version of the message
+                               '$mimeboundary' => $msg['mimeboundary'],                                // mime message divider
+                               '$hostname'             => $a->get_hostname()                                   // name of this host
+                       ));
+
+                       // use the EmailNotification library to send the message
+                       require_once("include/EmailNotification.php");
+                       EmailNotification::sendTextHtmlEmail(
+                               $msg['notificationfromname'],
+                               $msg['notificationfromemail'],
+                               $msg['notificationfromemail'],
+                               $importer['email'],
+                               t('New mail received at ') . $a->config['sitename'],
+                               $email_html_body_tpl,
+                               $email_text_body_tpl
                        );
                }
                xml_status(0);
@@ -362,9 +369,7 @@ function dfrn_notify_post(&$a) {
 
                                        if($posted_id && $parent) {
                                
-                                               $php_path = ((strlen($a->config['php_path'])) ? $a->config['php_path'] : 'php');
-
-                                               proc_run($php_path,"include/notifier.php","comment-import","$posted_id");
+                                               proc_run('php',"include/notifier.php","comment-import","$posted_id");
                                        
                                                if((! $is_like) && ($importer['notify-flags'] & NOTIFY_COMMENT) && (! $importer['self'])) {
                                                        require_once('bbcode.php');
@@ -377,10 +382,10 @@ function dfrn_notify_post(&$a) {
                                                                '$email' => $importer['email'],
                                                                '$display' => $a->get_baseurl() . '/display/' . $importer['nickname'] . '/' . $posted_id, 
                                                                '$from' => $from,
-                                                               '$body' => strip_tags(bbcode(stripslashes($datarray['body'])))
+                                                               '$body' => html_entity_decode(strip_tags(bbcode(stripslashes($datarray['body']))), ENT_QUOTES, 'UTF-8')
                                                        ));
        
-                                                       $res = mail($importer['email'], $from . t(' commented on an item at ') . $a->config['sitename'],
+                                                       $res = mail($importer['email'], sprintf(t('%s commented on an item at %s'), $from , $a->config['sitename']),
                                                                $email_tpl, "From: " . t('Administrator') . '@' . $a->get_hostname() );
                                                }
                                        }
@@ -389,19 +394,39 @@ function dfrn_notify_post(&$a) {
                                }
                        }
                        else {
+
                                // regular comment that is part of this total conversation. Have we seen it? If not, import it.
 
-                               $item_id = $item->get_id();
+                               $item_id  = $item->get_id();
+                               $datarray = get_atom_elements($feed,$item);
 
-                               $r = q("SELECT `uid`, `last-child`, `edited` FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
+                               $r = q("SELECT `uid`, `last-child`, `edited`, `body` FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
                                        dbesc($item_id),
                                        intval($importer['importer_uid'])
                                );
-                               // FIXME update content if 'updated' changes
+
+                               // Update content if 'updated' changes
+
                                if(count($r)) {
+                                       if((x($datarray,'edited') !== false) && (datetime_convert('UTC','UTC',$datarray['edited']) !== $r[0]['edited'])) {  
+                                               $r = q("UPDATE `item` SET `body` = '%s', `edited` = '%s' WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
+                                                       dbesc($datarray['body']),
+                                                       dbesc(datetime_convert('UTC','UTC',$datarray['edited'])),
+                                                       dbesc($item_id),
+                                                       intval($importer['importer_uid'])
+                                               );
+                                       }
+
+                                       // update last-child if it changes
+
                                        $allow = $item->get_item_tags( NAMESPACE_DFRN, 'comment-allow');
-                                       if($allow && $allow[0]['data'] != $r[0]['last-child']) {
-                                               $r = q("UPDATE `item` SET `last-child` = %d, `changed` = '%s' WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
+                                       if(($allow) && ($allow[0]['data'] != $r[0]['last-child'])) {
+                                               $r = q("UPDATE `item` SET `last-child` = 0, `changed` = '%s' WHERE `parent-uri` = '%s' AND `uid` = %d",
+                                                       dbesc(datetime_convert()),
+                                                       dbesc($parent_uri),
+                                                       intval($importer['importer_uid'])
+                                               );
+                                               $r = q("UPDATE `item` SET `last-child` = %d , `changed` = '%s'  WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
                                                        intval($allow[0]['data']),
                                                        dbesc(datetime_convert()),
                                                        dbesc($item_id),
@@ -410,7 +435,7 @@ function dfrn_notify_post(&$a) {
                                        }
                                        continue;
                                }
-                               $datarray = get_atom_elements($feed,$item);
+
                                $datarray['parent-uri'] = $parent_uri;
                                $datarray['uid'] = $importer['importer_uid'];
                                $datarray['contact-id'] = $importer['id'];
@@ -443,12 +468,11 @@ function dfrn_notify_post(&$a) {
                                                                '$email' => $importer['email'],
                                                                '$from' => $from,
                                                                '$display' => $a->get_baseurl() . '/display/' . $importer['nickname'] . '/' . $r,
-                                                               '$body' => strip_tags(bbcode(stripslashes($datarray['body'])))
+                                                               '$body' => html_entity_decode(strip_tags(bbcode(stripslashes($datarray['body']))), ENT_QUOTES, 'UTF-8')
                                                        ));
 
-                                                       $res = mail($importer['email'], $from . t(" commented on an item at ") 
-                                                               . $a->config['sitename'],
-                                                               $email_tpl,t("From: Administrator@") . $a->get_hostname() );
+                                                       $res = mail($importer['email'], sprintf( t("%s commented on an item at %s") , $from ,$a->config['sitename']),
+                                                               $email_tpl, t("From: Administrator@") . $a->get_hostname() );
                                                        break;
                                                }
                                        }
@@ -456,18 +480,37 @@ function dfrn_notify_post(&$a) {
                                continue;
                        }
                }
+
                else {
+
                        // Head post of a conversation. Have we seen it? If not, import it.
 
-                       $item_id = $item->get_id();
-                       $r = q("SELECT `uid`, `last-child`, `edited` FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
+
+                       $item_id  = $item->get_id();
+                       $datarray = get_atom_elements($feed,$item);
+
+                       $r = q("SELECT `uid`, `last-child`, `edited`, `body` FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
                                dbesc($item_id),
                                intval($importer['importer_uid'])
                        );
+
+                       // Update content if 'updated' changes
+
                        if(count($r)) {
+                               if((x($datarray,'edited') !== false) && (datetime_convert('UTC','UTC',$datarray['edited']) !== $r[0]['edited'])) {  
+                                       $r = q("UPDATE `item` SET `body` = '%s', `edited` = '%s' WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
+                                               dbesc($datarray['body']),
+                                               dbesc(datetime_convert('UTC','UTC',$datarray['edited'])),
+                                               dbesc($item_id),
+                                               intval($importer['importer_uid'])
+                                       );
+                               }
+
+                               // update last-child if it changes
+
                                $allow = $item->get_item_tags( NAMESPACE_DFRN, 'comment-allow');
                                if($allow && $allow[0]['data'] != $r[0]['last-child']) {
-                                       $r = q("UPDATE `item` SET `last-child` = %d, `changed` = '%s' WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
+                                       $r = q("UPDATE `item` SET `last-child` = %d , `changed` = '%s' WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
                                                intval($allow[0]['data']),
                                                dbesc(datetime_convert()),
                                                dbesc($item_id),
@@ -477,8 +520,6 @@ function dfrn_notify_post(&$a) {
                                continue;
                        }
 
-
-                       $datarray = get_atom_elements($feed,$item);
                        $datarray['parent-uri'] = $item_id;
                        $datarray['uid'] = $importer['importer_uid'];
                        $datarray['contact-id'] = $importer['id'];