app/Plugin/Topics42/Controller/TopicsController.php line 73

Open in your IDE?
  1. <?php
  2. namespace Plugin\Topics42\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\Routing\Annotation\Route;
  9. use Eccube\Entity\News;
  10. use Eccube\Event\EccubeEvents;
  11. use Eccube\Event\EventArgs;
  12. use Plugin\Topics42\Repository\TopicsRepository;
  13. use Knp\Bundle\PaginatorBundle\Pagination\SlidingPagination;
  14. use Knp\Component\Pager\PaginatorInterface;
  15. use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
  16. /**
  17.  * Class CampaignController.
  18.  */
  19. class TopicsController extends AbstractController
  20. {
  21.    /**
  22.      * @var TopicsRepository
  23.      */
  24.     protected $topicsRepository;
  25.     /**
  26.      * NewsController constructor.
  27.      *
  28.      * @param TopicsRepository $topicsRepository
  29.      */
  30.     public function __construct(TopicsRepository $topicsRepository)
  31.     {
  32.         $this->topicsRepository $topicsRepository;
  33.     }
  34.     /**
  35.      * お知らせ一覧画面.
  36.      *
  37.      * @Route("/topics", name="topics42_index", methods={"GET"})
  38.      * @Template("Topics42/index.twig")
  39.      */
  40.     public function Topics(Request $requestPaginatorInterface $paginator)
  41.     {
  42.         // handleRequestは空のqueryの場合は無視するため
  43.         if ($request->getMethod() === 'GET') {
  44.             $request->query->set('pageno'$request->query->get('pageno'''));
  45.         }
  46.         $qb $this->topicsRepository->getDispNewsAll();
  47.         /** @var SlidingPagination $pagination */
  48.         $pagination $paginator->paginate(
  49.             $qb,
  50.             !empty($request->query->get('pageno')) ? $request->query->get('pageno') : 1,
  51.         );
  52.         return [
  53.             'pagination' => $pagination,
  54.         ];
  55.     }
  56.     /**
  57.      * お知らせ詳細画面.
  58.      *
  59.      * @Route("/topics/detail/{id}", name="topics42_detail", requirements={"id":"\d+"})
  60.      * @Template("Topics42/detail.twig")
  61.      */
  62.     public function Detail(Request $request$id=null)
  63.     {
  64.         $News $this->topicsRepository->find($id);
  65.         //404設定
  66.         if(!$News || $News->isVisible() == false){
  67.             throw new NotFoundHttpException();
  68.         }
  69.         return [
  70.             'news' => $News,
  71.         ];
  72.     }
  73. }