<?php
namespace Plugin\ApexOrderItemOption\Event;
use Eccube\Event\TemplateEvent;
use Plugin\ApexOrderItemOption\Entity\OptionCategory;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class CartEvent implements EventSubscriberInterface
{
/**
* @return array
*/
public static function getSubscribedEvents()
{
return [
'Cart/index.twig' => 'onTemplateCart',
];
}
public function onTemplateCart(TemplateEvent $event)
{
$source = $event->getSource();
if(preg_match("/url\('cart\_handle\_item'\s*,\s*\{'operation'\s*:\s*'down'\s*,\s*'productClassId'\s*:\s*ProductClass\.id/",$source, $result)){
$search = $result[0];
$snipet = "url('productoption_cart_handle_item', {'operation': 'down', 'cartItemId': CartItem.id";
$replace = $snipet;
$source = str_replace($search, $replace, $source);
}
if(preg_match("/url\('cart\_handle\_item'\s*,\s*\{'operation'\s*:\s*'up'\s*,\s*'productClassId'\s*:\s*ProductClass\.id/",$source, $result)){
$search = $result[0];
$snipet = "url('productoption_cart_handle_item', {'operation': 'up', 'cartItemId': CartItem.id";
$replace = $snipet;
$source = str_replace($search, $replace, $source);
}
if(preg_match("/url\('cart\_handle\_item',\s\{'operation'\:\s'remove',\s'productClassId'\:\sProductClass\.id/",$source, $result)){
$search = $result[0];
$snipet = "url('productoption_cart_handle_item', {'operation': 'remove', 'cartItemId': CartItem.id";
$replace = $snipet;
$source = str_replace($search, $replace, $source);
}
if(preg_match("/\<\/div\>[\n|\r\n\\r]\s*<div\sclass\=\"ec\-cartRow\_\_unitPrice\"\>/",$source, $result)){
$search = $result[0];
$replace = "{{ include('@ApexOrderItemOption/default/Cart/cart_option.twig') }}" . $search;
$source = str_replace($search, $replace, $source);
}
$event->setSource($source);
}
}