Browse code

Fix another teaser is null issue

Benjamin Roth authored on08/09/2023 10:06:36
Showing1 changed files
... ...
@@ -62,7 +62,7 @@ class NewsSendTestmailListener
62 62
                     'date' => date('d.m.Y',$News->date),
63 63
                     'headline' => $News->headline,
64 64
                     'teaser' => $News->teaser ? StringUtil::substr(strip_tags(str_ireplace(array('<br />','<br>','<br/>','</p>','<p>'),' ',$News->teaser)),128) : '',
65
-                    'text_plain' => $strText ? strip_tags(str_ireplace(array('<br />','<br>','<br/>','</p>','<p>'),' ',$strText)) : strip_tags(str_ireplace(array('<br />','<br>','<br/>','</p>','<p>'),' ',$News->teaser)),
65
+                    'text_plain' => $strText ? strip_tags(str_ireplace(array('<br />','<br>','<br/>','</p>','<p>'),' ',$strText)) : ($News->teaser ? strip_tags(str_ireplace(array('<br />','<br>','<br/>','</p>','<p>'),' ',$News->teaser)) : ''),
66 66
                     'text_html' => $strText ?: $News->teaser
67 67
                 );
68 68
 
Browse code

Add full message tokens

Benjamin Roth authored on04/04/2023 16:12:58
Showing1 changed files
... ...
@@ -14,6 +14,8 @@ namespace vonRotenberg\NewsmailerBundle\EventListener;
14 14
 
15 15
 use Contao\BackendUser;
16 16
 use Contao\Config;
17
+use Contao\ContentModel;
18
+use Contao\Controller;
17 19
 use Contao\CoreBundle\ServiceAnnotation\Callback;
18 20
 use Contao\DataContainer;
19 21
 use Contao\Message;
... ...
@@ -45,10 +47,23 @@ class NewsSendTestmailListener
45 47
 
46 48
             if ($News !== null && ($Archive = $News->getRelated('pid')) !== null && ($Notification = Notification::findByPk($Archive->nc_notification)) !== null)
47 49
             {
50
+                $strText = '';
51
+                $objContentElement = ContentModel::findPublishedByPidAndTable($News->id, 'tl_news');
52
+
53
+                if ($objContentElement !== null)
54
+                {
55
+                    while ($objContentElement->next())
56
+                    {
57
+                        $strText .= Controller::getContentElement($objContentElement->current());
58
+                    }
59
+                }
60
+
48 61
                 $arrRow = array(
49 62
                     'date' => date('d.m.Y',$News->date),
50 63
                     'headline' => $News->headline,
51
-                    'teaser' => $News->teaser ? StringUtil::substr(strip_tags(str_ireplace(array('<br />','<br>','<br/>','</p>','<p>'),' ',$News->teaser)),128) : ''
64
+                    'teaser' => $News->teaser ? StringUtil::substr(strip_tags(str_ireplace(array('<br />','<br>','<br/>','</p>','<p>'),' ',$News->teaser)),128) : '',
65
+                    'text_plain' => $strText ? strip_tags(str_ireplace(array('<br />','<br>','<br/>','</p>','<p>'),' ',$strText)) : strip_tags(str_ireplace(array('<br />','<br>','<br/>','</p>','<p>'),' ',$News->teaser)),
66
+                    'text_html' => $strText ?: $News->teaser
52 67
                 );
53 68
 
54 69
                 if (($objJumpTo = $Archive->getRelated('jumpTo')) !== null)
... ...
@@ -59,6 +74,8 @@ class NewsSendTestmailListener
59 74
 
60 75
                 $arrNewsPlain[] = date('d.m.Y',$News->date).' - '.$News->headline;
61 76
                 $arrNewsHtml[] = '<div style="margin-bottom: 15px;"><h3>'.$arrRow['date'].' '.$arrRow['headline'].'</h3><p>'.$arrRow['teaser'].'</p>'. ($arrRow['url'] ? '<p><a href="'.$arrRow['url'].'">&raquo; Ganze Nachricht lesen...</a></p>' : '') .'</div>';
77
+                $arrNewsFullPlain[] = date('d.m.Y',$News->date).' - '.$News->headline . "\n" . $arrRow['text_plain'];
78
+                $arrNewsFullHtml[] = '<div style="margin-bottom: 15px;"><h3>'.$arrRow['date'].' '.$arrRow['headline'].'</h3>' . $arrRow['text_html'] . ($arrRow['url'] ? '<p><a href="'.$arrRow['url'].'">&raquo; Ganze Nachricht lesen...</a></p>' : '') .'</div>';
62 79
 
63 80
                 // User
64 81
                 $strEmail = $User->email;
... ...
@@ -86,6 +103,8 @@ class NewsSendTestmailListener
86 103
                     'member_lastname' => $strLastname,
87 104
                     'news_topics'       => implode("\n",$arrNewsPlain),
88 105
                     'news_topics_html'  => "<ul>\n<li>".str_replace('%%_TOKEN_%%',$strToken,implode("</li>\n<li>",$arrNewsHtml))."</li>\n</ul>",
106
+                    'news_full' => implode("\n",$arrNewsFullPlain),
107
+                    'news_full_html' => implode("",$arrNewsFullHtml),
89 108
                     'member_login_token'  => $strToken,
90 109
                     'admin_email'  => $admin_email,
91 110
                 ),
