app/Customize/Controller/Block/ZenNewsController.php line 41

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 url2link($body$link_title null)
  10. {
  11.     $pattern '/(?<!href=")https?:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:@&=+$,%#]+/';
  12.     $body preg_replace_callback($pattern, function ($matches) use ($link_title) {
  13.         $link_title $link_title ?: $matches[0];
  14.         return '<a href="' $matches[0] . '" target="_blank">' $link_title '</a>';
  15.     }, $body);
  16.     return $body;
  17. }
  18. class ZenNewsController extends AbstractController
  19. {
  20.     /**
  21.      * @var EntityManagerInterface
  22.      */
  23.     protected $entityManager;
  24.     public function __construct(EntityManagerInterface $entityManager)
  25.     {
  26.         $this->entityManager $entityManager;
  27.     }
  28.     /**
  29.      * @Route("/block/zen_news", name="block_zen_news")
  30.      * @Template("user_data/zen_news.twig")
  31.      */
  32.     public function index(Request $requestSessionInterface $session)
  33.     {
  34.         $id $session->get('blb_id2''0'); // 'default_value'は値がない場合のデフォルト
  35.         $category '';
  36.         // SQLクエリを実行してデータを取得
  37.         $connection $this->entityManager->getConnection();
  38.         $sql 'SELECT * FROM `blb_information` WHERE `view`=1 AND `id`=' $id;
  39.         $stmt $connection->prepare($sql);
  40.         $result $stmt->executeQuery();
  41.         $newsList $result->fetchAllAssociative();
  42.         $news = array();
  43.         if (count($newsList)) {
  44.             $newsList[0]['text1'] = nl2br(url2link($newsList[0]['text1']));
  45.             if (file_exists('up_images/news/' $newsList[0]['id'] . '/1.jpg')) {
  46.                 $newsList[0]['image'] = '../up_images/news/' $newsList[0]['id'] . '/1.jpg';
  47.             } else {
  48.                 $newsList[0]['image'] = '';
  49.             }
  50.             $news $newsList[0];
  51.             $category $news['category'];
  52.         }
  53.         // テンプレートにデータを渡してレンダリング
  54.         /*
  55.         return [
  56.             'NewsList' => $newsList
  57.         ];
  58.         */
  59.         return $this->render('Block/zen_news.twig', [
  60.             'Category' => $category,
  61.             'News' => $news,
  62.         ]);
  63.     }
  64. }