var/cache/dev/twig/ed/edbc9488e57ed43a7b7cdd81fd0bdaec65e074923e7d3b902cc47c84bf2ebcc7.php line 40

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