app/Plugin/Seminar42/Controller/SeminarController.php line 229

Open in your IDE?
  1. <?php
  2. namespace Plugin\Seminar42\Controller;
  3. use Eccube\Controller\AbstractController;
  4. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  5. use Symfony\Component\HttpFoundation\RedirectResponse;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Symfony\Component\HttpFoundation\Response;
  8. use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. use Eccube\Form\Type\AddCartType;
  11. use Eccube\Entity\Product;
  12. use Eccube\Repository\ProductRepository;
  13. use Eccube\Entity\Master\ProductStatus;
  14. /**
  15.  * Class CampaignController.
  16.  */
  17. class SeminarController extends AbstractController
  18. {
  19.     /**
  20.      * 商品ID
  21.      */
  22.     private $product_id 688;
  23.     /**
  24.      * @var ProductRepository
  25.      */
  26.     protected $productRepository;
  27.     public function __construct(
  28.         ProductRepository $productRepository
  29.     ) {
  30.         $this->productRepository $productRepository;
  31.     }
  32.     /**
  33.      * @Route("/seminar/2025", name="seminar_detail_2025")
  34.      * @Template("Seminar/2025.twig")
  35.      *
  36.      * @param Request $request
  37.      * @param Product $Product
  38.      *
  39.      * @return RedirectResponse|Response
  40.      */
  41.     public function detail2025(Request $request)
  42.     {
  43.         $Product $this->productRepository->find($this->product_id);
  44.         //
  45.         if (!$this->checkVisibility($Product)) {
  46.             throw new NotFoundHttpException();
  47.         }
  48.         //
  49.         $builder $this->formFactory->createNamedBuilder(
  50.             '',
  51.             AddCartType::class,
  52.             null,
  53.             [
  54.                 'product' => $Product,
  55.                 'id_add_product_id' => false,
  56.             ]
  57.         );
  58.         //
  59.         return [
  60.             'form' => $builder->getForm()->createView(),
  61.             'Product' => $Product,
  62.         ];
  63.     }
  64.     /**
  65.      * @Route("/seminar/2024", name="seminar_detail_2024")
  66.      *
  67.      * @param Request $request
  68.      * @param Product $Product
  69.      *
  70.      * @return RedirectResponse|Response
  71.      */
  72.     public function detail2024(Request $request)
  73.     {
  74.         return $this->render('Seminar/2024.twig', []);
  75.     }
  76.     /**
  77.      * @Route("/seminar/2023", name="seminar_detail_2023")
  78.      *
  79.      * @param Request $request
  80.      * @param Product $Product
  81.      *
  82.      * @return RedirectResponse|Response
  83.      */
  84.     public function detail2023(Request $request)
  85.     {
  86.         return $this->render('Seminar/2023.twig', []);
  87.     }
  88.     /**
  89.      * @Route("/seminar/2022", name="seminar_detail_2022")
  90.      *
  91.      * @param Request $request
  92.      * @param Product $Product
  93.      *
  94.      * @return RedirectResponse|Response
  95.      */
  96.     public function detail2022(Request $request)
  97.     {
  98.         return $this->render('Seminar/2022.twig', []);
  99.     }
  100.     /**
  101.      * @Route("/seminar/2021", name="seminar_detail_2021")
  102.      *
  103.      * @param Request $request
  104.      * @param Product $Product
  105.      *
  106.      * @return RedirectResponse|Response
  107.      */
  108.     public function detail2021(Request $request)
  109.     {
  110.         return $this->render('Seminar/2021.twig', []);
  111.     }
  112.     /**
  113.      * @Route("/seminar/2020", name="seminar_detail_2020")
  114.      *
  115.      * @param Request $request
  116.      * @param Product $Product
  117.      *
  118.      * @return RedirectResponse|Response
  119.      */
  120.     public function detail2020(Request $request)
  121.     {
  122.         return $this->render('Seminar/2020.twig', []);
  123.     }
  124.     /**
  125.      * @Route("/seminar/2019", name="seminar_detail_2019")
  126.      *
  127.      * @param Request $request
  128.      * @param Product $Product
  129.      *
  130.      * @return RedirectResponse|Response
  131.      */
  132.     public function detail2019(Request $request)
  133.     {
  134.         return $this->render('Seminar/2019.twig', []);
  135.     }
  136.     /**
  137.      * @Route("/seminar/2018", name="seminar_detail_2018")
  138.      *
  139.      * @param Request $request
  140.      * @param Product $Product
  141.      *
  142.      * @return RedirectResponse|Response
  143.      */
  144.     public function detail2018(Request $request)
  145.     {
  146.         return $this->render('Seminar/2018.twig', []);
  147.     }
  148.     /**
  149.      * @Route("/seminar/2017", name="seminar_detail_2017")
  150.      *
  151.      * @param Request $request
  152.      * @param Product $Product
  153.      *
  154.      * @return RedirectResponse|Response
  155.      */
  156.     public function detail2017(Request $request)
  157.     {
  158.         return $this->render('Seminar/2017.twig', []);
  159.     }
  160.     /**
  161.      * @Route("/seminar/2016", name="seminar_detail_2016")
  162.      *
  163.      * @param Request $request
  164.      * @param Product $Product
  165.      *
  166.      * @return RedirectResponse|Response
  167.      */
  168.     public function detail2016(Request $request)
  169.     {
  170.         return $this->render('Seminar/2016.twig', []);
  171.     }
  172.     /**
  173.      * @Route("/seminar", name="seminar_list")
  174.      *
  175.      * @param Request $request
  176.      * @param Product $Product
  177.      *
  178.      * @return RedirectResponse|Response
  179.      */
  180.     public function index(Request $request)
  181.     {
  182.         return $this->render('Seminar/list.twig', []);
  183.     }
  184.     /**
  185.      * 閲覧可能な商品かどうかを判定
  186.      *
  187.      * @param Product $Product
  188.      *
  189.      * @return boolean 閲覧可能な場合はtrue
  190.      */
  191.     protected function checkVisibility(Product $Product)
  192.     {
  193.         $is_admin $this->session->has('_security_admin');
  194.         // 管理ユーザの場合はステータスやオプションにかかわらず閲覧可能.
  195.         if (!$is_admin) {
  196.             // 在庫なし商品の非表示オプションが有効な場合.
  197.             // if ($this->BaseInfo->isOptionNostockHidden()) {
  198.             //     if (!$Product->getStockFind()) {
  199.             //         return false;
  200.             //     }
  201.             // }
  202.             // 公開ステータスでない商品は表示しない.
  203.             if ($Product->getStatus()->getId() !== ProductStatus::DISPLAY_SHOW) {
  204.                 return false;
  205.             }
  206.         }
  207.         return true;
  208.     }
  209.     /**
  210.      * お知らせ一覧画面.
  211.      *
  212.      * @Route("/seminar", name="seminar_list")
  213.      * @Template("Seminar/list.twig")
  214.      */
  215.     public function list(Request $request)
  216.     {
  217.     }
  218. }