<?php
/*
* This file is part of EC-CUBE
*
* Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
*
* http://www.ec-cube.co.jp/
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Customize\Controller;
use Customize\Entity\Master\Genre;
use Customize\Entity\Master\Status;
use Customize\Repository\FaqCategoryRepository;
use Customize\Repository\FaqRepository;
use Customize\Repository\Master\NewsCategoryRepository;
use Customize\Repository\ProductRepository;
use Eccube\Controller\AbstractController;
use Eccube\Repository\NewsRepository;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\Routing\Annotation\Route;
use Knp\Component\Pager\PaginatorInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
class TopController extends AbstractController
{
/**
* @var FaqRepository
*/
protected $faqRepository;
/**
* @var FaqCategoryRepository
*/
protected $faqCategoryRepository;
/**
* @var NewsRepository
*/
protected $newsRepository;
protected $newsCategoryRepository;
/**
* @var ProductRepository
*/
protected $productRepository;
public function __construct(
FaqRepository $faqRepository,
FaqCategoryRepository $faqCategoryRepository,
NewsRepository $newsRepository,
NewsCategoryRepository $newsCategoryRepository,
ProductRepository $productRepository,
) {
$this->faqRepository = $faqRepository;
$this->newsRepository = $newsRepository;
$this->faqCategoryRepository = $faqCategoryRepository;
$this->newsCategoryRepository = $newsCategoryRepository;
$this->productRepository = $productRepository;
}
/**
* @Route("/rock/", name="rock_page", methods={"GET"})
* @Template("Page/rock.twig")
*/
public function rock()
{
$newReleaseProducts = $this->productRepository->getGroupProductListByCategoryIdAndStatusId(1, 1, 4);
$preOrderProducts = $this->productRepository->getGroupProductListByCategoryIdAndStatusId(1, 5, 8);
return [
'newReleaseProducts' => $newReleaseProducts,
'preOrderProducts' => $preOrderProducts,
];
}
/**
* @Route("/rocktv/", name="rocktv_page", methods={"GET"})
* @Template("Page/rocktv.twig")
*/
public function rocktv(Request $request, PaginatorInterface $paginator)
{
if ($request->get('category_id')) {
$categoryId = $request->get('category_id');
$newsCategory = $this->newsCategoryRepository->find($categoryId);
if (!$newsCategory) {
throw new NotFoundHttpException();
}
$qb = $this->newsRepository->getQueryBuilderAll()
->andWhere('n.NewsCategory = :newsCategory')
->setParameter('newsCategory', $newsCategory);
} else {
$qb = $this->newsRepository->getQueryBuilderAll();
}
$page_no = $request->get('pageno') ?? 1;
$pageCount = $this->eccubeConfig['eccube_default_page_count'];
$pagination = $paginator->paginate(
$qb,
$page_no,
$pageCount
);
return [
'pagination' => $pagination,
'page_no' => $page_no,
'page_count' => $pageCount,
];
}
/**
* @Route("/goods/", name="goods_page", methods={"GET"})
* @Template("Page/goods.twig")
*/
public function goods()
{
$apparelProducts = $this->productRepository->getProductListByGenreId(Genre::APPAREL, 8);
$goodsProducts = $this->productRepository->getProductListByStatusId(Status::GOODS, 4);
$wardrecordDirectLimitedProducts = $this->productRepository->getProductListByGenreId(Genre::WARD_RECORDS_DIRECT_LIMITED, 8);
$booksProducts = $this->productRepository->getProductListByStatusId(Status::BOOKS, 4);
return [
'apparelProducts' => $apparelProducts,
'goodsProducts' => $goodsProducts,
'wardrecordDirectLimitedProducts' => $wardrecordDirectLimitedProducts,
'booksProducts' => $booksProducts,
];
}
/**
* @Route("/page/liveartist/", name="liveartist_page", methods={"GET"})
* @Template("Page/liveartist.twig")
*/
public function liveartist()
{
return [];
}
/**
* よくある質問.
*
* @Route("/faq", name="faq_page", methods={"GET"})
* @Template("Page/faq.twig")
*/
public function faq()
{
$faqCategories = $this->faqCategoryRepository->findAll();
return [
'faqCategories' => $faqCategories,
];
}
/**
* @Route("/guide_order/", name="guide_order", methods={"GET"})
* @Template("Page/guide_order.twig")
*/
public function guideOrder()
{
return [];
}
/**
* @Route("/page/shopping_guide", name="shopping_guide", methods={"GET"})
* @Template("Page/shopping_guide.twig")
*/
public function shoppingGuide()
{
return [];
}
/**
* @Route("/page/information/kinetv", name="information_kinetv", methods={"GET"})
* @Template("Page/information_kinetv.twig")
*/
public function informationKinetv()
{
$data = [];
return $data;
}
/**
* @Route("/page/information", name="information", methods={"GET"})
* @Template("Page/information.twig")
*/
public function information()
{
$data = [];
return $data;
}
/**
* @Route("/page/ms_rocktv", name="ms_rocktv", methods={"GET"})
* @Template("Page/ms_rocktv.twig")
*/
public function msRocktv()
{
return [];
}
/**
* @Route("/page/2024-2025sale", name="sale2025_2024_page", methods={"GET"})
* @Template("Page/sale2025_2024.twig")
*/
public function sale2025()
{
$data = [];
return $data;
}
/**
* @Route("/page/form/recruit", name="recruit", methods={"GET"})
* @Template("Page/recruit.twig")
*/
public function recruit()
{
$data = [];
return $data;
}
/**
* @Route("/page/lacrymachristi", name="lacrymachristi", methods={"GET"})
* @Template("Page/lacrymachristi.twig")
*/
public function lacrymachristi()
{
return [];
}
/**
* @Route("/whitesnake", name="whitesnake", methods={"GET"})
* @Template("whitesnake.twig")
*/
public function whitesnake()
{
return [];
}
/**
* @Route("/the_dead_daisies", name="the_dead_daisies", methods={"GET"})
* @Template("the_dead_daisies.twig")
*/
public function theDeadDaisies()
{
return [];
}
/**
* @Route("/destinia", name="destinia", methods={"GET"})
* @Template("destinia.twig")
*/
public function destinia()
{
return [];
}
/**
* @Route("page/special/ms_my_years_with_ufo/instore", name="special_ms_my_years_with_ufo_instore", methods={"GET"})
* @Template("special.twig")
*/
public function special()
{
return [];
}
/**
* @Route("/page/lacrymachristi_cat/hiro", name="lacrymachristi_cat_hiro", methods={"GET"})
* @Template("Page/lacrymachristi_cat_hiro.twig")
*/
public function lacrymachristiCatHiro()
{
return [];
}
/**
* @Route("/page/lacrymachristi_cat/kojihiro", name="lacrymachristi_cat_kojihiro", methods={"GET"})
* @Template("Page/lacrymachristi_cat_kojihiro.twig")
*/
public function lacrymachristiCatKojihiro()
{
return [];
}
/**
* @Route("/page/lacrymachristi_cat/lacryma_christi", name="lacrymachristi_cat_lacryma_christi", methods={"GET"})
* @Template("Page/lacrymachristi_cat_lacryma_christi.twig")
*/
public function lacrymachristiCatLacrymaChristi()
{
return [];
}
/**
* @Route("/page/lacrymachristi_cat/libraian", name="lacrymachristi_cat_libraian", methods={"GET"})
* @Template("Page/lacrymachristi_cat_libraian.twig")
*/
public function lacrymachristiCatLibraian()
{
return [];
}
/**
* @Route("/page/lacrymachristi_cat/alvino_koji", name="lacrymachristi_cat_alvino_koji", methods={"GET"})
* @Template("Page/lacrymachristi_cat_alvino_koji.twig")
*/
public function lacrymachristiCatAlvinoKoji()
{
return [];
}
/**
* @Route("/page/lacrymachristi_cat/shuse_trick", name="lacrymachristi_cat_shuse_trick", methods={"GET"})
* @Template("Page/lacrymachristi_cat_shuse_trick.twig")
*/
public function lacrymachristiCatShuseTrick()
{
return [];
}
/**
* @Route("/page/lacrymachristi_cat/goods", name="lacrymachristi_cat_goods", methods={"GET"})
* @Template("Page/lacrymachristi_cat_goods.twig")
*/
public function lacrymachristiCatGoods()
{
return [];
}
/**
* @Route("/page/form/msrocktv", name="form_msrocktv", methods={"GET"})
* @Template("Page/form_msrocktv.twig")
*/
public function formMsrocktv()
{
return [];
}
/**
* @Route("/page/special/ms_my_years_with_ufo", name="special_ms_my_years_with_ufo", methods={"GET"})
* @Template("Page/special_ms_my_years_with_ufo.twig")
*/
public function specialMsMyYearsWithUfo()
{
return [];
}
}