<?php
namespace Customize\Controller\Block;
use Eccube\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
function convertToJapaneseEra($year) {
if ($year >= 2019) {
// 令和 (2019年5月1日から)
$eraName = '令和';
$eraYear = $year - 2018; // 2019年が令和1年
} elseif ($year >= 1989) {
// 平成 (1989年1月8日から)
$eraName = '平成';
$eraYear = $year - 1988; // 1989年が平成1年
} elseif ($year >= 1926) {
// 昭和 (1926年12月25日から)
$eraName = '昭和';
$eraYear = $year - 1925; // 1926年が昭和1年
} elseif ($year >= 1912) {
// 大正 (1912年7月30日から)
$eraName = '大正';
$eraYear = $year - 1911; // 1912年が大正1年
} elseif ($year >= 1868) {
// 明治 (1868年1月25日から)
$eraName = '明治';
$eraYear = $year - 1867; // 1868年が明治1年
} else {
// 明治以前の場合
return "明治以前";
}
// 和暦の1年目は「元年」と表記する
return $eraName . ($eraYear === 1 ? '元年' : $eraYear . '年');
}
class ZenEventController extends AbstractController
{
/**
* @var EntityManagerInterface
*/
protected $entityManager;
public function __construct(EntityManagerInterface $entityManager)
{
$this->entityManager = $entityManager;
}
/**
* @Route("/block/zen_event", name="block_zen_event")
* @Template("user_data/zen_event.twig")
*/
public function index(Request $request, SessionInterface $session)
{
// SQLクエリを実行してデータを取得
$connection = $this->entityManager->getConnection();
$sql = 'SELECT * ';
$sql .= 'FROM `blb_events` ';
$sql .= 'WHERE `view` = 1 ';
$sql .= 'AND CURDATE() BETWEEN `ss_date` AND `ee_date` ';
$sql .= 'ORDER BY `s_date` ASC';
$stmt = $connection->prepare($sql);
$result = $stmt->executeQuery();
$events = $result->fetchAllAssociative();
for ($i = 0; $i < count($events); $i++) {
$events[$i]['ym'] = convertToJapaneseEra(substr($events[$i]['s_date'], 0, 4));
if (file_exists('up_images/events/' . $events[$i]['id'] . '/1.jpg')) {
$events[$i]['image'] = '../up_images/events/' . $events[$i]['id'] . '/1.jpg';
} else {
$events[$i]['image'] = '';
}
}
// テンプレートにデータを渡してレンダリング
return $this->render('Block/zen_event.twig', [
'Events' => $events,
]);
}
}