var/cache/dev/twig/20/20541e227845dcae08b66872bb395011c407a76d69e01a931cb8544451524705.php line 53

Open in your IDE?
  1. <?php
  2. use Twig\Environment;
  3. use Twig\Error\LoaderError;
  4. use Twig\Error\RuntimeError;
  5. use Twig\Extension\SandboxExtension;
  6. use Twig\Markup;
  7. use Twig\Sandbox\SecurityError;
  8. use Twig\Sandbox\SecurityNotAllowedTagError;
  9. use Twig\Sandbox\SecurityNotAllowedFilterError;
  10. use Twig\Sandbox\SecurityNotAllowedFunctionError;
  11. use Twig\Source;
  12. use Twig\Template;
  13. /* __string_template__c2723b816744910135a474bb2ffc5288f4dab8ddd9657e9007ab741b79f0c8be */
  14. class __TwigTemplate_fd8e8568578d2a57252919abc1ff94daded83ada44f82dd495306d38fcf43328 extends \Eccube\Twig\Template
  15. {
  16.     private $source;
  17.     private $macros = [];
  18.     public function __construct(Environment $env)
  19.     {
  20.         parent::__construct($env);
  21.         $this->source $this->getSourceContext();
  22.         $this->blocks = [
  23.             'stylesheet' => [$this'block_stylesheet'],
  24.             'javascript' => [$this'block_javascript'],
  25.             'main' => [$this'block_main'],
  26.         ];
  27.     }
  28.     protected function doGetParent(array $context)
  29.     {
  30.         // line 11
  31.         return "default_frame.twig";
  32.     }
  33.     protected function doDisplay(array $context, array $blocks = [])
  34.     {
  35.         $macros $this->macros;
  36.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  37.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""__string_template__c2723b816744910135a474bb2ffc5288f4dab8ddd9657e9007ab741b79f0c8be"));
  38.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  39.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""__string_template__c2723b816744910135a474bb2ffc5288f4dab8ddd9657e9007ab741b79f0c8be"));
  40.         // line 13
  41.         $context["body_class"] = "product_page product_detail";
  42.         // line 11
  43.         $this->parent $this->loadTemplate("default_frame.twig""__string_template__c2723b816744910135a474bb2ffc5288f4dab8ddd9657e9007ab741b79f0c8be"11);
  44.         $this->parent->display($contextarray_merge($this->blocks$blocks));
  45.         
  46.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  47.         
  48.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  49.     }
  50.     // line 15
  51.     public function block_stylesheet($context, array $blocks = [])
  52.     {
  53.         $macros $this->macros;
  54.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  55.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""stylesheet"));
  56.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  57.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""stylesheet"));
  58.         // line 16
  59.         echo "    <style>
  60.     </style>
  61. ";
  62.         
  63.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  64.         
  65.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  66.     }
  67.     // line 20
  68.     public function block_javascript($context, array $blocks = [])
  69.     {
  70.         $macros $this->macros;
  71.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  72.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""javascript"));
  73.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  74.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""javascript"));
  75.         // line 21
  76.         echo "    <script>
  77.         eccube.classCategories = ";
  78.         // line 22
  79.         echo $this->extensions['Eccube\Twig\Extension\EccubeExtension']->getClassCategoriesAsJson((isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'22$this->source); })()));
  80.         echo ";
  81.         // 規格2に選択肢を割り当てる。
  82.         function fnSetClassCategories(form, classcat_id2_selected) {
  83.             var \$form = \$(form);
  84.             var product_id = \$form.find('input[name=product_id]').val();
  85.             var \$sele1 = \$form.find('select[name=classcategory_id1]');
  86.             var \$sele2 = \$form.find('select[name=classcategory_id2]');
  87.             eccube.setClassCategories(\$form, product_id, \$sele1, \$sele2, classcat_id2_selected);
  88.         }
  89.         ";
  90.         // line 33
  91.         if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id2", [], "any"truetruefalse33)) {
  92.             // line 34
  93.             echo "        fnSetClassCategories(
  94.             \$('#form1'), ";
  95.             // line 35
  96.             echo json_encode(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_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.'35$this->source); })()), "classcategory_id2", [], "any"falsefalsefalse35), "vars", [], "any"falsefalsefalse35), "value", [], "any"falsefalsefalse35));
  97.             echo "
  98.         );
  99.         ";
  100.         } elseif (twig_get_attribute($this->env$this->source,         // line 37
  101. ($context["form"] ?? null), "classcategory_id1", [], "any"truetruefalse37)) {
  102.             // line 38
  103.             echo "        eccube.checkStock(\$('#form1'), ";
  104.             echo twig_escape_filter($this->envtwig_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.'38$this->source); })()), "id", [], "any"falsefalsefalse38), "html"nulltrue);
  105.             echo ", ";
  106.             echo json_encode(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_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.'38$this->source); })()), "classcategory_id1", [], "any"falsefalsefalse38), "vars", [], "any"falsefalsefalse38), "value", [], "any"falsefalsefalse38));
  107.             echo ", null);
  108.         ";
  109.         }
  110.         // line 40
  111.         echo "    </script>
  112.     <script>
  113.         \$(function() {
  114.             // bfcache無効化
  115.             \$(window).bind('pageshow', function(event) {
  116.                 if (event.originalEvent.persisted) {
  117.                     location.reload(true);
  118.                 }
  119.             });
  120.             // Core Web Vital の Cumulative Layout Shift(CLS)対策のため
  121.             // img タグに width, height が付与されている.
  122.             // 630px 未満の画面サイズでは縦横比が壊れるための対策
  123.             // see https://github.com/EC-CUBE/ec-cube/pull/5023
  124.             \$('.ec-grid2__cell').hide();
  125.             var removeSize = function () {
  126.                 \$('.slide-item').height('');
  127.                 \$('.slide-item img')
  128.                     .removeAttr('width')
  129.                     .removeAttr('height')
  130.                     .removeAttr('style');
  131.             };
  132.             var slickInitial = function(slick) {
  133.                 \$('.ec-grid2__cell').fadeIn(1500);
  134.                 var baseHeight = \$(slick.target).height();
  135.                 var baseWidth = \$(slick.target).width();
  136.                 var rate = baseWidth / baseHeight;
  137.                 \$('.slide-item').height(baseHeight * rate); // 余白を削除する
  138.                 // transform を使用することでCLSの影響を受けないようにする
  139.                 \$('.slide-item img')
  140.                     .css(
  141.                         {
  142.                             'transform-origin': 'top left',
  143.                             'transform': 'scaleY(' + rate + ')',
  144.                             'transition': 'transform .1s'
  145.                         }
  146.                     );
  147.                 // 正しいサイズに近くなったら属性を解除する
  148.                 setTimeout(removeSize, 500);
  149.             };
  150.             \$('.item_visual').on('init', slickInitial);
  151.             // リサイズ時は CLS の影響を受けないため属性を解除する
  152.             \$(window).resize(removeSize);
  153.             \$('.item_visual').slick({
  154.                 dots: false,
  155.                 arrows: false,
  156.                 slidesToShow: 1,
  157.                 responsive: [{
  158.                     breakpoint: 768,
  159.                     settings: {
  160.                         dots: true
  161.                     }
  162.                 }]
  163.             });
  164.             \$('.slideThumb').on('click', function() {
  165.                 var index = \$(this).attr('data-index');
  166.                 \$('.item_visual').slick('slickGoTo', index, false);
  167.             });
  168.             \$('.item_visual').slick('setPosition');
  169.         });
  170.     </script>
  171.     <script>
  172.         \$(function() {
  173.             \$('.add-cart').on('click', function(event) {
  174.                 ";
  175.         // line 107
  176.         if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id1", [], "any"truetruefalse107)) {
  177.             // line 108
  178.             echo "                // 規格1フォームの必須チェック
  179.                 if (\$('#classcategory_id1').val() == '__unselected' || \$('#classcategory_id1').val() == '') {
  180.                     \$('#classcategory_id1')[0].setCustomValidity('";
  181.             // line 110
  182.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("項目が選択されていません"), "html"nulltrue);
  183.             echo "');
  184.                     return true;
  185.                 } else {
  186.                     \$('#classcategory_id1')[0].setCustomValidity('');
  187.                 }
  188.                 ";
  189.         }
  190.         // line 116
  191.         echo "
  192.                 ";
  193.         // line 117
  194.         if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id2", [], "any"truetruefalse117)) {
  195.             // line 118
  196.             echo "                // 規格2フォームの必須チェック
  197.                 if (\$('#classcategory_id2').val() == '__unselected' || \$('#classcategory_id2').val() == '') {
  198.                     \$('#classcategory_id2')[0].setCustomValidity('";
  199.             // line 120
  200.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("項目が選択されていません"), "html"nulltrue);
  201.             echo "');
  202.                     return true;
  203.                 } else {
  204.                     \$('#classcategory_id2')[0].setCustomValidity('');
  205.                 }
  206.                 ";
  207.         }
  208.         // line 126
  209.         echo "
  210.                 // 個数フォームのチェック
  211.                 if (\$('#quantity').val() < 1) {
  212.                     \$('#quantity')[0].setCustomValidity('";
  213.         // line 129
  214.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("1以上で入力してください。"), "html"nulltrue);
  215.         echo "');
  216.                     return true;
  217.                 } else {
  218.                     \$('#quantity')[0].setCustomValidity('');
  219.                 }
  220.                 event.preventDefault();
  221.                 \$form = \$('#form1');
  222.                 \$.ajax({
  223.                     url: \$form.attr('action'),
  224.                     type: \$form.attr('method'),
  225.                     data: \$form.serialize(),
  226.                     dataType: 'json',
  227.                     beforeSend: function(xhr, settings) {
  228.                         // Buttonを無効にする
  229.                         \$('.add-cart').prop('disabled', true);
  230.                     }
  231.                 }).done(function(data) {
  232.                     // レスポンス内のメッセージをalertで表示
  233.                     \$.each(data.messages, function() {
  234.                         \$('#ec-modal-header').html(this);
  235.                     });
  236.                     \$('.ec-modal').show()
  237.                     // カートブロックを更新する
  238.                     \$.ajax({
  239.                         url: \"";
  240.         // line 156
  241.         echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("block_cart");
  242.         echo "\",
  243.                         type: 'GET',
  244.                         dataType: 'html'
  245.                     }).done(function(html) {
  246.                         \$('.ec-headerRole__cart').html(html);
  247.                     });
  248.                 }).fail(function(data) {
  249.                     alert('";
  250.         // line 163
  251.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートへの追加に失敗しました。"), "html"nulltrue);
  252.         echo "');
  253.                 }).always(function(data) {
  254.                     // Buttonを有効にする
  255.                     \$('.add-cart').prop('disabled', false);
  256.                 });
  257.             });
  258.         });
  259.         \$('.ec-modal-wrap').on('click', function(e) {
  260.             // モーダル内の処理は外側にバブリングさせない
  261.             e.stopPropagation();
  262.         });
  263.         \$('.ec-modal-overlay, .ec-modal, .ec-modal-close, .ec-inlineBtn--cancel').on('click', function() {
  264.             \$('.ec-modal').hide()
  265.         });
  266.     </script>
  267.     <script type=\"application/ld+json\">
  268.     {
  269.         \"@context\": \"https://schema.org/\",
  270.         \"@type\": \"Product\",
  271.         \"name\": \"";
  272.         // line 183
  273.         echo twig_escape_filter($this->envtwig_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.'183$this->source); })()), "name", [], "any"falsefalsefalse183), "html"nulltrue);
  274.         echo "\",
  275.         \"image\": [
  276.             ";
  277.         // line 185
  278.         $context['_parent'] = $context;
  279.         $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.'185$this->source); })()), "ProductImage", [], "any"falsefalsefalse185));
  280.         $context['_iterated'] = false;
  281.         $context['loop'] = [
  282.           'parent' => $context['_parent'],
  283.           'index0' => 0,
  284.           'index'  => 1,
  285.           'first'  => true,
  286.         ];
  287.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  288.             $length count($context['_seq']);
  289.             $context['loop']['revindex0'] = $length 1;
  290.             $context['loop']['revindex'] = $length;
  291.             $context['loop']['length'] = $length;
  292.             $context['loop']['last'] = === $length;
  293.         }
  294.         foreach ($context['_seq'] as $context["_key"] => $context["img"]) {
  295.             // line 186
  296.             echo "                \"";
  297.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_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.'186$this->source); })()), "request", [], "any"falsefalsefalse186), "schemeAndHttpHost", [], "any"falsefalsefalse186), "html"nulltrue);
  298.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($context["img"], "save_image"), "html"nulltrue);
  299.             echo "\"";
  300.             if ( !twig_get_attribute($this->env$this->source$context["loop"], "last", [], "any"falsefalsefalse186)) {
  301.                 echo ",";
  302.             }
  303.             // line 187
  304.             echo "
  305.             ";
  306.             $context['_iterated'] = true;
  307.             ++$context['loop']['index0'];
  308.             ++$context['loop']['index'];
  309.             $context['loop']['first'] = false;
  310.             if (isset($context['loop']['length'])) {
  311.                 --$context['loop']['revindex0'];
  312.                 --$context['loop']['revindex'];
  313.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  314.             }
  315.         }
  316.         if (!$context['_iterated']) {
  317.             // line 189
  318.             echo "                \"";
  319.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_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.'189$this->source); })()), "request", [], "any"falsefalsefalse189), "schemeAndHttpHost", [], "any"falsefalsefalse189), "html"nulltrue);
  320.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($this->extensions['Eccube\Twig\Extension\EccubeExtension']->getNoImageProduct(""), "save_image"), "html"nulltrue);
  321.             echo "\"
  322.             ";
  323.         }
  324.         $_parent $context['_parent'];
  325.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['img'], $context['_parent'], $context['loop']);
  326.         $context array_intersect_key($context$_parent) + $_parent;
  327.         // line 191
  328.         echo "        ],
  329.         \"description\": \"";
  330.         // line 192
  331.         echo twig_escape_filter($this->envtwig_slice($this->envtwig_replace_filter(((twig_get_attribute($this->env$this->source, ($context["Product"] ?? null), "description_list", [], "any"truetruefalse192)) ? (_twig_default_filter(twig_get_attribute($this->env$this->source, ($context["Product"] ?? null), "description_list", [], "any"falsefalsefalse192), 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.'192$this->source); })()), "description_detail", [], "any"falsefalsefalse192))) : (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.'192$this->source); })()), "description_detail", [], "any"falsefalsefalse192))), ["
  332. => """ " => ""]), 0300), "html"nulltrue);
  333.         echo "\",
  334.         ";
  335.         // line 193
  336.         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.'193$this->source); })()), "code_min", [], "any"falsefalsefalse193)) {
  337.             // line 194
  338.             echo "        \"sku\": \"";
  339.             echo twig_escape_filter($this->envtwig_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.'194$this->source); })()), "code_min", [], "any"falsefalsefalse194), "html"nulltrue);
  340.             echo "\",
  341.         ";
  342.         }
  343.         // line 196
  344.         echo "        \"offers\": {
  345.             \"@type\": \"Offer\",
  346.             \"url\": \"";
  347.         // line 198
  348.         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.'198$this->source); })()), "id", [], "any"falsefalsefalse198)]), "html"nulltrue);
  349.         echo "\",
  350.             \"priceCurrency\": \"";
  351.         // line 199
  352.         echo twig_escape_filter($this->envtwig_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.'199$this->source); })()), "currency", [], "any"falsefalsefalse199), "html"nulltrue);
  353.         echo "\",
  354.             \"price\": ";
  355.         // line 200
  356.         ((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.'200$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse200)) ? (print (twig_escape_filter($this->envtwig_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.'200$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse200), "html"nulltrue))) : (print (0)));
  357.         echo ",
  358.             \"availability\": \"";
  359.         // line 201
  360.         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.'201$this->source); })()), "stock_find", [], "any"falsefalsefalse201)) ? ("InStock") : ("OutOfStock"));
  361.         echo "\"
  362.         }
  363.     }
  364.     </script>
  365. ";
  366.         
  367.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  368.         
  369.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  370.     }
  371.     // line 207
  372.     public function block_main($context, array $blocks = [])
  373.     {
  374.         $macros $this->macros;
  375.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  376.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""main"));
  377.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  378.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""main"));
  379.         // line 208
  380.         echo "    <div class=\"ec-productRole\">
  381.         <div class=\"ec-grid2\">
  382.             <div class=\"ec-grid2__cell ec-slider\">
  383.                 <div class=\"ec-sliderItemRole\">
  384.                     <div class=\"item_visual\">
  385.                         ";
  386.         // line 213
  387.         $context['_parent'] = $context;
  388.         $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.'213$this->source); })()), "ProductImage", [], "any"falsefalsefalse213));
  389.         $context['_iterated'] = false;
  390.         $context['loop'] = [
  391.           'parent' => $context['_parent'],
  392.           'index0' => 0,
  393.           'index'  => 1,
  394.           'first'  => true,
  395.         ];
  396.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  397.             $length count($context['_seq']);
  398.             $context['loop']['revindex0'] = $length 1;
  399.             $context['loop']['revindex'] = $length;
  400.             $context['loop']['length'] = $length;
  401.             $context['loop']['last'] = === $length;
  402.         }
  403.         foreach ($context['_seq'] as $context["_key"] => $context["ProductImage"]) {
  404.             // line 214
  405.             echo "                            <div class=\"slide-item\"><img src=\"";
  406.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($context["ProductImage"], "save_image"), "html"nulltrue);
  407.             echo "\" alt=\"";
  408.             ((twig_get_attribute($this->env$this->source$context["loop"], "first", [], "any"falsefalsefalse214)) ? (print (twig_escape_filter($this->envtwig_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.'214$this->source); })()), "name", [], "any"falsefalsefalse214), "html"nulltrue))) : (print ("")));
  409.             echo "\"></div>
  410.                         ";
  411.             $context['_iterated'] = true;
  412.             ++$context['loop']['index0'];
  413.             ++$context['loop']['index'];
  414.             $context['loop']['first'] = false;
  415.             if (isset($context['loop']['length'])) {
  416.                 --$context['loop']['revindex0'];
  417.                 --$context['loop']['revindex'];
  418.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  419.             }
  420.         }
  421.         if (!$context['_iterated']) {
  422.             // line 216
  423.             echo "                            <div class=\"slide-item\"><img src=\"";
  424.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($this->extensions['Eccube\Twig\Extension\EccubeExtension']->getNoImageProduct(""), "save_image"), "html"nulltrue);
  425.             echo "\" alt=\"";
  426.             ((twig_get_attribute($this->env$this->source$context["loop"], "first", [], "any"falsefalsefalse216)) ? (print (twig_escape_filter($this->envtwig_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.'216$this->source); })()), "name", [], "any"falsefalsefalse216), "html"nulltrue))) : (print ("")));
  427.             echo "\" /></div>
  428.                         ";
  429.         }
  430.         $_parent $context['_parent'];
  431.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductImage'], $context['_parent'], $context['loop']);
  432.         $context array_intersect_key($context$_parent) + $_parent;
  433.         // line 218
  434.         echo "                    </div>
  435.                     <div class=\"item_nav\">
  436.                         ";
  437.         // line 220
  438.         $context['_parent'] = $context;
  439.         $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.'220$this->source); })()), "ProductImage", [], "any"falsefalsefalse220));
  440.         $context['loop'] = [
  441.           'parent' => $context['_parent'],
  442.           'index0' => 0,
  443.           'index'  => 1,
  444.           'first'  => true,
  445.         ];
  446.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  447.             $length count($context['_seq']);
  448.             $context['loop']['revindex0'] = $length 1;
  449.             $context['loop']['revindex'] = $length;
  450.             $context['loop']['length'] = $length;
  451.             $context['loop']['last'] = === $length;
  452.         }
  453.         foreach ($context['_seq'] as $context["_key"] => $context["ProductImage"]) {
  454.             // line 221
  455.             echo "                            <div class=\"slideThumb\" data-index=\"";
  456.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["loop"], "index0", [], "any"falsefalsefalse221), "html"nulltrue);
  457.             echo "\"><img src=\"";
  458.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($context["ProductImage"], "save_image"), "html"nulltrue);
  459.             echo "\" alt=\"\"></div>
  460.                         ";
  461.             ++$context['loop']['index0'];
  462.             ++$context['loop']['index'];
  463.             $context['loop']['first'] = false;
  464.             if (isset($context['loop']['length'])) {
  465.                 --$context['loop']['revindex0'];
  466.                 --$context['loop']['revindex'];
  467.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  468.             }
  469.         }
  470.         $_parent $context['_parent'];
  471.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductImage'], $context['_parent'], $context['loop']);
  472.         $context array_intersect_key($context$_parent) + $_parent;
  473.         // line 223
  474.         echo "                    </div>
  475.                 </div>
  476.             </div>
  477.             <div class=\"ec-grid2__cell ec-description\">
  478.                 <div class=\"ec-productRole__profile\">
  479.                     ";
  480.         // line 229
  481.         echo "                    <div class=\"ec-productRole__title\">
  482.                         <h2 class=\"ec-headingTitle\">";
  483.         // line 230
  484.         echo twig_escape_filter($this->envtwig_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.'230$this->source); })()), "name", [], "any"falsefalsefalse230), "html"nulltrue);
  485.         echo "</h2>
  486.                     </div>
  487.                     ";
  488.         // line 233
  489.         echo "                    <ul class=\"ec-productRole__tags\">
  490.                         ";
  491.         // line 234
  492.         $context['_parent'] = $context;
  493.         $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.'234$this->source); })()), "Tags", [], "any"falsefalsefalse234));
  494.         foreach ($context['_seq'] as $context["_key"] => $context["Tag"]) {
  495.             // line 235
  496.             echo "                            <li class=\"ec-productRole__tag tag_";
  497.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["Tag"], "id", [], "any"falsefalsefalse235), "html"nulltrue);
  498.             echo "\">";
  499.             echo twig_escape_filter($this->env$context["Tag"], "html"nulltrue);
  500.             echo "</li>
  501.                         ";
  502.         }
  503.         $_parent $context['_parent'];
  504.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['Tag'], $context['_parent'], $context['loop']);
  505.         $context array_intersect_key($context$_parent) + $_parent;
  506.         // line 237
  507.         echo "                    </ul>
  508.                     ";
  509.         // line 239
  510.         echo "                    ";
  511.         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.'239$this->source); })()), "hasProductClass", [], "any"falsefalsefalse239)) {
  512.             // line 240
  513.             echo "<div class=\"ec-productRole__priceRegular\">
  514.                             ";
  515.             // line 241
  516.             if (( !(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.'241$this->source); })()), "getPrice01Min", [], "any"falsefalsefalse241)) && (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.'241$this->source); })()), "getPrice01IncTaxMin", [], "any"falsefalsefalse241) == 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.'241$this->source); })()), "getPrice01IncTaxMax", [], "any"falsefalsefalse241)))) {
  517.                 // line 242
  518.                 echo "                                <span class=\"ec-productRole__priceRegularPrice\">";
  519.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("通常価格"), "html"nulltrue);
  520.                 echo ":<span class=\"price01-default\">";
  521.                 echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(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.'242$this->source); })()), "getPrice01IncTaxMin", [], "any"falsefalsefalse242)), "html"nulltrue);
  522.                 echo "</span></span>
  523.                                 <span class=\"ec-productRole__priceRegularTax\">";
  524.                 // line 243
  525.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html"nulltrue);
  526.                 echo "</span>
  527.                             ";
  528.             } elseif (( !(null === twig_get_attribute($this->env$this->source,             // line 244
  529. (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'244$this->source); })()), "getPrice01Min", [], "any"falsefalsefalse244)) &&  !(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.'244$this->source); })()), "getPrice01Max", [], "any"falsefalsefalse244)))) {
  530.                 // line 245
  531.                 echo "                                <span class=\"ec-productRole__priceRegularPrice\">";
  532.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("通常価格"), "html"nulltrue);
  533.                 echo ":<span class=\"price01-default\">";
  534.                 echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(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.'245$this->source); })()), "getPrice01IncTaxMin", [], "any"falsefalsefalse245)), "html"nulltrue);
  535.                 echo " ~ ";
  536.                 echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(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.'245$this->source); })()), "getPrice01IncTaxMax", [], "any"falsefalsefalse245)), "html"nulltrue);
  537.                 echo "</span></span>
  538.                                 <span class=\"ec-productRole__priceRegularTax\">";
  539.                 // line 246
  540.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html"nulltrue);
  541.                 echo "</span>
  542.                             ";
  543.             }
  544.             // line 248
  545.             echo "                        </div>
  546.                     ";
  547.         } else {
  548.             // line 250
  549.             echo "                        ";
  550.             if ( !(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.'250$this->source); })()), "getPrice01Max", [], "any"falsefalsefalse250))) {
  551.                 // line 251
  552.                 echo "                        <div class=\"ec-productRole__priceRegular--div\">
  553.                             <span class=\"ec-productRole__priceRegularPrice\">";
  554.                 // line 252
  555.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("通常価格"), "html"nulltrue);
  556.                 echo ":";
  557.                 echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(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.'252$this->source); })()), "getPrice01IncTaxMin", [], "any"falsefalsefalse252)), "html"nulltrue);
  558.                 echo "</span>
  559.                             <span class=\"ec-productRole__priceRegularTax\">";
  560.                 // line 253
  561.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html"nulltrue);
  562.                 echo "</span>
  563.                         </div>
  564.                         ";
  565.             }
  566.             // line 256
  567.             echo "                    ";
  568.         }
  569.         // line 257
  570.         echo "                    ";
  571.         // line 258
  572.         echo "                    <div class=\"ec-productRole__price\">
  573.                         ";
  574.         // line 259
  575.         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.'259$this->source); })()), "hasProductClass", [], "any"falsefalsefalse259)) {
  576.             // line 260
  577.             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.'260$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse260) == 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.'260$this->source); })()), "getPrice02IncTaxMax", [], "any"falsefalsefalse260))) {
  578.                 // line 261
  579.                 echo "                                <div class=\"ec-price\">
  580.                                     <span class=\"ec-price__price price02-default\">";
  581.                 // line 262
  582.                 echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(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.'262$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse262)), "html"nulltrue);
  583.                 echo "</span>
  584.                                     <span class=\"ec-price__tax\">";
  585.                 // line 263
  586.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html"nulltrue);
  587.                 echo "</span>
  588.                                 </div>
  589.                             ";
  590.             } else {
  591.                 // line 266
  592.                 echo "                                <div class=\"ec-price\">
  593.                                     <span class=\"ec-price__price price02-default\">";
  594.                 // line 267
  595.                 echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(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.'267$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse267)), "html"nulltrue);
  596.                 echo " ~ ";
  597.                 echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(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.'267$this->source); })()), "getPrice02IncTaxMax", [], "any"falsefalsefalse267)), "html"nulltrue);
  598.                 echo "</span>
  599.                                     <span class=\"ec-price__tax\">";
  600.                 // line 268
  601.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html"nulltrue);
  602.                 echo "</span>
  603.                                 </div>
  604.                             ";
  605.             }
  606.             // line 271
  607.             echo "                        ";
  608.         } else {
  609.             // line 272
  610.             echo "                            <div class=\"ec-price\">
  611.                                 <span class=\"ec-price__price\">";
  612.             // line 273
  613.             echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(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.'273$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse273)), "html"nulltrue);
  614.             echo "</span>
  615.                                 <span class=\"ec-price__tax\">";
  616.             // line 274
  617.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html"nulltrue);
  618.             echo "</span>
  619.                             </div>
  620.                         ";
  621.         }
  622.         // line 277
  623.         echo "                    ";
  624.         echo twig_include($this->env$context"@ProductOption42/default/Product/option_price.twig", array(), truetrue);
  625.         echo "
  626.                     </div>
  627.                     ";
  628.         // line 280
  629.         echo "                    ";
  630.         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.'280$this->source); })()), "code_min", [], "any"falsefalsefalse280))) {
  631.             // line 281
  632.             echo "                        <div class=\"ec-productRole__code\">
  633.                             ";
  634.             // line 282
  635.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("商品コード"), "html"nulltrue);
  636.             echo ": <span class=\"product-code-default\">";
  637.             echo twig_escape_filter($this->envtwig_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.'282$this->source); })()), "code_min", [], "any"falsefalsefalse282), "html"nulltrue);
  638.             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.'282$this->source); })()), "code_min", [], "any"falsefalsefalse282) != 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.'282$this->source); })()), "code_max", [], "any"falsefalsefalse282))) {
  639.                 echo " ~ ";
  640.                 echo twig_escape_filter($this->envtwig_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.'282$this->source); })()), "code_max", [], "any"falsefalsefalse282), "html"nulltrue);
  641.             }
  642.             echo "</span>
  643.                         </div>
  644.                     ";
  645.         }
  646.         // line 285
  647.         echo "                    ";
  648.         // line 286
  649.         echo "                    ";
  650.         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.'286$this->source); })()), "ProductCategories", [], "any"falsefalsefalse286))) {
  651.             // line 287
  652.             echo "                        <div class=\"ec-productRole__category\">
  653.                             <div>";
  654.             // line 288
  655.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("関連カテゴリ"), "html"nulltrue);
  656.             echo "</div>
  657.                                 ";
  658.             // line 289
  659.             $context['_parent'] = $context;
  660.             $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.'289$this->source); })()), "ProductCategories", [], "any"falsefalsefalse289));
  661.             $context['loop'] = [
  662.               'parent' => $context['_parent'],
  663.               'index0' => 0,
  664.               'index'  => 1,
  665.               'first'  => true,
  666.             ];
  667.             if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  668.                 $length count($context['_seq']);
  669.                 $context['loop']['revindex0'] = $length 1;
  670.                 $context['loop']['revindex'] = $length;
  671.                 $context['loop']['length'] = $length;
  672.                 $context['loop']['last'] = === $length;
  673.             }
  674.             foreach ($context['_seq'] as $context["_key"] => $context["ProductCategory"]) {
  675.                 // line 290
  676.                 echo "                                        <a href=\"";
  677.                 echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_list");
  678.                 echo "?category_id=";
  679.                 echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["ProductCategory"], "category_id", [], "any"falsefalsefalse290), "html"nulltrue);
  680.                 echo "\">";
  681.                 echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["ProductCategory"], "Category", [], "any"falsefalsefalse290), "name", [], "any"falsefalsefalse290), "html"nulltrue);
  682.                 echo "</a>";
  683.                 if ((twig_get_attribute($this->env$this->source$context["loop"], "last", [], "any"falsefalsefalse290) == false)) {
  684.                     // line 291
  685.                     echo "                    \t\t        <span>></span>";
  686.                 }
  687.                 ++$context['loop']['index0'];
  688.                 ++$context['loop']['index'];
  689.                 $context['loop']['first'] = false;
  690.                 if (isset($context['loop']['length'])) {
  691.                     --$context['loop']['revindex0'];
  692.                     --$context['loop']['revindex'];
  693.                     $context['loop']['last'] = === $context['loop']['revindex0'];
  694.                 }
  695.             }
  696.             $_parent $context['_parent'];
  697.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductCategory'], $context['_parent'], $context['loop']);
  698.             $context array_intersect_key($context$_parent) + $_parent;
  699.             // line 293
  700.             echo "                            </div>
  701.                     ";
  702.         }
  703.         // line 295
  704.         echo "                    <form action=\"";
  705.         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.'295$this->source); })()), "id", [], "any"falsefalsefalse295)]), "html"nulltrue);
  706.         echo "\" method=\"post\" id=\"form1\" name=\"form1\">
  707.                         ";
  708.         // line 296
  709.         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.'296$this->source); })()), "stock_find", [], "any"falsefalsefalse296)) {
  710.             // line 297
  711.             echo "                            <div class=\"ec-productRole__actions\">
  712.                                 ";
  713.             // line 298
  714.             if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id1", [], "any"truetruefalse298)) {
  715.                 // line 299
  716.                 echo "                                    <div class=\"ec-select\">
  717.                                         ";
  718.                 // line 300
  719.                 echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(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.'300$this->source); })()), "classcategory_id1", [], "any"falsefalsefalse300), 'row');
  720.                 echo "
  721.                                         ";
  722.                 // line 301
  723.                 echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(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.'301$this->source); })()), "classcategory_id1", [], "any"falsefalsefalse301), 'errors');
  724.                 echo "
  725.                                     </div>
  726.                                     ";
  727.                 // line 303
  728.                 if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id2", [], "any"truetruefalse303)) {
  729.                     // line 304
  730.                     echo "                                        <div class=\"ec-select\">
  731.                                             ";
  732.                     // line 305
  733.                     echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(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.'305$this->source); })()), "classcategory_id2", [], "any"falsefalsefalse305), 'row');
  734.                     echo "
  735.                                             ";
  736.                     // line 306
  737.                     echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(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.'306$this->source); })()), "classcategory_id2", [], "any"falsefalsefalse306), 'errors');
  738.                     echo "
  739.                                         </div>
  740.                                     ";
  741.                 }
  742.                 // line 309
  743.                 echo "                                ";
  744.             }
  745.             // line 310
  746.             echo "                                ";
  747.             echo twig_include($this->env$context"Product/option.twig");
  748.             echo "<div class=\"ec-numberInput\"><span>";
  749.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("数量"), "html"nulltrue);
  750.             echo "</span>
  751.                                     ";
  752.             // line 311
  753.             echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(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.'311$this->source); })()), "quantity", [], "any"falsefalsefalse311), 'widget');
  754.             echo "
  755.                                     ";
  756.             // line 312
  757.             echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(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.'312$this->source); })()), "quantity", [], "any"falsefalsefalse312), 'errors');
  758.             echo "
  759.                                 </div>
  760.                             </div>
  761.                             <div class=\"ec-productRole__btn\">
  762.                                 <button type=\"submit\" class=\"ec-blockBtn--action add-cart\">
  763.                                     ";
  764.             // line 317
  765.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートに入れる"), "html"nulltrue);
  766.             echo "
  767.                                 </button>
  768.                             </div>
  769.                         ";
  770.         } else {
  771.             // line 321
  772.             echo "                            <div class=\"ec-productRole__btn\">
  773.                                 <button type=\"button\" class=\"ec-blockBtn--action\" disabled=\"disabled\">
  774.                                     ";
  775.             // line 323
  776.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("ただいま品切れ中です。"), "html"nulltrue);
  777.             echo "
  778.                                 </button>
  779.                             </div>
  780.                         ";
  781.         }
  782.         // line 327
  783.         echo "
  784.                         ";
  785.         // line 328
  786.         echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock((isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'328$this->source); })()), 'rest');
  787.         echo "
  788.                     </form>
  789.                     ";
  790.         // line 330
  791.         echo twig_include($this->env$context"Product/option_description.twig");
  792.         echo "<div class=\"ec-modal\">
  793.                         <div class=\"ec-modal-overlay\">
  794.                             <div class=\"ec-modal-wrap\">
  795.                                 <span class=\"ec-modal-close\"><span class=\"ec-icon\"><img src=\"";
  796.         // line 333
  797.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/icon/cross-dark.svg"), "html"nulltrue);
  798.         echo "\" alt=\"\"/></span></span>
  799.                                 <div id=\"ec-modal-header\" class=\"text-center\">";
  800.         // line 334
  801.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートに追加しました。"), "html"nulltrue);
  802.         echo "</div>
  803.                                 <div class=\"ec-modal-box\">
  804.                                     <div class=\"ec-role\">
  805.                                         <span class=\"ec-inlineBtn--cancel\">";
  806.         // line 337
  807.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お買い物を続ける"), "html"nulltrue);
  808.         echo "</span>
  809.                                         <a href=\"";
  810.         // line 338
  811.         echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("cart");
  812.         echo "\" class=\"ec-inlineBtn--action\">";
  813.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートへ進む"), "html"nulltrue);
  814.         echo "</a>
  815.                                     </div>
  816.                                 </div>
  817.                             </div>
  818.                         </div>
  819.                     </div>
  820.                     ";
  821.         // line 344
  822.         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.'344$this->source); })()), "option_favorite_product", [], "any"falsefalsefalse344)) {
  823.             // line 345
  824.             echo "                        <form action=\"";
  825.             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.'345$this->source); })()), "id", [], "any"falsefalsefalse345)]), "html"nulltrue);
  826.             echo "\" method=\"post\">
  827.                             <div class=\"ec-productRole__btn ec-productRole__favorite\">
  828.                                 ";
  829.             // line 347
  830.             if (((isset($context["is_favorite"]) || array_key_exists("is_favorite"$context) ? $context["is_favorite"] : (function () { throw new RuntimeError('Variable "is_favorite" does not exist.'347$this->source); })()) == false)) {
  831.                 // line 348
  832.                 echo "                                    <button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--cancel\">
  833.                                         ";
  834.                 // line 349
  835.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お気に入りに追加"), "html"nulltrue);
  836.                 echo "
  837.                                     </button>
  838.                                 ";
  839.             } else {
  840.                 // line 352
  841.                 echo "                                    <button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--cancel\"
  842.                                             disabled=\"disabled\">";
  843.                 // line 353
  844.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お気に入りに追加済です。"), "html"nulltrue);
  845.                 echo "
  846.                                     </button>
  847.                                 ";
  848.             }
  849.             // line 356
  850.             echo "                            </div>
  851.                         </form>
  852.                     ";
  853.         }
  854.         // line 359
  855.         echo "                    <div class=\"ec-productRole__description\">";
  856.         echo twig_nl2br(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.'359$this->source); })()), "description_detail", [], "any"falsefalsefalse359));
  857.         echo "
  858.                     </div>
  859.                 </div>
  860.             </div>
  861.         </div>
  862.     </div>
  863.     <div class=\"ec-descriptionRole\">
  864.         ";
  865.         // line 366
  866.         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.'366$this->source); })()), "freearea", [], "any"falsefalsefalse366)) {
  867.             // line 367
  868.             echo "            <div class=\"ec-productRole__description\">
  869.                  ";
  870.             // line 368
  871.             echo twig_include($this->env$contexttwig_template_from_string($this->envtwig_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); })()), "freearea", [], "any"falsefalsefalse368)));
  872.             echo "
  873.             </div>
  874.         ";
  875.         }
  876.         // line 371
  877.         echo "    </div>
  878. ";
  879.         
  880.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  881.         
  882.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  883.     }
  884.     public function getTemplateName()
  885.     {
  886.         return "__string_template__c2723b816744910135a474bb2ffc5288f4dab8ddd9657e9007ab741b79f0c8be";
  887.     }
  888.     public function isTraitable()
  889.     {
  890.         return false;
  891.     }
  892.     public function getDebugInfo()
  893.     {
  894.         return array (  911 => 371,  905 => 368,  902 => 367,  900 => 366,  889 => 359,  884 => 356,  878 => 353,  875 => 352,  869 => 349,  866 => 348,  864 => 347,  858 => 345,  856 => 344,  845 => 338,  841 => 337,  835 => 334,  831 => 333,  825 => 330,  820 => 328,  817 => 327,  810 => 323,  806 => 321,  799 => 317,  791 => 312,  787 => 311,  780 => 310,  777 => 309,  771 => 306,  767 => 305,  764 => 304,  762 => 303,  757 => 301,  753 => 300,  750 => 299,  748 => 298,  745 => 297,  743 => 296,  738 => 295,  734 => 293,  719 => 291,  710 => 290,  693 => 289,  689 => 288,  686 => 287,  683 => 286,  681 => 285,  669 => 282,  666 => 281,  663 => 280,  657 => 277,  651 => 274,  647 => 273,  644 => 272,  641 => 271,  635 => 268,  629 => 267,  626 => 266,  620 => 263,  616 => 262,  613 => 261,  611 => 260,  609 => 259,  606 => 258,  604 => 257,  601 => 256,  595 => 253,  589 => 252,  586 => 251,  583 => 250,  579 => 248,  574 => 246,  565 => 245,  563 => 244,  559 => 243,  552 => 242,  550 => 241,  547 => 240,  544 => 239,  541 => 237,  530 => 235,  526 => 234,  523 => 233,  518 => 230,  515 => 229,  508 => 223,  489 => 221,  472 => 220,  468 => 218,  457 => 216,  439 => 214,  421 => 213,  414 => 208,  404 => 207,  389 => 201,  385 => 200,  381 => 199,  377 => 198,  373 => 196,  367 => 194,  365 => 193,  360 => 192,  357 => 191,  347 => 189,  333 => 187,  325 => 186,  307 => 185,  302 => 183,  279 => 163,  269 => 156,  239 => 129,  234 => 126,  225 => 120,  221 => 118,  219 => 117,  216 => 116,  207 => 110,  203 => 108,  201 => 107,  132 => 40,  124 => 38,  122 => 37,  117 => 35,  114 => 34,  112 => 33,  98 => 22,  95 => 21,  85 => 20,  73 => 16,  63 => 15,  52 => 11,  50 => 13,  37 => 11,);
  895.     }
  896.     public function getSourceContext()
  897.     {
  898.         return new Source("{#
  899. This file is part of EC-CUBE
  900. Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
  901. http://www.ec-cube.co.jp/
  902. For the full copyright and license information, please view the LICENSE
  903. file that was distributed with this source code.
  904. #}
  905. {% extends 'default_frame.twig' %}
  906. {% set body_class = 'product_page product_detail' %}
  907. {% block stylesheet %}
  908.     <style>
  909.     </style>
  910. {% endblock %}
  911. {% block javascript %}
  912.     <script>
  913.         eccube.classCategories = {{ class_categories_as_json(Product)|raw }};
  914.         // 規格2に選択肢を割り当てる。
  915.         function fnSetClassCategories(form, classcat_id2_selected) {
  916.             var \$form = \$(form);
  917.             var product_id = \$form.find('input[name=product_id]').val();
  918.             var \$sele1 = \$form.find('select[name=classcategory_id1]');
  919.             var \$sele2 = \$form.find('select[name=classcategory_id2]');
  920.             eccube.setClassCategories(\$form, product_id, \$sele1, \$sele2, classcat_id2_selected);
  921.         }
  922.         {% if form.classcategory_id2 is defined %}
  923.         fnSetClassCategories(
  924.             \$('#form1'), {{ form.classcategory_id2.vars.value|json_encode|raw }}
  925.         );
  926.         {% elseif form.classcategory_id1 is defined %}
  927.         eccube.checkStock(\$('#form1'), {{ Product.id }}, {{ form.classcategory_id1.vars.value|json_encode|raw }}, null);
  928.         {% endif %}
  929.     </script>
  930.     <script>
  931.         \$(function() {
  932.             // bfcache無効化
  933.             \$(window).bind('pageshow', function(event) {
  934.                 if (event.originalEvent.persisted) {
  935.                     location.reload(true);
  936.                 }
  937.             });
  938.             // Core Web Vital の Cumulative Layout Shift(CLS)対策のため
  939.             // img タグに width, height が付与されている.
  940.             // 630px 未満の画面サイズでは縦横比が壊れるための対策
  941.             // see https://github.com/EC-CUBE/ec-cube/pull/5023
  942.             \$('.ec-grid2__cell').hide();
  943.             var removeSize = function () {
  944.                 \$('.slide-item').height('');
  945.                 \$('.slide-item img')
  946.                     .removeAttr('width')
  947.                     .removeAttr('height')
  948.                     .removeAttr('style');
  949.             };
  950.             var slickInitial = function(slick) {
  951.                 \$('.ec-grid2__cell').fadeIn(1500);
  952.                 var baseHeight = \$(slick.target).height();
  953.                 var baseWidth = \$(slick.target).width();
  954.                 var rate = baseWidth / baseHeight;
  955.                 \$('.slide-item').height(baseHeight * rate); // 余白を削除する
  956.                 // transform を使用することでCLSの影響を受けないようにする
  957.                 \$('.slide-item img')
  958.                     .css(
  959.                         {
  960.                             'transform-origin': 'top left',
  961.                             'transform': 'scaleY(' + rate + ')',
  962.                             'transition': 'transform .1s'
  963.                         }
  964.                     );
  965.                 // 正しいサイズに近くなったら属性を解除する
  966.                 setTimeout(removeSize, 500);
  967.             };
  968.             \$('.item_visual').on('init', slickInitial);
  969.             // リサイズ時は CLS の影響を受けないため属性を解除する
  970.             \$(window).resize(removeSize);
  971.             \$('.item_visual').slick({
  972.                 dots: false,
  973.                 arrows: false,
  974.                 slidesToShow: 1,
  975.                 responsive: [{
  976.                     breakpoint: 768,
  977.                     settings: {
  978.                         dots: true
  979.                     }
  980.                 }]
  981.             });
  982.             \$('.slideThumb').on('click', function() {
  983.                 var index = \$(this).attr('data-index');
  984.                 \$('.item_visual').slick('slickGoTo', index, false);
  985.             });
  986.             \$('.item_visual').slick('setPosition');
  987.         });
  988.     </script>
  989.     <script>
  990.         \$(function() {
  991.             \$('.add-cart').on('click', function(event) {
  992.                 {% if form.classcategory_id1 is defined %}
  993.                 // 規格1フォームの必須チェック
  994.                 if (\$('#classcategory_id1').val() == '__unselected' || \$('#classcategory_id1').val() == '') {
  995.                     \$('#classcategory_id1')[0].setCustomValidity('{{ '項目が選択されていません'|trans }}');
  996.                     return true;
  997.                 } else {
  998.                     \$('#classcategory_id1')[0].setCustomValidity('');
  999.                 }
  1000.                 {% endif %}
  1001.                 {% if form.classcategory_id2 is defined %}
  1002.                 // 規格2フォームの必須チェック
  1003.                 if (\$('#classcategory_id2').val() == '__unselected' || \$('#classcategory_id2').val() == '') {
  1004.                     \$('#classcategory_id2')[0].setCustomValidity('{{ '項目が選択されていません'|trans }}');
  1005.                     return true;
  1006.                 } else {
  1007.                     \$('#classcategory_id2')[0].setCustomValidity('');
  1008.                 }
  1009.                 {% endif %}
  1010.                 // 個数フォームのチェック
  1011.                 if (\$('#quantity').val() < 1) {
  1012.                     \$('#quantity')[0].setCustomValidity('{{ '1以上で入力してください。'|trans }}');
  1013.                     return true;
  1014.                 } else {
  1015.                     \$('#quantity')[0].setCustomValidity('');
  1016.                 }
  1017.                 event.preventDefault();
  1018.                 \$form = \$('#form1');
  1019.                 \$.ajax({
  1020.                     url: \$form.attr('action'),
  1021.                     type: \$form.attr('method'),
  1022.                     data: \$form.serialize(),
  1023.                     dataType: 'json',
  1024.                     beforeSend: function(xhr, settings) {
  1025.                         // Buttonを無効にする
  1026.                         \$('.add-cart').prop('disabled', true);
  1027.                     }
  1028.                 }).done(function(data) {
  1029.                     // レスポンス内のメッセージをalertで表示
  1030.                     \$.each(data.messages, function() {
  1031.                         \$('#ec-modal-header').html(this);
  1032.                     });
  1033.                     \$('.ec-modal').show()
  1034.                     // カートブロックを更新する
  1035.                     \$.ajax({
  1036.                         url: \"{{ url('block_cart') }}\",
  1037.                         type: 'GET',
  1038.                         dataType: 'html'
  1039.                     }).done(function(html) {
  1040.                         \$('.ec-headerRole__cart').html(html);
  1041.                     });
  1042.                 }).fail(function(data) {
  1043.                     alert('{{ 'カートへの追加に失敗しました。'|trans }}');
  1044.                 }).always(function(data) {
  1045.                     // Buttonを有効にする
  1046.                     \$('.add-cart').prop('disabled', false);
  1047.                 });
  1048.             });
  1049.         });
  1050.         \$('.ec-modal-wrap').on('click', function(e) {
  1051.             // モーダル内の処理は外側にバブリングさせない
  1052.             e.stopPropagation();
  1053.         });
  1054.         \$('.ec-modal-overlay, .ec-modal, .ec-modal-close, .ec-inlineBtn--cancel').on('click', function() {
  1055.             \$('.ec-modal').hide()
  1056.         });
  1057.     </script>
  1058.     <script type=\"application/ld+json\">
  1059.     {
  1060.         \"@context\": \"https://schema.org/\",
  1061.         \"@type\": \"Product\",
  1062.         \"name\": \"{{ Product.name }}\",
  1063.         \"image\": [
  1064.             {% for img in Product.ProductImage %}
  1065.                 \"{{ app.request.schemeAndHttpHost }}{{ asset(img, 'save_image') }}\"{% if not loop.last %},{% endif %}
  1066.             {% else %}
  1067.                 \"{{ app.request.schemeAndHttpHost }}{{ asset(''|no_image_product, 'save_image') }}\"
  1068.             {% endfor %}
  1069.         ],
  1070.         \"description\": \"{{ Product.description_list | default(Product.description_detail) | replace({'\\n': '', '\\r': ''}) | slice(0,300) }}\",
  1071.         {% if Product.code_min %}
  1072.         \"sku\": \"{{ Product.code_min }}\",
  1073.         {% endif %}
  1074.         \"offers\": {
  1075.             \"@type\": \"Offer\",
  1076.             \"url\": \"{{ url('product_detail', {'id': Product.id}) }}\",
  1077.             \"priceCurrency\": \"{{ eccube_config.currency }}\",
  1078.             \"price\": {{ Product.getPrice02IncTaxMin ? Product.getPrice02IncTaxMin : 0}},
  1079.             \"availability\": \"{{ Product.stock_find ? \"InStock\" : \"OutOfStock\" }}\"
  1080.         }
  1081.     }
  1082.     </script>
  1083. {% endblock %}
  1084. {% block main %}
  1085.     <div class=\"ec-productRole\">
  1086.         <div class=\"ec-grid2\">
  1087.             <div class=\"ec-grid2__cell ec-slider\">
  1088.                 <div class=\"ec-sliderItemRole\">
  1089.                     <div class=\"item_visual\">
  1090.                         {% for ProductImage in Product.ProductImage %}
  1091.                             <div class=\"slide-item\"><img src=\"{{ asset(ProductImage, 'save_image') }}\" alt=\"{{ loop.first ? Product.name : '' }}\"></div>
  1092.                         {% else %}
  1093.                             <div class=\"slide-item\"><img src=\"{{ asset(''|no_image_product, 'save_image') }}\" alt=\"{{ loop.first ? Product.name : '' }}\" /></div>
  1094.                         {% endfor %}
  1095.                     </div>
  1096.                     <div class=\"item_nav\">
  1097.                         {% for ProductImage in Product.ProductImage %}
  1098.                             <div class=\"slideThumb\" data-index=\"{{ loop.index0 }}\"><img src=\"{{ asset(ProductImage, 'save_image') }}\" alt=\"\"></div>
  1099.                         {% endfor %}
  1100.                     </div>
  1101.                 </div>
  1102.             </div>
  1103.             <div class=\"ec-grid2__cell ec-description\">
  1104.                 <div class=\"ec-productRole__profile\">
  1105.                     {# 商品名 #}
  1106.                     <div class=\"ec-productRole__title\">
  1107.                         <h2 class=\"ec-headingTitle\">{{ Product.name }}</h2>
  1108.                     </div>
  1109.                     {# タグ #}
  1110.                     <ul class=\"ec-productRole__tags\">
  1111.                         {% for Tag in Product.Tags %}
  1112.                             <li class=\"ec-productRole__tag tag_{{ Tag.id }}\">{{ Tag }}</li>
  1113.                         {% endfor %}
  1114.                     </ul>
  1115.                     {# 通常価格 #}
  1116.                     {% if Product.hasProductClass -%}
  1117.                         <div class=\"ec-productRole__priceRegular\">
  1118.                             {% if Product.getPrice01Min is not null and Product.getPrice01IncTaxMin == Product.getPrice01IncTaxMax %}
  1119.                                 <span class=\"ec-productRole__priceRegularPrice\">{{ '通常価格'|trans }}:<span class=\"price01-default\">{{ Product.getPrice01IncTaxMin|price }}</span></span>
  1120.                                 <span class=\"ec-productRole__priceRegularTax\">{{ '税込'|trans }}</span>
  1121.                             {% elseif Product.getPrice01Min is not null and Product.getPrice01Max is not null %}
  1122.                                 <span class=\"ec-productRole__priceRegularPrice\">{{ '通常価格'|trans }}:<span class=\"price01-default\">{{ Product.getPrice01IncTaxMin|price }} ~ {{ Product.getPrice01IncTaxMax|price }}</span></span>
  1123.                                 <span class=\"ec-productRole__priceRegularTax\">{{ '税込'|trans }}</span>
  1124.                             {% endif %}
  1125.                         </div>
  1126.                     {% else %}
  1127.                         {% if Product.getPrice01Max is not null %}
  1128.                         <div class=\"ec-productRole__priceRegular--div\">
  1129.                             <span class=\"ec-productRole__priceRegularPrice\">{{ '通常価格'|trans }}:{{ Product.getPrice01IncTaxMin|price }}</span>
  1130.                             <span class=\"ec-productRole__priceRegularTax\">{{ '税込'|trans }}</span>
  1131.                         </div>
  1132.                         {% endif %}
  1133.                     {% endif %}
  1134.                     {# 販売価格 #}
  1135.                     <div class=\"ec-productRole__price\">
  1136.                         {% if Product.hasProductClass -%}
  1137.                             {% if Product.getPrice02IncTaxMin == Product.getPrice02IncTaxMax %}
  1138.                                 <div class=\"ec-price\">
  1139.                                     <span class=\"ec-price__price price02-default\">{{ Product.getPrice02IncTaxMin|price }}</span>
  1140.                                     <span class=\"ec-price__tax\">{{ '税込'|trans }}</span>
  1141.                                 </div>
  1142.                             {% else %}
  1143.                                 <div class=\"ec-price\">
  1144.                                     <span class=\"ec-price__price price02-default\">{{ Product.getPrice02IncTaxMin|price }} ~ {{ Product.getPrice02IncTaxMax|price }}</span>
  1145.                                     <span class=\"ec-price__tax\">{{ '税込'|trans }}</span>
  1146.                                 </div>
  1147.                             {% endif %}
  1148.                         {% else %}
  1149.                             <div class=\"ec-price\">
  1150.                                 <span class=\"ec-price__price\">{{ Product.getPrice02IncTaxMin|price }}</span>
  1151.                                 <span class=\"ec-price__tax\">{{ '税込'|trans }}</span>
  1152.                             </div>
  1153.                         {% endif %}
  1154.                     {{include('@ProductOption42/default/Product/option_price.twig',ignore_missing=true) }}
  1155.                     </div>
  1156.                     {# 商品コード #}
  1157.                     {% if Product.code_min is not empty %}
  1158.                         <div class=\"ec-productRole__code\">
  1159.                             {{ '商品コード'|trans }}: <span class=\"product-code-default\">{{ Product.code_min }}{% if Product.code_min != Product.code_max %} ~ {{ Product.code_max }}{% endif %}</span>
  1160.                         </div>
  1161.                     {% endif %}
  1162.                     {# 関連カテゴリ #}
  1163.                     {% if Product.ProductCategories is not empty %}
  1164.                         <div class=\"ec-productRole__category\">
  1165.                             <div>{{ '関連カテゴリ'|trans }}</div>
  1166.                                 {% for ProductCategory in Product.ProductCategories %}
  1167.                                         <a href=\"{{ url('product_list') }}?category_id={{ ProductCategory.category_id }}\">{{ ProductCategory.Category.name }}</a> {%- if loop.last == false %}
  1168.                     \t\t        <span>></span>{% endif -%}
  1169.             \t\t        {% endfor %}
  1170.                             </div>
  1171.                     {% endif %}
  1172.                     <form action=\"{{ url('product_add_cart', {id:Product.id}) }}\" method=\"post\" id=\"form1\" name=\"form1\">
  1173.                         {% if Product.stock_find %}
  1174.                             <div class=\"ec-productRole__actions\">
  1175.                                 {% if form.classcategory_id1 is defined %}
  1176.                                     <div class=\"ec-select\">
  1177.                                         {{ form_row(form.classcategory_id1) }}
  1178.                                         {{ form_errors(form.classcategory_id1) }}
  1179.                                     </div>
  1180.                                     {% if form.classcategory_id2 is defined %}
  1181.                                         <div class=\"ec-select\">
  1182.                                             {{ form_row(form.classcategory_id2) }}
  1183.                                             {{ form_errors(form.classcategory_id2) }}
  1184.                                         </div>
  1185.                                     {% endif %}
  1186.                                 {% endif %}
  1187.                                 {{ include('Product/option.twig') }}<div class=\"ec-numberInput\"><span>{{ '数量'|trans }}</span>
  1188.                                     {{ form_widget(form.quantity) }}
  1189.                                     {{ form_errors(form.quantity) }}
  1190.                                 </div>
  1191.                             </div>
  1192.                             <div class=\"ec-productRole__btn\">
  1193.                                 <button type=\"submit\" class=\"ec-blockBtn--action add-cart\">
  1194.                                     {{ 'カートに入れる'|trans }}
  1195.                                 </button>
  1196.                             </div>
  1197.                         {% else %}
  1198.                             <div class=\"ec-productRole__btn\">
  1199.                                 <button type=\"button\" class=\"ec-blockBtn--action\" disabled=\"disabled\">
  1200.                                     {{ 'ただいま品切れ中です。'|trans }}
  1201.                                 </button>
  1202.                             </div>
  1203.                         {% endif %}
  1204.                         {{ form_rest(form) }}
  1205.                     </form>
  1206.                     {{ include('Product/option_description.twig') }}<div class=\"ec-modal\">
  1207.                         <div class=\"ec-modal-overlay\">
  1208.                             <div class=\"ec-modal-wrap\">
  1209.                                 <span class=\"ec-modal-close\"><span class=\"ec-icon\"><img src=\"{{ asset('assets/icon/cross-dark.svg') }}\" alt=\"\"/></span></span>
  1210.                                 <div id=\"ec-modal-header\" class=\"text-center\">{{ 'カートに追加しました。'|trans }}</div>
  1211.                                 <div class=\"ec-modal-box\">
  1212.                                     <div class=\"ec-role\">
  1213.                                         <span class=\"ec-inlineBtn--cancel\">{{ 'お買い物を続ける'|trans }}</span>
  1214.                                         <a href=\"{{ url('cart') }}\" class=\"ec-inlineBtn--action\">{{ 'カートへ進む'|trans }}</a>
  1215.                                     </div>
  1216.                                 </div>
  1217.                             </div>
  1218.                         </div>
  1219.                     </div>
  1220.                     {% if BaseInfo.option_favorite_product %}
  1221.                         <form action=\"{{ url('product_add_favorite', {id:Product.id}) }}\" method=\"post\">
  1222.                             <div class=\"ec-productRole__btn ec-productRole__favorite\">
  1223.                                 {% if is_favorite == false %}
  1224.                                     <button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--cancel\">
  1225.                                         {{ 'お気に入りに追加'|trans }}
  1226.                                     </button>
  1227.                                 {% else %}
  1228.                                     <button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--cancel\"
  1229.                                             disabled=\"disabled\">{{ 'お気に入りに追加済です。'|trans }}
  1230.                                     </button>
  1231.                                 {% endif %}
  1232.                             </div>
  1233.                         </form>
  1234.                     {% endif %}
  1235.                     <div class=\"ec-productRole__description\">{{ Product.description_detail|raw|nl2br }}
  1236.                     </div>
  1237.                 </div>
  1238.             </div>
  1239.         </div>
  1240.     </div>
  1241.     <div class=\"ec-descriptionRole\">
  1242.         {% if Product.freearea %}
  1243.             <div class=\"ec-productRole__description\">
  1244.                  {{ include(template_from_string(Product.freearea)) }}
  1245.             </div>
  1246.         {% endif %}
  1247.     </div>
  1248. {% endblock %}""__string_template__c2723b816744910135a474bb2ffc5288f4dab8ddd9657e9007ab741b79f0c8be""");
  1249.     }
  1250. }