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

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