Browse code

Fix teaser is null issue

Benjamin Roth authored on22/03/2023 10:43:52
Showing1 changed files
... ...
@@ -48,7 +48,7 @@ class NewsSendTestmailListener
48 48
                 $arrRow = array(
49 49
                     'date' => date('d.m.Y',$News->date),
50 50
                     'headline' => $News->headline,
51
-                    'teaser' => \Contao\StringUtil::substr(strip_tags(str_ireplace(array('<br />','<br>','<br/>','</p>','<p>'),' ',$News->teaser)),128)
51
+                    'teaser' => $News->teaser ? StringUtil::substr(strip_tags(str_ireplace(array('<br />','<br>','<br/>','</p>','<p>'),' ',$News->teaser)),128) : ''
52 52
                 );
53 53
 
54 54
                 if (($objJumpTo = $Archive->getRelated('jumpTo')) !== null)
Browse code

Updates

Benjamin Roth authored on22/03/2023 10:11:57
Showing1 changed files
... ...
@@ -53,7 +53,8 @@ class NewsSendTestmailListener
53 53
 
54 54
                 if (($objJumpTo = $Archive->getRelated('jumpTo')) !== null)
55 55
                 {
56
-                    $arrRow['url'] = $objJumpTo->getAbsoluteUrl(sprintf((Config::get('useAutoItem') ? '/%s' : '/items/%s'),$News->alias)).'?ltoken=%%_TOKEN_%%';
56
+//                    $arrRow['url'] = $objJumpTo->getAbsoluteUrl(sprintf((Config::get('useAutoItem') ? '/%s' : '/items/%s'),$News->alias)).'?ltoken=%%_TOKEN_%%';
57
+                    $arrRow['url'] = $objJumpTo->getAbsoluteUrl(sprintf((Config::get('useAutoItem') ? '/%s' : '/items/%s'),$News->alias));
57 58
                 }
58 59
 
59 60
                 $arrNewsPlain[] = date('d.m.Y',$News->date).' - '.$News->headline;
Browse code

Update

Benjamin Roth authored on22/03/2023 01:01:57
Showing1 changed files
... ...
@@ -65,10 +65,10 @@ class NewsSendTestmailListener
65 65
                 {
66 66
                     $strLastname = $Member->firstname;
67 67
                     $strFirstname = $Member->lastname;
68
-                    /*if ($Member->nc_news_additionalEmail)
68
+                    if ($Member->nc_news_additionalEmail)
69 69
                     {
70 70
                         $strEmail .= ','.$Member->nc_news_additionalEmail;
71
-                    }*/
71
+                    }
72 72
 //                    $strToken = \TokenLogin::getOrRenewUserToken($Member);
73 73
                     $strToken = '';
