src/Eccube/Controller/ContactBulkOrdersController.php line 46

Open in your IDE?
  1. <?php
  2. namespace Eccube\Controller;
  3. use Eccube\Entity\Customer;
  4. use Eccube\Event\EccubeEvents;
  5. use Eccube\Event\EventArgs;
  6. use Eccube\Form\Type\Front\ContactBulkOrdersType;
  7. use Eccube\Repository\PageRepository;
  8. use Eccube\Service\MailService;
  9. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. class ContactBulkOrdersController extends AbstractController {
  13.   /**
  14.    * @var MailService
  15.    */
  16.   protected $mailService;
  17.   /**
  18.    * @var PageRepository
  19.    */
  20.   private $pageRepository;
  21.   /**
  22.    * ContactController constructor.
  23.    *
  24.    * @param MailService $mailService
  25.    * @param PageRepository $pageRepository
  26.    */
  27.   public function __construct(
  28.   MailService $mailServicePageRepository $pageRepository) {
  29.     $this->mailService $mailService;
  30.     $this->pageRepository $pageRepository;
  31.   }
  32.   /**
  33.    * お問い合わせ画面.
  34.    *
  35.    * @Route("/contact_bulk_orders", name="contact_bulk_orders", methods={"GET", "POST"})
  36.    * @Route("/contact_bulk_orders", name="contact_bulk_orders_confirm", methods={"GET", "POST"})
  37.    * @Template("ContactBulkOrders/index.twig")
  38.    */
  39.   public function index(Request $request) {
  40.     $builder $this->formFactory->createBuilder(ContactBulkOrdersType::class);
  41.     if ($this->isGranted('ROLE_USER')) {
  42.       /** @var Customer $user */
  43.       $user $this->getUser();
  44.       $builder->setData(
  45.         [
  46.           'name01' => $user->getName01(),
  47.           'name02' => $user->getName02(),
  48.           'kana01' => $user->getKana01(),
  49.           'kana02' => $user->getKana02(),
  50.           'postal_code' => $user->getPostalCode(),
  51.           'pref' => $user->getPref(),
  52.           'addr01' => $user->getAddr01(),
  53.           'addr02' => $user->getAddr02(),
  54.           'phone_number' => $user->getPhoneNumber(),
  55.           'email' => $user->getEmail(),
  56.           'job' => $user->getJob(),
  57.           'sex' => $user->getSex(),
  58.           'birth' => $user->getBirth(),
  59.         ]
  60.       );
  61.     }
  62.     // FRONT_CONTACT_INDEX_INITIALIZE
  63.     $event = new EventArgs(
  64.       [
  65.       'builder' => $builder,
  66.       ], $request
  67.     );
  68.     $this->eventDispatcher->dispatch($eventEccubeEvents::FRONT_CONTACT_INDEX_INITIALIZE);
  69.     $form $builder->getForm();
  70.     $form->handleRequest($request);
  71.     if ($form->isSubmitted() && $form->isValid()) {
  72.       switch ($request->get('mode')) {
  73.         case 'confirm':
  74.           return $this->render('ContactBulkOrders/confirm.twig', [
  75.               'form' => $form->createView(),
  76.               'Page' => $this->pageRepository->getPageByRoute('contact_bulk_orders_confirm'),
  77.           ]);
  78.         case 'complete':
  79.           $data $form->getData();
  80.           $event = new EventArgs(
  81.             [
  82.             'form' => $form,
  83.             'data' => $data,
  84.             ], $request
  85.           );
  86.           $this->eventDispatcher->dispatch($eventEccubeEvents::FRONT_CONTACT_INDEX_COMPLETE);
  87.           $data $event->getArgument('data');
  88.           // メール送信
  89.           $this->mailService->sendContactBulkOrdersMail($data);
  90.           return $this->redirect($this->generateUrl('contact_bulk_orders_complete'));
  91.       }
  92.     }
  93.     return [
  94.       'form' => $form->createView(),
  95.     ];
  96.   }
  97.   /**
  98.    * お問い合わせ完了画面.
  99.    *
  100.    * @Route("/contact_bulk_orders/complete", name="contact_bulk_orders_complete", methods={"GET"})
  101.    * @Template("ContactBulkOrders/complete.twig")
  102.    */
  103.   public function complete() {
  104.     return [];
  105.   }
  106. }