app/Customize/Controller/InquiryController.php line 50

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