74 74
                 } else {
Browse code

Updates

Benjamin Roth authored on21/03/2023 16:40:45
Showing1 changed files
... ...
@@ -53,7 +53,7 @@ class NewsSendTestmailListener
53 53
 
54 54
                 if (($objJumpTo = $Archive->getRelated('jumpTo')) !== null)
55 55
                 {
56
-                    $arrRow['url'] = $objJumpTo->getAbsoluteUrl(Config::get('useAutoItem') ? '/%s' : '/items/%s').'?ltoken=%%_TOKEN_%%';
56
+                    $arrRow['url'] = $objJumpTo->getAbsoluteUrl(sprintf((Config::get('useAutoItem') ? '/%s' : '/items/%s'),$News->alias)).'?ltoken=%%_TOKEN_%%';
57 57
                 }
58 58
 
59 59
                 $arrNewsPlain[] = date('d.m.Y',$News->date).' - '.$News->headline;
Browse code

Updates

Benjamin Roth authored on16/03/2023 13:33:40
Showing1 changed files
... ...
@@ -12,10 +12,14 @@ declare(strict_types=1);
12 12
 
13 13
 namespace vonRotenberg\NewsmailerBundle\EventListener;
14 14
 
15
+use Contao\BackendUser;
15 16
 use Contao\Config;
16 17
 use Contao\CoreBundle\ServiceAnnotation\Callback;
17 18
 use Contao\DataContainer;
19
+use Contao\Message;
18 20
 use Contao\NewsModel;
21
+use Contao\StringUtil;
22
+use Contao\System;
19 23
 use NotificationCenter\Model\Notification;
20 24
 
21 25
 class NewsSendTestmailListener
... ...
@@ -33,9 +37,11 @@ class NewsSendTestmailListener
33 37
      */
34 38
     public function onSaveCallback($varValue, DataContainer $dc)
35 39
     {
36
-        if ($varValue)
40
+        if ($varValue && System::getContainer()->get('contao.security.token_checker')->hasBackendUser())
37 41
         {
38 42
             $News = NewsModel::findByPk($dc->id);
43
+            $User = BackendUser::getInstance();
44
+            list($admin_name,$admin_email) = StringUtil::splitFriendlyEmail(Config::get('adminEmail'));
39 45
 
40 46
             if ($News !== null && ($Archive = $News->getRelated('pid')) !== null && ($Notification = Notification::findByPk($Archive->nc_notification)) !== null)
41 47
             {
... ...
@@ -50,41 +56,48 @@ class NewsSendTestmailListener
50 56
                     $arrRow['url'] = $objJumpTo->getAbsoluteUrl(Config::get('useAutoItem') ? '/%s' : '/items/%s').'?ltoken=%%_TOKEN_%%';
51 57
                 }
52 58
 
53
-
54 59
                 $arrNewsPlain[] = date('d.m.Y',$News->date).' - '.$News->headline;
55 60
                 $arrNewsHtml[] = '<div style="margin-bottom: 15px;"><h3>'.$arrRow['date'].' '.$arrRow['headline'].'</h3><p>'.$arrRow['teaser'].'</p>'. ($arrRow['url'] ? '<p><a href="'.$arrRow['url'].'">&raquo; Ganze Nachricht lesen...</a></p>' : '') .'</div>';
56 61
 
57 62
                 // User
58
-                $strEmail = $this->User->email;
59
-                if (($Member = \MemberModel::findActiveByEmailAndUsername($this->User->email)) !== null)
63
+                $strEmail = $User->email;
64
+                if (($Member = \MemberModel::findActiveByEmailAndUsername($strEmail)) !== null)
60 65
                 {
61 66
                     $strLastname = $Member->firstname;
62 67
                     $strFirstname = $Member->lastname;
63
-                    if ($Member->nc_news_additionalEmail)
68
+                    /*if ($Member->nc_news_additionalEmail)
64 69
                     {
65 70
                         $strEmail .= ','.$Member->nc_news_additionalEmail;
66
-                    }
67
-                    $strToken = \TokenLogin::getOrRenewUserToken($Member);
71
+                    }*/
72
+//                    $strToken = \TokenLogin::getOrRenewUserToken($Member);
73
+                    $strToken = '';
68 74
                 } else {
69
-                    $arrSplitName = explode(" ", $this->User->name);
75
+                    $arrSplitName = explode(" ", $User->name);
70 76
                     $strLastname = array_pop($arrSplitName);
71 77
                     $strFirstname = implode(" ", $arrSplitName);
72 78
                     $strToken = '';
73 79
                 }
74 80
 
75
-                $Notification->send(array
81
+                if ($Notification->send(array
76 82
                 (
77 83
                     'member_email'      => $strEmail,
78 84
                     'member_firstname' => $strFirstname,
79 85
                     'member_lastname' => $strLastname,
80 86
                     'news_topics'       => implode("\n",$arrNewsPlain),
81 87
                     'news_topics_html'  => "<ul>\n<li>".str_replace('%%_TOKEN_%%',$strToken,implode("</li>\n<li>",$arrNewsHtml))."</li>\n</ul>",
82
-                    'member_login_token'  => $strToken
88
+                    'member_login_token'  => $strToken,
89
+                    'admin_email'  => $admin_email,
83 90
                 ),
84
-                    $GLOBALS['TL_LANGUAGE']);
91
+                    $GLOBALS['TL_LANGUAGE']))
92
+                {
93
+                    Message::addConfirmation(sprintf($GLOBALS['TL_LANG']['tl_news']['MSC']['nc_news_testletter'],$strEmail));
94
+                } else {
95
+                    Message::addError($GLOBALS['TL_LANG']['tl_news']['MSC']['nc_news_testletter_error']);
96
+                }
85 97
 
86
-                Message::addConfirmation($GLOBALS['TL_LANG']['tl_news']['MSC']['nc_news_testletter']);
87 98
             }
88 99
         }
100
+
101
+        return null;
89 102
     }
90 103
 }
Browse code

Initial commit

Benjamin Roth authored on15/03/2023 23:50:38
Showing1 changed files
... ...
@@ -21,13 +21,16 @@ use NotificationCenter\Model\Notification;
21 21
 class NewsSendTestmailListener
