var/cache/dev/twig/22/22ca044993eb1bd5837baa8d016bb2382c95582d37fa6299f03b780125e7ca87.php line 1125

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_3b6ea7f8da308e5bb19cb8a611ebe9291f68f81c23d8c14571e16676e46b80ea 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.         $this->sandbox $this->env->getExtension('\Twig\Extension\SandboxExtension');
  28.         $this->checkSecurity();
  29.     }
  30.     protected function doGetParent(array $context)
  31.     {
  32.         // line 11
  33.         return "default_frame.twig";
  34.     }
  35.     protected function doDisplay(array $context, array $blocks = [])
  36.     {
  37.         $macros $this->macros;
  38.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  39.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""Product/detail.twig"));
  40.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  41.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""Product/detail.twig"));
  42.         // line 13
  43.         $context["body_class"] = "product_page";
  44.         // line 11
  45.         $this->parent $this->loadTemplate("default_frame.twig""Product/detail.twig"11);
  46.         $this->parent->display($contextarray_merge($this->blocks$blocks));
  47.         
  48.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  49.         
  50.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  51.     }
  52.     // line 15
  53.     public function block_stylesheet($context, array $blocks = [])
  54.     {
  55.         $macros $this->macros;
  56.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  57.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""stylesheet"));
  58.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  59.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""stylesheet"));
  60.         // line 16
  61.         echo "    <style>
  62.         .slick-slider {
  63.             margin-bottom: 30px;
  64.         }
  65.         .slick-dots {
  66.             position: absolute;
  67.             bottom: -45px;
  68.             display: block;
  69.             width: 100%;
  70.             padding: 0;
  71.             list-style: none;
  72.             text-align: center;
  73.         }
  74.         .slick-dots li {
  75.             position: relative;
  76.             display: inline-block;
  77.             width: 20px;
  78.             height: 20px;
  79.             margin: 0 5px;
  80.             padding: 0;
  81.             cursor: pointer;
  82.         }
  83.         .slick-dots li button {
  84.             font-size: 0;
  85.             line-height: 0;
  86.             display: block;
  87.             width: 20px;
  88.             height: 20px;
  89.             padding: 5px;
  90.             cursor: pointer;
  91.             color: transparent;
  92.             border: 0;
  93.             outline: none;
  94.             background: transparent;
  95.         }
  96.         .slick-dots li button:hover,
  97.         .slick-dots li button:focus {
  98.             outline: none;
  99.         }
  100.         .slick-dots li button:hover:before,
  101.         .slick-dots li button:focus:before {
  102.             opacity: 1;
  103.         }
  104.         .slick-dots li button:before {
  105.             content: \" \";
  106.             line-height: 20px;
  107.             position: absolute;
  108.             top: 0;
  109.             left: 0;
  110.             width: 12px;
  111.             height: 12px;
  112.             text-align: center;
  113.             opacity: .25;
  114.             background-color: black;
  115.             border-radius: 50%;
  116.         }
  117.         .slick-dots li.slick-active button:before {
  118.             opacity: .75;
  119.             background-color: black;
  120.         }
  121.         .slick-dots li button.thumbnail img {
  122.             width: 0;
  123.             height: 0;
  124.         }
  125.     </style>
  126. ";
  127.         
  128.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  129.         
  130.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  131.     }
  132.     // line 95
  133.     public function block_javascript($context, array $blocks = [])
  134.     {
  135.         $macros $this->macros;
  136.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  137.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""javascript"));
  138.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  139.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""javascript"));
  140.         // line 96
  141.         echo "    <script>
  142.         eccube.classCategories = ";
  143.         // line 97
  144.         echo $this->extensions['Eccube\Twig\Extension\EccubeExtension']->getClassCategoriesAsJson($this->sandbox->ensureToStringAllowed((isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'97$this->source); })()), 97$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 108
  156.         if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id2", [], "any"truetruetrue108)) {
  157.             // line 109
  158.             echo "        fnSetClassCategories(
  159.             \$('#form1'), ";
  160.             // line 110
  161.             echo json_encode($this->sandbox->ensureToStringAllowed(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.'110$this->source); })()), "classcategory_id2", [], "any"falsefalsetrue110), "vars", [], "any"falsefalsetrue110), "value", [], "any"falsefalsetrue110), 110$this->source));
  162.             echo "
  163.         );
  164.         ";
  165.         } elseif (twig_get_attribute($this->env$this->source,         // line 112
  166. ($context["form"] ?? null), "classcategory_id1", [], "any"truetruetrue112)) {
  167.             // line 113
  168.             echo "        eccube.checkStock(\$('#form1'), ";
  169.             echo twig_escape_filter($this->env$this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'113$this->source); })()), "id", [], "any"falsefalsetrue113), 113$this->source), "html"nulltrue);
  170.             echo ", ";
  171.             echo json_encode($this->sandbox->ensureToStringAllowed(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.'113$this->source); })()), "classcategory_id1", [], "any"falsefalsetrue113), "vars", [], "any"falsefalsetrue113), "value", [], "any"falsefalsetrue113), 113$this->source));
  172.             echo ", null);
  173.         ";
  174.         }
  175.         // line 115
  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 179
  239.         if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id1", [], "any"truetruetrue179)) {
  240.             // line 180
  241.             echo "                // 規格1フォームの必須チェック
  242.                 if (\$('#classcategory_id1').val() == '__unselected' || \$('#classcategory_id1').val() == '') {
  243.                     \$('#classcategory_id1')[0].setCustomValidity('";
  244.             // line 182
  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 188
  254.         echo "
  255.                 ";
  256.         // line 189
  257.         if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id2", [], "any"truetruetrue189)) {
  258.             // line 190
  259.             echo "                // 規格2フォームの必須チェック
  260.                 if (\$('#classcategory_id2').val() == '__unselected' || \$('#classcategory_id2').val() == '') {
  261.                     \$('#classcategory_id2')[0].setCustomValidity('";
  262.             // line 192
  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 198
  272.         echo "
  273.                 // 個数フォームのチェック
  274.                 if (\$('#quantity').val() < 1) {
  275.                     \$('#quantity')[0].setCustomValidity('";
  276.         // line 201
  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 228
  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 235
  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.     </script>
  330.     <script type=\"application/ld+json\">
  331.     {
  332.         \"@context\": \"https://schema.org/\",
  333.         \"@type\": \"Product\",
  334.         \"name\": \"";
  335.         // line 255
  336.         echo twig_escape_filter($this->env$this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'255$this->source); })()), "name", [], "any"falsefalsetrue255), 255$this->source), "html"nulltrue);
  337.         echo "\",
  338.         \"image\": [
  339.             ";
  340.         // line 257
  341.         $context['_parent'] = $context;
  342.         $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.'257$this->source); })()), "ProductImage", [], "any"falsefalsetrue257));
  343.         $context['_iterated'] = false;
  344.         $context['loop'] = [
  345.           'parent' => $context['_parent'],
  346.           'index0' => 0,
  347.           'index'  => 1,
  348.           'first'  => true,
  349.         ];
  350.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  351.             $length count($context['_seq']);
  352.             $context['loop']['revindex0'] = $length 1;
  353.             $context['loop']['revindex'] = $length;
  354.             $context['loop']['length'] = $length;
  355.             $context['loop']['last'] = === $length;
  356.         }
  357.         foreach ($context['_seq'] as $context["_key"] => $context["img"]) {
  358.             // line 258
  359.             echo "                \"";
  360.             echo twig_escape_filter($this->env$this->sandbox->ensureToStringAllowed(twig_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.'258$this->source); })()), "request", [], "any"falsefalsetrue258), "schemeAndHttpHost", [], "any"falsefalsetrue258), 258$this->source), "html"nulltrue);
  361.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($this->sandbox->ensureToStringAllowed($context["img"], 258$this->source), "save_image"), "html"nulltrue);
  362.             echo "\"";
  363.             if ( !twig_get_attribute($this->env$this->source$context["loop"], "last", [], "any"falsefalsetrue258)) {
  364.                 echo ",";
  365.             }
  366.             // line 259
  367.             echo "
  368.             ";
  369.             $context['_iterated'] = true;
  370.             ++$context['loop']['index0'];
  371.             ++$context['loop']['index'];
  372.             $context['loop']['first'] = false;
  373.             if (isset($context['loop']['length'])) {
  374.                 --$context['loop']['revindex0'];
  375.                 --$context['loop']['revindex'];
  376.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  377.             }
  378.         }
  379.         if (!$context['_iterated']) {
  380.             // line 261
  381.             echo "                \"";
  382.             echo twig_escape_filter($this->env$this->sandbox->ensureToStringAllowed(twig_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.'261$this->source); })()), "request", [], "any"falsefalsetrue261), "schemeAndHttpHost", [], "any"falsefalsetrue261), 261$this->source), "html"nulltrue);
  383.             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);
  384.             echo "\"
  385.             ";
  386.         }
  387.         $_parent $context['_parent'];
  388.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['img'], $context['_parent'], $context['loop']);
  389.         $context array_intersect_key($context$_parent) + $_parent;
  390.         // line 263
  391.         echo "        ],
  392.         \"description\": \"";
  393.         // line 264
  394.         echo twig_escape_filter($this->envtwig_slice($this->envtwig_replace_filter(((twig_get_attribute($this->env$this->source, ($context["Product"] ?? null), "description_list", [], "any"truetruetrue264)) ? (_twig_default_filter($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, ($context["Product"] ?? null), "description_list", [], "any"falsefalsetrue264), 264$this->source), $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'264$this->source); })()), "description_detail", [], "any"falsefalsetrue264), 264$this->source))) : (twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'264$this->source); })()), "description_detail", [], "any"falsefalsetrue264))), ["
  395. => """ " => ""]), 0300), "html"nulltrue);
  396.         echo "\",
  397.         ";
  398.         // line 265
  399.         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.'265$this->source); })()), "code_min", [], "any"falsefalsetrue265)) {
  400.             // line 266
  401.             echo "        \"sku\": \"";
  402.             echo twig_escape_filter($this->env$this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'266$this->source); })()), "code_min", [], "any"falsefalsetrue266), 266$this->source), "html"nulltrue);
  403.             echo "\",
  404.         ";
  405.         }
  406.         // line 268
  407.         echo "        \"offers\": {
  408.             \"@type\": \"Offer\",
  409.             \"url\": \"";
  410.         // line 270
  411.         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.'270$this->source); })()), "id", [], "any"falsefalsetrue270)]), "html"nulltrue);
  412.         echo "\",
  413.             \"priceCurrency\": \"";
  414.         // line 271
  415.         echo twig_escape_filter($this->env$this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["eccube_config"]) || array_key_exists("eccube_config"$context) ? $context["eccube_config"] : (function () { throw new RuntimeError('Variable "eccube_config" does not exist.'271$this->source); })()), "currency", [], "any"falsefalsetrue271), 271$this->source), "html"nulltrue);
  416.         echo "\",
  417.             \"price\": ";
  418.         // line 272
  419.         ((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.'272$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsetrue272)) ? (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.'272$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsetrue272), "html"nulltrue))) : (print (0)));
  420.         echo ",
  421.             \"availability\": \"";
  422.         // line 273
  423.         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.'273$this->source); })()), "stock_find", [], "any"falsefalsetrue273)) ? ("InStock") : ("OutOfStock"));
  424.         echo "\"
  425.         }
  426.     }
  427.     </script>
  428. ";
  429.         
  430.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  431.         
  432.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  433.     }
  434.     // line 279
  435.     public function block_main($context, array $blocks = [])
  436.     {
  437.         $macros $this->macros;
  438.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  439.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""main"));
  440.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  441.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""main"));
  442.         // line 280
  443.         echo "
  444.     <!-- PAGE CONTENTS -->
  445.     <div class=\"products productsWakamefurikake productsSingle\">
  446.         <section class=\"sub-container\">
  447.         
  448.             ";
  449.         // line 286
  450.         echo "            ";
  451.         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.'286$this->source); })()), "id", [], "any"falsefalsetrue286) === 59)) {
  452.             // line 287
  453.             echo "
  454.             <div class=\"ad\">
  455.             <section class=\"ad-kvArea\">
  456.               <div class=\"ad-kvArea__inner\">
  457.                 <h1 class=\"dn\">しそ入ひじきふりかけ</h1>
  458.                 <img src=\"";
  459.             // line 292
  460.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/img/product-ad/kv.png"), "html"nulltrue);
  461.             echo "\" class=\"imgFit dn-sp__ad kv__ad\">
  462.                 <img src=\"";
  463.             // line 293
  464.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/img/product-ad/kv-sp.png"), "html"nulltrue);
  465.             echo "\" class=\"imgAd dn-pcTab__ad\">
  466.               </div>
  467.             </section>
  468.             <section class=\"ad-timeArea\">
  469.               <div class=\"ad-timeArea__inner\">
  470.                 <h2><span class=\"hl-red\">うま味と甘味</span>の絶妙なバランスが<br><span class=\"hl-big\">様々な場面で<br class=\"dn-pc__ad\"><span class=\"hl-red\">大活躍!</span></h2>
  471.                 <div class=\"ad-timeArea__contents\">
  472.                   <section class=\"ad-timeArea__contents-time\">
  473.                     <div class=\"ad-timeArea__contents-time__left\">
  474.                       <h3>時短×簡単</h3>
  475.                       <p>
  476.                         おにぎりが簡単に絶品に!<br>
  477.                         忙しい朝やお弁当作りにも時短で便利。<br>
  478.                         <br>
  479.                         パパッとひとふりで、お茶漬けが本格的な味に。<br>
  480.                         しその風味豊かなひじきふりかけで
  481.                         <span class=\"timeTxt\">時短料理<span class=\"black\">を</span>実現!</span>
  482.                       </p>
  483.                     </div>
  484.                     <div class=\"ad-timeArea__contents-time__right\">
  485.                       <img src=\"";
  486.             // line 313
  487.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/img/product-ad/furikake_img.png"), "html"nulltrue);
  488.             echo "\" class=\"dn-mobile\">
  489.                       <img src=\"";
  490.             // line 314
  491.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/img/product-ad/furikake_img-sp.png"), "html"nulltrue);
  492.             echo "\" class=\"dn-pc__ad\">
  493.                     </div>
  494.                   </section>
  495.                   <section class=\"ad-timeArea__contents-arrangement\">
  496.                     <div class=\"ad-timeArea__contents-arrangement__heading\">
  497.                       <h3>アレンジは多種多様<span>いつもの料理が手軽に<br class=\"dn-pc__ad\">美味しく健康的に!</span></h3>
  498.                     </div>
  499.                     <div class=\"ad-timeArea__contents-arrangement__items\">
  500.                       <div class=\"ad-timeArea__contents-arrangement__item\">
  501.                           <img src=\"";
  502.             // line 323
  503.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/img/product-ad/cooki_img01.png"), "html"nulltrue);
  504.             echo "\" class=\"imgFit\">
  505.                           <p>チャーハンに!</p>
  506.                         </div>
  507.                         <div class=\"ad-timeArea__contents-arrangement__item\">
  508.                           <img src=\"";
  509.             // line 327
  510.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/img/product-ad/cooki_img02.png"), "html"nulltrue);
  511.             echo "\" class=\"imgFit\">
  512.                           <p>浅漬けに!</p>
  513.                         </div>
  514.                         <div class=\"ad-timeArea__contents-arrangement__item\">
  515.                           <img src=\"";
  516.             // line 331
  517.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/img/product-ad/cooki_img04.png"), "html"nulltrue);
  518.             echo "\" class=\"imgFit\">
  519.                           <p>とり天に!</p>
  520.                         </div>
  521.                         <div class=\"ad-timeArea__contents-arrangement__item\">
  522.                           <img src=\"";
  523.             // line 335
  524.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/img/product-ad/cooki_img03.png"), "html"nulltrue);
  525.             echo "\" class=\"imgFit\">
  526.                           <p>トーストにも!</p>
  527.                         </div>
  528.                     </div>
  529.                   </section>
  530.                 </div>
  531.               </div>
  532.             </section>
  533.             <section class=\"ad-healthyArea\">
  534.               <div class=\"ad-healthyArea__inner\">
  535.                 <h2><span>食物繊維</span>と<br class=\"dn-pcTab__ad\"><span>ミネラル</span>たっぷり!</h2>
  536.                 <div class=\"ad-healthyArea__inner__inner\">
  537.                   <div class=\"ad-healthyArea__txt\">
  538.                     <p class=\"top-txt\">
  539.                       海藻類の中でも特に<br>
  540.                       <span>栄養価の高い</span>ひじき。
  541.                     </p>
  542.                     <p class=\"bottom-txt\">
  543.                       カルシウム、食物繊維、マグネシウムが<br>
  544.                       豊富に含まれます。<br>
  545.                       その他にも、ビタミンBや鉄分なども含ま<br>
  546.                       れ、しかも低カロリー。
  547.                     </p>
  548.                   </div>
  549.                   <div  class=\"ad-healthyArea__img dn-pc__ad\">
  550.                     <img src=\"";
  551.             // line 360
  552.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/img/product-ad/healthy-sp.png"), "html"nulltrue);
  553.             echo "\" class=\"imgFit\">
  554.                   </div>
  555.                 </div>
  556.               </div>
  557.             </section>
  558.             <section class=\"ad-voiceArea\">
  559.               <div class=\"ad-voiceArea__inner\">
  560.                 <div class=\"ad-voiceArea__content\">
  561.                   <div class=\"ad-voiceArea__heading\">
  562.                     <h2><span>いつも沢山のお声<br class=\"dn-pc__ad\">ありがとうございます!</span><br class=\"dn-mobile\">ご利用いただいた<br class=\"dn-pc\">お客様からのお声</h2>
  563.                   </div>
  564.                   <div class=\"ad-voiceArea__items\">
  565.                     <div class=\"ad-voiceArea__item\">
  566.                       <div class=\"ad-voiceArea__item-left\">VOICE<br>01</div>
  567.                       <div class=\"ad-voiceArea__item-right\">
  568.                         <p><span>とても美味しい</span>ひじきふりかけです。<br>
  569.                         しっとりしていて食べやすく、<span>ホカホカご飯にもお弁当にも最適</span>です。</p>
  570.                       </div>
  571.                     </div>
  572.                     <div class=\"ad-voiceArea__item\">
  573.                       <div class=\"ad-voiceArea__item-left\">VOICE<br>02</div>
  574.                       <div class=\"ad-voiceArea__item-right\">
  575.                         <p>しっとりとしたヒジキがほんのりしそ風味で<span>すごく好きな味です。</span><br>
  576.                           <span>もう一袋買えば良かった、</span>と後悔してます。</p>
  577.                       </div>
  578.                     </div>
  579.                     <div class=\"ad-voiceArea__item\">
  580.                       <div class=\"ad-voiceArea__item-left\">VOICE<br>03</div>
  581.                       <div class=\"ad-voiceArea__item-right\">
  582.                         <p>毎朝食べてます。美味しいし、<span>手軽にひじきが食べれてとても満足</span>です。<br>
  583.                           いつも塩分無視してたっぷりかけてるので、<span>無くなったらリピ</span>します。</p>
  584.                       </div>
  585.                     </div>
  586.                     <div class=\"ad-voiceArea__item\">
  587.                       <div class=\"ad-voiceArea__item-left\">VOICE<br>04</div>
  588.                       <div class=\"ad-voiceArea__item-right\">
  589.                         <p>おにぎりに使うのがお気に入りで<span>幼稚園児のお弁当や食事に栄養をプラス</span><br class=\"dn-mobile\">
  590.                           するのに活用させてもらってます!</p>
  591.                       </div>
  592.                     </div>
  593.                   </div>
  594.                 </div>
  595.               </div>
  596.             </section>
  597.             <section class=\"ad-aboutArea\">
  598.               <div class=\"ad-aboutArea__inner\">
  599.                 <h2>30年以上の<br class=\"dn-pcTab__ad\"><span>「おいしさの追求」</span>で<br>多くのファンに<br class=\"dn-pcTab__ad\">ご支持いただく</h2>
  600.                 <div class=\"ad-aboutArea__content\">
  601.                   <div class=\"ad-aboutArea__content-kv\">
  602.                     <img src=\"";
  603.             // line 409
  604.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/img/product-ad/history1.png"), "html"nulltrue);
  605.             echo "\" class=\"imgFit\">
  606.                   </div>
  607.                   <div class=\"ad-aboutArea__content-items\">
  608.                     <div class=\"ad-aboutArea__content-items__left\">
  609.                       <h3>大正10年(1921年)創業<br>100年の歴史と革新</h3>
  610.                       <p>
  611.                         1921年に山陰特産品の板わかめ問屋として創業。<br>
  612.                         <br>
  613.                         「ひじきふりかけ」の先駆者<br>
  614.                         30年以上の「おいしさの追求」で、<br>
  615.                         多くのファンに支持されてきました。<br>
  616.                         <br>
  617.                         忙しくても、自分や大切な人の健康を支えたい<br class=\"dn-mobile\">
  618.                         あなたへ。<br>
  619.                         栄養豊富な海の幸を、食卓と健康を大切にする<br class=\"dn-mobile\">
  620.                         すべての方のためにお届けします。<br>
  621.                       </p>
  622.                     </div>
  623.                     <div class=\"ad-aboutArea__content-items__right\">
  624.                       <div class=\"ad-aboutArea__content-items__right-top\">
  625.                         <img src=\"";
  626.             // line 429
  627.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/img/product-ad/history2.png"), "html"nulltrue);
  628.             echo "\" class=\"imgFit\">
  629.                       </div>
  630.                       <div class=\"ad-aboutArea__content-items__right-bottom\">
  631.                         <img src=\"";
  632.             // line 432
  633.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/img/product-ad/history3.png"), "html"nulltrue);
  634.             echo "\" class=\"imgFit\">
  635.                       </div>
  636.                     </div>
  637.                   </div>
  638.                 </div>
  639.               </div>
  640.             </section>
  641.             <div class=\"ad-cart\">
  642.               <a href=\"#cart__area\">
  643.                 <div>
  644.                   <div>
  645.                     <img src=\"";
  646.             // line 443
  647.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/img/product-ad/icon-cart.png"), "html"nulltrue);
  648.             echo "\" class=\"imgFit dn-sp__ad\">
  649.                     <img src=\"";
  650.             // line 444
  651.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/img/product-ad/icon-cart-sp.png"), "html"nulltrue);
  652.             echo "\" class=\"imgFit dn-pcTab__ad\">
  653.                   </div>
  654.                   <p>
  655.                     商品をカートに<br class=\"dn-sp__ad\">追加する
  656.                   </p>
  657.                 </div>
  658.               </a>
  659.             </div>
  660.           </div>
  661.             ";
  662.         } else {
  663.             // line 455
  664.             echo "            <!-- H1 商品カテゴリーの見出し -->
  665.             <div class=\"sub-h1--products\">
  666.                 <h1 class=\"itemTitle\">
  667.                     ";
  668.             // line 458
  669.             echo twig_escape_filter($this->env$this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'458$this->source); })()), "name", [], "any"falsefalsetrue458), 458$this->source), "html"nulltrue);
  670.             echo "
  671.                 </h1>
  672.                 <div class=\"itemImg\">
  673.                     <div class=\"itemImgInner\">
  674.                         <img src=\"";
  675.             // line 462
  676.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/img/products/wf_h1_01.jpg"), "html"nulltrue);
  677.             echo "\" alt=\"\" class=\"imgObjectFitCover\">
  678.                     </div>
  679.                 </div>
  680.             </div>
  681.             <!-- /H1 -->
  682.             ";
  683.         }
  684.         // line 468
  685.         echo "            <!-- CONTENTS -->
  686.             <div class=\"l-container l-2ColumnContainer\">
  687.                 <!-- MAIN-CONTENTS -->
  688.                 <div class=\"l-main\">
  689.                     <!-- BREAD CRUMBS -->
  690.                     <div class=\"sub-breadcrumbsWrap\">
  691.                         <ul class=\"sub-breadcrumbs\">
  692.                             <li><a href=\"/\">TOP</a></li>
  693.                             <li><a href=\"/products/list\">商品一覧</a></li>
  694.                             <li>";
  695.         // line 477
  696.         echo twig_escape_filter($this->env$this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'477$this->source); })()), "name", [], "any"falsefalsetrue477), 477$this->source), "html"nulltrue);
  697.         echo "</li>
  698.                         </ul>
  699.                     </div>
  700.                     <!-- /BREAD CRUMBS -->
  701.                     <!-- MAIN CONTENTS -->
  702.                     <section class=\"products-sgContent\">
  703.                         <!-- PRODUCTS PHOTO -->
  704.                         <div class=\"products-sgContent__pPhoto\">
  705.                             <div class=\"productsPhotoSlide\">
  706.                                 <ul id=\"categorySingleSlider\" class=\"main clearfix\">
  707.                                     ";
  708.         // line 487
  709.         $context['_parent'] = $context;
  710.         $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.'487$this->source); })()), "ProductImage", [], "any"falsefalsetrue487));
  711.         $context['_iterated'] = false;
  712.         $context['loop'] = [
  713.           'parent' => $context['_parent'],
  714.           'index0' => 0,
  715.           'index'  => 1,
  716.           'first'  => true,
  717.         ];
  718.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  719.             $length count($context['_seq']);
  720.             $context['loop']['revindex0'] = $length 1;
  721.             $context['loop']['revindex'] = $length;
  722.             $context['loop']['length'] = $length;
  723.             $context['loop']['last'] = === $length;
  724.         }
  725.         foreach ($context['_seq'] as $context["_key"] => $context["ProductImage"]) {
  726.             // line 488
  727.             echo "                                        <li><span class=\"imgWrap\">
  728.                                                 <img src=\"";
  729.             // line 489
  730.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($this->sandbox->ensureToStringAllowed($context["ProductImage"], 489$this->source), "save_image"), "html"nulltrue);
  731.             echo "\" alt=\"";
  732.             ((twig_get_attribute($this->env$this->source$context["loop"], "first", [], "any"falsefalsetrue489)) ? (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.'489$this->source); })()), "name", [], "any"falsefalsetrue489), "html"nulltrue))) : (print ("")));
  733.             echo "\" alt=\"\"
  734.                                                                        class=\"imgObjectFitCover\" ";
  735.             // line 490
  736.             if ((twig_get_attribute($this->env$this->source$context["loop"], "index", [], "any"falsefalsetrue490) > 1)) {
  737.                 echo " loading=\"lazy\"";
  738.             }
  739.             echo ">
  740.                                             </span>
  741.                                         </li>
  742.                                     ";
  743.             $context['_iterated'] = true;
  744.             ++$context['loop']['index0'];
  745.             ++$context['loop']['index'];
  746.             $context['loop']['first'] = false;
  747.             if (isset($context['loop']['length'])) {
  748.                 --$context['loop']['revindex0'];
  749.                 --$context['loop']['revindex'];
  750.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  751.             }
  752.         }
  753.         if (!$context['_iterated']) {
  754.             // line 494
  755.             echo "                                        <li>
  756.                                             <span class=\"imgWrap\">
  757.                                                 <img src=\"";
  758.             // line 496
  759.             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);
  760.             echo "\" alt=\"";
  761.             ((twig_get_attribute($this->env$this->source$context["loop"], "first", [], "any"falsefalsetrue496)) ? (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.'496$this->source); })()), "name", [], "any"falsefalsetrue496), "html"nulltrue))) : (print ("")));
  762.             echo "\"
  763.                                                                        class=\"imgObjectFitCover\">
  764.                                             </span>
  765.                                         </li>
  766.                                     ";
  767.         }
  768.         $_parent $context['_parent'];
  769.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductImage'], $context['_parent'], $context['loop']);
  770.         $context array_intersect_key($context$_parent) + $_parent;
  771.         // line 501
  772.         echo "                                </ul>
  773.                                 <ul id=\"categorySingleSliderNav\" class=\"sub clearfix\">
  774.                                     ";
  775.         // line 503
  776.         $context['_parent'] = $context;
  777.         $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.'503$this->source); })()), "ProductImage", [], "any"falsefalsetrue503));
  778.         $context['loop'] = [
  779.           'parent' => $context['_parent'],
  780.           'index0' => 0,
  781.           'index'  => 1,
  782.           'first'  => true,
  783.         ];
  784.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  785.             $length count($context['_seq']);
  786.             $context['loop']['revindex0'] = $length 1;
  787.             $context['loop']['revindex'] = $length;
  788.             $context['loop']['length'] = $length;
  789.             $context['loop']['last'] = === $length;
  790.         }
  791.         foreach ($context['_seq'] as $context["_key"] => $context["ProductImage"]) {
  792.             // line 504
  793.             echo "                                        <li data-index=\"";
  794.             echo twig_escape_filter($this->env$this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source$context["loop"], "index0", [], "any"falsefalsetrue504), 504$this->source), "html"nulltrue);
  795.             echo "\">
  796.                                             <span class=\"imgWrap\">
  797.                                                 <img src=\"";
  798.             // line 506
  799.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($this->sandbox->ensureToStringAllowed($context["ProductImage"], 506$this->source), "save_image"), "html"nulltrue);
  800.             echo "\" alt=\"\"
  801.                                                      class=\"imgObjectFitCover\" loading=\"lazy\">
  802.                                             </span>
  803.                                         </li>
  804.                                     ";
  805.             ++$context['loop']['index0'];
  806.             ++$context['loop']['index'];
  807.             $context['loop']['first'] = false;
  808.             if (isset($context['loop']['length'])) {
  809.                 --$context['loop']['revindex0'];
  810.                 --$context['loop']['revindex'];
  811.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  812.             }
  813.         }
  814.         $_parent $context['_parent'];
  815.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductImage'], $context['_parent'], $context['loop']);
  816.         $context array_intersect_key($context$_parent) + $_parent;
  817.         // line 511
  818.         echo "                                </ul>
  819.                             </div>
  820.                         </div>
  821.                         <!-- /PRODUCTS PHOTO -->
  822.                         <!-- PRODUCTS DATA -->
  823.                         <div class=\"products-sgContent__pData\" id=\"cart__area\">
  824.                             <div class=\"titleWrap\">
  825.                                 <h2 class=\"itemPName\">";
  826.         // line 519
  827.         echo twig_escape_filter($this->env$this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'519$this->source); })()), "name", [], "any"falsefalsetrue519), 519$this->source), "html"nulltrue);
  828.         echo "</h2>
  829.                                 ";
  830.         // line 520
  831.         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.'520$this->source); })()), "hasProductClass", [], "any"falsefalsetrue520)) {
  832.             // line 521
  833.             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.'521$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsetrue521) == 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.'521$this->source); })()), "getPrice02IncTaxMax", [], "any"falsefalsetrue521))) {
  834.                 // line 522
  835.                 echo "                                        <p class=\"itemPrice\">
  836.                                             ";
  837.                 // line 523
  838.                 echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'523$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsetrue523), 523$this->source)), "html"nulltrue);
  839.                 echo "
  840.                                             <span class=\"tax\">";
  841.                 // line 524
  842.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("(税込)"), "html"nulltrue);
  843.                 echo "</span>
  844.                                         </p>
  845.                                     ";
  846.             } else {
  847.                 // line 527
  848.                 echo "                                        <p class=\"itemPrice\">
  849.                                             ";
  850.                 // line 528
  851.                 echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'528$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsetrue528), 528$this->source)), "html"nulltrue);
  852.                 echo " ~ ";
  853.                 echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'528$this->source); })()), "getPrice02IncTaxMax", [], "any"falsefalsetrue528), 528$this->source)), "html"nulltrue);
  854.                 echo "
  855.                                             <span class=\"tax\">";
  856.                 // line 529
  857.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("(税込)"), "html"nulltrue);
  858.                 echo "</span>
  859.                                         </p>
  860.                                     ";
  861.             }
  862.             // line 532
  863.             echo "                                ";
  864.         } else {
  865.             // line 533
  866.             echo "                                        <p class=\"itemPrice\">
  867.                                             ";
  868.             // line 534
  869.             echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'534$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsetrue534), 534$this->source)), "html"nulltrue);
  870.             echo "
  871.                                             <span class=\"tax\">";
  872.             // line 535
  873.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("(税込)"), "html"nulltrue);
  874.             echo "</span>
  875.                                         </p>
  876.                                 ";
  877.         }
  878.         // line 538
  879.         echo "                            </div>
  880.                             <form action=\"";
  881.         // line 540
  882.         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.'540$this->source); })()), "id", [], "any"falsefalsetrue540)]), "html"nulltrue);
  883.         echo "\" method=\"post\" id=\"form1\" name=\"form1\">
  884.                                 ";
  885.         // line 541
  886.         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.'541$this->source); })()), "stock_find", [], "any"falsefalsetrue541)) {
  887.             // line 542
  888.             echo "                                    <div class=\"ec-productRole__actions\">
  889.                                         ";
  890.             // line 543
  891.             if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id1", [], "any"truetruetrue543)) {
  892.                 // line 544
  893.                 echo "                                            <div class=\"ec-select\">
  894.                                                 ";
  895.                 // line 545
  896.                 echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'545$this->source); })()), "classcategory_id1", [], "any"falsefalsetrue545), 545$this->source), 'row');
  897.                 echo "
  898.                                                 ";
  899.                 // line 546
  900.                 echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'546$this->source); })()), "classcategory_id1", [], "any"falsefalsetrue546), 546$this->source), 'errors');
  901.                 echo "
  902.                                             </div>
  903.                                             ";
  904.                 // line 548
  905.                 if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id2", [], "any"truetruetrue548)) {
  906.                     // line 549
  907.                     echo "                                                <div class=\"ec-select\">
  908.                                                     ";
  909.                     // line 550
  910.                     echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'550$this->source); })()), "classcategory_id2", [], "any"falsefalsetrue550), 550$this->source), 'row');
  911.                     echo "
  912.                                                     ";
  913.                     // line 551
  914.                     echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'551$this->source); })()), "classcategory_id2", [], "any"falsefalsetrue551), 551$this->source), 'errors');
  915.                     echo "
  916.                                                 </div>
  917.                                             ";
  918.                 }
  919.                 // line 554
  920.                 echo "                                        ";
  921.             }
  922.             // line 555
  923.             echo "                                        <div class=\"quantityWrap\">
  924.                                             <span>数量</span>
  925.                                             <div class=\"quantityWrapInner\">
  926.                                                 <div class=\"item-select\">
  927.                                                     ";
  928.             // line 559
  929.             echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'559$this->source); })()), "quantity", [], "any"falsefalsetrue559), 559$this->source), 'widget');
  930.             echo "
  931.                                                     ";
  932.             // line 560
  933.             echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'560$this->source); })()), "quantity", [], "any"falsefalsetrue560), 560$this->source), 'errors');
  934.             echo "
  935.                                                 </div>
  936.                                                 <div class=\"product-single-quantityBtnBlock\">
  937.                                                     <div class=\"quantityBtn quantityBtn__plus\"><span class=\"btnInner\">+</span></div>
  938.                                                     <div class=\"quantityBtn quantityBtn__minus\"><span class=\"btnInner\">-</span></div>
  939.                                                 </div>
  940.                                             </div>
  941.                                         </div>
  942.                                     </div>
  943.                                     <div class=\"cartBtnWrap\">
  944.                                         <button type=\"submit\" class=\"ec-blockBtn--action add-cart mod-btn-02 cartBtn\">
  945.                                             ";
  946.             // line 571
  947.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートに入れる"), "html"nulltrue);
  948.             echo "
  949.                                         </button>
  950.                                     </div>
  951.                                 ";
  952.         } else {
  953.             // line 575
  954.             echo "                                    <div class=\"ec-productRole__btn\">
  955.                                         <button type=\"button\" class=\"ec-blockBtn--action\" disabled=\"disabled\">
  956.                                             ";
  957.             // line 577
  958.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("ただいま品切れ中です。"), "html"nulltrue);
  959.             echo "
  960.                                         </button>
  961.                                     </div>
  962.                                 ";
  963.         }
  964.         // line 581
  965.         echo "                                <div class=\"ec-modal\">
  966.                                     <div class=\"ec-modal-overlay\">
  967.                                         <div class=\"ec-modal-wrap\">
  968.                                             <span class=\"ec-modal-close\"><span class=\"ec-icon\"><img src=\"";
  969.         // line 584
  970.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/icon/cross-dark.svg"), "html"nulltrue);
  971.         echo "\" alt=\"\"/></span></span>
  972.                                             <div id=\"ec-modal-header\" class=\"text-center\">";
  973.         // line 585
  974.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートに追加しました。"), "html"nulltrue);
  975.         echo "</div>
  976.                                             <div class=\"ec-modal-box\">
  977.                                                 <div class=\"ec-role\">
  978.                                                     <span class=\"ec-inlineBtn--cancel\">";
  979.         // line 588
  980.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お買い物を続ける"), "html"nulltrue);
  981.         echo "</span>
  982.                                                     <a href=\"";
  983.         // line 589
  984.         echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("cart");
  985.         echo "\" class=\"ec-inlineBtn--action\">";
  986.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートへ進む"), "html"nulltrue);
  987.         echo "</a>
  988.                                                 </div>
  989.                                             </div>
  990.                                         </div>
  991.                                     </div>
  992.                                 </div>
  993.                                 ";
  994.         // line 596
  995.         echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed((isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'596$this->source); })()), 596$this->source), 'rest');
  996.         echo "
  997.                             </form>
  998.                             ";
  999.         // line 600
  1000.         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.'600$this->source); })()), "option_favorite_product", [], "any"falsefalsetrue600)) {
  1001.             // line 601
  1002.             echo "                                <form action=\"";
  1003.             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.'601$this->source); })()), "id", [], "any"falsefalsetrue601)]), "html"nulltrue);
  1004.             echo "\" method=\"post\">
  1005.                                     <div class=\"favoriteBtnWrap\">
  1006.                                     ";
  1007.             // line 603
  1008.             if (((isset($context["is_favorite"]) || array_key_exists("is_favorite"$context) ? $context["is_favorite"] : (function () { throw new RuntimeError('Variable "is_favorite" does not exist.'603$this->source); })()) == false)) {
  1009.                 // line 604
  1010.                 echo "                                        <button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--cancel mod-btn-02 favoriteBtn\">お気に入りに追加</button>
  1011.                                     ";
  1012.             } else {
  1013.                 // line 606
  1014.                 echo "                                        <button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--cancel mod-btn-02 favoriteBtn\"
  1015.                                                 disabled=\"disabled\">";
  1016.                 // line 607
  1017.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お気に入りに追加済です。"), "html"nulltrue);
  1018.                 echo "
  1019.                                         </button>
  1020.                                     ";
  1021.             }
  1022.             // line 610
  1023.             echo "                                    </div>
  1024.                                 </form>
  1025.                             ";
  1026.         }
  1027.         // line 613
  1028.         echo "
  1029.                             <div class=\"itemInfoWrap\">
  1030.                                 <p>
  1031.                                     ";
  1032.         // line 616
  1033.         echo twig_nl2br($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'616$this->source); })()), "description_detail", [], "any"falsefalsetrue616), 616$this->source));
  1034.         echo "
  1035.                                 </p>
  1036.                             </div>
  1037.                             ";
  1038.         // line 619
  1039.         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.'619$this->source); })()), "freearea", [], "any"falsefalsetrue619)) {
  1040.             // line 620
  1041.             echo "                                <div class=\"ec-productRole__description\">
  1042.                                     ";
  1043.             // line 621
  1044.             echo $this->extensions['Eccube\Twig\Extension\IgnoreTwigSandboxErrorExtension']->twig_include($this->env$contexttwig_template_from_string($this->env$this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'621$this->source); })()), "freearea", [], "any"falsefalsetrue621), 621$this->source)), array(), truefalsetrue);
  1045.             echo "
  1046.                                 </div>
  1047.                             ";
  1048.         }
  1049.         // line 624
  1050.         echo "                        </div>
  1051.                         <!-- /PRODUCTS DATA -->
  1052.                     </section>
  1053.                     <!-- /MAIN CONTENTS -->
  1054.                     <div class=\"marginTop30\">
  1055.                     ";
  1056.         // line 630
  1057.         if (array_key_exists("plugin_snippets"$context)) {
  1058.             // line 631
  1059.             echo "                        ";
  1060.             echo $this->extensions['Eccube\Twig\Extension\IgnoreTwigSandboxErrorExtension']->twig_include($this->env$context"snippet.twig", ["snippets" => (isset($context["plugin_snippets"]) || array_key_exists("plugin_snippets"$context) ? $context["plugin_snippets"] : (function () { throw new RuntimeError('Variable "plugin_snippets" does not exist.'631$this->source); })())]);
  1061.             echo "
  1062.                     ";
  1063.         }
  1064.         // line 633
  1065.         echo "                    </div>
  1066.                     ";
  1067.         // line 635
  1068.         if (twig_get_attribute($this->env$this->source, (isset($context["Layout"]) || array_key_exists("Layout"$context) ? $context["Layout"] : (function () { throw new RuntimeError('Variable "Layout" does not exist.'635$this->source); })()), "MainBottom", [], "any"falsefalsetrue635)) {
  1069.             // line 636
  1070.             echo "                        ";
  1071.             echo $this->extensions['Eccube\Twig\Extension\IgnoreTwigSandboxErrorExtension']->twig_include($this->env$context"block.twig", ["Blocks" => twig_get_attribute($this->env$this->source, (isset($context["Layout"]) || array_key_exists("Layout"$context) ? $context["Layout"] : (function () { throw new RuntimeError('Variable "Layout" does not exist.'636$this->source); })()), "MainBottom", [], "any"falsefalsetrue636)]);
  1072.             echo "
  1073.                     ";
  1074.         }
  1075.         // line 638
  1076.         echo "
  1077.                     ";
  1078.         // line 639
  1079.         if (twig_get_attribute($this->env$this->source, (isset($context["Layout"]) || array_key_exists("Layout"$context) ? $context["Layout"] : (function () { throw new RuntimeError('Variable "Layout" does not exist.'639$this->source); })()), "ContentsBottom", [], "any"falsefalsetrue639)) {
  1080.             // line 640
  1081.             echo "                        <div class=\"ec-layoutRole__contentBottom\">
  1082.                             ";
  1083.             // line 641
  1084.             echo $this->extensions['Eccube\Twig\Extension\IgnoreTwigSandboxErrorExtension']->twig_include($this->env$context"block.twig", ["Blocks" => twig_get_attribute($this->env$this->source, (isset($context["Layout"]) || array_key_exists("Layout"$context) ? $context["Layout"] : (function () { throw new RuntimeError('Variable "Layout" does not exist.'641$this->source); })()), "ContentsBottom", [], "any"falsefalsetrue641)]);
  1085.             echo "
  1086.                         </div>
  1087.                     ";
  1088.         }
  1089.         // line 644
  1090.         echo "                </div>
  1091.                 <!-- /MAIN-CONTENTS -->
  1092.                 <!-- SIDE-CONTENTS -->
  1093.                 ";
  1094.         // line 648
  1095.         echo $this->extensions['Eccube\Twig\Extension\IgnoreTwigSandboxErrorExtension']->twig_include($this->env$context"Block/side_menu.twig");
  1096.         echo "
  1097.                 <!-- /SIDE-CONTENTS -->
  1098.             </div>
  1099.             <!-- /CONTENTS -->
  1100.         </section>
  1101.     </div>
  1102.     <!-- /PAGE CONTENTS -->
  1103. ";
  1104.         
  1105.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  1106.         
  1107.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  1108.     }
  1109.     public function getTemplateName()
  1110.     {
  1111.         return "Product/detail.twig";
  1112.     }
  1113.     public function isTraitable()
  1114.     {
  1115.         return false;
  1116.     }
  1117.     public function getDebugInfo()
  1118.     {
  1119.         return array (  1149 => 648,  1143 => 644,  1137 => 641,  1134 => 640,  1132 => 639,  1129 => 638,  1123 => 636,  1121 => 635,  1117 => 633,  1111 => 631,  1109 => 630,  1101 => 624,  1095 => 621,  1092 => 620,  1090 => 619,  1084 => 616,  1079 => 613,  1074 => 610,  1068 => 607,  1065 => 606,  1061 => 604,  1059 => 603,  1053 => 601,  1051 => 600,  1044 => 596,  1032 => 589,  1028 => 588,  1022 => 585,  1018 => 584,  1013 => 581,  1006 => 577,  1002 => 575,  995 => 571,  981 => 560,  977 => 559,  971 => 555,  968 => 554,  962 => 551,  958 => 550,  955 => 549,  953 => 548,  948 => 546,  944 => 545,  941 => 544,  939 => 543,  936 => 542,  934 => 541,  930 => 540,  926 => 538,  920 => 535,  916 => 534,  913 => 533,  910 => 532,  904 => 529,  898 => 528,  895 => 527,  889 => 524,  885 => 523,  882 => 522,  880 => 521,  878 => 520,  874 => 519,  864 => 511,  845 => 506,  839 => 504,  822 => 503,  818 => 501,  805 => 496,  801 => 494,  782 => 490,  776 => 489,  773 => 488,  755 => 487,  742 => 477,  731 => 468,  722 => 462,  715 => 458,  710 => 455,  696 => 444,  692 => 443,  678 => 432,  672 => 429,  649 => 409,  597 => 360,  569 => 335,  562 => 331,  555 => 327,  548 => 323,  536 => 314,  532 => 313,  509 => 293,  505 => 292,  498 => 287,  495 => 286,  488 => 280,  478 => 279,  463 => 273,  459 => 272,  455 => 271,  451 => 270,  447 => 268,  441 => 266,  439 => 265,  434 => 264,  431 => 263,  421 => 261,  407 => 259,  399 => 258,  381 => 257,  376 => 255,  353 => 235,  343 => 228,  313 => 201,  308 => 198,  299 => 192,  295 => 190,  293 => 189,  290 => 188,  281 => 182,  277 => 180,  275 => 179,  209 => 115,  201 => 113,  199 => 112,  194 => 110,  191 => 109,  189 => 108,  175 => 97,  172 => 96,  162 => 95,  75 => 16,  65 => 15,  54 => 11,  52 => 13,  39 => 11,);
  1120.     }
  1121.     public function getSourceContext()
  1122.     {
  1123.         return new Source("{#
  1124. This file is part of EC-CUBE
  1125. Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
  1126. http://www.ec-cube.co.jp/
  1127. For the full copyright and license information, please view the LICENSE
  1128. file that was distributed with this source code.
  1129. #}
  1130. {% extends 'default_frame.twig' %}
  1131. {% set body_class = 'product_page' %}
  1132. {% block stylesheet %}
  1133.     <style>
  1134.         .slick-slider {
  1135.             margin-bottom: 30px;
  1136.         }
  1137.         .slick-dots {
  1138.             position: absolute;
  1139.             bottom: -45px;
  1140.             display: block;
  1141.             width: 100%;
  1142.             padding: 0;
  1143.             list-style: none;
  1144.             text-align: center;
  1145.         }
  1146.         .slick-dots li {
  1147.             position: relative;
  1148.             display: inline-block;
  1149.             width: 20px;
  1150.             height: 20px;
  1151.             margin: 0 5px;
  1152.             padding: 0;
  1153.             cursor: pointer;
  1154.         }
  1155.         .slick-dots li button {
  1156.             font-size: 0;
  1157.             line-height: 0;
  1158.             display: block;
  1159.             width: 20px;
  1160.             height: 20px;
  1161.             padding: 5px;
  1162.             cursor: pointer;
  1163.             color: transparent;
  1164.             border: 0;
  1165.             outline: none;
  1166.             background: transparent;
  1167.         }
  1168.         .slick-dots li button:hover,
  1169.         .slick-dots li button:focus {
  1170.             outline: none;
  1171.         }
  1172.         .slick-dots li button:hover:before,
  1173.         .slick-dots li button:focus:before {
  1174.             opacity: 1;
  1175.         }
  1176.         .slick-dots li button:before {
  1177.             content: \" \";
  1178.             line-height: 20px;
  1179.             position: absolute;
  1180.             top: 0;
  1181.             left: 0;
  1182.             width: 12px;
  1183.             height: 12px;
  1184.             text-align: center;
  1185.             opacity: .25;
  1186.             background-color: black;
  1187.             border-radius: 50%;
  1188.         }
  1189.         .slick-dots li.slick-active button:before {
  1190.             opacity: .75;
  1191.             background-color: black;
  1192.         }
  1193.         .slick-dots li button.thumbnail img {
  1194.             width: 0;
  1195.             height: 0;
  1196.         }
  1197.     </style>
  1198. {% endblock %}
  1199. {% block javascript %}
  1200.     <script>
  1201.         eccube.classCategories = {{ class_categories_as_json(Product)|raw }};
  1202.         // 規格2に選択肢を割り当てる。
  1203.         function fnSetClassCategories(form, classcat_id2_selected) {
  1204.             var \$form = \$(form);
  1205.             var product_id = \$form.find('input[name=product_id]').val();
  1206.             var \$sele1 = \$form.find('select[name=classcategory_id1]');
  1207.             var \$sele2 = \$form.find('select[name=classcategory_id2]');
  1208.             eccube.setClassCategories(\$form, product_id, \$sele1, \$sele2, classcat_id2_selected);
  1209.         }
  1210.         {% if form.classcategory_id2 is defined %}
  1211.         fnSetClassCategories(
  1212.             \$('#form1'), {{ form.classcategory_id2.vars.value|json_encode|raw }}
  1213.         );
  1214.         {% elseif form.classcategory_id1 is defined %}
  1215.         eccube.checkStock(\$('#form1'), {{ Product.id }}, {{ form.classcategory_id1.vars.value|json_encode|raw }}, null);
  1216.         {% endif %}
  1217.     </script>
  1218.     <script>
  1219.         \$(function() {
  1220.             // bfcache無効化
  1221.             \$(window).bind('pageshow', function(event) {
  1222.                 if (event.originalEvent.persisted) {
  1223.                     location.reload(true);
  1224.                 }
  1225.             });
  1226.             // Core Web Vital の Cumulative Layout Shift(CLS)対策のため
  1227.             // img タグに width, height が付与されている.
  1228.             // 630px 未満の画面サイズでは縦横比が壊れるための対策
  1229.             // see https://github.com/EC-CUBE/ec-cube/pull/5023
  1230.             \$('.ec-grid2__cell').hide();
  1231.             var removeSize = function () {
  1232.                 \$('.slide-item').height('');
  1233.                 \$('.slide-item img')
  1234.                     .removeAttr('width')
  1235.                     .removeAttr('height')
  1236.                     .removeAttr('style');
  1237.             };
  1238.             var slickInitial = function(slick) {
  1239.                 \$('.ec-grid2__cell').fadeIn(1500);
  1240.                 var baseHeight = \$(slick.target).height();
  1241.                 var baseWidth = \$(slick.target).width();
  1242.                 var rate = baseWidth / baseHeight;
  1243.                 \$('.slide-item').height(baseHeight * rate); // 余白を削除する
  1244.                 // transform を使用することでCLSの影響を受けないようにする
  1245.                 \$('.slide-item img')
  1246.                     .css(
  1247.                         {
  1248.                             'transform-origin': 'top left',
  1249.                             'transform': 'scaleY(' + rate + ')',
  1250.                             'transition': 'transform .1s'
  1251.                         }
  1252.                     );
  1253.                 // 正しいサイズに近くなったら属性を解除する
  1254.                 setTimeout(removeSize, 500);
  1255.             };
  1256.             \$('.item_visual').on('init', slickInitial);
  1257.             // リサイズ時は CLS の影響を受けないため属性を解除する
  1258.             \$(window).resize(removeSize);
  1259.             \$('.item_visual').slick({
  1260.                 dots: false,
  1261.                 arrows: false,
  1262.                 responsive: [{
  1263.                     breakpoint: 768,
  1264.                     settings: {
  1265.                         dots: true
  1266.                     }
  1267.                 }]
  1268.             });
  1269.             \$('.slideThumb').on('click', function() {
  1270.                 var index = \$(this).attr('data-index');
  1271.                 \$('.item_visual').slick('slickGoTo', index, false);
  1272.             })
  1273.         });
  1274.     </script>
  1275.     <script>
  1276.         \$(function() {
  1277.             \$('.add-cart').on('click', function(event) {
  1278.                 {% if form.classcategory_id1 is defined %}
  1279.                 // 規格1フォームの必須チェック
  1280.                 if (\$('#classcategory_id1').val() == '__unselected' || \$('#classcategory_id1').val() == '') {
  1281.                     \$('#classcategory_id1')[0].setCustomValidity('{{ '項目が選択されていません'|trans }}');
  1282.                     return true;
  1283.                 } else {
  1284.                     \$('#classcategory_id1')[0].setCustomValidity('');
  1285.                 }
  1286.                 {% endif %}
  1287.                 {% if form.classcategory_id2 is defined %}
  1288.                 // 規格2フォームの必須チェック
  1289.                 if (\$('#classcategory_id2').val() == '__unselected' || \$('#classcategory_id2').val() == '') {
  1290.                     \$('#classcategory_id2')[0].setCustomValidity('{{ '項目が選択されていません'|trans }}');
  1291.                     return true;
  1292.                 } else {
  1293.                     \$('#classcategory_id2')[0].setCustomValidity('');
  1294.                 }
  1295.                 {% endif %}
  1296.                 // 個数フォームのチェック
  1297.                 if (\$('#quantity').val() < 1) {
  1298.                     \$('#quantity')[0].setCustomValidity('{{ '1以上で入力してください。'|trans }}');
  1299.                     return true;
  1300.                 } else {
  1301.                     \$('#quantity')[0].setCustomValidity('');
  1302.                 }
  1303.                 event.preventDefault();
  1304.                 \$form = \$('#form1');
  1305.                 \$.ajax({
  1306.                     url: \$form.attr('action'),
  1307.                     type: \$form.attr('method'),
  1308.                     data: \$form.serialize(),
  1309.                     dataType: 'json',
  1310.                     beforeSend: function(xhr, settings) {
  1311.                         // Buttonを無効にする
  1312.                         \$('.add-cart').prop('disabled', true);
  1313.                     }
  1314.                 }).done(function(data) {
  1315.                     // レスポンス内のメッセージをalertで表示
  1316.                     \$.each(data.messages, function() {
  1317.                         \$('#ec-modal-header').text(this);
  1318.                     });
  1319.                     \$('.ec-modal').show()
  1320.                     // カートブロックを更新する
  1321.                     \$.ajax({
  1322.                         url: \"{{ url('block_cart') }}\",
  1323.                         type: 'GET',
  1324.                         dataType: 'html'
  1325.                     }).done(function(html) {
  1326.                         \$('.ec-headerRole__cart').html(html);
  1327.                     });
  1328.                 }).fail(function(data) {
  1329.                     alert('{{ 'カートへの追加に失敗しました。'|trans }}');
  1330.                 }).always(function(data) {
  1331.                     // Buttonを有効にする
  1332.                     \$('.add-cart').prop('disabled', false);
  1333.                 });
  1334.             });
  1335.         });
  1336.         \$('.ec-modal-wrap').on('click', function(e) {
  1337.             // モーダル内の処理は外側にバブリングさせない
  1338.             e.stopPropagation();
  1339.         });
  1340.         \$('.ec-modal-overlay, .ec-modal, .ec-modal-close, .ec-inlineBtn--cancel').on('click', function() {
  1341.             \$('.ec-modal').hide()
  1342.         });
  1343.     </script>
  1344.     <script type=\"application/ld+json\">
  1345.     {
  1346.         \"@context\": \"https://schema.org/\",
  1347.         \"@type\": \"Product\",
  1348.         \"name\": \"{{ Product.name }}\",
  1349.         \"image\": [
  1350.             {% for img in Product.ProductImage %}
  1351.                 \"{{ app.request.schemeAndHttpHost }}{{ asset(img, 'save_image') }}\"{% if not loop.last %},{% endif %}
  1352.             {% else %}
  1353.                 \"{{ app.request.schemeAndHttpHost }}{{ asset(''|no_image_product, 'save_image') }}\"
  1354.             {% endfor %}
  1355.         ],
  1356.         \"description\": \"{{ Product.description_list | default(Product.description_detail) | replace({'\\n': '', '\\r': ''}) | slice(0,300) }}\",
  1357.         {% if Product.code_min %}
  1358.         \"sku\": \"{{ Product.code_min }}\",
  1359.         {% endif %}
  1360.         \"offers\": {
  1361.             \"@type\": \"Offer\",
  1362.             \"url\": \"{{ url('product_detail', {'id': Product.id}) }}\",
  1363.             \"priceCurrency\": \"{{ eccube_config.currency }}\",
  1364.             \"price\": {{ Product.getPrice02IncTaxMin ? Product.getPrice02IncTaxMin : 0}},
  1365.             \"availability\": \"{{ Product.stock_find ? \"InStock\" : \"OutOfStock\" }}\"
  1366.         }
  1367.     }
  1368.     </script>
  1369. {% endblock %}
  1370. {% block main %}
  1371.     <!-- PAGE CONTENTS -->
  1372.     <div class=\"products productsWakamefurikake productsSingle\">
  1373.         <section class=\"sub-container\">
  1374.         
  1375.             {# 広告流入かそれ以外かの条件分岐 #}
  1376.             {% if Product.id is same as(59) %}
  1377.             <div class=\"ad\">
  1378.             <section class=\"ad-kvArea\">
  1379.               <div class=\"ad-kvArea__inner\">
  1380.                 <h1 class=\"dn\">しそ入ひじきふりかけ</h1>
  1381.                 <img src=\"{{ asset('assets/img/product-ad/kv.png')}}\" class=\"imgFit dn-sp__ad kv__ad\">
  1382.                 <img src=\"{{ asset('assets/img/product-ad/kv-sp.png')}}\" class=\"imgAd dn-pcTab__ad\">
  1383.               </div>
  1384.             </section>
  1385.             <section class=\"ad-timeArea\">
  1386.               <div class=\"ad-timeArea__inner\">
  1387.                 <h2><span class=\"hl-red\">うま味と甘味</span>の絶妙なバランスが<br><span class=\"hl-big\">様々な場面で<br class=\"dn-pc__ad\"><span class=\"hl-red\">大活躍!</span></h2>
  1388.                 <div class=\"ad-timeArea__contents\">
  1389.                   <section class=\"ad-timeArea__contents-time\">
  1390.                     <div class=\"ad-timeArea__contents-time__left\">
  1391.                       <h3>時短×簡単</h3>
  1392.                       <p>
  1393.                         おにぎりが簡単に絶品に!<br>
  1394.                         忙しい朝やお弁当作りにも時短で便利。<br>
  1395.                         <br>
  1396.                         パパッとひとふりで、お茶漬けが本格的な味に。<br>
  1397.                         しその風味豊かなひじきふりかけで
  1398.                         <span class=\"timeTxt\">時短料理<span class=\"black\">を</span>実現!</span>
  1399.                       </p>
  1400.                     </div>
  1401.                     <div class=\"ad-timeArea__contents-time__right\">
  1402.                       <img src=\"{{ asset('assets/img/product-ad/furikake_img.png')}}\" class=\"dn-mobile\">
  1403.                       <img src=\"{{ asset('assets/img/product-ad/furikake_img-sp.png')}}\" class=\"dn-pc__ad\">
  1404.                     </div>
  1405.                   </section>
  1406.                   <section class=\"ad-timeArea__contents-arrangement\">
  1407.                     <div class=\"ad-timeArea__contents-arrangement__heading\">
  1408.                       <h3>アレンジは多種多様<span>いつもの料理が手軽に<br class=\"dn-pc__ad\">美味しく健康的に!</span></h3>
  1409.                     </div>
  1410.                     <div class=\"ad-timeArea__contents-arrangement__items\">
  1411.                       <div class=\"ad-timeArea__contents-arrangement__item\">
  1412.                           <img src=\"{{ asset('assets/img/product-ad/cooki_img01.png')}}\" class=\"imgFit\">
  1413.                           <p>チャーハンに!</p>
  1414.                         </div>
  1415.                         <div class=\"ad-timeArea__contents-arrangement__item\">
  1416.                           <img src=\"{{ asset('assets/img/product-ad/cooki_img02.png')}}\" class=\"imgFit\">
  1417.                           <p>浅漬けに!</p>
  1418.                         </div>
  1419.                         <div class=\"ad-timeArea__contents-arrangement__item\">
  1420.                           <img src=\"{{ asset('assets/img/product-ad/cooki_img04.png')}}\" class=\"imgFit\">
  1421.                           <p>とり天に!</p>
  1422.                         </div>
  1423.                         <div class=\"ad-timeArea__contents-arrangement__item\">
  1424.                           <img src=\"{{ asset('assets/img/product-ad/cooki_img03.png')}}\" class=\"imgFit\">
  1425.                           <p>トーストにも!</p>
  1426.                         </div>
  1427.                     </div>
  1428.                   </section>
  1429.                 </div>
  1430.               </div>
  1431.             </section>
  1432.             <section class=\"ad-healthyArea\">
  1433.               <div class=\"ad-healthyArea__inner\">
  1434.                 <h2><span>食物繊維</span>と<br class=\"dn-pcTab__ad\"><span>ミネラル</span>たっぷり!</h2>
  1435.                 <div class=\"ad-healthyArea__inner__inner\">
  1436.                   <div class=\"ad-healthyArea__txt\">
  1437.                     <p class=\"top-txt\">
  1438.                       海藻類の中でも特に<br>
  1439.                       <span>栄養価の高い</span>ひじき。
  1440.                     </p>
  1441.                     <p class=\"bottom-txt\">
  1442.                       カルシウム、食物繊維、マグネシウムが<br>
  1443.                       豊富に含まれます。<br>
  1444.                       その他にも、ビタミンBや鉄分なども含ま<br>
  1445.                       れ、しかも低カロリー。
  1446.                     </p>
  1447.                   </div>
  1448.                   <div  class=\"ad-healthyArea__img dn-pc__ad\">
  1449.                     <img src=\"{{ asset('assets/img/product-ad/healthy-sp.png')}}\" class=\"imgFit\">
  1450.                   </div>
  1451.                 </div>
  1452.               </div>
  1453.             </section>
  1454.             <section class=\"ad-voiceArea\">
  1455.               <div class=\"ad-voiceArea__inner\">
  1456.                 <div class=\"ad-voiceArea__content\">
  1457.                   <div class=\"ad-voiceArea__heading\">
  1458.                     <h2><span>いつも沢山のお声<br class=\"dn-pc__ad\">ありがとうございます!</span><br class=\"dn-mobile\">ご利用いただいた<br class=\"dn-pc\">お客様からのお声</h2>
  1459.                   </div>
  1460.                   <div class=\"ad-voiceArea__items\">
  1461.                     <div class=\"ad-voiceArea__item\">
  1462.                       <div class=\"ad-voiceArea__item-left\">VOICE<br>01</div>
  1463.                       <div class=\"ad-voiceArea__item-right\">
  1464.                         <p><span>とても美味しい</span>ひじきふりかけです。<br>
  1465.                         しっとりしていて食べやすく、<span>ホカホカご飯にもお弁当にも最適</span>です。</p>
  1466.                       </div>
  1467.                     </div>
  1468.                     <div class=\"ad-voiceArea__item\">
  1469.                       <div class=\"ad-voiceArea__item-left\">VOICE<br>02</div>
  1470.                       <div class=\"ad-voiceArea__item-right\">
  1471.                         <p>しっとりとしたヒジキがほんのりしそ風味で<span>すごく好きな味です。</span><br>
  1472.                           <span>もう一袋買えば良かった、</span>と後悔してます。</p>
  1473.                       </div>
  1474.                     </div>
  1475.                     <div class=\"ad-voiceArea__item\">
  1476.                       <div class=\"ad-voiceArea__item-left\">VOICE<br>03</div>
  1477.                       <div class=\"ad-voiceArea__item-right\">
  1478.                         <p>毎朝食べてます。美味しいし、<span>手軽にひじきが食べれてとても満足</span>です。<br>
  1479.                           いつも塩分無視してたっぷりかけてるので、<span>無くなったらリピ</span>します。</p>
  1480.                       </div>
  1481.                     </div>
  1482.                     <div class=\"ad-voiceArea__item\">
  1483.                       <div class=\"ad-voiceArea__item-left\">VOICE<br>04</div>
  1484.                       <div class=\"ad-voiceArea__item-right\">
  1485.                         <p>おにぎりに使うのがお気に入りで<span>幼稚園児のお弁当や食事に栄養をプラス</span><br class=\"dn-mobile\">
  1486.                           するのに活用させてもらってます!</p>
  1487.                       </div>
  1488.                     </div>
  1489.                   </div>
  1490.                 </div>
  1491.               </div>
  1492.             </section>
  1493.             <section class=\"ad-aboutArea\">
  1494.               <div class=\"ad-aboutArea__inner\">
  1495.                 <h2>30年以上の<br class=\"dn-pcTab__ad\"><span>「おいしさの追求」</span>で<br>多くのファンに<br class=\"dn-pcTab__ad\">ご支持いただく</h2>
  1496.                 <div class=\"ad-aboutArea__content\">
  1497.                   <div class=\"ad-aboutArea__content-kv\">
  1498.                     <img src=\"{{ asset('assets/img/product-ad/history1.png')}}\" class=\"imgFit\">
  1499.                   </div>
  1500.                   <div class=\"ad-aboutArea__content-items\">
  1501.                     <div class=\"ad-aboutArea__content-items__left\">
  1502.                       <h3>大正10年(1921年)創業<br>100年の歴史と革新</h3>
  1503.                       <p>
  1504.                         1921年に山陰特産品の板わかめ問屋として創業。<br>
  1505.                         <br>
  1506.                         「ひじきふりかけ」の先駆者<br>
  1507.                         30年以上の「おいしさの追求」で、<br>
  1508.                         多くのファンに支持されてきました。<br>
  1509.                         <br>
  1510.                         忙しくても、自分や大切な人の健康を支えたい<br class=\"dn-mobile\">
  1511.                         あなたへ。<br>
  1512.                         栄養豊富な海の幸を、食卓と健康を大切にする<br class=\"dn-mobile\">
  1513.                         すべての方のためにお届けします。<br>
  1514.                       </p>
  1515.                     </div>
  1516.                     <div class=\"ad-aboutArea__content-items__right\">
  1517.                       <div class=\"ad-aboutArea__content-items__right-top\">
  1518.                         <img src=\"{{ asset('assets/img/product-ad/history2.png')}}\" class=\"imgFit\">
  1519.                       </div>
  1520.                       <div class=\"ad-aboutArea__content-items__right-bottom\">
  1521.                         <img src=\"{{ asset('assets/img/product-ad/history3.png')}}\" class=\"imgFit\">
  1522.                       </div>
  1523.                     </div>
  1524.                   </div>
  1525.                 </div>
  1526.               </div>
  1527.             </section>
  1528.             <div class=\"ad-cart\">
  1529.               <a href=\"#cart__area\">
  1530.                 <div>
  1531.                   <div>
  1532.                     <img src=\"{{ asset('assets/img/product-ad/icon-cart.png')}}\" class=\"imgFit dn-sp__ad\">
  1533.                     <img src=\"{{ asset('assets/img/product-ad/icon-cart-sp.png')}}\" class=\"imgFit dn-pcTab__ad\">
  1534.                   </div>
  1535.                   <p>
  1536.                     商品をカートに<br class=\"dn-sp__ad\">追加する
  1537.                   </p>
  1538.                 </div>
  1539.               </a>
  1540.             </div>
  1541.           </div>
  1542.             {% else %}
  1543.             <!-- H1 商品カテゴリーの見出し -->
  1544.             <div class=\"sub-h1--products\">
  1545.                 <h1 class=\"itemTitle\">
  1546.                     {{ Product.name }}
  1547.                 </h1>
  1548.                 <div class=\"itemImg\">
  1549.                     <div class=\"itemImgInner\">
  1550.                         <img src=\"{{ asset('assets/img/products/wf_h1_01.jpg') }}\" alt=\"\" class=\"imgObjectFitCover\">
  1551.                     </div>
  1552.                 </div>
  1553.             </div>
  1554.             <!-- /H1 -->
  1555.             {% endif %}
  1556.             <!-- CONTENTS -->
  1557.             <div class=\"l-container l-2ColumnContainer\">
  1558.                 <!-- MAIN-CONTENTS -->
  1559.                 <div class=\"l-main\">
  1560.                     <!-- BREAD CRUMBS -->
  1561.                     <div class=\"sub-breadcrumbsWrap\">
  1562.                         <ul class=\"sub-breadcrumbs\">
  1563.                             <li><a href=\"/\">TOP</a></li>
  1564.                             <li><a href=\"/products/list\">商品一覧</a></li>
  1565.                             <li>{{ Product.name }}</li>
  1566.                         </ul>
  1567.                     </div>
  1568.                     <!-- /BREAD CRUMBS -->
  1569.                     <!-- MAIN CONTENTS -->
  1570.                     <section class=\"products-sgContent\">
  1571.                         <!-- PRODUCTS PHOTO -->
  1572.                         <div class=\"products-sgContent__pPhoto\">
  1573.                             <div class=\"productsPhotoSlide\">
  1574.                                 <ul id=\"categorySingleSlider\" class=\"main clearfix\">
  1575.                                     {% for ProductImage in Product.ProductImage %}
  1576.                                         <li><span class=\"imgWrap\">
  1577.                                                 <img src=\"{{ asset(ProductImage, 'save_image') }}\" alt=\"{{ loop.first ? Product.name : '' }}\" alt=\"\"
  1578.                                                                        class=\"imgObjectFitCover\" {% if loop.index > 1 %} loading=\"lazy\"{% endif %}>
  1579.                                             </span>
  1580.                                         </li>
  1581.                                     {% else %}
  1582.                                         <li>
  1583.                                             <span class=\"imgWrap\">
  1584.                                                 <img src=\"{{ asset(''|no_image_product, 'save_image') }}\" alt=\"{{ loop.first ? Product.name : '' }}\"
  1585.                                                                        class=\"imgObjectFitCover\">
  1586.                                             </span>
  1587.                                         </li>
  1588.                                     {% endfor %}
  1589.                                 </ul>
  1590.                                 <ul id=\"categorySingleSliderNav\" class=\"sub clearfix\">
  1591.                                     {% for ProductImage in Product.ProductImage %}
  1592.                                         <li data-index=\"{{ loop.index0 }}\">
  1593.                                             <span class=\"imgWrap\">
  1594.                                                 <img src=\"{{ asset(ProductImage, 'save_image') }}\" alt=\"\"
  1595.                                                      class=\"imgObjectFitCover\" loading=\"lazy\">
  1596.                                             </span>
  1597.                                         </li>
  1598.                                     {% endfor %}
  1599.                                 </ul>
  1600.                             </div>
  1601.                         </div>
  1602.                         <!-- /PRODUCTS PHOTO -->
  1603.                         <!-- PRODUCTS DATA -->
  1604.                         <div class=\"products-sgContent__pData\" id=\"cart__area\">
  1605.                             <div class=\"titleWrap\">
  1606.                                 <h2 class=\"itemPName\">{{ Product.name }}</h2>
  1607.                                 {% if Product.hasProductClass -%}
  1608.                                     {% if Product.getPrice02IncTaxMin == Product.getPrice02IncTaxMax %}
  1609.                                         <p class=\"itemPrice\">
  1610.                                             {{ Product.getPrice02IncTaxMin|price }}
  1611.                                             <span class=\"tax\">{{ '(税込)'|trans }}</span>
  1612.                                         </p>
  1613.                                     {% else %}
  1614.                                         <p class=\"itemPrice\">
  1615.                                             {{ Product.getPrice02IncTaxMin|price }} ~ {{ Product.getPrice02IncTaxMax|price }}
  1616.                                             <span class=\"tax\">{{ '(税込)'|trans }}</span>
  1617.                                         </p>
  1618.                                     {% endif %}
  1619.                                 {% else %}
  1620.                                         <p class=\"itemPrice\">
  1621.                                             {{ Product.getPrice02IncTaxMin|price }}
  1622.                                             <span class=\"tax\">{{ '(税込)'|trans }}</span>
  1623.                                         </p>
  1624.                                 {% endif %}
  1625.                             </div>
  1626.                             <form action=\"{{ url('product_add_cart', {id:Product.id}) }}\" method=\"post\" id=\"form1\" name=\"form1\">
  1627.                                 {% if Product.stock_find %}
  1628.                                     <div class=\"ec-productRole__actions\">
  1629.                                         {% if form.classcategory_id1 is defined %}
  1630.                                             <div class=\"ec-select\">
  1631.                                                 {{ form_row(form.classcategory_id1) }}
  1632.                                                 {{ form_errors(form.classcategory_id1) }}
  1633.                                             </div>
  1634.                                             {% if form.classcategory_id2 is defined %}
  1635.                                                 <div class=\"ec-select\">
  1636.                                                     {{ form_row(form.classcategory_id2) }}
  1637.                                                     {{ form_errors(form.classcategory_id2) }}
  1638.                                                 </div>
  1639.                                             {% endif %}
  1640.                                         {% endif %}
  1641.                                         <div class=\"quantityWrap\">
  1642.                                             <span>数量</span>
  1643.                                             <div class=\"quantityWrapInner\">
  1644.                                                 <div class=\"item-select\">
  1645.                                                     {{ form_widget(form.quantity) }}
  1646.                                                     {{ form_errors(form.quantity) }}
  1647.                                                 </div>
  1648.                                                 <div class=\"product-single-quantityBtnBlock\">
  1649.                                                     <div class=\"quantityBtn quantityBtn__plus\"><span class=\"btnInner\">+</span></div>
  1650.                                                     <div class=\"quantityBtn quantityBtn__minus\"><span class=\"btnInner\">-</span></div>
  1651.                                                 </div>
  1652.                                             </div>
  1653.                                         </div>
  1654.                                     </div>
  1655.                                     <div class=\"cartBtnWrap\">
  1656.                                         <button type=\"submit\" class=\"ec-blockBtn--action add-cart mod-btn-02 cartBtn\">
  1657.                                             {{ 'カートに入れる'|trans }}
  1658.                                         </button>
  1659.                                     </div>
  1660.                                 {% else %}
  1661.                                     <div class=\"ec-productRole__btn\">
  1662.                                         <button type=\"button\" class=\"ec-blockBtn--action\" disabled=\"disabled\">
  1663.                                             {{ 'ただいま品切れ中です。'|trans }}
  1664.                                         </button>
  1665.                                     </div>
  1666.                                 {% endif %}
  1667.                                 <div class=\"ec-modal\">
  1668.                                     <div class=\"ec-modal-overlay\">
  1669.                                         <div class=\"ec-modal-wrap\">
  1670.                                             <span class=\"ec-modal-close\"><span class=\"ec-icon\"><img src=\"{{ asset('assets/icon/cross-dark.svg') }}\" alt=\"\"/></span></span>
  1671.                                             <div id=\"ec-modal-header\" class=\"text-center\">{{ 'カートに追加しました。'|trans }}</div>
  1672.                                             <div class=\"ec-modal-box\">
  1673.                                                 <div class=\"ec-role\">
  1674.                                                     <span class=\"ec-inlineBtn--cancel\">{{ 'お買い物を続ける'|trans }}</span>
  1675.                                                     <a href=\"{{ url('cart') }}\" class=\"ec-inlineBtn--action\">{{ 'カートへ進む'|trans }}</a>
  1676.                                                 </div>
  1677.                                             </div>
  1678.                                         </div>
  1679.                                     </div>
  1680.                                 </div>
  1681.                                 {{ form_rest(form) }}
  1682.                             </form>
  1683.                             {% if BaseInfo.option_favorite_product %}
  1684.                                 <form action=\"{{ url('product_add_favorite', {id:Product.id}) }}\" method=\"post\">
  1685.                                     <div class=\"favoriteBtnWrap\">
  1686.                                     {% if is_favorite == false %}
  1687.                                         <button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--cancel mod-btn-02 favoriteBtn\">お気に入りに追加</button>
  1688.                                     {% else %}
  1689.                                         <button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--cancel mod-btn-02 favoriteBtn\"
  1690.                                                 disabled=\"disabled\">{{ 'お気に入りに追加済です。'|trans }}
  1691.                                         </button>
  1692.                                     {% endif %}
  1693.                                     </div>
  1694.                                 </form>
  1695.                             {% endif %}
  1696.                             <div class=\"itemInfoWrap\">
  1697.                                 <p>
  1698.                                     {{ Product.description_detail|raw|nl2br }}
  1699.                                 </p>
  1700.                             </div>
  1701.                             {% if Product.freearea %}
  1702.                                 <div class=\"ec-productRole__description\">
  1703.                                     {{ include(template_from_string(Product.freearea), sandboxed = true) }}
  1704.                                 </div>
  1705.                             {% endif %}
  1706.                         </div>
  1707.                         <!-- /PRODUCTS DATA -->
  1708.                     </section>
  1709.                     <!-- /MAIN CONTENTS -->
  1710.                     <div class=\"marginTop30\">
  1711.                     {% if plugin_snippets is defined %}
  1712.                         {{ include('snippet.twig', { snippets: plugin_snippets }) }}
  1713.                     {% endif %}
  1714.                     </div>
  1715.                     {% if Layout.MainBottom %}
  1716.                         {{ include('block.twig', {'Blocks': Layout.MainBottom}) }}
  1717.                     {% endif %}
  1718.                     {% if Layout.ContentsBottom %}
  1719.                         <div class=\"ec-layoutRole__contentBottom\">
  1720.                             {{ include('block.twig', {'Blocks': Layout.ContentsBottom}) }}
  1721.                         </div>
  1722.                     {% endif %}
  1723.                 </div>
  1724.                 <!-- /MAIN-CONTENTS -->
  1725.                 <!-- SIDE-CONTENTS -->
  1726.                 {{ include('Block/side_menu.twig') }}
  1727.                 <!-- /SIDE-CONTENTS -->
  1728.             </div>
  1729.             <!-- /CONTENTS -->
  1730.         </section>
  1731.     </div>
  1732.     <!-- /PAGE CONTENTS -->
  1733. {% endblock %}""Product/detail.twig""/home/kaorimehonpo/kaorime.co.jp/public_html/shop.kaorime.co.jp/app/template/kaorime/Product/detail.twig");
  1734.     }
  1735.     
  1736.     public function checkSecurity()
  1737.     {
  1738.         static $tags = array("set" => 13"if" => 108"for" => 257);
  1739.         static $filters = array("raw" => 97"json_encode" => 110"escape" => 113"trans" => 182"no_image_product" => 261"slice" => 264"replace" => 264"default" => 264"price" => 523"nl2br" => 616);
  1740.         static $functions = array("class_categories_as_json" => 97"url" => 228"asset" => 258"form_row" => 545"form_errors" => 546"form_widget" => 559"form_rest" => 596"include" => 621"template_from_string" => 621);
  1741.         try {
  1742.             $this->sandbox->checkSecurity(
  1743.                 ['set''if''for'],
  1744.                 ['raw''json_encode''escape''trans''no_image_product''slice''replace''default''price''nl2br'],
  1745.                 ['class_categories_as_json''url''asset''form_row''form_errors''form_widget''form_rest''include''template_from_string']
  1746.             );
  1747.         } catch (SecurityError $e) {
  1748.             $e->setSourceContext($this->source);
  1749.             if ($e instanceof SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
  1750.                 $e->setTemplateLine($tags[$e->getTagName()]);
  1751.             } elseif ($e instanceof SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
  1752.                 $e->setTemplateLine($filters[$e->getFilterName()]);
  1753.             } elseif ($e instanceof SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
  1754.                 $e->setTemplateLine($functions[$e->getFunctionName()]);
  1755.             }
  1756.             throw $e;
  1757.         }
  1758.     }
  1759. }