@@ -47,8 +47,7 @@ protected function configure(): void
4747 $ this
4848 ->setDescription ('Send notification messages to users that have reminders from events in their agenda. ' )
4949 ->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. ' );
5251 }
5352
5453 protected function execute (InputInterface $ input , OutputInterface $ output ): int
@@ -94,30 +93,20 @@ protected function execute(InputInterface $input, OutputInterface $output): int
9493 }
9594
9695 $ eventDetails = $ this ->generateEventDetails ($ event );
97- $ messageSubject = \sprintf ('Reminder for event: %s ' , $ event ->getTitle ());
98- $ messageContent = implode (PHP_EOL , $ eventDetails );
9996
10097 $ initialSentRemindersCount = $ sentRemindersCount ;
10198
10299 if ('personal ' === $ eventType ) {
103100 $ creator = $ event ->getResourceNode ()->getCreator ();
104101 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 );
110103 }
111104
112105 $ resourceLinks = $ event ->getResourceNode ()->getResourceLinks ();
113106 if (!$ resourceLinks ->isEmpty ()) {
114107 foreach ($ resourceLinks as $ link ) {
115108 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 );
121110 }
122111 }
123112 }
@@ -135,25 +124,16 @@ protected function execute(InputInterface $input, OutputInterface $output): int
135124 case 'global ' :
136125 foreach ($ event ->getResourceNode ()->getResourceLinks () as $ link ) {
137126 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 );
143128 }
144129 }
145-
146130 break ;
147131
148132 case 'course ' :
149133 if ($ course = $ resourceLink ->getCourse ()) {
150134 $ users = $ this ->courseRepository ->getSubscribedUsers ($ course )->getQuery ()->getResult ();
151135 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 );
157137 }
158138 }
159139
@@ -186,11 +166,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int
186166 }
187167
188168 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 );
194170 }
195171 }
196172
@@ -215,6 +191,25 @@ protected function execute(InputInterface $input, OutputInterface $output): int
215191 return Command::SUCCESS ;
216192 }
217193
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+
218213 private function getFirstAdminId (): int
219214 {
220215 $ admin = $ this ->entityManager ->getRepository (User::class)->findOneBy ([]);
@@ -234,13 +229,13 @@ private function generateEventDetails(CCalendarEvent $event): array
234229 } else {
235230 $ details [] = \sprintf (
236231 '<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 ' )] )
238233 );
239234
240235 if ($ event ->getEndDate ()) {
241236 $ details [] = \sprintf (
242237 '<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 ' )] )
244239 );
245240 }
246241 }
0 commit comments