22 22
 {
23 23
     /**
24
-     * @Callback(table="tl_news", target="fields.nc_testmail.load)
24
+     * @Callback(table="tl_news", target="fields.nc_testmail.load")
25 25
      */
26 26
     public function onLoadCallback($varValue, DataContainer $dc)
27 27
     {
28 28
         return null;
29 29
     }
30 30
 
31
+    /**
32
+     * @Callback(table="tl_news", target="fields.nc_testmail.save")
33
+     */
31 34
     public function onSaveCallback($varValue, DataContainer $dc)
32 35
     {
33 36
         if ($varValue)
Browse code

Initial commit

Benjamin Roth authored on14/03/2023 16:28:03
Showing1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,87 @@
1
+<?php
2
+
3
+declare(strict_types=1);
4
+
5
+/*
6
+* This file is part of newsmailer bundle for Contao.
7
+*
8
+* (c) Benjamin Roth
9
+*
10
+* @license LGPL-3.0-or-later
11
+*/
12
+
13
+namespace vonRotenberg\NewsmailerBundle\EventListener;
14
+
15
+use Contao\Config;
16
+use Contao\CoreBundle\ServiceAnnotation\Callback;
17
+use Contao\DataContainer;
18
+use Contao\NewsModel;
19
+use NotificationCenter\Model\Notification;
20
+
21
+class NewsSendTestmailListener
22
+{
23
+    /**
24
+     * @Callback(table="tl_news", target="fields.nc_testmail.load)
25
+     */
26
+    public function onLoadCallback($varValue, DataContainer $dc)
27
+    {
28
+        return null;
29
+    }
30
+
31
+    public function onSaveCallback($varValue, DataContainer $dc)
32
+    {
33
+        if ($varValue)
34
+        {
35
+            $News = NewsModel::findByPk($dc->id);
36
+
37
+            if ($News !== null && ($Archive = $News->getRelated('pid')) !== null && ($Notification = Notification::findByPk($Archive->nc_notification)) !== null)
38
+            {
39
+                $arrRow = array(
40
+                    'date' => date('d.m.Y',$News->date),
41
+                    'headline' => $News->headline,
42
+                    'teaser' => \Contao\StringUtil::substr(strip_tags(str_ireplace(array('<br />','<br>','<br/>','</p>','<p>'),' ',$News->teaser)),128)
43
+                );
44
+
45
+                if (($objJumpTo = $Archive->getRelated('jumpTo')) !== null)
46
+                {
47
+                    $arrRow['url'] = $objJumpTo->getAbsoluteUrl(Config::get('useAutoItem') ? '/%s' : '/items/%s').'?ltoken=%%_TOKEN_%%';
48
+                }
49
+
50
+
51
+                $arrNewsPlain[] = date('d.m.Y',$News->date).' - '.$News->headline;
52
+                $arrNewsHtml[] = '<div style="margin-bottom: 15px;"><h3>'.$arrRow['date'].' '.$arrRow['headline'].'</h3><p>'.$arrRow['teaser'].'</p>'. ($arrRow['url'] ? '<p><a href="'.$arrRow['url'].'">&raquo; Ganze Nachricht lesen...</a></p>' : '') .'</div>';
53
+
54
+                // User
55
+                $strEmail = $this->User->email;
56
+                if (($Member = \MemberModel::findActiveByEmailAndUsername($this->User->email)) !== null)
57
+                {
58
+                    $strLastname = $Member->firstname;
59
+                    $strFirstname = $Member->lastname;
60
+                    if ($Member->nc_news_additionalEmail)
61
+                    {
62
+                        $strEmail .= ','.$Member->nc_news_additionalEmail;
63
+                    }
64
+                    $strToken = \TokenLogin::getOrRenewUserToken($Member);
65
+                } else {
66
+                    $arrSplitName = explode(" ", $this->User->name);
67
+                    $strLastname = array_pop($arrSplitName);
68
+                    $strFirstname = implode(" ", $arrSplitName);
69
+                    $strToken = '';
70
+                }
71
+
72
+                $Notification->send(array
73
+                (
74
+                    'member_email'      => $strEmail,
75
+                    'member_firstname' => $strFirstname,
76
+                    'member_lastname' => $strLastname,
77
+                    'news_topics'       => implode("\n",$arrNewsPlain),
78
+                    'news_topics_html'  => "<ul>\n<li>".str_replace('%%_TOKEN_%%',$strToken,implode("</li>\n<li>",$arrNewsHtml))."</li>\n</ul>",
79
+                    'member_login_token'  => $strToken
80
+                ),
81
+                    $GLOBALS['TL_LANGUAGE']);
82
+
83
+                Message::addConfirmation($GLOBALS['TL_LANG']['tl_news']['MSC']['nc_news_testletter']);
84
+            }
85
+        }
86
+    }
87
+}