<?php
/*
* Plugin Name : SearchPlus
*
* Copyright (C) BraTech Co., Ltd. All Rights Reserved.
* http://www.bratech.co.jp/
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Plugin\SearchPlus42\Event;
use Doctrine\ORM\EntityManagerInterface;
use Eccube\Event\TemplateEvent;
use Plugin\SearchPlus42\Service\SearchPlusService;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class AdminProductEvent implements EventSubscriberInterface
{
private $entityManager;
private $searchPlusService;
public function __construct(
EntityManagerInterface $entityManager,
SearchPlusService $searchPlusService
)
{
$this->entityManager = $entityManager;
$this->searchPlusService = $searchPlusService;
}
/**
* @return array
*/
public static function getSubscribedEvents()
{
return [
'@admin/Product/index.twig' => 'onTemplateAdminProduct',
'@ProductPlus42/admin/Product/edit.twig' => 'onTemplateAdminProductItemEdit',
];
}
public function onTemplateAdminProduct(TemplateEvent $event)
{
if($this->searchPlusService->checkInstallPlugin('ProductPlus42')){
$productItemRepository = $this->entityManager->getRepository('Plugin\ProductPlus42\Entity\ProductItem');
$ProductItems = $productItemRepository->findAll();
$parameters = $event->getParameters();
$parameters['ProductItems'] = $ProductItems;
$event->setParameters($parameters);
}
$twig = '@SearchPlus42/admin/ext_search.twig';
$event->addSnippet($twig);
$js = '@SearchPlus42/admin/ext_search.js';
$event->addAsset($js);
}
public function onTemplateAdminProductItemEdit(TemplateEvent $event)
{
if(method_exists('Plugin\ProductPlus42\Entity\ProductItem', 'setSearchFlg')){
$twig = '@SearchPlus42/admin/Product/ext_edit.twig';
$event->addSnippet($twig);
$js = '@SearchPlus42/admin/Product/ext_edit.js';
$event->addAsset($js);
}
}
}