<?php
use Twig\Environment;
use Twig\Error\LoaderError;
use Twig\Error\RuntimeError;
use Twig\Extension\SandboxExtension;
use Twig\Markup;
use Twig\Sandbox\SecurityError;
use Twig\Sandbox\SecurityNotAllowedTagError;
use Twig\Sandbox\SecurityNotAllowedFilterError;
use Twig\Sandbox\SecurityNotAllowedFunctionError;
use Twig\Source;
use Twig\Template;
/* Product/detail.twig */
class __TwigTemplate_620732fafbed4b930102b2a348c443fa extends \Eccube\Twig\Template
{
private $source;
private $macros = [];
public function __construct(Environment $env)
{
parent::__construct($env);
$this->source = $this->getSourceContext();
$this->blocks = [
'stylesheet' => [$this, 'block_stylesheet'],
'javascript' => [$this, 'block_javascript'],
'main' => [$this, 'block_main'],
];
$this->sandbox = $this->env->getExtension('\Twig\Extension\SandboxExtension');
$this->checkSecurity();
}
protected function doGetParent(array $context)
{
// line 1
return "default_frame.twig";
}
protected function doDisplay(array $context, array $blocks = [])
{
$macros = $this->macros;
$__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "Product/detail.twig"));
$__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "Product/detail.twig"));
// line 3
$context["body_class"] = "product_page";
// line 1
$this->parent = $this->loadTemplate("default_frame.twig", "Product/detail.twig", 1);
$this->parent->display($context, array_merge($this->blocks, $blocks));
$__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
}
// line 5
public function block_stylesheet($context, array $blocks = [])
{
$macros = $this->macros;
$__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "stylesheet"));
$__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "stylesheet"));
// line 6
echo " <style>
.slick-slider {
margin-bottom: 30px;
}
.slick-dots {
position: absolute;
bottom: -45px;
display: block;
width: 100%;
padding: 0;
list-style: none;
text-align: center;
}
.slick-dots li {
position: relative;
display: inline-block;
width: 20px;
height: 20px;
margin: 0 5px;
padding: 0;
cursor: pointer;
}
.slick-dots li button {
font-size: 0;
line-height: 0;
display: block;
width: 20px;
height: 20px;
padding: 5px;
cursor: pointer;
color: transparent;
border: 0;
outline: none;
background: transparent;
}
.slick-dots li button:hover,
.slick-dots li button:focus {
outline: none;
}
.slick-dots li button:hover:before,
.slick-dots li button:focus:before {
opacity: 1;
}
.slick-dots li button:before {
content: \" \";
line-height: 20px;
position: absolute;
top: 0;
left: 0;
width: 12px;
height: 12px;
text-align: center;
opacity: .25;
background-color: #719933;
border-radius: 50%;
}
.slick-dots li.slick-active button:before {
opacity: .75;
background-color: #719933;
}
.slick-dots li button.thumbnail img {
width: 0;
height: 0;
}
.other_recommend_area .slick-prev:before {
content: '<';
color: green;
font-weight: bold;
}
.other_recommend_area .slick-next:before {
content: '>';
color: green;
font-weight: bold;
}
.other_recommend_area .slick-slide{
padding: 0 8px 0 0;
}
.ec-productRole .ec-productRole__description{
margin-top: 20px;
font-size: 14px;
}
.ec-productRole .ec-productRole__description .sub_area:not(:first-child){
margin-top: 20px;
}
</style>
";
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
$__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
}
// line 103
public function block_javascript($context, array $blocks = [])
{
$macros = $this->macros;
$__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "javascript"));
$__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "javascript"));
// line 104
echo " <script>
eccube.classCategories = ";
// line 106
echo $this->extensions['Eccube\Twig\Extension\EccubeExtension']->getClassCategoriesAsJson($this->sandbox->ensureToStringAllowed((isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 106, $this->source); })()), 106, $this->source));
echo ";
// 規格2に選択肢を割り当てる。
function fnSetClassCategories(form, classcat_id2_selected) {
var \$form = \$(form);
var product_id = \$form.find('input[name=product_id]').val();
var \$sele1 = \$form.find('select[name=classcategory_id1]');
var \$sele2 = \$form.find('select[name=classcategory_id2]');
eccube.setClassCategories(\$form, product_id, \$sele1, \$sele2, classcat_id2_selected);
}
";
// line 117
if (twig_get_attribute($this->env, $this->source, ($context["form"] ?? null), "classcategory_id2", [], "any", true, true, true, 117)) {
// line 118
echo " fnSetClassCategories(
\$('#form1'), ";
// line 119
echo json_encode($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["form"]) || array_key_exists("form", $context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.', 119, $this->source); })()), "classcategory_id2", [], "any", false, false, true, 119), "vars", [], "any", false, false, true, 119), "value", [], "any", false, false, true, 119), 119, $this->source));
echo "
);
";
} elseif (twig_get_attribute($this->env, $this->source, // line 121
($context["form"] ?? null), "classcategory_id1", [], "any", true, true, true, 121)) {
// line 122
echo " eccube.checkStock(\$('#form1'), ";
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 122, $this->source); })()), "id", [], "any", false, false, true, 122), 122, $this->source), "html", null, true);
echo ", ";
echo json_encode($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["form"]) || array_key_exists("form", $context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.', 122, $this->source); })()), "classcategory_id1", [], "any", false, false, true, 122), "vars", [], "any", false, false, true, 122), "value", [], "any", false, false, true, 122), 122, $this->source));
echo ", null);
";
}
// line 124
echo " </script>
<script>
function checkBreakPoint() {
var windowW = \$(window).width();
if(windowW < 768){
\$('.other_recommend_area').not('.slick-initialized').slick({
dots: false,
arrows: true,
slidesToShow:3,
centerMode: false,
});
}else{
\$('.other_recommend_area.slick-initialized').slick('unslick');
}
}
// ウインドウがリサイズする度にチェック
\$(window).resize(function(){
checkBreakPoint();
});
// 初回チェック
checkBreakPoint();
\$(function() {
//目次アコーディオン
\$( '.product_contents' ).show();
\$( '.product-contents__area h3' ).addClass(\"active\").click( function() {
\$( '.product_contents' ).slideToggle( 200 );
\$( this ).toggleClass('close');
});
//関連商品アコーディオン
\$( '.other_recommend_container' ).show();
\$( '#whobought_area h2' ).addClass(\"active\").click( function() {
\$( '.other_recommend_container' ).slideToggle( 200 );
\$( this ).toggleClass('close');
});
// bfcache無効化
\$(window).bind('pageshow', function(event) {
if (event.originalEvent.persisted) {
location.reload(true);
}
});
// Core Web Vital の Cumulative Layout Shift(CLS)対策のため
// img タグに width, height が付与されている.
// 630px 未満の画面サイズでは縦横比が壊れるための対策
// see https://github.com/EC-CUBE/ec-cube/pull/5023
//\$('.ec-grid2__cell').hide();
//var removeSize = function () {
// \$('.slide-item').height('');
// \$('.slide-item img')
// .removeAttr('width')
// .removeAttr('height')
// .removeAttr('style');
//};
//var slickInitial = function(slick) {
// \$('.ec-grid2__cell').fadeIn(1500);
// var baseHeight = \$(slick.target).height();
// var baseWidth = \$(slick.target).width();
// var rate = baseWidth / baseHeight;
// \$('.slide-item').height(baseHeight * rate); // 余白を削除する
// // transform を使用することでCLSの影響を受けないようにする
// \$('.slide-item img')
// .css(
// {
// 'transform-origin': 'top left',
// 'transform': 'scaleY(' + rate + ')',
// 'transition': 'transform .1s'
// }
// );
// // 正しいサイズに近くなったら属性を解除する
// setTimeout(removeSize, 500);
//};
//\$('.item_visual').on('init', slickInitial);
//// リサイズ時は CLS の影響を受けないため属性を解除する
//\$(window).resize(removeSize);
//\$('.item_visual').slick({
// dots: true,
// arrows: false,
//});
});
</script>
<script>
\$(function() {
\$('.add-cart').on('click', function(event) {
";
// line 208
if (twig_get_attribute($this->env, $this->source, ($context["form"] ?? null), "classcategory_id1", [], "any", true, true, true, 208)) {
// line 209
echo " // 規格1フォームの必須チェック
if (\$('#classcategory_id1').val() == '__unselected' || \$('#classcategory_id1').val() == '') {
\$('#classcategory_id1')[0].setCustomValidity('";
// line 211
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("項目が選択されていません"), "html", null, true);
echo "');
return true;
} else {
\$('#classcategory_id1')[0].setCustomValidity('');
}
";
}
// line 217
echo "
";
// line 218
if (twig_get_attribute($this->env, $this->source, ($context["form"] ?? null), "classcategory_id2", [], "any", true, true, true, 218)) {
// line 219
echo " // 規格2フォームの必須チェック
if (\$('#classcategory_id2').val() == '__unselected' || \$('#classcategory_id2').val() == '') {
\$('#classcategory_id2')[0].setCustomValidity('";
// line 221
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("項目が選択されていません"), "html", null, true);
echo "');
return true;
} else {
\$('#classcategory_id2')[0].setCustomValidity('');
}
";
}
// line 227
echo "
// 個数フォームのチェック
if (\$('#quantity').val() < 1) {
\$('#quantity')[0].setCustomValidity('";
// line 230
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("1以上で入力してください。"), "html", null, true);
echo "');
return true;
} else {
\$('#quantity')[0].setCustomValidity('');
}
event.preventDefault();
\$form = \$('#form1');
\$.ajax({
url: \$form.attr('action'),
type: \$form.attr('method'),
data: \$form.serialize(),
dataType: 'json',
beforeSend: function(xhr, settings) {
// Buttonを無効にする
\$('.add-cart').prop('disabled', true);
}
}).done(function(data) {
// レスポンス内のメッセージをalertで表示
\$.each(data.messages, function() {
\$('#ec-modal-header').text(this);
});
\$('.ec-modal').show()
// カートブロックを更新する
\$.ajax({
url: \"";
// line 257
echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("block_cart");
echo "\",
type: 'GET',
dataType: 'html'
}).done(function(html) {
\$('.ec-headerRole__cart').html(html);
});
}).fail(function(data) {
alert('";
// line 264
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートへの追加に失敗しました。"), "html", null, true);
echo "');
}).always(function(data) {
// Buttonを有効にする
\$('.add-cart').prop('disabled', false);
});
});
});
\$('.ec-modal-wrap').on('click', function(e) {
// モーダル内の処理は外側にバブリングさせない
e.stopPropagation();
});
\$('.ec-modal-overlay, .ec-modal, .ec-modal-close, .ec-inlineBtn--cancel').on('click', function() {
\$('.ec-modal').hide()
});
</script>
<script type=\"application/ld+json\">
{
\"@context\": \"https://schema.org/\",
\"@type\": \"Product\",
\"name\": \"";
// line 284
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 284, $this->source); })()), "name", [], "any", false, false, true, 284), 284, $this->source), "html", null, true);
echo "\",
\"image\": [
";
// line 286
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 286, $this->source); })()), "ProductImage", [], "any", false, false, true, 286));
$context['_iterated'] = false;
$context['loop'] = [
'parent' => $context['_parent'],
'index0' => 0,
'index' => 1,
'first' => true,
];
if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
$length = count($context['_seq']);
$context['loop']['revindex0'] = $length - 1;
$context['loop']['revindex'] = $length;
$context['loop']['length'] = $length;
$context['loop']['last'] = 1 === $length;
}
foreach ($context['_seq'] as $context["_key"] => $context["img"]) {
// line 287
echo " \"";
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 287, $this->source); })()), "request", [], "any", false, false, true, 287), "schemeAndHttpHost", [], "any", false, false, true, 287), 287, $this->source), "html", null, true);
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($this->sandbox->ensureToStringAllowed($context["img"], 287, $this->source), "save_image"), "html", null, true);
echo "\"";
if ( !twig_get_attribute($this->env, $this->source, $context["loop"], "last", [], "any", false, false, true, 287)) {
echo ",";
}
// line 288
echo "
";
$context['_iterated'] = true;
++$context['loop']['index0'];
++$context['loop']['index'];
$context['loop']['first'] = false;
if (isset($context['loop']['length'])) {
--$context['loop']['revindex0'];
--$context['loop']['revindex'];
$context['loop']['last'] = 0 === $context['loop']['revindex0'];
}
}
if (!$context['_iterated']) {
// line 290
echo " \"";
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 290, $this->source); })()), "request", [], "any", false, false, true, 290), "schemeAndHttpHost", [], "any", false, false, true, 290), 290, $this->source), "html", null, true);
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($this->extensions['Eccube\Twig\Extension\EccubeExtension']->getNoImageProduct(""), "save_image"), "html", null, true);
echo "\"
";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['img'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 292
echo " ],
\"description\": \"";
// line 293
echo twig_escape_filter($this->env, twig_slice($this->env, twig_replace_filter(((twig_get_attribute($this->env, $this->source, ($context["Product"] ?? null), "description_list", [], "any", true, true, true, 293)) ? (_twig_default_filter($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, ($context["Product"] ?? null), "description_list", [], "any", false, false, true, 293), 293, $this->source), $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 293, $this->source); })()), "description_detail", [], "any", false, false, true, 293), 293, $this->source))) : (twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 293, $this->source); })()), "description_detail", [], "any", false, false, true, 293))), ["
" => "", "
" => ""]), 0, 300), "html", null, true);
echo "\",
";
// line 294
if (twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 294, $this->source); })()), "code_min", [], "any", false, false, true, 294)) {
// line 295
echo " \"sku\": \"";
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 295, $this->source); })()), "code_min", [], "any", false, false, true, 295), 295, $this->source), "html", null, true);
echo "\",
";
}
// line 297
echo " \"offers\": {
\"@type\": \"Offer\",
\"url\": \"";
// line 299
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_detail", ["id" => twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 299, $this->source); })()), "id", [], "any", false, false, true, 299)]), "html", null, true);
echo "\",
\"priceCurrency\": \"";
// line 300
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["eccube_config"]) || array_key_exists("eccube_config", $context) ? $context["eccube_config"] : (function () { throw new RuntimeError('Variable "eccube_config" does not exist.', 300, $this->source); })()), "currency", [], "any", false, false, true, 300), 300, $this->source), "html", null, true);
echo "\",
\"price\": ";
// line 301
((twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 301, $this->source); })()), "getPrice02IncTaxMin", [], "any", false, false, true, 301)) ? (print (twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 301, $this->source); })()), "getPrice02IncTaxMin", [], "any", false, false, true, 301), "html", null, true))) : (print (0)));
echo ",
\"availability\": \"";
// line 302
echo ((twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 302, $this->source); })()), "stock_find", [], "any", false, false, true, 302)) ? ("InStock") : ("OutOfStock"));
echo "\"
}
}
</script>
<script>
function tatiyomiwindow() {
var windowW = \$(window).width();
var windowH = \$(window).height();
window.open(
\"";
// line 311
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("stand_reading", ["id" => twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 311, $this->source); })()), "id", [], "any", false, false, true, 311)]), "html", null, true);
echo "\", //url
\"_blank,'teltel'\", //新規ウィンドウにドキュメントを読み込む
\"width=windowW,height=windowH,menubar=0,toolbar=0\"
)
};
</script>
";
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
$__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
}
// line 319
public function block_main($context, array $blocks = [])
{
$macros = $this->macros;
$__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "main"));
$__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "main"));
// line 320
echo "<div class=\"ec-productRole\">
<h2 class=\"title\">";
// line 322
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 322, $this->source); })()), "name", [], "any", false, false, true, 322), 322, $this->source), "html", null, true);
echo "</h2>
<div class=\"ec-grid2\">
<div class=\"ec-grid2__cell\" id=\"detailphotobloc\">
<div class=\"ec-sliderItemRole\">
<div class=\"item_visual\">
";
// line 328
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 328, $this->source); })()), "ProductImage", [], "any", false, false, true, 328));
$context['_iterated'] = false;
$context['loop'] = [
'parent' => $context['_parent'],
'index0' => 0,
'index' => 1,
'first' => true,
];
if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
$length = count($context['_seq']);
$context['loop']['revindex0'] = $length - 1;
$context['loop']['revindex'] = $length;
$context['loop']['length'] = $length;
$context['loop']['last'] = 1 === $length;
}
foreach ($context['_seq'] as $context["_key"] => $context["ProductImage"]) {
// line 329
echo " <div class=\"slide-item\"><img src=\"";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($this->sandbox->ensureToStringAllowed($context["ProductImage"], 329, $this->source), "save_image"), "html", null, true);
echo "\" alt=\"";
((twig_get_attribute($this->env, $this->source, $context["loop"], "first", [], "any", false, false, true, 329)) ? (print (twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 329, $this->source); })()), "name", [], "any", false, false, true, 329), "html", null, true))) : (print ("")));
echo "\" width=\"550\" height=\"550\"";
if ((twig_get_attribute($this->env, $this->source, $context["loop"], "index", [], "any", false, false, true, 329) > 1)) {
echo " loading=\"lazy\"";
}
echo "></div>
";
$context['_iterated'] = true;
++$context['loop']['index0'];
++$context['loop']['index'];
$context['loop']['first'] = false;
if (isset($context['loop']['length'])) {
--$context['loop']['revindex0'];
--$context['loop']['revindex'];
$context['loop']['last'] = 0 === $context['loop']['revindex0'];
}
}
if (!$context['_iterated']) {
// line 331
echo " <div class=\"slide-item\"><img src=\"";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($this->extensions['Eccube\Twig\Extension\EccubeExtension']->getNoImageProduct(""), "save_image"), "html", null, true);
echo "\" alt=\"";
((twig_get_attribute($this->env, $this->source, $context["loop"], "first", [], "any", false, false, true, 331)) ? (print (twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 331, $this->source); })()), "name", [], "any", false, false, true, 331), "html", null, true))) : (print ("")));
echo "\" width=\"550\" height=\"550\"></div>
";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductImage'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 333
echo " </div>
</div>
</div>
<div class=\"ec-grid2__cell\" id=\"detailrightbloc\">
<div class=\"ec-productRole__profile\">
<div class=\"ec-productRole__title\">
<p class=\"subtitle\">";
// line 339
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 339, $this->source); })()), "sub_name_up", [], "any", false, false, true, 339), 339, $this->source), "html", null, true);
echo "</p>
<h3 class=\"ec-headingTitle\">";
// line 340
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 340, $this->source); })()), "name", [], "any", false, false, true, 340), 340, $this->source), "html", null, true);
echo "</h3>
<p class=\"subtitle\">";
// line 341
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 341, $this->source); })()), "sub_name_down", [], "any", false, false, true, 341), 341, $this->source), "html", null, true);
echo "</p>
</div>
";
// line 345
echo " ";
if ((twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 345, $this->source); })()), "hasProductClass", [], "any", false, false, true, 345) && !(null === twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 345, $this->source); })()), "getPrice01Min", [], "any", false, false, true, 345)))) {
// line 346
echo " <div class=\"ec-productRole__priceRegular\">
";
// line 347
if ((twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 347, $this->source); })()), "getPrice01IncTaxMin", [], "any", false, false, true, 347) == twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 347, $this->source); })()), "getPrice01IncTaxMax", [], "any", false, false, true, 347))) {
// line 348
echo " <span class=\"ec-productRole__priceRegularPrice\">";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("通常価格"), "html", null, true);
echo ":<span class=\"price01-default sale_price\">";
echo twig_escape_filter($this->env, twig_number_format_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 348, $this->source); })()), "getPrice01IncTaxMin", [], "any", false, false, true, 348), 348, $this->source)), "html", null, true);
echo "</span>円</span>
<span class=\"ec-productRole__priceRegularTax\">(税込)</span>
";
} elseif ( !(null === twig_get_attribute($this->env, $this->source, // line 350
(isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 350, $this->source); })()), "getPrice01Max", [], "any", false, false, true, 350))) {
// line 351
echo " <span class=\"ec-productRole__priceRegularPrice\">";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("通常価格"), "html", null, true);
echo ":<span class=\"price01-default sale_price\">";
echo twig_escape_filter($this->env, twig_number_format_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 351, $this->source); })()), "getPrice01IncTaxMin", [], "any", false, false, true, 351), 351, $this->source)), "html", null, true);
echo "~ ";
echo twig_escape_filter($this->env, twig_number_format_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 351, $this->source); })()), "getPrice01IncTaxMax", [], "any", false, false, true, 351), 351, $this->source)), "html", null, true);
echo "</span>円</span>
<span class=\"ec-productRole__priceRegularTax\">(税込)</span>
";
}
// line 354
echo " </div>
";
} elseif ( !(null === twig_get_attribute($this->env, $this->source, // line 355
(isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 355, $this->source); })()), "getPrice01Max", [], "any", false, false, true, 355))) {
// line 356
echo " <div class=\"ec-productRole__priceRegular\">
<span class=\"ec-productRole__priceRegularPrice\">";
// line 357
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("通常価格"), "html", null, true);
echo ":<span class=\"sale_price\">";
echo twig_escape_filter($this->env, twig_number_format_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 357, $this->source); })()), "getPrice01IncTaxMin", [], "any", false, false, true, 357), 357, $this->source)), "html", null, true);
echo "</span>円</span>
<span class=\"ec-productRole__priceRegularTax\">(税込)</span>
</div>
";
}
// line 361
echo " ";
// line 362
echo " ";
if ( !twig_test_empty(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 362, $this->source); })()), "author", [], "any", false, false, true, 362))) {
// line 363
echo " <div class=\"ec-productRole__author\">
";
// line 364
echo twig_nl2br(twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 364, $this->source); })()), "author", [], "any", false, false, true, 364), 364, $this->source), "html", null, true));
echo "
</div>
";
}
// line 367
echo " ";
// line 368
echo " ";
if ( !twig_test_empty(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 368, $this->source); })()), "code_min", [], "any", false, false, true, 368))) {
// line 369
echo " <div class=\"ec-productRole__code\">
ISBN: <span class=\"product-code-default\">";
// line 370
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 370, $this->source); })()), "code_min", [], "any", false, false, true, 370), 370, $this->source), "html", null, true);
if ((twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 370, $this->source); })()), "code_min", [], "any", false, false, true, 370) != twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 370, $this->source); })()), "code_max", [], "any", false, false, true, 370))) {
echo " ~ ";
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 370, $this->source); })()), "code_max", [], "any", false, false, true, 370), 370, $this->source), "html", null, true);
}
echo "</span>
</div>
";
}
// line 373
echo "
";
// line 375
echo " <div class=\"ec-productRole__price\">
<div class=\"ec-price\">
<span class=\"ec-productRole__pricePrice\">定価:
";
// line 378
if (twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 378, $this->source); })()), "hasProductClass", [], "any", false, false, true, 378)) {
// line 379
echo " ";
if ((twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 379, $this->source); })()), "getPrice02IncTaxMin", [], "any", false, false, true, 379) == twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 379, $this->source); })()), "getPrice02IncTaxMax", [], "any", false, false, true, 379))) {
// line 380
echo " <span class=\"ec-price__price price02-default\"><span class=\"sale_price\">";
echo twig_escape_filter($this->env, twig_number_format_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 380, $this->source); })()), "getPrice02IncTaxMin", [], "any", false, false, true, 380), 380, $this->source)), "html", null, true);
echo "</span>円</span>
";
} else {
// line 382
echo " <span class=\"ec-price__price price02-default\"><span class=\"sale_price\">";
echo twig_escape_filter($this->env, twig_number_format_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 382, $this->source); })()), "getPrice02IncTaxMin", [], "any", false, false, true, 382), 382, $this->source)), "html", null, true);
echo " ~ ";
echo twig_escape_filter($this->env, twig_number_format_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 382, $this->source); })()), "getPrice02IncTaxMax", [], "any", false, false, true, 382), 382, $this->source)), "html", null, true);
echo "</span>円</span>
";
}
// line 384
echo " ";
} else {
// line 385
echo " <span class=\"ec-price__price\"><span class=\"sale_price\">";
echo twig_escape_filter($this->env, twig_number_format_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 385, $this->source); })()), "getPrice02IncTaxMin", [], "any", false, false, true, 385), 385, $this->source)), "html", null, true);
echo "</span>円</span>
";
}
// line 387
echo " <span class=\"ec-price__tax\">(税込)</span>
</span>
</div>
</div>
<!--★ポイント★-->
";
// line 410
echo " </div>
<div class=\"productRole__cartarea\">
<form action=\"";
// line 412
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_add_cart", ["id" => twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 412, $this->source); })()), "id", [], "any", false, false, true, 412)]), "html", null, true);
echo "\" method=\"post\" id=\"form1\" name=\"form1\">
";
// line 413
if (twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 413, $this->source); })()), "stock_find", [], "any", false, false, true, 413)) {
// line 414
echo " <div class=\"ec-productRole__actions\">
";
// line 415
if (twig_get_attribute($this->env, $this->source, ($context["form"] ?? null), "classcategory_id1", [], "any", true, true, true, 415)) {
// line 416
echo " <div class=\"classlist\">
<div class=\"ec-select\">
";
// line 418
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["form"]) || array_key_exists("form", $context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.', 418, $this->source); })()), "classcategory_id1", [], "any", false, false, true, 418), 418, $this->source), 'row');
echo "
";
// line 419
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["form"]) || array_key_exists("form", $context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.', 419, $this->source); })()), "classcategory_id1", [], "any", false, false, true, 419), 419, $this->source), 'errors');
echo "
</div>
";
// line 421
if (twig_get_attribute($this->env, $this->source, ($context["form"] ?? null), "classcategory_id2", [], "any", true, true, true, 421)) {
// line 422
echo " <div class=\"ec-select\">
";
// line 423
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["form"]) || array_key_exists("form", $context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.', 423, $this->source); })()), "classcategory_id2", [], "any", false, false, true, 423), 423, $this->source), 'row');
echo "
";
// line 424
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["form"]) || array_key_exists("form", $context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.', 424, $this->source); })()), "classcategory_id2", [], "any", false, false, true, 424), 424, $this->source), 'errors');
echo "
</div>
";
}
// line 427
echo " </div>
";
}
// line 429
echo " <div class=\"ec-numberInput\"><span>数量:</span>
";
// line 430
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["form"]) || array_key_exists("form", $context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.', 430, $this->source); })()), "quantity", [], "any", false, false, true, 430), 430, $this->source), 'widget');
echo "
";
// line 431
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["form"]) || array_key_exists("form", $context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.', 431, $this->source); })()), "quantity", [], "any", false, false, true, 431), 431, $this->source), 'errors');
echo "
</div>
</div>
<div class=\"ec-productRole__btn\">
<button type=\"submit\" class=\"ec-blockBtn--action add-cart orange-btn small-btn\">カゴに入れる</button>
</div>
";
} else {
// line 438
echo " <div class=\"ec-productRole__btn\">
<div class=\"attention\">
";
// line 440
$context["targettag"] = [];
// line 441
echo " ";
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 441, $this->source); })()), "Tags", [], "any", false, false, true, 441));
foreach ($context['_seq'] as $context["_key"] => $context["tag"]) {
// line 442
echo " ";
$context["targettag"] = twig_array_merge($this->sandbox->ensureToStringAllowed((isset($context["targettag"]) || array_key_exists("targettag", $context) ? $context["targettag"] : (function () { throw new RuntimeError('Variable "targettag" does not exist.', 442, $this->source); })()), 442, $this->source), [0 => twig_get_attribute($this->env, $this->source, $context["tag"], "id", [], "any", false, false, true, 442)]);
// line 443
echo " ";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['tag'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 444
echo " ";
if (twig_in_filter("7", (isset($context["targettag"]) || array_key_exists("targettag", $context) ? $context["targettag"] : (function () { throw new RuntimeError('Variable "targettag" does not exist.', 444, $this->source); })()))) {
// line 445
echo " 申し訳ございませんが、本商品は絶版となりました。
";
} elseif (twig_in_filter("6", // line 446
(isset($context["targettag"]) || array_key_exists("targettag", $context) ? $context["targettag"] : (function () { throw new RuntimeError('Variable "targettag" does not exist.', 446, $this->source); })()))) {
// line 447
echo " 予約受付中です。
";
} elseif (twig_in_filter("5", // line 448
(isset($context["targettag"]) || array_key_exists("targettag", $context) ? $context["targettag"] : (function () { throw new RuntimeError('Variable "targettag" does not exist.', 448, $this->source); })()))) {
// line 449
echo " この商品は発売前のため購入いただけません。
";
} else {
// line 451
echo " 申し訳ございませんが、本商品は只今品切れ中です。
";
}
// line 453
echo " </div>
</div>
";
}
// line 456
echo "
";
// line 457
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed((isset($context["form"]) || array_key_exists("form", $context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.', 457, $this->source); })()), 457, $this->source), 'rest');
echo "
</form>
<div class=\"ec-modal\">
<div class=\"ec-modal-overlay\">
<div class=\"ec-modal-wrap\">
<span class=\"ec-modal-close\"><span class=\"ec-icon\"><img src=\"";
// line 462
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/icon/cross-dark.svg"), "html", null, true);
echo "\" alt=\"\"/></span></span>
<div id=\"ec-modal-header\" class=\"text-center\">";
// line 463
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートに追加しました。"), "html", null, true);
echo "</div>
<div class=\"ec-modal-box\">
<div class=\"ec-role\">
<span class=\"ec-inlineBtn--cancel\">";
// line 466
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お買い物を続ける"), "html", null, true);
echo "</span>
<a href=\"";
// line 467
echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("cart");
echo "\" class=\"ec-inlineBtn--action\">";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートへ進む"), "html", null, true);
echo "</a>
</div>
</div>
</div>
</div>
</div>
</div>
<div class=\"sub_cart_area flex\">
<!--★定期購読-->
";
// line 477
echo " ";
if ( !twig_test_empty(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 477, $this->source); })()), "ProductCategories", [], "any", false, false, true, 477))) {
// line 478
echo " ";
$context["break"] = false;
// line 479
echo " ";
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 479, $this->source); })()), "ProductCategories", [], "any", false, false, true, 479));
foreach ($context['_seq'] as $context["_key"] => $context["ProductCategory"]) {
if ( !(isset($context["break"]) || array_key_exists("break", $context) ? $context["break"] : (function () { throw new RuntimeError('Variable "break" does not exist.', 479, $this->source); })())) {
// line 480
echo " ";
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, $context["ProductCategory"], "Category", [], "any", false, false, true, 480), "path", [], "any", false, false, true, 480));
foreach ($context['_seq'] as $context["_key"] => $context["Category"]) {
// line 481
echo " ";
if (((twig_get_attribute($this->env, $this->source, $context["Category"], "id", [], "any", false, false, true, 481) == 1) || (twig_get_attribute($this->env, $this->source, $context["Category"], "id", [], "any", false, false, true, 481) == 2))) {
// line 482
echo " <div class=\"read_btn\">
<a href=\"";
// line 483
echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("kenkoukyoushitsu_teiki");
echo "\">
<img class=\"hover_change_image\" src=\"";
// line 484
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/img/button/btn_teiki.png", "user_data"), "html", null, true);
echo "\" alt=\"定期購読のご案内\" />
</a>
</div>
";
// line 487
$context["break"] = true;
// line 488
echo " ";
}
// line 489
echo " ";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['Category'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 490
echo " ";
}
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductCategory'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 491
echo " ";
}
// line 492
echo " <!--★立ち読み-->
";
// line 493
if (twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 493, $this->source); })()), "hasStandReadingImage", [], "any", false, false, true, 493)) {
// line 494
echo " <div class=\"read_btn\">
<a href=javascript:tatiyomiwindow()><img class=\"hover_change_image\" src=\"";
// line 495
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/img/button/btn_read.png", "user_data"), "html", null, true);
echo "\" alt=\"立ち読みをする\" /></a>
</div>
";
}
// line 498
echo " <!--★お気に入り登録★-->
";
// line 499
if (twig_get_attribute($this->env, $this->source, (isset($context["BaseInfo"]) || array_key_exists("BaseInfo", $context) ? $context["BaseInfo"] : (function () { throw new RuntimeError('Variable "BaseInfo" does not exist.', 499, $this->source); })()), "option_favorite_product", [], "any", false, false, true, 499)) {
// line 500
echo " <div class=\"favorite_btn\">
<form action=\"";
// line 501
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_add_favorite", ["id" => twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 501, $this->source); })()), "id", [], "any", false, false, true, 501)]), "html", null, true);
echo "\" method=\"post\">
<div class=\"ec-productRole__btn\">
";
// line 503
if (((isset($context["is_favorite"]) || array_key_exists("is_favorite", $context) ? $context["is_favorite"] : (function () { throw new RuntimeError('Variable "is_favorite" does not exist.', 503, $this->source); })()) == false)) {
// line 504
echo " <button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--cancel\" aria-label=\"お気に入りに追加\">
<img src=\"";
// line 505
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/img/button/btn_favorite_on.png", "user_data"), "html", null, true);
echo "\" alt=\"お気に入り登録済\" />
</button>
";
} else {
// line 508
echo " <button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--cancel\" aria-label=\"お気に入りに追加済み\" disabled=\"disabled\">
<img src=\"";
// line 509
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/img/button/btn_favorite_add_on.png", "user_data"), "html", null, true);
echo "\" alt=\"お気に入り登録済\" />
</button>
";
}
// line 512
echo " </div>
</form>
</div>
";
}
// line 516
echo " </div>
";
// line 518
echo " <div class=\"ec-productRole__description main_comment\">";
echo twig_nl2br($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 518, $this->source); })()), "description_detail", [], "any", false, false, true, 518), 518, $this->source));
echo "</div>
</div>
</div>
";
// line 522
echo " ";
if (twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 522, $this->source); })()), "contents", [], "any", false, false, true, 522)) {
// line 523
echo " <div class=\"product-contents__area\">
<h3 class=\"subtitle\">目次</h3>
<div class=\"product_contents\">";
// line 525
echo twig_nl2br($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 525, $this->source); })()), "contents", [], "any", false, false, true, 525), 525, $this->source));
echo "</div>
</div>
";
}
// line 528
echo "
<!--▼サブコメント-->
<!--▲サブコメント-->
<!--{ if \$tpl_product_id == 473 }-->
<!--{ /if }-->
<!--この商品に対するお客様の声-->
";
// line 552
echo " <!--お客様の声ここまで-->
<!--▼関連商品-->
<!--▲関連商品-->
";
// line 557
echo " ";
if (twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 557, $this->source); })()), "freearea", [], "any", false, false, true, 557)) {
// line 558
echo " <div class=\"ec-productRole__description\">
";
// line 559
echo $this->extensions['Eccube\Twig\Extension\IgnoreTwigSandboxErrorExtension']->twig_include($this->env, $context, twig_template_from_string($this->env, twig_nl2br($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 559, $this->source); })()), "freearea", [], "any", false, false, true, 559), 559, $this->source))), array(), true, false, true);
echo "
</div>
";
}
// line 562
echo "</div>
";
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
$__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
}
public function getTemplateName()
{
return "Product/detail.twig";
}
public function isTraitable()
{
return false;
}
public function getDebugInfo()
{
return array ( 1053 => 562, 1047 => 559, 1044 => 558, 1041 => 557, 1035 => 552, 1027 => 528, 1021 => 525, 1017 => 523, 1014 => 522, 1007 => 518, 1004 => 516, 998 => 512, 992 => 509, 989 => 508, 983 => 505, 980 => 504, 978 => 503, 973 => 501, 970 => 500, 968 => 499, 965 => 498, 959 => 495, 956 => 494, 954 => 493, 951 => 492, 948 => 491, 941 => 490, 935 => 489, 932 => 488, 930 => 487, 924 => 484, 920 => 483, 917 => 482, 914 => 481, 909 => 480, 903 => 479, 900 => 478, 897 => 477, 883 => 467, 879 => 466, 873 => 463, 869 => 462, 861 => 457, 858 => 456, 853 => 453, 849 => 451, 845 => 449, 843 => 448, 840 => 447, 838 => 446, 835 => 445, 832 => 444, 826 => 443, 823 => 442, 818 => 441, 816 => 440, 812 => 438, 802 => 431, 798 => 430, 795 => 429, 791 => 427, 785 => 424, 781 => 423, 778 => 422, 776 => 421, 771 => 419, 767 => 418, 763 => 416, 761 => 415, 758 => 414, 756 => 413, 752 => 412, 748 => 410, 741 => 387, 735 => 385, 732 => 384, 724 => 382, 718 => 380, 715 => 379, 713 => 378, 708 => 375, 705 => 373, 695 => 370, 692 => 369, 689 => 368, 687 => 367, 681 => 364, 678 => 363, 675 => 362, 673 => 361, 664 => 357, 661 => 356, 659 => 355, 656 => 354, 645 => 351, 643 => 350, 635 => 348, 633 => 347, 630 => 346, 627 => 345, 621 => 341, 617 => 340, 613 => 339, 605 => 333, 594 => 331, 572 => 329, 554 => 328, 545 => 322, 541 => 320, 531 => 319, 514 => 311, 502 => 302, 498 => 301, 494 => 300, 490 => 299, 486 => 297, 480 => 295, 478 => 294, 473 => 293, 470 => 292, 460 => 290, 446 => 288, 438 => 287, 420 => 286, 415 => 284, 392 => 264, 382 => 257, 352 => 230, 347 => 227, 338 => 221, 334 => 219, 332 => 218, 329 => 217, 320 => 211, 316 => 209, 314 => 208, 228 => 124, 220 => 122, 218 => 121, 213 => 119, 210 => 118, 208 => 117, 194 => 106, 190 => 104, 180 => 103, 75 => 6, 65 => 5, 54 => 1, 52 => 3, 39 => 1,);
}
public function getSourceContext()
{
return new Source("{% extends 'default_frame.twig' %}
{% set body_class = 'product_page' %}
{% block stylesheet %}
<style>
.slick-slider {
margin-bottom: 30px;
}
.slick-dots {
position: absolute;
bottom: -45px;
display: block;
width: 100%;
padding: 0;
list-style: none;
text-align: center;
}
.slick-dots li {
position: relative;
display: inline-block;
width: 20px;
height: 20px;
margin: 0 5px;
padding: 0;
cursor: pointer;
}
.slick-dots li button {
font-size: 0;
line-height: 0;
display: block;
width: 20px;
height: 20px;
padding: 5px;
cursor: pointer;
color: transparent;
border: 0;
outline: none;
background: transparent;
}
.slick-dots li button:hover,
.slick-dots li button:focus {
outline: none;
}
.slick-dots li button:hover:before,
.slick-dots li button:focus:before {
opacity: 1;
}
.slick-dots li button:before {
content: \" \";
line-height: 20px;
position: absolute;
top: 0;
left: 0;
width: 12px;
height: 12px;
text-align: center;
opacity: .25;
background-color: #719933;
border-radius: 50%;
}
.slick-dots li.slick-active button:before {
opacity: .75;
background-color: #719933;
}
.slick-dots li button.thumbnail img {
width: 0;
height: 0;
}
.other_recommend_area .slick-prev:before {
content: '<';
color: green;
font-weight: bold;
}
.other_recommend_area .slick-next:before {
content: '>';
color: green;
font-weight: bold;
}
.other_recommend_area .slick-slide{
padding: 0 8px 0 0;
}
.ec-productRole .ec-productRole__description{
margin-top: 20px;
font-size: 14px;
}
.ec-productRole .ec-productRole__description .sub_area:not(:first-child){
margin-top: 20px;
}
</style>
{% endblock %}
{% block javascript %}
<script>
eccube.classCategories = {{ class_categories_as_json(Product)|raw }};
// 規格2に選択肢を割り当てる。
function fnSetClassCategories(form, classcat_id2_selected) {
var \$form = \$(form);
var product_id = \$form.find('input[name=product_id]').val();
var \$sele1 = \$form.find('select[name=classcategory_id1]');
var \$sele2 = \$form.find('select[name=classcategory_id2]');
eccube.setClassCategories(\$form, product_id, \$sele1, \$sele2, classcat_id2_selected);
}
{% if form.classcategory_id2 is defined %}
fnSetClassCategories(
\$('#form1'), {{ form.classcategory_id2.vars.value|json_encode|raw }}
);
{% elseif form.classcategory_id1 is defined %}
eccube.checkStock(\$('#form1'), {{ Product.id }}, {{ form.classcategory_id1.vars.value|json_encode|raw }}, null);
{% endif %}
</script>
<script>
function checkBreakPoint() {
var windowW = \$(window).width();
if(windowW < 768){
\$('.other_recommend_area').not('.slick-initialized').slick({
dots: false,
arrows: true,
slidesToShow:3,
centerMode: false,
});
}else{
\$('.other_recommend_area.slick-initialized').slick('unslick');
}
}
// ウインドウがリサイズする度にチェック
\$(window).resize(function(){
checkBreakPoint();
});
// 初回チェック
checkBreakPoint();
\$(function() {
//目次アコーディオン
\$( '.product_contents' ).show();
\$( '.product-contents__area h3' ).addClass(\"active\").click( function() {
\$( '.product_contents' ).slideToggle( 200 );
\$( this ).toggleClass('close');
});
//関連商品アコーディオン
\$( '.other_recommend_container' ).show();
\$( '#whobought_area h2' ).addClass(\"active\").click( function() {
\$( '.other_recommend_container' ).slideToggle( 200 );
\$( this ).toggleClass('close');
});
// bfcache無効化
\$(window).bind('pageshow', function(event) {
if (event.originalEvent.persisted) {
location.reload(true);
}
});
// Core Web Vital の Cumulative Layout Shift(CLS)対策のため
// img タグに width, height が付与されている.
// 630px 未満の画面サイズでは縦横比が壊れるための対策
// see https://github.com/EC-CUBE/ec-cube/pull/5023
//\$('.ec-grid2__cell').hide();
//var removeSize = function () {
// \$('.slide-item').height('');
// \$('.slide-item img')
// .removeAttr('width')
// .removeAttr('height')
// .removeAttr('style');
//};
//var slickInitial = function(slick) {
// \$('.ec-grid2__cell').fadeIn(1500);
// var baseHeight = \$(slick.target).height();
// var baseWidth = \$(slick.target).width();
// var rate = baseWidth / baseHeight;
// \$('.slide-item').height(baseHeight * rate); // 余白を削除する
// // transform を使用することでCLSの影響を受けないようにする
// \$('.slide-item img')
// .css(
// {
// 'transform-origin': 'top left',
// 'transform': 'scaleY(' + rate + ')',
// 'transition': 'transform .1s'
// }
// );
// // 正しいサイズに近くなったら属性を解除する
// setTimeout(removeSize, 500);
//};
//\$('.item_visual').on('init', slickInitial);
//// リサイズ時は CLS の影響を受けないため属性を解除する
//\$(window).resize(removeSize);
//\$('.item_visual').slick({
// dots: true,
// arrows: false,
//});
});
</script>
<script>
\$(function() {
\$('.add-cart').on('click', function(event) {
{% if form.classcategory_id1 is defined %}
// 規格1フォームの必須チェック
if (\$('#classcategory_id1').val() == '__unselected' || \$('#classcategory_id1').val() == '') {
\$('#classcategory_id1')[0].setCustomValidity('{{ '項目が選択されていません'|trans }}');
return true;
} else {
\$('#classcategory_id1')[0].setCustomValidity('');
}
{% endif %}
{% if form.classcategory_id2 is defined %}
// 規格2フォームの必須チェック
if (\$('#classcategory_id2').val() == '__unselected' || \$('#classcategory_id2').val() == '') {
\$('#classcategory_id2')[0].setCustomValidity('{{ '項目が選択されていません'|trans }}');
return true;
} else {
\$('#classcategory_id2')[0].setCustomValidity('');
}
{% endif %}
// 個数フォームのチェック
if (\$('#quantity').val() < 1) {
\$('#quantity')[0].setCustomValidity('{{ '1以上で入力してください。'|trans }}');
return true;
} else {
\$('#quantity')[0].setCustomValidity('');
}
event.preventDefault();
\$form = \$('#form1');
\$.ajax({
url: \$form.attr('action'),
type: \$form.attr('method'),
data: \$form.serialize(),
dataType: 'json',
beforeSend: function(xhr, settings) {
// Buttonを無効にする
\$('.add-cart').prop('disabled', true);
}
}).done(function(data) {
// レスポンス内のメッセージをalertで表示
\$.each(data.messages, function() {
\$('#ec-modal-header').text(this);
});
\$('.ec-modal').show()
// カートブロックを更新する
\$.ajax({
url: \"{{ url('block_cart') }}\",
type: 'GET',
dataType: 'html'
}).done(function(html) {
\$('.ec-headerRole__cart').html(html);
});
}).fail(function(data) {
alert('{{ 'カートへの追加に失敗しました。'|trans }}');
}).always(function(data) {
// Buttonを有効にする
\$('.add-cart').prop('disabled', false);
});
});
});
\$('.ec-modal-wrap').on('click', function(e) {
// モーダル内の処理は外側にバブリングさせない
e.stopPropagation();
});
\$('.ec-modal-overlay, .ec-modal, .ec-modal-close, .ec-inlineBtn--cancel').on('click', function() {
\$('.ec-modal').hide()
});
</script>
<script type=\"application/ld+json\">
{
\"@context\": \"https://schema.org/\",
\"@type\": \"Product\",
\"name\": \"{{ Product.name }}\",
\"image\": [
{% for img in Product.ProductImage %}
\"{{ app.request.schemeAndHttpHost }}{{ asset(img, 'save_image') }}\"{% if not loop.last %},{% endif %}
{% else %}
\"{{ app.request.schemeAndHttpHost }}{{ asset(''|no_image_product, 'save_image') }}\"
{% endfor %}
],
\"description\": \"{{ Product.description_list | default(Product.description_detail) | replace({'\\n': '', '\\r': ''}) | slice(0,300) }}\",
{% if Product.code_min %}
\"sku\": \"{{ Product.code_min }}\",
{% endif %}
\"offers\": {
\"@type\": \"Offer\",
\"url\": \"{{ url('product_detail', {'id': Product.id}) }}\",
\"priceCurrency\": \"{{ eccube_config.currency }}\",
\"price\": {{ Product.getPrice02IncTaxMin ? Product.getPrice02IncTaxMin : 0}},
\"availability\": \"{{ Product.stock_find ? \"InStock\" : \"OutOfStock\" }}\"
}
}
</script>
<script>
function tatiyomiwindow() {
var windowW = \$(window).width();
var windowH = \$(window).height();
window.open(
\"{{ url('stand_reading', {'id': Product.id}) }}\", //url
\"_blank,'teltel'\", //新規ウィンドウにドキュメントを読み込む
\"width=windowW,height=windowH,menubar=0,toolbar=0\"
)
};
</script>
{% endblock %}
{% block main %}
<div class=\"ec-productRole\">
<h2 class=\"title\">{{ Product.name }}</h2>
<div class=\"ec-grid2\">
<div class=\"ec-grid2__cell\" id=\"detailphotobloc\">
<div class=\"ec-sliderItemRole\">
<div class=\"item_visual\">
{% for ProductImage in Product.ProductImage %}
<div class=\"slide-item\"><img src=\"{{ asset(ProductImage, 'save_image') }}\" alt=\"{{ loop.first ? Product.name : '' }}\" width=\"550\" height=\"550\"{% if loop.index > 1 %} loading=\"lazy\"{% endif %}></div>
{% else %}
<div class=\"slide-item\"><img src=\"{{ asset(''|no_image_product, 'save_image') }}\" alt=\"{{ loop.first ? Product.name : '' }}\" width=\"550\" height=\"550\"></div>
{% endfor %}
</div>
</div>
</div>
<div class=\"ec-grid2__cell\" id=\"detailrightbloc\">
<div class=\"ec-productRole__profile\">
<div class=\"ec-productRole__title\">
<p class=\"subtitle\">{{ Product.sub_name_up }}</p>
<h3 class=\"ec-headingTitle\">{{ Product.name }}</h3>
<p class=\"subtitle\">{{ Product.sub_name_down }}</p>
</div>
{# 通常価格 #}
{% if Product.hasProductClass and Product.getPrice01Min is not null %}
<div class=\"ec-productRole__priceRegular\">
{% if Product.getPrice01IncTaxMin == Product.getPrice01IncTaxMax %}
<span class=\"ec-productRole__priceRegularPrice\">{{ '通常価格'|trans }}:<span class=\"price01-default sale_price\">{{ Product.getPrice01IncTaxMin|number_format}}</span>円</span>
<span class=\"ec-productRole__priceRegularTax\">(税込)</span>
{% elseif Product.getPrice01Max is not null %}
<span class=\"ec-productRole__priceRegularPrice\">{{ '通常価格'|trans }}:<span class=\"price01-default sale_price\">{{ Product.getPrice01IncTaxMin|number_format}}~ {{ Product.getPrice01IncTaxMax|number_format}}</span>円</span>
<span class=\"ec-productRole__priceRegularTax\">(税込)</span>
{% endif %}
</div>
{% elseif Product.getPrice01Max is not null %}
<div class=\"ec-productRole__priceRegular\">
<span class=\"ec-productRole__priceRegularPrice\">{{ '通常価格'|trans }}:<span class=\"sale_price\">{{ Product.getPrice01IncTaxMin|number_format}}</span>円</span>
<span class=\"ec-productRole__priceRegularTax\">(税込)</span>
</div>
{% endif %}
{# 著者 #}
{% if Product.author is not empty %}
<div class=\"ec-productRole__author\">
{{ Product.author|nl2br }}
</div>
{% endif %}
{# 商品コード #}
{% if Product.code_min is not empty %}
<div class=\"ec-productRole__code\">
ISBN: <span class=\"product-code-default\">{{ Product.code_min }}{% if Product.code_min != Product.code_max %} ~ {{ Product.code_max }}{% endif %}</span>
</div>
{% endif %}
{# 販売価格 #}
<div class=\"ec-productRole__price\">
<div class=\"ec-price\">
<span class=\"ec-productRole__pricePrice\">定価:
{% if Product.hasProductClass %}
{% if Product.getPrice02IncTaxMin == Product.getPrice02IncTaxMax %}
<span class=\"ec-price__price price02-default\"><span class=\"sale_price\">{{ Product.getPrice02IncTaxMin|number_format}}</span>円</span>
{% else %}
<span class=\"ec-price__price price02-default\"><span class=\"sale_price\">{{ Product.getPrice02IncTaxMin|number_format}} ~ {{ Product.getPrice02IncTaxMax|number_format}}</span>円</span>
{% endif %}
{% else %}
<span class=\"ec-price__price\"><span class=\"sale_price\">{{ Product.getPrice02IncTaxMin|number_format}}</span>円</span>
{% endif %}
<span class=\"ec-price__tax\">(税込)</span>
</span>
</div>
</div>
<!--★ポイント★-->
{#
<!--{if \$smarty.const.USE_POINT !== false}-->
<div class=\"point\">ポイント:
<span id=\"point_default\"><!--{strip}-->
<!--{if \$arrProduct.price02_min == \$arrProduct.price02_max}-->
<!--{\$arrProduct.price02_min|sfPrePoint:\$arrProduct.point_rate|number_format}-->
<!--{else}-->
<!--{if \$arrProduct.price02_min|sfPrePoint:\$arrProduct.point_rate == \$arrProduct.price02_max|sfPrePoint:\$arrProduct.point_rate}-->
<!--{\$arrProduct.price02_min|sfPrePoint:\$arrProduct.point_rate|number_format}-->
<!--{else}-->
<!--{\$arrProduct.price02_min|sfPrePoint:\$arrProduct.point_rate|number_format}-->~<!--{\$arrProduct.price02_max|sfPrePoint:\$arrProduct.point_rate|number_format}-->
<!--{/if}-->
<!--{/if}-->
<!--{/strip}--></span><span id=\"point_dynamic\"></span>
Pt
</div>
<!--{/if}-->
#}
</div>
<div class=\"productRole__cartarea\">
<form action=\"{{ url('product_add_cart', {id:Product.id}) }}\" method=\"post\" id=\"form1\" name=\"form1\">
{% if Product.stock_find %}
<div class=\"ec-productRole__actions\">
{% if form.classcategory_id1 is defined %}
<div class=\"classlist\">
<div class=\"ec-select\">
{{ form_row(form.classcategory_id1) }}
{{ form_errors(form.classcategory_id1) }}
</div>
{% if form.classcategory_id2 is defined %}
<div class=\"ec-select\">
{{ form_row(form.classcategory_id2) }}
{{ form_errors(form.classcategory_id2) }}
</div>
{% endif %}
</div>
{% endif %}
<div class=\"ec-numberInput\"><span>数量:</span>
{{ form_widget(form.quantity) }}
{{ form_errors(form.quantity) }}
</div>
</div>
<div class=\"ec-productRole__btn\">
<button type=\"submit\" class=\"ec-blockBtn--action add-cart orange-btn small-btn\">カゴに入れる</button>
</div>
{% else %}
<div class=\"ec-productRole__btn\">
<div class=\"attention\">
{% set targettag = [] %}
{% for tag in Product.Tags %}
{% set targettag = targettag|merge([tag.id]) %}
{% endfor %}
{% if '7' in targettag %}
申し訳ございませんが、本商品は絶版となりました。
{% elseif '6' in targettag %}
予約受付中です。
{% elseif '5' in targettag %}
この商品は発売前のため購入いただけません。
{% else %}
申し訳ございませんが、本商品は只今品切れ中です。
{% endif %}
</div>
</div>
{% endif %}
{{ form_rest(form) }}
</form>
<div class=\"ec-modal\">
<div class=\"ec-modal-overlay\">
<div class=\"ec-modal-wrap\">
<span class=\"ec-modal-close\"><span class=\"ec-icon\"><img src=\"{{ asset('assets/icon/cross-dark.svg') }}\" alt=\"\"/></span></span>
<div id=\"ec-modal-header\" class=\"text-center\">{{ 'カートに追加しました。'|trans }}</div>
<div class=\"ec-modal-box\">
<div class=\"ec-role\">
<span class=\"ec-inlineBtn--cancel\">{{ 'お買い物を続ける'|trans }}</span>
<a href=\"{{ url('cart') }}\" class=\"ec-inlineBtn--action\">{{ 'カートへ進む'|trans }}</a>
</div>
</div>
</div>
</div>
</div>
</div>
<div class=\"sub_cart_area flex\">
<!--★定期購読-->
{# 関連カテゴリ #}
{% if Product.ProductCategories is not empty %}
{% set break = false %}
{% for ProductCategory in Product.ProductCategories if not break %}
{% for Category in ProductCategory.Category.path %}
{% if Category.id == 1 or Category.id == 2 %}
<div class=\"read_btn\">
<a href=\"{{ url('kenkoukyoushitsu_teiki') }}\">
<img class=\"hover_change_image\" src=\"{{ asset('assets/img/button/btn_teiki.png', 'user_data') }}\" alt=\"定期購読のご案内\" />
</a>
</div>
{% set break = true %}
{% endif %}
{% endfor %}
{% endfor %}
{% endif %}
<!--★立ち読み-->
{% if Product.hasStandReadingImage %}
<div class=\"read_btn\">
<a href=javascript:tatiyomiwindow()><img class=\"hover_change_image\" src=\"{{ asset('assets/img/button/btn_read.png', 'user_data') }}\" alt=\"立ち読みをする\" /></a>
</div>
{% endif %}
<!--★お気に入り登録★-->
{% if BaseInfo.option_favorite_product %}
<div class=\"favorite_btn\">
<form action=\"{{ url('product_add_favorite', {id:Product.id}) }}\" method=\"post\">
<div class=\"ec-productRole__btn\">
{% if is_favorite == false %}
<button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--cancel\" aria-label=\"お気に入りに追加\">
<img src=\"{{ asset('assets/img/button/btn_favorite_on.png', 'user_data') }}\" alt=\"お気に入り登録済\" />
</button>
{% else %}
<button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--cancel\" aria-label=\"お気に入りに追加済み\" disabled=\"disabled\">
<img src=\"{{ asset('assets/img/button/btn_favorite_add_on.png', 'user_data') }}\" alt=\"お気に入り登録済\" />
</button>
{% endif %}
</div>
</form>
</div>
{% endif %}
</div>
{# 商品説明 #}
<div class=\"ec-productRole__description main_comment\">{{ Product.description_detail|raw|nl2br }}</div>
</div>
</div>
{# 目次 #}
{% if Product.contents %}
<div class=\"product-contents__area\">
<h3 class=\"subtitle\">目次</h3>
<div class=\"product_contents\">{{ Product.contents|raw|nl2br }}</div>
</div>
{% endif %}
<!--▼サブコメント-->
<!--▲サブコメント-->
<!--{ if \$tpl_product_id == 473 }-->
<!--{ /if }-->
<!--この商品に対するお客様の声-->
{# 4系ではプラグインのため一旦非表示 20240117
<div id=\"customervoice_area\">
\t\t<div id=\"customervoice_box\">
<h2><img src=\"{{ asset('assets/img/title/tit_bloc_review_write.png', 'user_data') }}\" alt=\"この商品に対するお客様の声\"></h2>
<div class=\"review_box\">
<div class=\"review_bloc flex\">
<p>この商品に対するご感想をぜひお寄せください。</p>
<div class=\"review_btn btn-oldinput__long\">
<!--★新規コメントを書き込む★-->
<a href=\"./review.php\" onclick=\"eccube.openWindow('./review.php?product_id=580','review','600','640'); return false;\" target=\"_blank\" class=\"\">
新規コメントを書き込む
</a>
</div>
</div>
</div>
</div>
</div>
#}
<!--お客様の声ここまで-->
<!--▼関連商品-->
<!--▲関連商品-->
{# フリーエリア #}
{% if Product.freearea %}
<div class=\"ec-productRole__description\">
{{ include(template_from_string(Product.freearea|raw|nl2br), sandboxed = true) }}
</div>
{% endif %}
</div>
{% endblock %}", "Product/detail.twig", "/home/higashiyamashobo/www/higashiyamashobo.jpn.org/ec-cube/app/template/default/Product/detail.twig");
}
public function checkSecurity()
{
static $tags = array("set" => 3, "if" => 117, "for" => 286);
static $filters = array("raw" => 106, "json_encode" => 119, "escape" => 122, "trans" => 211, "no_image_product" => 290, "slice" => 293, "replace" => 293, "default" => 293, "number_format" => 348, "nl2br" => 364, "merge" => 442);
static $functions = array("class_categories_as_json" => 106, "url" => 257, "asset" => 287, "form_row" => 418, "form_errors" => 419, "form_widget" => 430, "form_rest" => 457, "include" => 559, "template_from_string" => 559);
try {
$this->sandbox->checkSecurity(
['set', 'if', 'for'],
['raw', 'json_encode', 'escape', 'trans', 'no_image_product', 'slice', 'replace', 'default', 'number_format', 'nl2br', 'merge'],
['class_categories_as_json', 'url', 'asset', 'form_row', 'form_errors', 'form_widget', 'form_rest', 'include', 'template_from_string']
);
} catch (SecurityError $e) {
$e->setSourceContext($this->source);
if ($e instanceof SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
$e->setTemplateLine($tags[$e->getTagName()]);
} elseif ($e instanceof SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
$e->setTemplateLine($filters[$e->getFilterName()]);
} elseif ($e instanceof SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
$e->setTemplateLine($functions[$e->getFunctionName()]);
}
throw $e;
}
}
}