<?php
/*
* This file is part of EC-CUBE
*
* Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
*
* http://www.ec-cube.co.jp/
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Plugin\Shiro8AddCart42;
use Eccube\Event\EccubeEvents;
use Eccube\Event\EventArgs;
use Eccube\Entity\Product;
use Eccube\Event\TemplateEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Doctrine\ORM\EntityManagerInterface;
use Twig\Environment;
class Shiro8AddCartEvent implements EventSubscriberInterface
{
/**
* @var EntityManagerInterface
*/
private $entityManager;
/**
* @var Environment
*/
private $twig;
/**
* Shiro8AddCartEvent constructor.
*
* @param EntityManagerInterface $entityManager
*/
public function __construct(
EntityManagerInterface $entityManager,
Environment $twig
) {
$this->entityManager = $entityManager;
$this->twig = $twig;
}
/**
* @return array
*/
public static function getSubscribedEvents()
{
return [
'@admin/Product/product.twig' => 'onRenderAdminProductEdit',
'@admin/Product/product_class.twig' => 'onRenderAdminProductClassEdit',
'@Shiro8Download42/admin/Product/product_class.twig' => 'onRenderAdminProductClassEdit',
];
}
/**
* @param TemplateEvent $event
*/
public function onRenderAdminProductEdit(TemplateEvent $event)
{
$parameters = $event->getParameters();
// twigコードにコンテンツを挿入
$snipet = $this->twig->getLoader()->getSourceContext('@Shiro8AddCart42/admin/Product/product.twig')->getCode();
$sourceOrigin = $event->getSource();
$source = str_replace('<div class="collapse show ec-cardCollapse" id="preview">', $snipet, $sourceOrigin);
$event->setSource($source);
}
/**
* @param TemplateEvent $event
*/
public function onRenderAdminProductClassEdit(TemplateEvent $event)
{
$parameters = $event->getParameters();
// twigコードにコンテンツを挿入
$snipet = $this->twig->getLoader()->getSourceContext('@Shiro8AddCart42/admin/Product/product_class.twig')->getCode();
$sourceOrigin = $event->getSource();
$source = str_replace('{{ form_widget(product_class_form.stock_unlimited) }}', $snipet, $sourceOrigin);
$event->setSource($source);
}
}