diff --git a/Command/ActivationEmailsCommand.php b/Command/ActivationEmailsCommand.php index 91a7804..84666c0 100644 --- a/Command/ActivationEmailsCommand.php +++ b/Command/ActivationEmailsCommand.php @@ -13,8 +13,20 @@ class ActivationEmailsCommand extends ContainerAwareCommand protected function configure() { $this - ->setName('activation:send') + ->setName('email:send') ->setDescription('Send activation emails to all users') + ->addOption( + 'activation', + null, + InputOption::VALUE_NONE, + 'activation' + ) + ->addOption( + 'questions', + null, + InputOption::VALUE_NONE, + 'Questionnaire' + ) ; } @@ -22,23 +34,54 @@ protected function execute(InputInterface $input, OutputInterface $output) { $users = $this->getContainer()->get('doctrine')->getRepository('LiveVotingBundle:User')->findAll(); $num = 0; - foreach ($users as $user) { - $user_email = $user->getEmail(); - $emailHash = md5($this->getContainer()->getParameter('email_hash_prefix') . $user_email); - $message = \Swift_Message::newInstance() - ->setSubject('PHP & eZ Publish Summer Camp 2015 - Questionnaire') - ->setFrom('info@netgen.hr') - ->setTo($user_email) - ->setBody( - $this->getContainer()->get('templating')->render( - 'LiveVotingBundle:Email:questions.html.twig', - array('emailHash' => $emailHash) - ), - 'text/html' - ); - $this->getContainer()->get('mailer')->send($message); - $num++; + if ($input->getOption('activation')) + { + foreach ($users as $user) { + $user_email = $user->getEmail(); + $emailHash = md5($this->getContainer()->getParameter('email_hash_prefix') . $user_email); + + $message = \Swift_Message::newInstance() + ->setSubject('Say hello to Summer Camp 2015!') + ->setFrom('info@netgen.hr') + ->setTo($user_email) + ->setBody( + $this->getContainer()->get('templating')->render( + 'LiveVotingBundle:Email:login.html.twig', + array('emailHash' => $emailHash) + ), + 'text/html' + ); + $this->getContainer()->get('mailer')->send($message); + $num++; + } + $output->writeln('Activation mails have been sent to '.$num.' users'); + } + else if ($input->getOption('questions')) + { + foreach ($users as $user) { + $user_email = $user->getEmail(); + $emailHash = md5($this->getContainer()->getParameter('email_hash_prefix') . $user_email); + + $message = \Swift_Message::newInstance() + ->setSubject('PHP & eZ Publish Summer Camp 2015 - Questionnaire') + ->setFrom('info@netgen.hr') + ->setTo($user_email) + ->setBody( + $this->getContainer()->get('templating')->render( + 'LiveVotingBundle:Email:questions.html.twig', + array('emailHash' => $emailHash) + ), + 'text/html' + ); + $this->getContainer()->get('mailer')->send($message); + $num++; + } + $output->writeln('Questionnaire mails have been sent to '.$num.' users'); } - $output->writeln('Activation mail has been sent to '.$num.' users'); + else + { + $output->writeln('Must choose one optional argument: --activation or --questions'); + } + } } \ No newline at end of file diff --git a/Controller/UserAdminController.php b/Controller/UserAdminController.php index b709016..b65f524 100755 --- a/Controller/UserAdminController.php +++ b/Controller/UserAdminController.php @@ -258,32 +258,59 @@ public function processImportCsvAction(Request $request) ); } - public function loginEmailAction(Request $request) + public function loginEmailAction(Request $request, $typeOf) { $users = $this->getDoctrine()->getRepository('LiveVotingBundle:User')->findAll(); foreach ($users as $user) { $user_email = $user->getEmail(); $emailHash = md5($this->container->getParameter('email_hash_prefix') . $user_email); - $message = \Swift_Message::newInstance() - ->setSubject('PHP & eZ Publish Summer Camp 2015 - Questionnaire') - ->setFrom('info@netgen.hr') - ->setTo($user_email) - ->setBody( - $this->renderView( - 'LiveVotingBundle:Email:questions.html.twig', - array('emailHash' => $emailHash) - ), - 'text/html' - ); + if ($typeOf === '0') + { + $message = \Swift_Message::newInstance() + ->setSubject('Say hello to Summer Camp 2015!') + ->setFrom('info@netgen.hr') + ->setTo($user_email) + ->setBody( + $this->renderView( + 'LiveVotingBundle:Email:login.html.twig', + array('emailHash' => $emailHash) + ), + 'text/html' + ); + } + else if ($typeOf === '1') + { + $message = \Swift_Message::newInstance() + ->setSubject('PHP & eZ Publish Summer Camp 2015 - Questionnaire') + ->setFrom('info@netgen.hr') + ->setTo($user_email) + ->setBody( + $this->renderView( + 'LiveVotingBundle:Email:questions.html.twig', + array('emailHash' => $emailHash) + ), + 'text/html' + ); + } + $this->get('mailer')->send($message); } - $request->getSession()->getFlashBag()->add( - 'message', 'Emails have been sent to all users.' - ); + if ($typeOf === '0') + { + $request->getSession()->getFlashBag()->add( + 'message', 'Activations have been sent to all users.' + ); + } + else if ($typeOf === '1') + { + $request->getSession()->getFlashBag()->add( + 'message', 'Questionnaires have been sent to all users.' + ); + } return $this->redirect($this->generateUrl('admin_user')); } - public function oneUserLoginEmailAction(Request $request, $id) + public function oneUserLoginEmailAction(Request $request, $id, $typeOf) { $em = $this->getDoctrine()->getManager(); @@ -292,24 +319,53 @@ public function oneUserLoginEmailAction(Request $request, $id) if (!$user) { throw $this->createNotFoundException('Unable to find User entity.'); } - $user_email = $user->getEmail(); $emailHash = md5($this->container->getParameter('email_hash_prefix') . $user_email); - $message = \Swift_Message::newInstance() - ->setSubject('PHP & eZ Publish Summer Camp 2015 - Questionnaire') - ->setFrom('info@netgen.hr') - ->setTo($user_email) - ->setBody( - $this->renderView( - 'LiveVotingBundle:Email:questions.html.twig', - array('emailHash' => $emailHash) - ), - 'text/html' - ); + if ($typeOf === '0') + { + $message = \Swift_Message::newInstance() + ->setSubject('Say hello to Summer Camp 2015!') + ->setFrom('info@netgen.hr') + ->setTo($user_email) + ->setBody( + $this->renderView( + 'LiveVotingBundle:Email:login.html.twig', + array('emailHash' => $emailHash) + ), + 'text/html' + ); + } + else if ($typeOf === '1') + { + $message = \Swift_Message::newInstance() + ->setSubject('PHP & eZ Publish Summer Camp 2015 - Questionnaire') + ->setFrom('info@netgen.hr') + ->setTo($user_email) + ->setBody( + $this->renderView( + 'LiveVotingBundle:Email:questions.html.twig', + array('emailHash' => $emailHash) + ), + 'text/html' + ); + } + + $this->get('mailer')->send($message); - $request->getSession()->getFlashBag()->add( - 'message', 'Email has been sent to '.$user_email - ); + if ($typeOf === '0') + { + $request->getSession()->getFlashBag()->add( + 'message', 'Activation has been sent to '.$user_email + ); + } + else if ($typeOf === '1') + { + $request->getSession()->getFlashBag()->add( + 'message', 'Questionnaire has been sent to '.$user_email + ); + } + + return $this->redirect($this->generateUrl('admin_user')); } } \ No newline at end of file diff --git a/Resources/config/routing.yml b/Resources/config/routing.yml index 59c5cc6..052cf25 100755 --- a/Resources/config/routing.yml +++ b/Resources/config/routing.yml @@ -194,9 +194,9 @@ email_login: path: /login/ send_email_login: - path: /admin/user/send_email_login - defaults: {_controller: LiveVotingBundle:UserAdmin:loginEmail} + path: /admin/user/send_email_login/{typeOf} + defaults: {_controller: LiveVotingBundle:UserAdmin:loginEmail, typeOf: null} send_one_email_login: - path: /admin/user/send_one_email_login/{id} - defaults: {_controller: LiveVotingBundle:UserAdmin:oneUserLoginEmail, id: null } + path: /admin/user/send_one_email_login/{typeOf}/{id} + defaults: {_controller: LiveVotingBundle:UserAdmin:oneUserLoginEmail, id: null, typeOf: null } diff --git a/Resources/views/User/index.html.twig b/Resources/views/User/index.html.twig index ff8fff4..e787e8b 100755 --- a/Resources/views/User/index.html.twig +++ b/Resources/views/User/index.html.twig @@ -20,6 +20,7 @@ Enabled Edit Activation Email + Questionnaire Email @@ -31,7 +32,10 @@ - + + + + {% endfor %} @@ -45,7 +49,8 @@ - + + {% endblock %}