app/Plugin/NewsPageSelfReliance/EventListener/NpsrControllerListener.php line 45

Open in your IDE?
  1. <?php
  2. namespace Plugin\NewsPageSelfReliance\EventListener;
  3. use Eccube\Request\Context;
  4. use Eccube\Repository\NewsRepository;
  5. use Eccube\Event\EventArgs;
  6. use Eccube\Common\EccubeConfig;
  7. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  8. use Symfony\Component\HttpFoundation\RequestStack;
  9. use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
  10. class NpsrControllerListener implements EventSubscriberInterface
  11. {
  12.     /**
  13.      * @var RequestStack
  14.      */
  15.     protected $requestStack;
  16.     /**
  17.      * @var Context
  18.      */
  19.     protected $requestContext;
  20.     /**
  21.      * @var NewsRepository
  22.      */
  23.     protected $newsRepository;
  24.     /**
  25.      * @var EccubeConfig
  26.      */
  27.     private $eccubeConfig;
  28.     public function __construct(RequestStack $requestStackContext $requestContextNewsRepository $newsRepository EccubeConfig $eccubeConfig)
  29.     {
  30.         $this->requestStack $requestStack;
  31.         $this->requestContext $requestContext;
  32.         $this->newsRepository $newsRepository;
  33.         $this->eccubeConfig $eccubeConfig;
  34.         
  35.     }
  36.     public function saveNewsThumbnail(EventArgs $event)
  37.     {
  38.         $request $event->getRequest();
  39.         $form $event->getArgument('form');
  40.         $News $event->getArgument('News');
  41.         $np_thumbnail_data $form->get('np_thumbnail_data')->getData();
  42.         if( $np_thumbnail_data !== null ){
  43.             $filename time() . '_' $np_thumbnail_data->getClientOriginalName();
  44.             $file_save_dir $this->eccubeConfig['eccube_save_image_dir'].'/';
  45.             try {
  46.                 $np_thumbnail_data->move$file_save_dir $filename );
  47.             } catch (FileException $e) {
  48.                 log_info('[NPSR]画像保存時にエラー発生', [$e]);
  49.             }
  50.             $News->setNpThumbnailUrl$filename );
  51.             $this->newsRepository->save$News );
  52.         }
  53.     }
  54.     public static function getSubscribedEvents()
  55.     {
  56.         return [
  57.             'admin.content.news.edit.complete' => ['saveNewsThumbnail'512],
  58.         ];
  59.     }
  60. }