Skip to content

Commit 66193e5

Browse files
committed
Merge branch 'master' of github.com:chamilo/chamilo-lms
2 parents af9ffad + 96a3270 commit 66193e5

File tree

1 file changed

+27
-32
lines changed

1 file changed

+27
-32
lines changed

src/CoreBundle/Command/SendEventRemindersCommand.php

+27-32
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)