<?php
namespace Plugin\PiaManageRenovation\EventSubscriber;
use Eccube\Event\TemplateEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class AdminHeaderEventSubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents()
{
return [
'@admin/default_frame.twig' => 'onAdminDefaultFrame',
];
}
public function onAdminDefaultFrame(TemplateEvent $event)
{
// ヘッダー検索テンプレートを読み込み
$searchTemplate = file_get_contents(__DIR__ . '/../Resource/template/admin/header_search.twig');
// JavaScriptを直接埋め込み
$js = file_get_contents(__DIR__ . '/../Resource/assets/js/header_search.js');
$assets = <<<EOT
<script>
{$js}
</script>
EOT;
// アセットをheadタグ内に挿入
$source = $event->getSource();
$source = str_replace('</head>', $assets . "\n</head>", $source);
// 検索フォームをショップタイトルリンクの後に挿入
$pattern = '/(<a class="c-headerBar__shopTitle"[^>]*>.*?<\/a>)/s';
$replacement = '$1' . "\n" . $searchTemplate;
$source = preg_replace($pattern, $replacement, $source);
$event->setSource($source);
}
}