]> git.mxchange.org Git - friendica.git/blobdiff - include/enotify.php
Move mod/fsuggest to src/Module/SuggestFriends
[friendica.git] / include / enotify.php
index f509367efbd8edd21cf2cf80351980c4dfdac089..e21adc91ac64fe07dbcfc2e2aad7f6166f34dc56 100644 (file)
@@ -12,12 +12,11 @@ use Friendica\Database\DBA;
 use Friendica\DI;
 use Friendica\Model\Item;
 use Friendica\Model\ItemContent;
-use Friendica\Model\Notification;
+use Friendica\Model\Notify;
 use Friendica\Model\User;
 use Friendica\Model\UserItem;
+use Friendica\Object\Email;
 use Friendica\Protocol\Activity;
-use Friendica\Util\DateTimeFormat;
-use Friendica\Util\Emailer;
 
 /**
  * Creates a notification entry and possibly sends a mail
@@ -161,7 +160,7 @@ function notification($params)
 
                // if it's a post figure out who's post it is.
                $item = null;
-               if ($params['otype'] === Notification::OTYPE_ITEM && $parent_id) {
+               if ($params['otype'] === Notify::OTYPE_ITEM && $parent_id) {
                        $item = Item::selectFirstForUser($params['uid'], Item::ITEM_FIELDLIST, ['id' => $parent_id, 'deleted' => false]);
                }
 
@@ -483,24 +482,25 @@ function notification($params)
        $notify_id = 0;
 
        if ($show_in_notification_page) {
-               $notification = DI::notification()->insert([
-                       'name'   => $params['source_name'],
-                       'url'    => $params['source_link'],
-                       'photo'  => $params['source_photo'],
-                       'uid'    => $params['uid'],
-                       'iid'    => $item_id,
-                       'parent' => $parent_id,
-                       'type'   => $params['type'],
-                       'verb'   => $params['verb'],
-                       'otype'  => $params['otype'],
+               $notification = DI::notify()->insert([
+                       'name'       => $params['source_name'] ?? '',
+                       'name_cache' => strip_tags(BBCode::convert($params['source_name'] ?? '')),
+                       'url'        => $params['source_link'] ?? '',
+                       'photo'      => $params['source_photo'] ?? '',
+                       'link'       => $itemlink ?? '',
+                       'uid'        => $params['uid'] ?? 0,
+                       'iid'        => $item_id ?? 0,
+                       'parent'     => $parent_id ?? 0,
+                       'type'       => $params['type'] ?? '',
+                       'verb'       => $params['verb'] ?? '',
+                       'otype'      => $params['otype'] ?? '',
                ]);
 
-               $notification->link = DI::baseUrl() . '/notification/view/' . $notification->id;
-               $notification->msg  = Renderer::replaceMacros($epreamble, ['$itemlink' => $notification->link]);
+               $notification->msg = Renderer::replaceMacros($epreamble, ['$itemlink' => $notification->link]);
 
-               DI::notification()->update($notification);
+               DI::notify()->update($notification);
 
-               $itemlink  = $notification->link;
+               $itemlink  = DI::baseUrl() . '/notification/' . $notification->id;
                $notify_id = $notification->id;
        }
 
@@ -512,19 +512,19 @@ function notification($params)
                Logger::log('sending notification email');
 
                if (isset($params['parent']) && (intval($params['parent']) != 0)) {
-                       $id_for_parent = $params['parent']."@".$hostname;
+                       $id_for_parent = $params['parent'] . "@" . $hostname;
 
                        // Is this the first email notification for this parent item and user?
                        if (!DBA::exists('notify-threads', ['master-parent-item' => $params['parent'], 'receiver-uid' => $params['uid']])) {
-                               Logger::log("notify_id:".intval($notify_id).", parent: ".intval($params['parent'])."uid: ".intval($params['uid']), Logger::DEBUG);
+                               Logger::log("notify_id:" . intval($notify_id) . ", parent: " . intval($params['parent']) . "uid: " . intval($params['uid']), Logger::DEBUG);
 
-                               $fields = ['notify-id' => $notify_id, 'master-parent-item' => $params['parent'],
-                                       'receiver-uid' => $params['uid'], 'parent-item' => 0];
+                               $fields = ['notify-id'    => $notify_id, 'master-parent-item' => $params['parent'],
+                                          'receiver-uid' => $params['uid'], 'parent-item' => 0];
                                DBA::insert('notify-threads', $fields);
 
                                $additional_mail_header .= "Message-ID: <${id_for_parent}>\n";
-                               $log_msg = "include/enotify: No previous notification found for this parent:\n".
-                                               "  parent: ${params['parent']}\n"."  uid   : ${params['uid']}\n";
+                               $log_msg                = "include/enotify: No previous notification found for this parent:\n" .
+                                                         "  parent: ${params['parent']}\n" . "  uid   : ${params['uid']}\n";
                                Logger::log($log_msg, Logger::DEBUG);
                        } else {
                                // If not, just "follow" the thread.
@@ -536,30 +536,30 @@ function notification($params)
                $textversion = BBCode::toPlaintext($body);
                $htmlversion = BBCode::convert($body);
 
-               $datarray = [];
-               $datarray['banner'] = $banner;
-               $datarray['product'] = $product;
-               $datarray['preamble'] = $preamble;
-               $datarray['sitename'] = $sitename;
-               $datarray['siteurl'] = $siteurl;
-               $datarray['type'] = $params['type'];
-               $datarray['parent'] = $parent_id;
-               $datarray['source_name'] = $params['source_name'] ?? '';
-               $datarray['source_link'] = $params['source_link'] ?? '';
+               $datarray                 = [];
+               $datarray['banner']       = $banner;
+               $datarray['product']      = $product;
+               $datarray['preamble']     = $preamble;
+               $datarray['sitename']     = $sitename;
+               $datarray['siteurl']      = $siteurl;
+               $datarray['type']         = $params['type'];
+               $datarray['parent']       = $parent_id;
+               $datarray['source_name']  = $params['source_name'] ?? '';
+               $datarray['source_link']  = $params['source_link'] ?? '';
                $datarray['source_photo'] = $params['source_photo'] ?? '';
-               $datarray['uid'] = $params['uid'];
-               $datarray['username'] = $params['to_name'] ?? '';
-               $datarray['hsitelink'] = $hsitelink;
-               $datarray['tsitelink'] = $tsitelink;
-               $datarray['hitemlink'] = '<a href="'.$itemlink.'">'.$itemlink.'</a>';
-               $datarray['titemlink'] = $itemlink;
-               $datarray['thanks'] = $thanks;
-               $datarray['site_admin'] = $site_admin;
-               $datarray['title'] = stripslashes($title);
-               $datarray['htmlversion'] = $htmlversion;
-               $datarray['textversion'] = $textversion;
-               $datarray['subject'] = $subject;
-               $datarray['headers'] = $additional_mail_header;
+               $datarray['uid']          = $params['uid'];
+               $datarray['username']     = $params['to_name'] ?? '';
+               $datarray['hsitelink']    = $hsitelink;
+               $datarray['tsitelink']    = $tsitelink;
+               $datarray['hitemlink']    = '<a href="' . $itemlink . '">' . $itemlink . '</a>';
+               $datarray['titemlink']    = $itemlink;
+               $datarray['thanks']       = $thanks;
+               $datarray['site_admin']   = $site_admin;
+               $datarray['title']        = stripslashes($title);
+               $datarray['htmlversion']  = $htmlversion;
+               $datarray['textversion']  = $textversion;
+               $datarray['subject']      = $subject;
+               $datarray['headers']      = $additional_mail_header;
 
                Hook::callAll('enotify_mail', $datarray);
 
@@ -568,59 +568,53 @@ function notification($params)
                $content_allowed = ((!DI::config()->get('system', 'enotify_no_content')) || ($params['type'] == SYSTEM_EMAIL));
 
                // load the template for private message notifications
-               $tpl = Renderer::getMarkupTemplate('email_notify_html.tpl');
+               $tpl             = Renderer::getMarkupTemplate('email_notify_html.tpl');
                $email_html_body = Renderer::replaceMacros($tpl, [
-                       '$banner'       => $datarray['banner'],
-                       '$product'      => $datarray['product'],
-                       '$preamble'     => str_replace("\n", "<br>\n", $datarray['preamble']),
-                       '$sitename'     => $datarray['sitename'],
-                       '$siteurl'      => $datarray['siteurl'],
-                       '$source_name'  => $datarray['source_name'],
-                       '$source_link'  => $datarray['source_link'],
-                       '$source_photo' => $datarray['source_photo'],
-                       '$username'     => $datarray['username'],
-                       '$hsitelink'    => $datarray['hsitelink'],
-                       '$hitemlink'    => $datarray['hitemlink'],
-                       '$thanks'       => $datarray['thanks'],
-                       '$site_admin'   => $datarray['site_admin'],
-                       '$title'        => $datarray['title'],
-                       '$htmlversion'  => $datarray['htmlversion'],
-                       '$content_allowed'      => $content_allowed,
+                       '$banner'          => $datarray['banner'],
+                       '$product'         => $datarray['product'],
+                       '$preamble'        => str_replace("\n", "<br>\n", $datarray['preamble']),
+                       '$sitename'        => $datarray['sitename'],
+                       '$siteurl'         => $datarray['siteurl'],
+                       '$source_name'     => $datarray['source_name'],
+                       '$source_link'     => $datarray['source_link'],
+                       '$source_photo'    => $datarray['source_photo'],
+                       '$username'        => $datarray['username'],
+                       '$hsitelink'       => $datarray['hsitelink'],
+                       '$hitemlink'       => $datarray['hitemlink'],
+                       '$thanks'          => $datarray['thanks'],
+                       '$site_admin'      => $datarray['site_admin'],
+                       '$title'           => $datarray['title'],
+                       '$htmlversion'     => $datarray['htmlversion'],
+                       '$content_allowed' => $content_allowed,
                ]);
 
                // load the template for private message notifications
-               $tpl = Renderer::getMarkupTemplate('email_notify_text.tpl');
+               $tpl             = Renderer::getMarkupTemplate('email_notify_text.tpl');
                $email_text_body = Renderer::replaceMacros($tpl, [
-                       '$banner'       => $datarray['banner'],
-                       '$product'      => $datarray['product'],
-                       '$preamble'     => $datarray['preamble'],
-                       '$sitename'     => $datarray['sitename'],
-                       '$siteurl'      => $datarray['siteurl'],
-                       '$source_name'  => $datarray['source_name'],
-                       '$source_link'  => $datarray['source_link'],
-                       '$source_photo' => $datarray['source_photo'],
-                       '$username'     => $datarray['username'],
-                       '$tsitelink'    => $datarray['tsitelink'],
-                       '$titemlink'    => $datarray['titemlink'],
-                       '$thanks'       => $datarray['thanks'],
-                       '$site_admin'   => $datarray['site_admin'],
-                       '$title'        => $datarray['title'],
-                       '$textversion'  => $datarray['textversion'],
-                       '$content_allowed'      => $content_allowed,
+                       '$banner'          => $datarray['banner'],
+                       '$product'         => $datarray['product'],
+                       '$preamble'        => $datarray['preamble'],
+                       '$sitename'        => $datarray['sitename'],
+                       '$siteurl'         => $datarray['siteurl'],
+                       '$source_name'     => $datarray['source_name'],
+                       '$source_link'     => $datarray['source_link'],
+                       '$source_photo'    => $datarray['source_photo'],
+                       '$username'        => $datarray['username'],
+                       '$tsitelink'       => $datarray['tsitelink'],
+                       '$titemlink'       => $datarray['titemlink'],
+                       '$thanks'          => $datarray['thanks'],
+                       '$site_admin'      => $datarray['site_admin'],
+                       '$title'           => $datarray['title'],
+                       '$textversion'     => $datarray['textversion'],
+                       '$content_allowed' => $content_allowed,
                ]);
 
+               $email = new Email($sender_name, $sender_email, $sender_email, $params['to_email'],
+                       $datarray['subject'], $email_html_body, $email_text_body,
+                       $datarray['headers'], $params['uid']);
+
                // use the Emailer class to send the message
-               return Emailer::send([
-                       'uid' => $params['uid'],
-                       'fromName' => $sender_name,
-                       'fromEmail' => $sender_email,
-                       'replyTo' => $sender_email,
-                       'toEmail' => $params['to_email'],
-                       'messageSubject' => $datarray['subject'],
-                       'htmlVersion' => $email_html_body,
-                       'textVersion' => $email_text_body,
-                       'additionalMailHeader' => $datarray['headers']
-               ]);
+               return DI::emailer()->send($email);
        }
 
        return false;