/**
* 商品一覧画面にカテゴリコンテンツを表示する.
*
* @param TemplateEvent $event
*/
public function onRenderProductList(TemplateEvent $event)
{
log_info('CategoryContent Product/list.twig start');
$parameters = $event->getParameters();
// カテゴリIDがない場合、レンダリングしない
if (!$parameters['Category']) {
return;
}
// 登録がない、もしくは空で登録されている場合、レンダリングをしない
$Category = $parameters['Category'];
$CategoryContent = $this->app['eccube.plugin.category_content.repository.category_content']->find($Category->getId());
if (!$CategoryContent || $CategoryContent->getContent() == '') {
return;
}
// twigコードにカテゴリコンテンツを挿入
$snipet = $this->app['twig']->getLoader()->getSource('CategoryContent/Resource/template/default/category_content.twig');
$sourceOrigin = $event->getSource();
$search = self::CATEGORY_CONTENT_TAG;
if (strpos($sourceOrigin, $search)) {
// タグの位置に挿入する場合
log_info('Render category content with ', array('CATEGORY_CONTENT_TAG' => $search));
$replace = $search . $snipet;
} else {
// Elementを探して挿入する場合
$search = '<div id="result_info_box"';
$replace = $snipet . $search;
}
$source = str_replace($search, $replace, $sourceOrigin);
$event->setSource($source);
// twigパラメータにカテゴリコンテンツを追加
$parameters['PluginCategoryContent'] = $CategoryContent;
$event->setParameters($parameters);
log_info('CategoryContent Product/list.twig end');
}