Ojs\CoreBundle\Service\OjsMailer::getEventByName PHP Метод

getEventByName() публичный Метод

public getEventByName ( $eventName, null $lang = null, Journal $journal = null ) : MailTemplate
$eventName
$lang null
$journal Ojs\JournalBundle\Entity\Journal
Результат Ojs\JournalBundle\Entity\MailTemplate
    public function getEventByName($eventName, $lang = null, Journal $journal = null)
    {
        if ($lang == null) {
            $lang = $this->locale;
        }
        if ($journal == null) {
            $GLOBALS['Ojs\\JournalBundle\\Entity\\MailTemplate#journalFilter'] = false;
        }
        /** @var MailTemplate $template */
        $template = $this->em->getRepository('OjsJournalBundle:MailTemplate')->findOneBy(['journal' => $journal, 'type' => $eventName, 'lang' => $lang]);
        if ($template) {
            if ($template->isUseJournalDefault()) {
                $GLOBALS['Ojs\\JournalBundle\\Entity\\MailTemplate#journalFilter'] = false;
                return $this->em->getRepository('OjsJournalBundle:MailTemplate')->findOneBy(['journal' => null, 'type' => $eventName, 'lang' => $lang, 'journalDefault' => true]);
            }
            if (!$template->isActive()) {
                return false;
            }
        }
        return $template;
    }

Usage Example

Пример #1
0
 /**
  * @param GetResponseUserEvent $event
  */
 public function onProfileEditCompleted(GetResponseUserEvent $event)
 {
     $getMailEvent = $this->ojsMailer->getEventByName(FOSUserEvents::PROFILE_EDIT_COMPLETED);
     if (!$getMailEvent) {
         return;
     }
     /** @var User $user */
     $user = $event->getUser();
     $transformParams = ['user.username' => $user->getUsername(), 'user.fullName' => $user->getFullName(), 'user.mail' => $user->getEmail()];
     $template = $this->ojsMailer->transformTemplate($getMailEvent->getTemplate(), $transformParams);
     $this->ojsMailer->sendToUser($user, $getMailEvent->getSubject(), $template);
 }
All Usage Examples Of Ojs\CoreBundle\Service\OjsMailer::getEventByName