@@ -47,8 +47,7 @@ protected function configure(): void
47
47
$ this
48
48
->setDescription ('Send notification messages to users that have reminders from events in their agenda. ' )
49
49
->addOption ('debug ' , null , InputOption::VALUE_NONE , 'Enable debug mode ' )
50
- ->setHelp ('This command sends notifications to users who have pending reminders for calendar events. ' )
51
- ;
50
+ ->setHelp ('This command sends notifications to users who have pending reminders for calendar events. ' );
52
51
}
53
52
54
53
protected function execute (InputInterface $ input , OutputInterface $ output ): int
@@ -94,30 +93,20 @@ protected function execute(InputInterface $input, OutputInterface $output): int
94
93
}
95
94
96
95
$ eventDetails = $ this ->generateEventDetails ($ event );
97
- $ messageSubject = \sprintf ('Reminder for event: %s ' , $ event ->getTitle ());
98
- $ messageContent = implode (PHP_EOL , $ eventDetails );
99
96
100
97
$ initialSentRemindersCount = $ sentRemindersCount ;
101
98
102
99
if ('personal ' === $ eventType ) {
103
100
$ creator = $ event ->getResourceNode ()->getCreator ();
104
101
if ($ creator ) {
105
- $ this ->messageHelper ->sendMessageSimple ($ creator ->getId (), $ messageSubject , $ messageContent , $ senderId );
106
- if ($ debug ) {
107
- error_log ("Message sent to creator ID: {$ creator ->getId ()} for personal event: " .$ event ->getTitle ());
108
- }
109
- $ sentRemindersCount ++;
102
+ $ this ->sendReminderMessage ($ creator , $ event , $ senderId , $ debug , $ io , $ sentRemindersCount );
110
103
}
111
104
112
105
$ resourceLinks = $ event ->getResourceNode ()->getResourceLinks ();
113
106
if (!$ resourceLinks ->isEmpty ()) {
114
107
foreach ($ resourceLinks as $ link ) {
115
108
if ($ user = $ link ->getUser ()) {
116
- $ this ->messageHelper ->sendMessageSimple ($ user ->getId (), $ messageSubject , $ messageContent , $ senderId );
117
- if ($ debug ) {
118
- error_log ("Message sent to user ID: {$ user ->getId ()} for personal event: " .$ event ->getTitle ());
119
- }
120
- $ sentRemindersCount ++;
109
+ $ this ->sendReminderMessage ($ user , $ event , $ senderId , $ debug , $ io , $ sentRemindersCount );
121
110
}
122
111
}
123
112
}
@@ -135,25 +124,16 @@ protected function execute(InputInterface $input, OutputInterface $output): int
135
124
case 'global ' :
136
125
foreach ($ event ->getResourceNode ()->getResourceLinks () as $ link ) {
137
126
if ($ user = $ link ->getUser ()) {
138
- $ this ->messageHelper ->sendMessageSimple ($ user ->getId (), $ messageSubject , $ messageContent , $ senderId );
139
- if ($ debug ) {
140
- error_log ("Message sent to user ID: {$ user ->getId ()} for global event: " .$ event ->getTitle ());
141
- }
142
- $ sentRemindersCount ++;
127
+ $ this ->sendReminderMessage ($ user , $ event , $ senderId , $ debug , $ io , $ sentRemindersCount );
143
128
}
144
129
}
145
-
146
130
break ;
147
131
148
132
case 'course ' :
149
133
if ($ course = $ resourceLink ->getCourse ()) {
150
134
$ users = $ this ->courseRepository ->getSubscribedUsers ($ course )->getQuery ()->getResult ();
151
135
foreach ($ users as $ user ) {
152
- $ this ->messageHelper ->sendMessageSimple ($ user ->getId (), $ messageSubject , $ messageContent , $ senderId );
153
- if ($ debug ) {
154
- error_log ("Message sent to user ID: {$ user ->getId ()} for course event: " .$ event ->getTitle ());
155
- }
156
- $ sentRemindersCount ++;
136
+ $ this ->sendReminderMessage ($ user , $ event , $ senderId , $ debug , $ io , $ sentRemindersCount );
157
137
}
158
138
}
159
139
@@ -186,11 +166,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int
186
166
}
187
167
188
168
foreach ($ usersToNotify as $ user ) {
189
- $ this ->messageHelper ->sendMessageSimple ($ user ->getId (), $ messageSubject , $ messageContent , $ senderId );
190
- if ($ debug ) {
191
- error_log ("Message sent to user ID: {$ user ->getId ()} ( {$ user ->getUsername ()}) for session event: {$ event ->getTitle ()}" );
192
- }
193
- $ sentRemindersCount ++;
169
+ $ this ->sendReminderMessage ($ user , $ event , $ senderId , $ debug , $ io , $ sentRemindersCount );
194
170
}
195
171
}
196
172
@@ -215,6 +191,25 @@ protected function execute(InputInterface $input, OutputInterface $output): int
215
191
return Command::SUCCESS ;
216
192
}
217
193
194
+ private function sendReminderMessage (User $ user , CCalendarEvent $ event , int $ senderId , bool $ debug , SymfonyStyle $ io , int &$ sentRemindersCount ): void
195
+ {
196
+ $ locale = $ user ->getLocale () ?: 'en ' ;
197
+ $ this ->translator ->setLocale ($ locale );
198
+
199
+ $ messageSubject = $ this ->translator ->trans ('Reminder for event : %s ' , ['%s ' => $ event ->getTitle ()]);
200
+ $ messageContent = implode (PHP_EOL , $ this ->generateEventDetails ($ event ));
201
+
202
+ $ this ->messageHelper ->sendMessageSimple ($ user ->getId (), $ messageSubject , $ messageContent , $ senderId );
203
+
204
+ if ($ debug ) {
205
+ error_log ("Message sent to user ID: {$ user ->getId ()} for event: {$ event ->getTitle ()}" );
206
+ error_log ("Message Subject: {$ messageSubject }" );
207
+ error_log ("Message Content: {$ messageContent }" );
208
+ }
209
+
210
+ $ sentRemindersCount ++;
211
+ }
212
+
218
213
private function getFirstAdminId (): int
219
214
{
220
215
$ admin = $ this ->entityManager ->getRepository (User::class)->findOneBy ([]);
@@ -234,13 +229,13 @@ private function generateEventDetails(CCalendarEvent $event): array
234
229
} else {
235
230
$ details [] = \sprintf (
236
231
'<p class="small">%s</p> ' ,
237
- \sprintf ( $ this ->translator ->trans ('From %s ' ), $ event ->getStartDate ()->format ('Y-m-d H:i:s ' ))
232
+ $ this ->translator ->trans ('From %s ' , [ ' %s ' => $ event ->getStartDate ()->format ('Y-m-d H:i:s ' )] )
238
233
);
239
234
240
235
if ($ event ->getEndDate ()) {
241
236
$ details [] = \sprintf (
242
237
'<p class="small">%s</p> ' ,
243
- \sprintf ( $ this ->translator ->trans ('Until %s ' ), $ event ->getEndDate ()->format ('Y-m-d H:i:s ' ))
238
+ $ this ->translator ->trans ('Until %s ' , [ ' %s ' => $ event ->getEndDate ()->format ('Y-m-d H:i:s ' )] )
244
239
);
245
240
}
246
241
}
0 commit comments