]> git.mxchange.org Git - friendica.git/blobdiff - include/enotify.php
sql optimisation cont.
[friendica.git] / include / enotify.php
index 3ff1596c9b553a71033cca8ef1d4c3e11da1e0c7..f6f291e5d45be663ffa47523c997eb9652b681e3 100644 (file)
@@ -1,9 +1,8 @@
 <?php
 
+function notification($params) {
 
-
-
-function notify_setup($type,$params) {
+       logger('notification: entry', LOGGER_DEBUG);
 
        $a = get_app();
        $banner = t('Friendica Notification');
@@ -13,18 +12,137 @@ function notify_setup($type,$params) {
        $sitename = get_config('config','sitename');
        $site_admin = sprintf( t('%s Administrator'), $sitename);
 
-       $sender_name = t('Administrator');
-       $sender_email = t('noreply') . '@' . $a->get_hostname(),
+       $sender_name = $product;
+       $sender_email = t('noreply') . '@' . $a->get_hostname();
 
-       if($type === NOTIFICATION_MAIL) {
-               $new_email = sprintf( t('%s sent you a new private message at %s.'),$params['from'],$sitename);
-               $email_visit = t('Please visit %s to view and/or reply to your private messages.');
-               $email_tlink = sprintf( $email_visit, $siteurl . '/message' );
-               $email_hlink = sprintf( $email_visit, '<a href="' . $siteurl . '/message">' . $sitename . '</a>');
+       if(array_key_exists('item',$params)) {
+               $title = $params['item']['title'];
+               $body = $params['item']['body'];
+       }
+       else {
+               $title = $body = '';
        }
 
-}
+       if($params['type'] == NOTIFY_MAIL) {
+
+               $subject =      sprintf( t('New mail received at %s'),$sitename);
+
+               $preamble = sprintf( t('%s sent you a new private message at %s.'),$params['source_name'],$sitename);
+
+               $sitelink = t('Please visit %s to view and/or reply to your private messages.');
+               $tsitelink = sprintf( $sitelink, $siteurl . '/message' );
+               $hsitelink = sprintf( $sitelink, '<a href="' . $siteurl . '/message">' . $sitename . '</a>');
+               $itemlink = '';
+       }
+
+       if($params['type'] == NOTIFY_COMMENT) {
+
+               $subject = sprintf( t('%s commented on an item at %s'), $params['source_name'], $sitename);
+               $preamble = sprintf( t('%s commented on an item/conversation you have been following.'), $params['source_name']); 
+               $sitelink = t('Please visit %s to view and/or reply to the conversation.');
+               $tsitelink = sprintf( $sitelink, $siteurl );
+               $hsitelink = sprintf( $sitelink, '<a href="' . $siteurl . '">' . $sitename . '</a>');
+               $itemlink =  $params['link'];
+       }
+
+       if($params['type'] == NOTIFY_WALL) {
+               $preamble = $subject =  sprintf( t('%s posted to your profile wall at %s') , $params['source_name'], $sitename);
+
+               $sitelink = t('Please visit %s to view and/or reply to the conversation.');
+               $tsitelink = sprintf( $sitelink, $siteurl );
+               $hsitelink = sprintf( $sitelink, '<a href="' . $siteurl . '">' . $sitename . '</a>');
+               $itemlink =  $params['link'];
+       }
+
+       if($params['type'] == NOTIFY_INTRO) {
+               $subject = sprintf( t('Introduction received at %s'), $sitename);
+               $preamble = sprintf( t('You\'ve received an introduction from \'%s\' at %s'), $params['source_name'], $sitename); 
+               $body = sprintf( t('You may visit their profile at %s'),$params['source_link']);
+
+               $sitelink = t('Please visit %s to approve or reject the introduction.');
+               $tsitelink = sprintf( $sitelink, $siteurl );
+               $hsitelink = sprintf( $sitelink, '<a href="' . $siteurl . '">' . $sitename . '</a>');
+               $itemlink =  $params['link'];
+       }
+
+       if($params['type'] == NOTIFY_CONFIRM) {
 
+       }
+
+       // TODO - create notification entry in DB
+
+
+
+       // send email notification if notification preferences permit
+
+       require_once('bbcode.php');
+       if(intval($params['notify_flags']) & intval($params['type'])) {
+
+               logger('notification: sending notification email');
+
+               push_lang($params['language']);
+
+               $textversion = strip_tags(html_entity_decode(bbcode(stripslashes(str_replace(array("\\r\\n", "\\r", "\\n"), "\n",
+                       $body))),ENT_QUOTES,'UTF-8'));
+               $htmlversion = html_entity_decode(bbcode(stripslashes(str_replace(array("\\r\\n", "\\r","\\n\\n" ,"\\n"), 
+                       "<br />\n",$body))));
+
+               // load the template for private message notifications
+               $tpl = get_markup_template('email_notify_html.tpl');
+               $email_html_body = replace_macros($tpl,array(
+                       '$banner'       => $banner,
+                       '$product'      => $product,
+                       '$preamble'     => $preamble,
+                       '$sitename'     => $sitename,
+                       '$siteurl'      => $siteurl,
+                       '$source_name'  => $parama['source_name'],
+                       '$source_link'  => $params['source_link'],
+                       '$source_photo' => $params['source_photo'],
+                       '$username'     => $params['to_name'],
+                       '$hsitelink'    => $hsitelink,
+                       '$itemlink'     => '<a href="' . $itemlink . '">' . $itemlink . '</a>',
+                       '$thanks'       => $thanks,
+                       '$site_admin'   => $site_admin,
+                       '$title'                => stripslashes($title),
+                       '$htmlversion'  => $htmlversion,        
+               ));
+               
+               // load the template for private message notifications
+               $tpl = get_markup_template('email_notify_text.tpl');
+               $email_text_body = replace_macros($tpl,array(
+                       '$banner'       => $banner,
+                       '$product'      => $product,
+                       '$preamble'     => $preamble,
+                       '$sitename'     => $sitename,
+                       '$siteurl'      => $siteurl,
+                       '$source_name'  => $parama['source_name'],
+                       '$source_link'  => $params['source_link'],
+                       '$source_photo' => $params['source_photo'],
+                       '$username'     => $params['to_name'],
+                       '$tsitelink'    => $tsitelink,
+                       '$itemlink'     => $itemlink,
+                       '$thanks'       => $thanks,
+                       '$site_admin'   => $site_admin,
+                       '$title'                => stripslashes($title),
+                       '$textversion'  => $textversion,        
+               ));
+
+//             logger('text: ' . $email_text_body);
+
+               // use the EmailNotification library to send the message
+
+               enotify::send(array(
+                       'fromName' => $sender_name,
+                       'fromEmail' => $sender_email,
+                       'replyTo' => $sender_email,
+                       'toEmail' => $params['to_email'],
+                       'messageSubject' => $subject,
+                       'htmlVersion' => $email_html_body,
+                       'textVersion' => $email_text_body
+               ));
+               pop_lang();
+       }
+}
 
 require_once('include/email.php');
 
@@ -41,9 +159,9 @@ class enotify {
         * @param textVersion           text only version of the message
         */
        static public function send($params) {
+
                $fromName = email_header_encode($params['fromName'],'UTF-8'); 
-               $messageSubject = email_header_encode(params['messageSubject'],'UTF-8');
-               
+               $messageSubject = email_header_encode($params['messageSubject'],'UTF-8');
                
                // generate a mime boundary
                $mimeBoundary   =rand(0,9)."-"
@@ -54,7 +172,7 @@ class enotify {
                // generate a multipart/alternative message header
                $messageHeader =
                        "From: {$params['fromName']} <{$params['fromEmail']}>\n" . 
-                       "Reply-To: {$params['replyTo']}\n" .
+                       "Reply-To: {$params['fromName']} <{$params['replyTo']}>\n" .
                        "MIME-Version: 1.0\n" .
                        "Content-Type: multipart/alternative; boundary=\"{$mimeBoundary}\"";
 
@@ -74,12 +192,12 @@ class enotify {
 
                // send the message
                $res = mail(
-                       $toEmail,                                                                               // send to address
-                       $messageSubject,                                                                // subject
+                       $params['toEmail'],                                                                             // send to address
+                       $params['messageSubject'],                                                              // subject
                        $multipartMessageBody,                                                  // message body
                        $messageHeader                                                                  // message headers
                );
-               logger("sendTextHtmlEmail: returns " . $res, LOGGER_DEBUG);
+               logger("notification: enotify::send returns " . $res, LOGGER_DEBUG);
        }
 }
 ?>
\ No newline at end of file