<?php
namespace Plugin\PiaBlog\Controller;
use Eccube\Controller\AbstractController;
use Eccube\Repository\NewsRepository;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
class IndexController extends AbstractController {
/**
* @var NewsRepository
*/
protected $newsRepository;
/**
* NewsController constructor.
*
* @param NewsRepository $newsRepository
*/
public function __construct(NewsRepository $newsRepository) {
$this->newsRepository = $newsRepository;
}
/**
* @Route("/blog_tweet/", name="plugin_pia_blog_tweet")
* @Template("@PiaBlog/default/tweet.twig")
*/
public function tweet(Request $request) {
$builder = $this->createFormBuilder();
$form = $builder->getForm();
$category_id = "3";
return [
'form' => $form->createView(),
'category_id' => $category_id,
];
}
/**
* @Route("/blog_detail/", name="plugin_pia_blog_detail")
* @Template("@PiaBlog/default/detail.twig")
*/
public function detail(Request $request) {
$id = $request->query->get("id");
$row = $this->newsRepository->find($id);
$disp_flg = $row->getDispFlg();
$disp_datetime = $row->getPublishDate();
$now_date = date("Y-m-d H:i:s");
if(empty($row) or $disp_flg != "1" or (strtotime($disp_datetime->format("Y-m-d H:i:s")) > strtotime($now_date))){
throw new NotFoundHttpException();
}
$rows = $this->newsRepository->findBy(array(), array('rank' => 'DESC'));
$htPage = array();
$htTitle = array();
foreach($rows as $page){
$htPage[] = $page->getId();
$htTitle[] = $page->getTitle();
}
$page_data = array(
"next" => "",
"prev" => "",
"next_title" => "",
"prev_title" => "",
);
$page_id = $row->getId();
foreach($htPage as $k => $v){
if($v == $page_id){
$prev = $k + 1;
$page_data["prev"] = empty($htPage[$prev]) ? "" : $htPage[$prev];
$page_data["prev_title"] = empty($htTitle[$prev]) ? "" : $htTitle[$prev];
$next = $k - 1;
$page_data["next"] = empty($htPage[$next]) ? "" : $htPage[$next];
$page_data["next_title"] = empty($htTitle[$next]) ? "" : $htTitle[$next];
}
}
$category_id = $row->getNewsCategoryId();
$builder = $this->createFormBuilder();
$form = $builder->getForm();
return [
"row" => $row,
"page_data" => $page_data,
"form" => $form,
"category_id" => $category_id,
];
}
/**
* @Route("/blog_news/", name="plugin_pia_blog_news")
* @Template("@PiaBlog/default/news.twig")
*/
public function news(Request $request) {
$builder = $this->createFormBuilder();
$form = $builder->getForm();
$category_id = "1";
$rows = $this->newsRepository->getList($category_id);
return [
'form' => $form->createView(),
'category_id' => $category_id,
'rows' => $rows,
'htImg' => $this->_getHashImg($rows),
];
}
/**
* @Route("/blog_products/", name="plugin_pia_blog_products")
* @Template("@PiaBlog/default/news.twig")
*/
public function products(Request $request) {
$builder = $this->createFormBuilder();
$form = $builder->getForm();
$category_id = "2";
$rows = $this->newsRepository->getList($category_id);
return [
'form' => $form->createView(),
'category_id' => $category_id,
'rows' => $rows,
'htImg' => $this->_getHashImg($rows),
];
}
/**
* @Route("/blog_kingsbirthday/", name="plugin_pia_blog_kingsbirthday")
* @Template("@PiaBlog/default/news.twig")
*/
public function kingsbirthday(Request $request) {
$builder = $this->createFormBuilder();
$form = $builder->getForm();
$category_id = "4";
$rows = $this->newsRepository->getList($category_id);
return [
'form' => $form->createView(),
'category_id' => $category_id,
'rows' => $rows,
'htImg' => $this->_getHashImg($rows),
];
}
/**
* @Route("/blog_staff/", name="plugin_pia_blog_staff")
* @Template("@PiaBlog/default/news.twig")
*/
public function staff(Request $request) {
$builder = $this->createFormBuilder();
$form = $builder->getForm();
$category_id = "5";
$rows = $this->newsRepository->getList($category_id);
return [
'form' => $form->createView(),
'category_id' => $category_id,
'rows' => $rows,
'htImg' => $this->_getHashImg($rows),
];
}
/**
* @Route("/blog_event/", name="plugin_pia_blog_event")
* @Template("@PiaBlog/default/news.twig")
*/
public function event(Request $request) {
$builder = $this->createFormBuilder();
$form = $builder->getForm();
$category_id = "6";
$rows = $this->newsRepository->getList($category_id);
return [
'form' => $form->createView(),
'category_id' => $category_id,
'rows' => $rows,
'htImg' => $this->_getHashImg($rows),
];
}
/**
* 画像ハッシュ一覧
* @param array $rows
* @return hash
*/
private function _getHashImg($rows){
$htImg = array();
if(!empty($rows)){
foreach($rows as $row){
$id = $row->getId();
$pattern = '/<img.*?src\s*=\s*[\"|\'](.*?)[\"|\'].*?>/i';
$images = array();
preg_match( $pattern, $row->getDescription(), $images );
$htImg[$id] = empty($images[1]) ? "" : $images[1];
}
}
return $htImg;
}
}