app/Customize/Controller/Block/ZenEventController.php line 42

Open in your IDE?
  1. <?php
  2. namespace Customize\Controller\Block;
  3. use Eccube\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Request;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  7. use Doctrine\ORM\EntityManagerInterface;
  8. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  9. function convertToJapaneseEra($year) {
  10.     if ($year >= 2019) {
  11.         // 令和 (2019年5月1日から)
  12.         $eraName '令和';
  13.         $eraYear $year 2018;  // 2019年が令和1年
  14.     } elseif ($year >= 1989) {
  15.         // 平成 (1989年1月8日から)
  16.         $eraName '平成';
  17.         $eraYear $year 1988;  // 1989年が平成1年
  18.     } elseif ($year >= 1926) {
  19.         // 昭和 (1926年12月25日から)
  20.         $eraName '昭和';
  21.         $eraYear $year 1925;  // 1926年が昭和1年
  22.     } elseif ($year >= 1912) {
  23.         // 大正 (1912年7月30日から)
  24.         $eraName '大正';
  25.         $eraYear $year 1911;  // 1912年が大正1年
  26.     } elseif ($year >= 1868) {
  27.         // 明治 (1868年1月25日から)
  28.         $eraName '明治';
  29.         $eraYear $year 1867;  // 1868年が明治1年
  30.     } else {
  31.         // 明治以前の場合
  32.         return "明治以前";
  33.     }
  34.     // 和暦の1年目は「元年」と表記する
  35.     return $eraName . ($eraYear === '元年' $eraYear '年');
  36. }
  37. class ZenEventController extends AbstractController
  38. {
  39.     /**
  40.      * @var EntityManagerInterface
  41.      */
  42.     protected $entityManager;
  43.     public function __construct(EntityManagerInterface $entityManager)
  44.     {
  45.         $this->entityManager $entityManager;
  46.     }
  47.     /**
  48.      * @Route("/block/zen_event", name="block_zen_event")
  49.      * @Template("user_data/zen_event.twig")
  50.      */
  51.     public function index(Request $requestSessionInterface $session)
  52.     {
  53.         // SQLクエリを実行してデータを取得
  54.         $connection $this->entityManager->getConnection();
  55.         $sql 'SELECT * ';
  56.         $sql .= 'FROM `blb_events` ';
  57.         $sql .= 'WHERE `view` = 1 ';
  58.         $sql .= 'AND CURDATE() BETWEEN `ss_date` AND `ee_date` ';
  59.         $sql .= 'ORDER BY `s_date` ASC';
  60.         $stmt $connection->prepare($sql);
  61.         $result $stmt->executeQuery();
  62.         $events $result->fetchAllAssociative();
  63.         for ($i 0$i count($events); $i++) {
  64.             $events[$i]['ym'] = convertToJapaneseEra(substr($events[$i]['s_date'], 04));
  65.             if (file_exists('up_images/events/' $events[$i]['id'] . '/1.jpg')) {
  66.                 $events[$i]['image'] = '../up_images/events/' $events[$i]['id'] . '/1.jpg';
  67.             } else {
  68.                 $events[$i]['image'] = '';
  69.             }
  70.         }
  71.         // テンプレートにデータを渡してレンダリング
  72.         return $this->render('Block/zen_event.twig', [
  73.             'Events' => $events,
  74.         ]);
  75.     }
  76. }