var/cache/dev/twig/a7/a72c788f389985a9be97d64f60d2aa3d2a323e0ed8ab6c289d73f60825162b7e.php line 40

Open in your IDE?
  1. <?php
  2. use Twig\Environment;
  3. use Twig\Error\LoaderError;
  4. use Twig\Error\RuntimeError;
  5. use Twig\Extension\SandboxExtension;
  6. use Twig\Markup;
  7. use Twig\Sandbox\SecurityError;
  8. use Twig\Sandbox\SecurityNotAllowedTagError;
  9. use Twig\Sandbox\SecurityNotAllowedFilterError;
  10. use Twig\Sandbox\SecurityNotAllowedFunctionError;
  11. use Twig\Source;
  12. use Twig\Template;
  13. /* __string_template__ef755d043ca75195efac5a7b0b023faecf3d2096108f773940123c1e1ce00dd4 */
  14. class __TwigTemplate_e497064bb83cfd165dee25d295d5938e1ddfae21405d498e6eba09288ceadfbc extends \Eccube\Twig\Template
  15. {
  16.     private $source;
  17.     private $macros = [];
  18.     public function __construct(Environment $env)
  19.     {
  20.         parent::__construct($env);
  21.         $this->source $this->getSourceContext();
  22.         $this->blocks = [
  23.             'stylesheet' => [$this'block_stylesheet'],
  24.             'javascript' => [$this'block_javascript'],
  25.             'main' => [$this'block_main'],
  26.         ];
  27.     }
  28.     protected function doGetParent(array $context)
  29.     {
  30.         // line 11
  31.         return "default_frame.twig";
  32.     }
  33.     protected function doDisplay(array $context, array $blocks = [])
  34.     {
  35.         $macros $this->macros;
  36.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  37.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""__string_template__ef755d043ca75195efac5a7b0b023faecf3d2096108f773940123c1e1ce00dd4"));
  38.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  39.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""__string_template__ef755d043ca75195efac5a7b0b023faecf3d2096108f773940123c1e1ce00dd4"));
  40.         // line 13
  41.         $context["body_class"] = "product_page";
  42.         // line 11
  43.         $this->parent $this->loadTemplate("default_frame.twig""__string_template__ef755d043ca75195efac5a7b0b023faecf3d2096108f773940123c1e1ce00dd4"11);
  44.         $this->parent->display($contextarray_merge($this->blocks$blocks));
  45.         
  46.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  47.         
  48.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  49.     }
  50.     // line 15
  51.     public function block_stylesheet($context, array $blocks = [])
  52.     {
  53.         $macros $this->macros;
  54.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  55.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""stylesheet"));
  56.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  57.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""stylesheet"));
  58.         // line 16
  59.         echo "\t<style>
  60. \t\t.sub-breadcrumbsWrap {
  61. \t\t\tmargin-top: 20px;
  62. \t\t}
  63. \t\t.sub-breadcrumbs:not(first-child) {
  64. \t\t\tmargin-top: 10px;
  65. \t\t}
  66. \t\t.form-label {
  67. \t\t\tdisplay: none;
  68. \t\t}
  69. \t\t.mb-3 {
  70. \t\t\tmargin-bottom: 0;
  71. \t\t}
  72. \t\t.notHover:hover>* {
  73. \t\t\tcursor: not-allowed !important;
  74. \t\t}
  75. \t\t.notHover {
  76. \t\t\topacity: 0.5;
  77. \t\t}\t
  78. \t\t.notHover:hover {
  79. \t\t\topacity: 0.5;
  80. \t\t}
  81. \t\t#product_review_area .recommend_level {
  82. \t\t\tcolor: #B79242;
  83. \t\t}
  84. \t\tbutton:disabled{
  85. \t\t\topacity: 0.5;
  86. \t\t}
  87. \t\t.mod-form-input-text, .mod-form-input-textArea {
  88. \t\t\twidth: 100% !important;
  89. \t\t\tmax-width: none !important;
  90. \t\t\ttext-align: left !important;
  91. \t\t\tborder: 1px solid #7c7c7c !important;
  92. \t\t\tborder-radius: 0px !important;
  93. \t\t\tmargin: 6px 0 !important;
  94. \t\t}\t\t
  95. \t\t.mod-form-description {
  96. \t\t\tfont-size: 14px;
  97. \t\t}
  98. \t\t.option-img {
  99. \t\t\twidth: 100%;
  100. \t\t\tmax-width: 400px;
  101. \t\t}
  102. \t</style>
  103. ";
  104.         
  105.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  106.         
  107.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  108.     }
  109.     // line 63
  110.     public function block_javascript($context, array $blocks = [])
  111.     {
  112.         $macros $this->macros;
  113.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  114.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""javascript"));
  115.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  116.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""javascript"));
  117.         // line 64
  118.         echo "\t";
  119.         // line 65
  120.         echo "    <script>
  121.         eccube.classCategories = ";
  122.         // line 66
  123.         echo $this->extensions['Eccube\Twig\Extension\EccubeExtension']->getClassCategoriesAsJson((isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'66$this->source); })()));
  124.         echo ";
  125.         // 規格2に選択肢を割り当てる。
  126.         function fnSetClassCategories(form, classcat_id2_selected) {
  127.             var \$form = \$(form);
  128.             var product_id = \$form.find('input[name=product_id]').val();
  129.             var \$sele1 = \$form.find('select[name=classcategory_id1]');
  130.             var \$sele2 = \$form.find('select[name=classcategory_id2]');
  131.             eccube.setClassCategories(\$form, product_id, \$sele1, \$sele2, classcat_id2_selected);
  132.         }
  133.         ";
  134.         // line 77
  135.         if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id2", [], "any"truetruefalse77)) {
  136.             // line 78
  137.             echo "        fnSetClassCategories(
  138.             \$('#form1'), ";
  139.             // line 79
  140.             echo json_encode(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'79$this->source); })()), "classcategory_id2", [], "any"falsefalsefalse79), "vars", [], "any"falsefalsefalse79), "value", [], "any"falsefalsefalse79));
  141.             echo "
  142.         );
  143.         ";
  144.         } elseif (twig_get_attribute($this->env$this->source,         // line 81
  145. ($context["form"] ?? null), "classcategory_id1", [], "any"truetruefalse81)) {
  146.             // line 82
  147.             echo "        eccube.checkStock(\$('#form1'), ";
  148.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'82$this->source); })()), "id", [], "any"falsefalsefalse82), "html"nulltrue);
  149.             echo ", ";
  150.             echo json_encode(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'82$this->source); })()), "classcategory_id1", [], "any"falsefalsefalse82), "vars", [], "any"falsefalsefalse82), "value", [], "any"falsefalsefalse82));
  151.             echo ", null);
  152.         ";
  153.         }
  154.         // line 84
  155.         echo "    </script>
  156. \t";
  157.         // line 87
  158.         echo "    <script>
  159.         \$(function() {
  160.             // bfcache無効化
  161.             \$(window).bind('pageshow', function(event) {
  162.                 if (event.originalEvent.persisted) {
  163.                     location.reload(true);
  164.                 }
  165.             });
  166.             // Core Web Vital の Cumulative Layout Shift(CLS)対策のため
  167.             // img タグに width, height が付与されている.
  168.             // 630px 未満の画面サイズでは縦横比が壊れるための対策
  169.             // see https://github.com/EC-CUBE/ec-cube/pull/5023
  170.             \$('.ec-grid2__cell').hide();
  171.             var removeSize = function () {
  172.                 \$('.slide-item').height('');
  173.                 \$('.slide-item img')
  174.                     .removeAttr('width')
  175.                     .removeAttr('height')
  176.                     .removeAttr('style');
  177.             };
  178.             var slickInitial = function(slick) {
  179.                 \$('.ec-grid2__cell').fadeIn(1500);
  180.                 var baseHeight = \$(slick.target).height();
  181.                 var baseWidth = \$(slick.target).width();
  182.                 var rate = baseWidth / baseHeight;
  183.                 \$('.slide-item').height(baseHeight * rate); // 余白を削除する
  184.                 // transform を使用することでCLSの影響を受けないようにする
  185.                 \$('.slide-item img')
  186.                     .css(
  187.                         {
  188.                             'transform-origin': 'top left',
  189.                             'transform': 'scaleY(' + rate + ')',
  190.                             'transition': 'transform .1s'
  191.                         }
  192.                     );
  193.                 // 正しいサイズに近くなったら属性を解除する
  194.                 setTimeout(removeSize, 500);
  195.             };
  196.             \$('.item_visual').on('init', slickInitial);
  197.             // リサイズ時は CLS の影響を受けないため属性を解除する
  198.             \$(window).resize(removeSize);
  199.             \$('.item_visual').slick({
  200.                 dots: false,
  201.                 arrows: false,
  202.                 responsive: [{
  203.                     breakpoint: 768,
  204.                     settings: {
  205.                         dots: true
  206.                     }
  207.                 }]
  208.             });
  209.             \$('.slideThumb').on('click', function() {
  210.                 var index = \$(this).attr('data-index');
  211.                 \$('.item_visual').slick('slickGoTo', index, false);
  212.             })
  213.         });
  214.     </script>
  215. \t";
  216.         // line 149
  217.         echo "    <script>
  218.         \$(function() {
  219.             \$('.add-cart').on('click', function(event) {
  220.                 ";
  221.         // line 152
  222.         if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id1", [], "any"truetruefalse152)) {
  223.             // line 153
  224.             echo "                // 規格1フォームの必須チェック
  225.                 if (\$('#classcategory_id1').val() == '__unselected' || \$('#classcategory_id1').val() == '') {
  226.                     \$('#classcategory_id1')[0].setCustomValidity('";
  227.             // line 155
  228.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("項目を選択してください"), "html"nulltrue);
  229.             echo "');
  230. \t\t\t\t\t
  231.                     return true;
  232.                 } else {
  233.                     \$('#classcategory_id1')[0].setCustomValidity('');
  234.                 }
  235.                 ";
  236.         }
  237.         // line 162
  238.         echo "
  239.                 ";
  240.         // line 163
  241.         if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id2", [], "any"truetruefalse163)) {
  242.             // line 164
  243.             echo "                // 規格2フォームの必須チェック
  244.                 if (\$('#classcategory_id2').val() == '__unselected' || \$('#classcategory_id2').val() == '') {
  245.                     \$('#classcategory_id2')[0].setCustomValidity('";
  246.             // line 166
  247.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("項目を選択してください"), "html"nulltrue);
  248.             echo "');
  249.                     return true;
  250.                 } else {
  251.                     \$('#classcategory_id2')[0].setCustomValidity('');
  252.                 }
  253.                 ";
  254.         }
  255.         // line 172
  256.         echo "
  257.                 // 個数フォームのチェック
  258.                 if (\$('#quantity').val() <= 0) {
  259.                     \$('#quantity')[0].setCustomValidity('";
  260.         // line 175
  261.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("1以上の数字を入力してください。"), "html"nulltrue);
  262.         echo "');
  263.                     return true;
  264.                 } else {
  265.                     \$('#quantity')[0].setCustomValidity('');
  266.                 }\t\t\t\t
  267.                 event.preventDefault();
  268.                 \$form = \$('#form1');
  269.                 \$.ajax({
  270.                     url: \$form.attr('action'),
  271.                     type: \$form.attr('method'),
  272.                     data: \$form.serialize(),
  273.                     dataType: 'json',
  274.                     beforeSend: function(xhr, settings) {
  275.                         // Buttonを無効にする
  276.                         \$('.add-cart').prop('disabled', true);
  277.                     }
  278.                 }).done(function(data) {
  279.                     // レスポンス内のメッセージをalertで表示
  280.                     \$.each(data.messages, function() {
  281.                         \$('#ec-modal-header').text(this);
  282.                     });
  283.                     \$('.ec-modal').show()
  284.                     // カートブロックを更新する
  285.                     \$.ajax({
  286.                         url: \"";
  287.         // line 202
  288.         echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("block_cart");
  289.         echo "\",
  290.                         type: 'GET',
  291.                         dataType: 'html'
  292.                     }).done(function(html) {
  293.                         \$('.ec-headerRole__cart').html(html);
  294.                     });
  295.                 }).fail(function(data) {
  296.                     alert('";
  297.         // line 209
  298.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートへの追加に失敗しました。"), "html"nulltrue);
  299.         echo "');
  300.                 }).always(function(data) {
  301.                     // Buttonを有効にする
  302.                     \$('.add-cart').prop('disabled', false);
  303.                 });
  304.             });
  305.         });
  306.         \$('.ec-modal-wrap').on('click', function(e) {
  307.             // モーダル内の処理は外側にバブリングさせない
  308.             e.stopPropagation();
  309.         });
  310.         \$('.ec-modal-overlay, .ec-modal, .ec-modal-close, .ec-inlineBtn--cancel').on('click', function() {
  311.             \$('.ec-modal').hide()
  312.         });
  313.     </script>
  314.     <script type=\"application/ld+json\">
  315.     {
  316.         \"@context\": \"https://schema.org/\",
  317.         \"@type\": \"Product\",
  318.         \"name\": \"";
  319.         // line 229
  320.         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'229$this->source); })()), "name", [], "any"falsefalsefalse229), "html"nulltrue);
  321.         echo "\",
  322.         \"image\": [
  323.             ";
  324.         // line 231
  325.         $context['_parent'] = $context;
  326.         $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.'231$this->source); })()), "ProductImage", [], "any"falsefalsefalse231));
  327.         $context['_iterated'] = false;
  328.         $context['loop'] = [
  329.           'parent' => $context['_parent'],
  330.           'index0' => 0,
  331.           'index'  => 1,
  332.           'first'  => true,
  333.         ];
  334.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  335.             $length count($context['_seq']);
  336.             $context['loop']['revindex0'] = $length 1;
  337.             $context['loop']['revindex'] = $length;
  338.             $context['loop']['length'] = $length;
  339.             $context['loop']['last'] = === $length;
  340.         }
  341.         foreach ($context['_seq'] as $context["_key"] => $context["img"]) {
  342.             // line 232
  343.             echo "                \"";
  344.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'232$this->source); })()), "request", [], "any"falsefalsefalse232), "schemeAndHttpHost", [], "any"falsefalsefalse232), "html"nulltrue);
  345.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($context["img"], "save_image"), "html"nulltrue);
  346.             echo "\"";
  347.             if ( !twig_get_attribute($this->env$this->source$context["loop"], "last", [], "any"falsefalsefalse232)) {
  348.                 echo ",";
  349.             }
  350.             // line 233
  351.             echo "
  352.             ";
  353.             $context['_iterated'] = true;
  354.             ++$context['loop']['index0'];
  355.             ++$context['loop']['index'];
  356.             $context['loop']['first'] = false;
  357.             if (isset($context['loop']['length'])) {
  358.                 --$context['loop']['revindex0'];
  359.                 --$context['loop']['revindex'];
  360.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  361.             }
  362.         }
  363.         if (!$context['_iterated']) {
  364.             // line 235
  365.             echo "                \"";
  366.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'235$this->source); })()), "request", [], "any"falsefalsefalse235), "schemeAndHttpHost", [], "any"falsefalsefalse235), "html"nulltrue);
  367.             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);
  368.             echo "\"
  369.             ";
  370.         }
  371.         $_parent $context['_parent'];
  372.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['img'], $context['_parent'], $context['loop']);
  373.         $context array_intersect_key($context$_parent) + $_parent;
  374.         // line 237
  375.         echo "        ],
  376.         \"description\": \"";
  377.         // line 238
  378.         echo twig_escape_filter($this->envtwig_slice($this->envtwig_replace_filter(((twig_get_attribute($this->env$this->source, ($context["Product"] ?? null), "description_list", [], "any"truetruefalse238)) ? (_twig_default_filter(twig_get_attribute($this->env$this->source, ($context["Product"] ?? null), "description_list", [], "any"falsefalsefalse238), 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.'238$this->source); })()), "description_detail", [], "any"falsefalsefalse238))) : (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.'238$this->source); })()), "description_detail", [], "any"falsefalsefalse238))), ["
  379. => """ " => ""]), 0300), "html"nulltrue);
  380.         echo "\",
  381.         ";
  382.         // line 239
  383.         if (twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'239$this->source); })()), "code_min", [], "any"falsefalsefalse239)) {
  384.             // line 240
  385.             echo "        \"sku\": \"";
  386.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'240$this->source); })()), "code_min", [], "any"falsefalsefalse240), "html"nulltrue);
  387.             echo "\",
  388.         ";
  389.         }
  390.         // line 242
  391.         echo "        \"offers\": {
  392.             \"@type\": \"Offer\",
  393.             \"url\": \"";
  394.         // line 244
  395.         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.'244$this->source); })()), "id", [], "any"falsefalsefalse244)]), "html"nulltrue);
  396.         echo "\",
  397.             \"priceCurrency\": \"";
  398.         // line 245
  399.         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["eccube_config"]) || array_key_exists("eccube_config"$context) ? $context["eccube_config"] : (function () { throw new RuntimeError('Variable "eccube_config" does not exist.'245$this->source); })()), "currency", [], "any"falsefalsefalse245), "html"nulltrue);
  400.         echo "\",
  401.             \"price\": ";
  402.         // line 246
  403.         ((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.'246$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse246)) ? (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.'246$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse246), "html"nulltrue))) : (print (0)));
  404.         echo ",
  405.             \"availability\": \"";
  406.         // line 247
  407.         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.'247$this->source); })()), "stock_find", [], "any"falsefalsefalse247)) ? ("InStock") : ("OutOfStock"));
  408.         echo "\"
  409.         }
  410.     }
  411.     </script>
  412. \t";
  413.         // line 253
  414.         echo "\t<script>
  415. \t\t\$(function() {
  416. \t\t\t\$('#product_review_area').appendTo(\$('.ec-layoutRole__main, .ec-layoutRole__mainWithColumn, .ec-layoutRole__mainBetweenColumn'));
  417. \t\t\t\$('#product_review_area .ec-rectHeading').on('click', function() {
  418. \t\t\t\t\$content = \$('#reviewContent');
  419. \t\t\t\tif (\$content.css('display') == 'none') {
  420. \t\t\t\t\t\$(this).addClass('is_active');
  421. \t\t\t\t\t\$content.addClass('is_active');
  422. \t\t\t\t\t\$content.slideDown(300);
  423. \t\t\t\t} else {
  424. \t\t\t\t\t\$(this).removeClass('is_active');
  425. \t\t\t\t\t\$content.removeClass('is_active');
  426. \t\t\t\t\t\$content.slideUp(300);
  427. \t\t\t\t}
  428. \t\t\t\treturn false;
  429. \t\t\t});
  430. \t\t});
  431. \t</script>\t
  432. ";
  433.         
  434.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  435.         
  436.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  437.     }
  438.     // line 274
  439.     public function block_main($context, array $blocks = [])
  440.     {
  441.         $macros $this->macros;
  442.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  443.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""main"));
  444.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  445.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""main"));
  446.         // line 275
  447.         echo "\t<div
  448. \t\tclass=\"sub-container\">
  449. \t\t<!-- SUB H1 -->
  450. \t\t<div
  451. \t\t\tclass=\"sub-h1Wrap\">
  452. \t\t\t<h1 class=\"sub-h1\">
  453. \t\t\t\t";
  454.         // line 281
  455.         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'281$this->source); })()), "name", [], "any"falsefalsefalse281), "html"nulltrue);
  456.         echo "
  457. \t\t\t</h1>
  458. \t\t</div>
  459. \t\t<!-- /SUB H1 -->
  460. \t\t<div
  461. \t\t\tclass=\"l-container\">
  462. \t\t\t<!-- パンくずリスト -->
  463. \t\t\t";
  464.         // line 317
  465.         echo "\t\t\t
  466. \t\t\t<!-- /パンくずリスト -->
  467. \t\t\t<div
  468. \t\t\t\tclass=\"l-2ColumnContainer\">
  469. \t\t\t\t<!-- メインコンテンツ -->
  470. \t\t\t\t<div
  471. \t\t\t\t\tclass=\"l-main\">
  472. \t\t\t\t\t<!-- PAGE CONTENTS -->
  473. \t\t\t\t\t<div class=\"products productsSingle\">
  474. \t\t\t\t\t\t<section>
  475. \t\t\t\t\t\t\t<!-- 上部分(商品名、カートボタン など) -->
  476. \t\t\t\t\t\t\t<div
  477. \t\t\t\t\t\t\t\tclass=\"productsSingle-header\">
  478. \t\t\t\t\t\t\t\t<!-- 写真部分 -->
  479. \t\t\t\t\t\t\t\t<div class=\"header-imgBlock\">
  480. \t\t\t\t\t\t\t\t\t<div class=\"header-img\">
  481. \t\t\t\t\t\t\t\t\t\t<div class=\"header-img-arrow isPrev\" style=\"display: none;\">
  482. \t\t\t\t\t\t\t\t\t\t\t<p class=\"hdnTxt\">前の写真へ</p>
  483. \t\t\t\t\t\t\t\t\t\t</div>
  484. \t\t\t\t\t\t\t\t\t\t<div class=\"imgInner\"></div>
  485. \t\t\t\t\t\t\t\t\t\t<div class=\"header-img-arrow isNext\" style=\"display: none;\">
  486. \t\t\t\t\t\t\t\t\t\t\t<p class=\"hdnTxt\">次の写真へ</p>
  487. \t\t\t\t\t\t\t\t\t\t</div>
  488. \t\t\t\t\t\t\t\t\t</div>
  489. \t\t\t\t\t\t\t\t\t<div class=\"header-img-otherContainer\">
  490. \t\t\t\t\t\t\t\t\t\t";
  491.         // line 346
  492.         $context['_parent'] = $context;
  493.         $context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'346$this->source); })()), "ProductImage", [], "any"falsefalsefalse346));
  494.         $context['_iterated'] = false;
  495.         $context['loop'] = [
  496.           'parent' => $context['_parent'],
  497.           'index0' => 0,
  498.           'index'  => 1,
  499.           'first'  => true,
  500.         ];
  501.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  502.             $length count($context['_seq']);
  503.             $context['loop']['revindex0'] = $length 1;
  504.             $context['loop']['revindex'] = $length;
  505.             $context['loop']['length'] = $length;
  506.             $context['loop']['last'] = === $length;
  507.         }
  508.         foreach ($context['_seq'] as $context["_key"] => $context["ProductImage"]) {
  509.             // line 347
  510.             echo "\t\t\t\t\t\t\t\t\t\t\t<div class=\"header-img-other\" data-index=\"";
  511.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["loop"], "index0", [], "any"falsefalsefalse347), "html"nulltrue);
  512.             echo "\"><div class=\"imgInner\"><img src=\"";
  513.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($context["ProductImage"], "save_image"), "html"nulltrue);
  514.             echo "\" alt=\"\" class=\"imgObjectFitContain\"></div></div>
  515. \t\t\t\t\t\t\t\t\t\t";
  516.             $context['_iterated'] = true;
  517.             ++$context['loop']['index0'];
  518.             ++$context['loop']['index'];
  519.             $context['loop']['first'] = false;
  520.             if (isset($context['loop']['length'])) {
  521.                 --$context['loop']['revindex0'];
  522.                 --$context['loop']['revindex'];
  523.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  524.             }
  525.         }
  526.         if (!$context['_iterated']) {
  527.             // line 349
  528.             echo "\t\t\t\t\t\t\t\t\t\t\t<div class=\"header-img-other\" data-index=\"";
  529.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["loop"], "index0", [], "any"falsefalsefalse349), "html"nulltrue);
  530.             echo "\"><div class=\"imgInner\"><img src=\"";
  531.             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);
  532.             echo "\" alt=\"\" class=\"imgObjectFitContain\"></div></div>\t\t\t\t\t\t\t\t\t\t
  533. \t\t\t\t\t\t\t\t\t\t";
  534.         }
  535.         $_parent $context['_parent'];
  536.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductImage'], $context['_parent'], $context['loop']);
  537.         $context array_intersect_key($context$_parent) + $_parent;
  538.         // line 350
  539.         echo "\t\t\t\t\t\t\t\t\t
  540. \t\t\t\t\t\t\t\t\t</div>
  541. \t\t\t\t\t\t\t\t\t<script>
  542. \t\t\t\t\t\t\t\t\t\t// ページが読み込まれたときに実行される関数
  543. \t\t\t\t\t\t\t\t\t\tdocument.addEventListener(\"DOMContentLoaded\", function() {
  544. \t\t\t\t\t\t\t\t\t\t\t// .header-img-otherの要素を取得
  545. \t\t\t\t\t\t\t\t\t\t\tvar headerImgOthers = document.querySelectorAll('.header-img-other');
  546. \t\t\t\t\t\t\t\t\t\t\t// .isPrevと.isNextを表示する関数
  547. \t\t\t\t\t\t\t\t\t\t\tfunction displayPrevNextArrows() {
  548. \t\t\t\t\t\t\t\t\t\t\t\t// .isPrevと.isNextの要素を取得
  549. \t\t\t\t\t\t\t\t\t\t\t\tvar prevArrow = document.querySelector('.header-img-arrow.isPrev');
  550. \t\t\t\t\t\t\t\t\t\t\t\tvar nextArrow = document.querySelector('.header-img-arrow.isNext');
  551. \t\t\t\t\t\t\t\t\t\t\t\t// .header-img-otherの要素が2つ以上あれば、.isPrevと.isNextを表示
  552. \t\t\t\t\t\t\t\t\t\t\t\tif (headerImgOthers.length >= 2) {
  553. \t\t\t\t\t\t\t\t\t\t\t\t\tif (prevArrow) {
  554. \t\t\t\t\t\t\t\t\t\t\t\t\tprevArrow.style.display = 'block';
  555. \t\t\t\t\t\t\t\t\t\t\t\t\t}
  556. \t\t\t\t\t\t\t\t\t\t\t\t\tif (nextArrow) {
  557. \t\t\t\t\t\t\t\t\t\t\t\t\tnextArrow.style.display = 'block';
  558. \t\t\t\t\t\t\t\t\t\t\t\t\t}
  559. \t\t\t\t\t\t\t\t\t\t\t\t}
  560. \t\t\t\t\t\t\t\t\t\t\t}
  561. \t\t\t\t\t\t\t\t\t\t\t// ページが読み込まれたときに実行
  562. \t\t\t\t\t\t\t\t\t\t\tdisplayPrevNextArrows();
  563. \t\t\t\t\t\t\t\t\t\t});
  564. \t\t\t\t\t\t\t\t\t</script>
  565. \t\t\t\t\t\t\t\t</div>
  566. \t\t\t\t\t\t\t\t<!-- /写真部分 -->
  567. \t\t\t\t\t\t\t\t<!-- 文字部分 -->
  568. \t\t\t\t\t\t\t\t<div class=\"header-textBlock\">
  569. \t\t\t\t\t\t\t\t\t<div class=\"header-hlGroup\">
  570. \t\t\t\t\t\t\t\t\t\t<h2 class=\"header-hl\">";
  571.         // line 386
  572.         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'386$this->source); })()), "name", [], "any"falsefalsefalse386), "html"nulltrue);
  573.         echo "</h2>
  574. \t\t\t\t\t\t\t\t\t\t<div class=\"header-colorGroup\">
  575. \t\t\t\t\t\t\t\t\t\t\t";
  576.         // line 388
  577.         $context['_parent'] = $context;
  578.         $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.'388$this->source); })()), "Tags", [], "any"falsefalsefalse388));
  579.         foreach ($context['_seq'] as $context["_key"] => $context["Tag"]) {
  580.             // line 389
  581.             echo "\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"header-color is";
  582.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["Tag"], "id", [], "any"falsefalsefalse389), "html"nulltrue);
  583.             echo "\">";
  584.             echo twig_escape_filter($this->env$context["Tag"], "html"nulltrue);
  585.             echo "</span>\t\t\t\t\t\t\t\t\t\t\t\t
  586. \t\t\t\t\t\t\t\t\t\t\t";
  587.         }
  588.         $_parent $context['_parent'];
  589.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['Tag'], $context['_parent'], $context['loop']);
  590.         $context array_intersect_key($context$_parent) + $_parent;
  591.         // line 391
  592.         echo "\t\t\t\t\t\t\t\t\t\t</div>
  593. \t\t\t\t\t\t\t\t\t</div>
  594. \t\t\t\t\t\t\t\t\t";
  595.         // line 395
  596.         echo "\t\t\t\t\t\t\t\t\t";
  597.         if (twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'395$this->source); })()), "hasProductClass", [], "any"falsefalsefalse395)) {
  598.             // line 396
  599.             echo "<div class=\"ec-productRole__priceRegular\">
  600. \t\t\t\t\t\t\t\t\t\t\t";
  601.             // line 397
  602.             if (( !(null === twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'397$this->source); })()), "getPrice01Min", [], "any"falsefalsefalse397)) && (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.'397$this->source); })()), "getPrice01IncTaxMin", [], "any"falsefalsefalse397) == 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.'397$this->source); })()), "getPrice01IncTaxMax", [], "any"falsefalsefalse397)))) {
  603.                 // line 398
  604.                 echo "\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ec-productRole__priceRegularPrice\"><span class=\"price01-default\" style=\"text-decoration:line-through;\">";
  605.                 echo twig_escape_filter($this->envtwig_number_format_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'398$this->source); })()), "getPrice01IncTaxMin", [], "any"falsefalsefalse398)), "html"nulltrue);
  606.                 echo "円</span></span>
  607. \t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ec-productRole__priceRegularTax\" style=\"text-decoration:line-through;\">";
  608.                 // line 399
  609.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html"nulltrue);
  610.                 echo "</span>
  611. \t\t\t\t\t\t\t\t\t\t\t";
  612.             } elseif (( !(null === twig_get_attribute($this->env$this->source,             // line 400
  613. (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'400$this->source); })()), "getPrice01Min", [], "any"falsefalsefalse400)) &&  !(null === twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'400$this->source); })()), "getPrice01Max", [], "any"falsefalsefalse400)))) {
  614.                 // line 401
  615.                 echo "\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ec-productRole__priceRegularPrice\"><span class=\"price01-default\" style=\"text-decoration:line-through;\">";
  616.                 echo twig_escape_filter($this->envtwig_number_format_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'401$this->source); })()), "getPrice01IncTaxMin", [], "any"falsefalsefalse401)), "html"nulltrue);
  617.                 echo "~ ";
  618.                 echo twig_escape_filter($this->envtwig_number_format_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'401$this->source); })()), "getPrice01IncTaxMax", [], "any"falsefalsefalse401)), "html"nulltrue);
  619.                 echo "円</span></span>
  620. \t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ec-productRole__priceRegularTax\" style=\"text-decoration:line-through;\">";
  621.                 // line 402
  622.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html"nulltrue);
  623.                 echo "</span>
  624. \t\t\t\t\t\t\t\t\t\t\t";
  625.             }
  626.             // line 404
  627.             echo "\t\t\t\t\t\t\t\t\t\t</div>
  628. \t\t\t\t\t\t\t\t\t";
  629.         } else {
  630.             // line 406
  631.             echo "\t\t\t\t\t\t\t\t\t\t";
  632.             if ( !(null === twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'406$this->source); })()), "getPrice01Max", [], "any"falsefalsefalse406))) {
  633.                 // line 407
  634.                 echo "\t\t\t\t\t\t\t\t\t\t\t<span class=\"ec-productRole__priceRegularPrice\" style=\"text-decoration:line-through;\">";
  635.                 echo twig_escape_filter($this->envtwig_number_format_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'407$this->source); })()), "getPrice01IncTaxMin", [], "any"falsefalsefalse407)), "html"nulltrue);
  636.                 echo "円</span>
  637. \t\t\t\t\t\t\t\t\t\t\t<span class=\"ec-productRole__priceRegularTax\" style=\"text-decoration:line-through;\">";
  638.                 // line 408
  639.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html"nulltrue);
  640.                 echo "</span>
  641. \t\t\t\t\t\t\t\t\t\t";
  642.             }
  643.             // line 410
  644.             echo "\t\t\t\t\t\t\t\t\t";
  645.         }
  646.         // line 411
  647.         echo "\t\t\t\t\t\t\t\t\t
  648.                                     ";
  649.         // line 413
  650.         echo "                                    <p class=\"header-price\" style=\"margin-top:5px;\">
  651.                                         <em class=\"isPrice\">
  652.                                             ";
  653.         // line 415
  654.         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.'415$this->source); })()), "hasProductClass", [], "any"falsefalsefalse415)) {
  655.             // line 416
  656.             if ((twig_number_format_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'416$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse416)) == twig_number_format_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'416$this->source); })()), "getPrice02IncTaxMax", [], "any"falsefalsefalse416)))) {
  657.                 // line 417
  658.                 echo "                                                    ";
  659.                 echo twig_escape_filter($this->envtwig_number_format_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'417$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse417)), "html"nulltrue);
  660.                 echo "
  661.                                                 ";
  662.             } else {
  663.                 // line 419
  664.                 echo "                                                    ";
  665.                 echo twig_escape_filter($this->envtwig_number_format_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'419$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse419)), "html"nulltrue);
  666.                 echo " ~ ";
  667.                 echo twig_escape_filter($this->envtwig_number_format_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'419$this->source); })()), "getPrice02IncTaxMax", [], "any"falsefalsefalse419)), "html"nulltrue);
  668.                 echo "
  669.                                                 ";
  670.             }
  671.             // line 421
  672.             echo "                                            ";
  673.         } else {
  674.             // line 422
  675.             echo "                                                ";
  676.             echo twig_escape_filter($this->envtwig_number_format_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'422$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse422)), "html"nulltrue);
  677.             echo "
  678.                                             ";
  679.         }
  680.         // line 424
  681.         echo "                                        </em>円<small class=\"isSmall\">税込</small>
  682.                                     </p>
  683. \t\t\t\t\t\t\t\t\t                                    
  684. \t\t\t\t\t\t\t\t\t";
  685.         // line 427
  686.         if ( !(null === twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'427$this->source); })()), "description_detail", [], "any"falsefalsefalse427))) {
  687.             // line 428
  688.             echo "\t\t\t\t\t\t\t\t\t\t<div class=\"header-productsInfo\">
  689. \t\t\t\t\t\t\t\t\t\t\t<h3 class=\"header-productsInfo-hl\">商品情報</h3>
  690. \t\t\t\t\t\t\t\t\t\t\t<div class=\"header-productsInfo-text\">
  691. \t\t\t\t\t\t\t\t\t\t\t\t";
  692.             // line 431
  693.             echo twig_nl2br(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'431$this->source); })()), "description_detail", [], "any"falsefalsefalse431));
  694.             echo "
  695. \t\t\t\t\t\t\t\t\t\t\t</div>
  696. \t\t\t\t\t\t\t\t\t\t</div>
  697. \t\t\t\t\t\t\t\t\t";
  698.         }
  699.         // line 435
  700.         echo "
  701. \t\t\t\t\t\t\t\t\t<div class=\"header-orderContainer\">
  702. \t\t\t\t\t\t\t\t\t\t<form action=\"";
  703.         // line 437
  704.         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.'437$this->source); })()), "id", [], "any"falsefalsefalse437)]), "html"nulltrue);
  705.         echo "\" method=\"post\" id=\"form1\" name=\"form1\">
  706. \t\t\t\t\t\t\t\t\t\t\t";
  707.         // line 438
  708.         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.'438$this->source); })()), "stock_find", [], "any"falsefalsefalse438)) {
  709.             // line 439
  710.             echo "\t\t\t\t\t\t\t\t\t\t\t\t<table class=\"mod-table-form\">
  711. \t\t\t\t\t\t\t\t\t\t\t\t\t<tbody>
  712. \t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  713.             // line 441
  714.             if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id1", [], "any"truetruefalse441)) {
  715.                 // line 442
  716.                 echo "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<tr>
  717. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<th>";
  718.                 // line 443
  719.                 echo twig_escape_filter($this->envtwig_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.'443$this->source); })()), "classcategory_id1", [], "any"falsefalsefalse443), "vars", [], "any"falsefalsefalse443), "label", [], "any"falsefalsefalse443), "html"nulltrue);
  720.                 echo "</th>
  721. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td>
  722. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  723.                 // line 445
  724.                 echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'445$this->source); })()), "classcategory_id1", [], "any"falsefalsefalse445), 'row', ["id" => "classcategory_id1""attr" => ["class" => "mod-form-select"]]);
  725.                 echo "
  726. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  727.                 // line 446
  728.                 echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'446$this->source); })()), "classcategory_id1", [], "any"falsefalsefalse446), 'errors', ["id" => "classcategory_id1""attr" => ["class" => "mod-form-select"]]);
  729.                 echo "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  730. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</td>
  731. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</tr>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  732. \t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  733.             }
  734.             // line 450
  735.             echo "\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  736.             echo twig_include($this->env$context"Product/option.twig", array(), truetrue);
  737.             echo "
  738. \t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  739.             // line 457
  740.             echo "\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  741.             if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id2", [], "any"truetruefalse457)) {
  742.                 // line 458
  743.                 echo "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<tr>
  744. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<th>";
  745.                 // line 459
  746.                 echo twig_escape_filter($this->envtwig_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.'459$this->source); })()), "classcategory_id2", [], "any"falsefalsefalse459), "vars", [], "any"falsefalsefalse459), "label", [], "any"falsefalsefalse459), "html"nulltrue);
  747.                 echo "</th>
  748. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td>
  749. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  750.                 // line 461
  751.                 echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'461$this->source); })()), "classcategory_id2", [], "any"falsefalsefalse461), 'row', ["id" => "classcategory_id2""attr" => ["class" => "mod-form-select"]]);
  752.                 echo "
  753. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  754.                 // line 462
  755.                 echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'462$this->source); })()), "classcategory_id2", [], "any"falsefalsefalse462), 'errors', ["id" => "classcategory_id2""attr" => ["class" => "mod-form-select"]]);
  756.                 echo "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  757. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</td>
  758. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</tr>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  759. \t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  760.             }
  761.             // line 465
  762.             echo "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  763. \t\t\t\t\t\t\t\t\t\t\t\t\t\t<tr>
  764. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<th>注文数</th>
  765. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td>
  766. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  767.             // line 469
  768.             echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'469$this->source); })()), "quantity", [], "any"falsefalsefalse469), 'widget', ["id" => "quantity""attr" => ["class" => "mod-form-input-text"]]);
  769.             echo "
  770. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  771.             // line 470
  772.             echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'470$this->source); })()), "quantity", [], "any"falsefalsefalse470), 'errors', ["id" => "quantity""attr" => ["class" => "mod-form-input-text"]]);
  773.             echo "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  774. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</td>
  775. \t\t\t\t\t\t\t\t\t\t\t\t\t\t</tr>
  776. \t\t\t\t\t\t\t\t\t\t\t\t\t</tbody>
  777. \t\t\t\t\t\t\t\t\t\t\t\t</table>
  778. \t\t\t\t\t\t\t\t\t\t\t\t";
  779.             // line 477
  780.             echo "\t\t\t\t\t\t\t\t\t\t\t\t";
  781.             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.'477$this->source); })()), "hasProductClass", [], "any"falsefalsefalse477)) {
  782.                 // line 478
  783.                 echo "<div class=\"ec-productRole__priceRegular\" style=\"text-align:left;\">
  784. \t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  785.                 // line 479
  786.                 if (( !(null === twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'479$this->source); })()), "getPrice01Min", [], "any"falsefalsefalse479)) && (twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'479$this->source); })()), "getPrice01IncTaxMin", [], "any"falsefalsefalse479) == twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'479$this->source); })()), "getPrice01IncTaxMax", [], "any"falsefalsefalse479)))) {
  787.                     // line 480
  788.                     echo "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ec-productRole__priceRegularPrice\"><span class=\"price01-default\" style=\"text-decoration:line-through;\">";
  789.                     echo twig_escape_filter($this->envtwig_number_format_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'480$this->source); })()), "getPrice01IncTaxMin", [], "any"falsefalsefalse480)), "html"nulltrue);
  790.                     echo "円</span></span>
  791. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ec-productRole__priceRegularTax\" style=\"text-decoration:line-through;\">";
  792.                     // line 481
  793.                     echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html"nulltrue);
  794.                     echo "</span>
  795. \t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  796.                 } elseif (( !(null === twig_get_attribute($this->env$this->source,                 // line 482
  797. (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'482$this->source); })()), "getPrice01Min", [], "any"falsefalsefalse482)) &&  !(null === twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'482$this->source); })()), "getPrice01Max", [], "any"falsefalsefalse482)))) {
  798.                     // line 483
  799.                     echo "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ec-productRole__priceRegularPrice\"><span class=\"price01-default\" style=\"text-decoration:line-through;\">";
  800.                     echo twig_escape_filter($this->envtwig_number_format_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'483$this->source); })()), "getPrice01IncTaxMin", [], "any"falsefalsefalse483)), "html"nulltrue);
  801.                     echo "~ ";
  802.                     echo twig_escape_filter($this->envtwig_number_format_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'483$this->source); })()), "getPrice01IncTaxMax", [], "any"falsefalsefalse483)), "html"nulltrue);
  803.                     echo "円</span></span>
  804. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ec-productRole__priceRegularTax\" style=\"text-decoration:line-through;\">";
  805.                     // line 484
  806.                     echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html"nulltrue);
  807.                     echo "</span>
  808. \t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  809.                 }
  810.                 // line 486
  811.                 echo "\t\t\t\t\t\t\t\t\t\t\t\t\t</div>
  812. \t\t\t\t\t\t\t\t\t\t\t\t";
  813.             } else {
  814.                 // line 488
  815.                 echo "\t\t\t\t\t\t\t\t\t\t\t\t\t";
  816.                 if ( !(null === twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'488$this->source); })()), "getPrice01Max", [], "any"falsefalsefalse488))) {
  817.                     // line 489
  818.                     echo "\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ec-productRole__priceRegularPrice\" style=\"text-decoration:line-through;\">";
  819.                     echo twig_escape_filter($this->envtwig_number_format_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'489$this->source); })()), "getPrice01IncTaxMin", [], "any"falsefalsefalse489)), "html"nulltrue);
  820.                     echo "円</span>
  821. \t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ec-productRole__priceRegularTax\" style=\"text-decoration:line-through;\">";
  822.                     // line 490
  823.                     echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html"nulltrue);
  824.                     echo "</span>
  825. \t\t\t\t\t\t\t\t\t\t\t\t\t";
  826.                 }
  827.                 // line 492
  828.                 echo "\t\t\t\t\t\t\t\t\t\t\t\t";
  829.             }
  830.             // line 493
  831.             echo "\t\t\t\t\t\t\t\t\t\t\t\t
  832. \t\t\t\t\t\t\t\t\t\t\t\t";
  833.             // line 495
  834.             echo "\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"header-price\" style=\"margin-top:5px; text-align:left;\">
  835. \t\t\t\t\t\t\t\t\t\t\t\t\t<em class=\"isPrice\">
  836. \t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  837.             // line 497
  838.             if (twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'497$this->source); })()), "hasProductClass", [], "any"falsefalsefalse497)) {
  839.                 // line 498
  840.                 if ((twig_number_format_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'498$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse498)) == twig_number_format_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'498$this->source); })()), "getPrice02IncTaxMax", [], "any"falsefalsefalse498)))) {
  841.                     // line 499
  842.                     echo "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  843.                     echo twig_escape_filter($this->envtwig_number_format_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'499$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse499)), "html"nulltrue);
  844.                     echo "
  845. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  846.                 } else {
  847.                     // line 501
  848.                     echo "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  849.                     echo twig_escape_filter($this->envtwig_number_format_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'501$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse501)), "html"nulltrue);
  850.                     echo " ~ ";
  851.                     echo twig_escape_filter($this->envtwig_number_format_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'501$this->source); })()), "getPrice02IncTaxMax", [], "any"falsefalsefalse501)), "html"nulltrue);
  852.                     echo "
  853. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  854.                 }
  855.                 // line 503
  856.                 echo "\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  857.             } else {
  858.                 // line 504
  859.                 echo "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  860.                 echo twig_escape_filter($this->envtwig_number_format_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'504$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse504)), "html"nulltrue);
  861.                 echo "
  862. \t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  863.             }
  864.             // line 506
  865.             echo "\t\t\t\t\t\t\t\t\t\t\t\t\t</em>円<small class=\"isSmall\">税込</small>
  866. \t\t\t\t\t\t\t\t\t\t\t\t</p>
  867. \t\t\t\t\t\t\t\t\t\t\t\t
  868. \t\t\t\t\t\t\t\t\t\t\t\t<div class=\"mod-shopping-btn isCart\">
  869. \t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"btnInner\">カートに入れる</span>
  870. \t\t\t\t\t\t\t\t\t\t\t\t\t<button type=\"submit\" class=\"ec-blockBtn--action add-cart\" id=\"ConfirmSubmit\">
  871. \t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  872.             // line 512
  873.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートに入れる"), "html"nulltrue);
  874.             echo "
  875. \t\t\t\t\t\t\t\t\t\t\t\t\t</button>
  876. \t\t\t\t\t\t\t\t\t\t\t\t</div>
  877. \t\t\t\t\t\t\t\t\t\t\t\t
  878. \t\t\t\t\t\t\t\t\t\t\t\t";
  879.             // line 516
  880.             echo twig_include($this->env$context"Product/option_description.twig");
  881.             echo "<div class=\"ec-modal\">
  882. \t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"ec-modal-overlay\">
  883. \t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"ec-modal-wrap\">
  884. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ec-modal-close\"><span class=\"ec-icon\"><img src=\"";
  885.             // line 519
  886.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/icon/cross-dark.svg"), "html"nulltrue);
  887.             echo "\" alt=\"\"/></span></span>
  888. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div id=\"ec-modal-header\" class=\"text-center\">";
  889.             // line 520
  890.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートに追加しました。"), "html"nulltrue);
  891.             echo "</div>
  892. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"ec-modal-box\">
  893. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"ec-role\">
  894. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ec-inlineBtn--cancel\">";
  895.             // line 523
  896.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お買い物を続ける"), "html"nulltrue);
  897.             echo "</span>
  898. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"";
  899.             // line 524
  900.             echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("cart");
  901.             echo "\" class=\"ec-inlineBtn--action\">";
  902.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートへ進む"), "html"nulltrue);
  903.             echo "</a>
  904. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>
  905. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>
  906. \t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>
  907. \t\t\t\t\t\t\t\t\t\t\t\t\t</div>
  908. \t\t\t\t\t\t\t\t\t\t\t\t</div>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  909. \t\t\t\t\t\t\t\t\t\t\t";
  910.         } else {
  911.             // line 531
  912.             echo "\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"mod-shopping-btn isCart notHover\">
  913. \t\t\t\t\t\t\t\t\t\t\t\t<span class=\"btnInner\">ただいま品切れ中です。</span>
  914. \t\t\t\t\t\t\t\t\t\t\t\t\t<button type=\"button\" class=\"ec-blockBtn--action\" disabled=\"disabled\">
  915. \t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  916.             // line 534
  917.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("ただいま品切れ中です。"), "html"nulltrue);
  918.             echo "
  919. \t\t\t\t\t\t\t\t\t\t\t\t\t</button>
  920. \t\t\t\t\t\t\t\t\t\t\t\t</div>
  921. \t\t\t\t\t\t\t\t\t\t\t\t<span class=\"is-soldout-detail\">申し訳ございませんが、この商品は現在在庫切れです。</span>
  922. \t\t\t\t\t\t\t\t\t\t\t\t<style>
  923. \t\t\t\t\t\t\t\t\t\t\t\t\t.is-soldout-detail{
  924. \t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: inline-block;
  925. \t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: #f00;
  926. \t\t\t\t\t\t\t\t\t\t\t\t\t\tmargin: 15px;
  927. \t\t\t\t\t\t\t\t\t\t\t\t\t}
  928. \t\t\t\t\t\t\t\t\t\t\t\t</style>
  929. \t\t\t\t\t\t\t\t\t\t\t";
  930.         }
  931.         // line 546
  932.         echo "\t\t\t\t\t\t\t\t\t\t\t";
  933.         echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock((isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'546$this->source); })()), 'rest');
  934.         echo "
  935. \t\t\t\t\t\t\t\t\t\t</form>\t\t\t\t\t\t\t\t\t\t
  936. \t\t\t\t\t\t\t\t\t\t\t<div class=\"header-order-btnContainer\">
  937. \t\t\t\t\t\t\t\t\t\t\t\t";
  938.         // line 550
  939.         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.'550$this->source); })()), "option_favorite_product", [], "any"falsefalsefalse550)) {
  940.             // line 551
  941.             echo "\t\t\t\t\t\t\t\t\t\t\t\t\t<form action=\"";
  942.             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.'551$this->source); })()), "id", [], "any"falsefalsefalse551)]), "html"nulltrue);
  943.             echo "\" method=\"post\">
  944. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  945.             // line 552
  946.             if (((isset($context["is_favorite"]) || array_key_exists("is_favorite"$context) ? $context["is_favorite"] : (function () { throw new RuntimeError('Variable "is_favorite" does not exist.'552$this->source); })()) == false)) {
  947.                 // line 553
  948.                 echo "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"mod-shopping-btn isFavorite\">
  949. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"btnInner\">お気に入りに追加</span>
  950. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--cancel\">
  951. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  952.                 // line 556
  953.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お気に入りに追加"), "html"nulltrue);
  954.                 echo "
  955. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</button>
  956. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>
  957. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  958.             } else {
  959.                 // line 560
  960.                 echo "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"mod-shopping-btn isFavorite notHover\">
  961. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"btnInner\">お気に入りに追加済です。</span>
  962. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--cancel\"
  963. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled=\"disabled\">";
  964.                 // line 563
  965.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お気に入りに追加済です。"), "html"nulltrue);
  966.                 echo "
  967. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</button>
  968. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>
  969. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  970.             }
  971.             // line 567
  972.             echo "\t\t\t\t\t\t\t\t\t\t\t\t\t</form>
  973. \t\t\t\t\t\t\t\t\t\t\t\t";
  974.         }
  975.         // line 568
  976.         echo "\t\t\t\t\t\t\t\t\t\t
  977. \t\t\t\t\t\t\t\t\t\t\t</div>\t\t\t\t\t\t\t\t\t\t\t
  978. \t\t\t\t\t\t\t\t\t\t<a href=\"#productsSingle-guideline\" class=\"header-order-guideline\">出荷の目安を確認する</a>
  979. \t\t\t\t\t\t\t\t\t</div>
  980. \t\t\t\t\t\t\t\t</div>
  981. \t\t\t\t\t\t\t\t<!-- /文字部分 -->
  982. \t\t\t\t\t\t\t</div>
  983. \t\t\t\t\t\t\t<!-- /上部分(商品名、カートボタン など) -->
  984. \t\t\t\t\t\t\t<!-- 詳しい説明 -->
  985. \t\t\t\t\t\t\t<div class=\"productsSingle-explanation\">
  986. \t\t\t\t\t\t\t\t";
  987.         // line 581
  988.         $context['_parent'] = $context;
  989.         $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.'581$this->source); })()), "ViewData", [=> 1], "method"falsefalsefalse581));
  990.         foreach ($context['_seq'] as $context["_key"] => $context["filename"]) {
  991.             // line 582
  992.             echo "\t\t\t\t\t\t\t\t\t<div class=\"img\">
  993. \t\t\t\t\t\t\t\t\t\t<img src=\"";
  994.             // line 583
  995.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($context["filename"], "save_image"), "html"nulltrue);
  996.             echo "\" width=\"1320\" height=\"338\" alt=\"\" class=\"imgFit\" loading=\"lazy\">
  997. \t\t\t\t\t\t\t\t\t</div>
  998. \t\t\t\t\t\t\t\t";
  999.         }
  1000.         $_parent $context['_parent'];
  1001.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['filename'], $context['_parent'], $context['loop']);
  1002.         $context array_intersect_key($context$_parent) + $_parent;
  1003.         // line 586
  1004.         echo "\t\t\t\t\t\t\t\t";
  1005.         if ( !(null === twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'586$this->source); })()), "freearea", [], "any"falsefalsefalse586))) {
  1006.             // line 587
  1007.             echo "\t\t\t\t\t\t\t\t\t<p>";
  1008.             echo twig_include($this->env$contexttwig_template_from_string($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'587$this->source); })()), "freearea", [], "any"falsefalsefalse587)));
  1009.             echo "</p>
  1010. \t\t\t\t\t\t\t\t";
  1011.         }
  1012.         // line 588
  1013.         echo "\t
  1014. \t\t\t\t\t\t\t</div>\t\t\t\t\t
  1015. \t\t\t\t\t\t\t<!-- /詳しい説明 -->
  1016. \t\t\t\t\t\t\t<!-- 出荷の目安 -->
  1017. \t\t\t\t\t\t\t<section class=\"productsSingle-guideline\" id=\"productsSingle-guideline\">
  1018. \t\t\t\t\t\t\t\t<h3 class=\"mod-hl-02 productsSingle-guideline-hl\">
  1019. \t\t\t\t\t\t\t\t\t<span class=\"isJp\">出荷の目安</span>
  1020. \t\t\t\t\t\t\t\t</h3>
  1021. \t\t\t\t\t\t\t\t<p class=\"productsSingle-guideline-schedule\">
  1022. \t\t\t\t\t\t\t\t\t<span class=\"schedule-up\">
  1023. \t\t\t\t\t\t\t\t\t\t<em class=\"schedule-up-em\">
  1024. \t\t\t\t\t\t\t\t\t\t\t<time class=\"schedule-up-time\" datetime=\"\"></time> 16:00
  1025. \t\t\t\t\t\t\t\t\t\t</em><br>
  1026. \t\t\t\t\t\t\t\t\t\t迄のご注文は
  1027. \t\t\t\t\t\t\t\t\t</span>
  1028. \t\t\t\t\t\t\t\t\t<span class=\"schedule-under\">
  1029. \t\t\t\t\t\t\t\t\t\t<em class=\"schedule-under-em\">
  1030. \t\t\t\t\t\t\t\t\t\t\t<time class=\"schedule-under-time\" datetime=\"\"></time>
  1031. \t\t\t\t\t\t\t\t\t\t</em><br>
  1032. \t\t\t\t\t\t\t\t\t\t出荷予定
  1033. \t\t\t\t\t\t\t\t\t</span>
  1034. \t\t\t\t\t\t\t\t</p>\t\t\t\t\t\t\t
  1035. \t\t\t\t\t\t\t\t<small class=\"defaultTxt productsSingle-guideline-text\">※あくまでも目安です。商品やご注文内容・ご注文時期によって更に日数がかかる場合があります。<br>運送会社の配送状況により延着の場合がございます。ご了承ください。</small>
  1036. \t\t\t\t\t\t\t</section>
  1037. \t\t\t\t\t\t\t<!-- /出荷の目安 -->
  1038. \t\t\t\t\t\t\t<!-- お客様の声 -->
  1039. \t\t\t\t\t\t\t<section class=\"productsSingle-voice\">
  1040. \t\t\t\t\t\t\t\t<h3 class=\"mod-hl-02 productsSingle-voice-hl\">
  1041. \t\t\t\t\t\t\t\t\t<span class=\"isJp\">お客様の声</span>
  1042. \t\t\t\t\t\t\t\t</h3>
  1043. \t\t\t\t\t\t\t\t";
  1044.         // line 623
  1045.         $macros["stars"] = $this;
  1046.         // line 624
  1047.         echo "\t\t\t\t\t\t\t\t";
  1048.         // line 625
  1049.         echo "\t\t\t\t\t\t\t\t";
  1050.         // line 630
  1051.         echo "\t\t\t\t\t\t\t\t
  1052. \t\t\t\t\t\t\t\t<div id=\"product_review_area\">
  1053. \t\t\t\t\t\t\t\t\t<div class=\"ec-role\">
  1054. \t\t\t\t\t\t\t\t\t\t";
  1055.         // line 633
  1056.         $context["positive_avg_star"] = (isset($context["ProductReviewAvg"]) || array_key_exists("ProductReviewAvg"$context) ? $context["ProductReviewAvg"] : (function () { throw new RuntimeError('Variable "ProductReviewAvg" does not exist.'633$this->source); })());
  1057.         // line 634
  1058.         echo "\t\t\t\t\t\t\t\t\t\t";
  1059.         $context["negative_avg_star"] = (- (isset($context["positive_avg_star"]) || array_key_exists("positive_avg_star"$context) ? $context["positive_avg_star"] : (function () { throw new RuntimeError('Variable "positive_avg_star" does not exist.'634$this->source); })()));
  1060.         // line 635
  1061.         echo "
  1062. \t\t\t\t\t\t\t\t\t\t<div id=\"reviewContent\">
  1063. \t\t\t\t\t\t\t\t\t\t\t";
  1064.         // line 637
  1065.         if ((isset($context["ProductReviews"]) || array_key_exists("ProductReviews"$context) ? $context["ProductReviews"] : (function () { throw new RuntimeError('Variable "ProductReviews" does not exist.'637$this->source); })())) {
  1066.             // line 638
  1067.             echo "\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"productsSingle-voiceContainer\">
  1068. \t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"mod-voiceInner\">
  1069. \t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  1070.             // line 641
  1071.             $context['_parent'] = $context;
  1072.             $context['_seq'] = twig_ensure_traversable((isset($context["ProductReviews"]) || array_key_exists("ProductReviews"$context) ? $context["ProductReviews"] : (function () { throw new RuntimeError('Variable "ProductReviews" does not exist.'641$this->source); })()));
  1073.             foreach ($context['_seq'] as $context["_key"] => $context["ProductReview"]) {
  1074.                 // line 642
  1075.                 echo "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"voiceBox\">
  1076. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"voiceBoxInner\">
  1077. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"voiceBox-textBlock\">
  1078. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<h4 class=\"voiceBox-productsName\">";
  1079.                 // line 645
  1080.                 echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["ProductReview"], "Product", [], "any"falsefalsefalse645), "name", [], "any"falsefalsefalse645), "html"nulltrue);
  1081.                 echo "<br>";
  1082.                 echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["ProductReview"], "title", [], "any"falsefalsefalse645), "html"nulltrue);
  1083.                 echo "</h4>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  1084. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"voiceBox-nameBlock marginTop10\">
  1085. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"voiceBox-name\">
  1086. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  1087.                 // line 648
  1088.                 if (twig_get_attribute($this->env$this->source$context["ProductReview"], "reviewer_url", [], "any"falsefalsefalse648)) {
  1089.                     // line 649
  1090.                     echo "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"";
  1091.                     echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["ProductReview"], "reviewer_url", [], "any"falsefalsefalse649), "html"nulltrue);
  1092.                     echo "\" rel=\"ugc nofollow\"
  1093. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttarget=\"_blank\">";
  1094.                     // line 650
  1095.                     echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("product_review.front.product_detail.name", ["%name%" => twig_get_attribute($this->env$this->source$context["ProductReview"], "reviewer_name", [], "any"falsefalsefalse650)]), "html"nulltrue);
  1096.                     echo "</a>
  1097. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  1098.                 } else {
  1099.                     // line 652
  1100.                     echo "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  1101.                     echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("product_review.front.product_detail.name", ["%name%" => twig_get_attribute($this->env$this->source$context["ProductReview"], "reviewer_name", [], "any"falsefalsefalse652)]), "html"nulltrue);
  1102.                     echo "
  1103. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  1104.                 }
  1105.                 // line 653
  1106.                 echo "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  1107. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</p>
  1108. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p>
  1109. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  1110.                 // line 657
  1111.                 $context["positive_star"] = twig_get_attribute($this->env$this->source$context["ProductReview"], "recommend_level", [], "any"falsefalsefalse657);
  1112.                 // line 658
  1113.                 echo "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  1114.                 $context["negative_star"] = (- (isset($context["positive_star"]) || array_key_exists("positive_star"$context) ? $context["positive_star"] : (function () { throw new RuntimeError('Variable "positive_star" does not exist.'658$this->source); })()));
  1115.                 // line 659
  1116.                 echo "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"recommend_level\">
  1117. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  1118.                 // line 660
  1119.                 echo twig_call_macro($macros["stars"], "macro_stars", [(isset($context["positive_star"]) || array_key_exists("positive_star"$context) ? $context["positive_star"] : (function () { throw new RuntimeError('Variable "positive_star" does not exist.'660$this->source); })()), (isset($context["negative_star"]) || array_key_exists("negative_star"$context) ? $context["negative_star"] : (function () { throw new RuntimeError('Variable "negative_star" does not exist.'660$this->source); })())], 660$context$this->getSourceContext());
  1120.                 echo "
  1121. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  1122. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</p>
  1123. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>
  1124. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"voiceBox-text\">";
  1125.                 // line 664
  1126.                 echo twig_nl2br(twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["ProductReview"], "comment", [], "any"falsefalsefalse664), "html"nulltrue));
  1127.                 echo "</p>
  1128. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>
  1129. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>
  1130. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>
  1131. \t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  1132.             }
  1133.             $_parent $context['_parent'];
  1134.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductReview'], $context['_parent'], $context['loop']);
  1135.             $context array_intersect_key($context$_parent) + $_parent;
  1136.             // line 669
  1137.             echo "\t\t\t\t\t\t\t\t\t\t\t\t\t</div>
  1138. \t\t\t\t\t\t\t\t\t\t\t\t</div>\t\t\t\t\t\t\t\t\t\t
  1139. \t\t\t\t\t\t\t\t\t\t\t";
  1140.         } else {
  1141.             // line 672
  1142.             echo "\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"textCenter marginTop30\">";
  1143.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("product_review.front.product_detail.no_review"), "html"nulltrue);
  1144.             echo "</p>
  1145. \t\t\t\t\t\t\t\t\t\t\t";
  1146.         }
  1147.         // line 674
  1148.         echo "\t\t\t\t\t\t\t\t\t\t</div>
  1149. \t\t\t\t\t\t\t\t\t\t<div>
  1150. \t\t\t\t\t\t\t\t\t\t\t<a href=\"";
  1151.         // line 676
  1152.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_review_index", ["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.'676$this->source); })()), "id", [], "any"falsefalsefalse676)]), "html"nulltrue);
  1153.         echo "\"
  1154. \t\t\t\t\t\t\t\t\t\t\tclass=\"mod-shopping-btn isReview\">
  1155. \t\t\t\t\t\t\t\t\t\t\t\t<span class=\"btnInner\">";
  1156.         // line 678
  1157.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("product_review.front.product_detail.post_review"), "html"nulltrue);
  1158.         echo "</span>
  1159. \t\t\t\t\t\t\t\t\t\t\t</a>
  1160. \t\t\t\t\t\t\t\t\t\t</div>
  1161. \t\t\t\t\t\t\t\t\t</div>
  1162. \t\t\t\t\t\t\t\t</div>\t\t\t\t\t\t\t\t
  1163. \t\t\t\t\t\t\t</section>
  1164. \t\t\t\t\t\t\t<!-- /お客様の声 -->
  1165. \t\t\t\t\t\t\t<!-- 関連商品 -->
  1166. \t\t\t\t\t\t\t";
  1167.         // line 688
  1168.         if ( !twig_test_empty(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'688$this->source); })()), "RelatedProducts", [], "any"falsefalsefalse688))) {
  1169.             // line 689
  1170.             echo "\t\t\t\t\t\t\t<section class=\"products-subSection\">
  1171. \t\t\t\t\t\t\t\t<h3 class=\"mod-hl-02\">
  1172. \t\t\t\t\t\t\t\t\t<span class=\"isJp\">関連商品</span>
  1173. \t\t\t\t\t\t\t\t</h3>
  1174. \t\t\t\t\t\t\t\t<div class=\"mod-products-list\">
  1175. \t\t\t\t\t\t\t\t\t";
  1176.             // line 694
  1177.             $context['_parent'] = $context;
  1178.             $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.'694$this->source); })()), "RelatedProducts", [], "any"falsefalsefalse694));
  1179.             $context['loop'] = [
  1180.               'parent' => $context['_parent'],
  1181.               'index0' => 0,
  1182.               'index'  => 1,
  1183.               'first'  => true,
  1184.             ];
  1185.             if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  1186.                 $length count($context['_seq']);
  1187.                 $context['loop']['revindex0'] = $length 1;
  1188.                 $context['loop']['revindex'] = $length;
  1189.                 $context['loop']['length'] = $length;
  1190.                 $context['loop']['last'] = === $length;
  1191.             }
  1192.             foreach ($context['_seq'] as $context["_key"] => $context["RelatedProduct"]) {
  1193.                 // line 695
  1194.                 echo "\t\t\t\t\t\t\t\t\t\t";
  1195.                 $context["ChildProduct"] = twig_get_attribute($this->env$this->source$context["RelatedProduct"], "ChildProduct", [], "any"falsefalsefalse695);
  1196.                 // line 696
  1197.                 echo "\t\t\t\t\t\t\t\t\t\t";
  1198.                 if ((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["ChildProduct"]) || array_key_exists("ChildProduct"$context) ? $context["ChildProduct"] : (function () { throw new RuntimeError('Variable "ChildProduct" does not exist.'696$this->source); })()), "Status", [], "any"falsefalsefalse696), "id", [], "any"falsefalsefalse696) == twig_constant("Eccube\\Entity\\Master\\ProductStatus::DISPLAY_SHOW"))) {
  1199.                     // line 697
  1200.                     echo "\t\t\t\t\t\t\t\t\t\t\t<article class=\"productsBox\">
  1201. \t\t\t\t\t\t\t\t\t\t\t\t<a href=\"";
  1202.                     // line 698
  1203.                     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["ChildProduct"]) || array_key_exists("ChildProduct"$context) ? $context["ChildProduct"] : (function () { throw new RuntimeError('Variable "ChildProduct" does not exist.'698$this->source); })()), "id", [], "any"falsefalsefalse698)]), "html"nulltrue);
  1204.                     echo "\" class=\"productsBoxInner\">
  1205. \t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"productsBox-img\">
  1206. \t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"imgInner\">
  1207. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img src=\"";
  1208.                     // line 701
  1209.                     echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($this->extensions['Eccube\Twig\Extension\EccubeExtension']->getNoImageProduct(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["RelatedProduct"], "ChildProduct", [], "any"falsefalsefalse701), "main_list_image", [], "any"falsefalsefalse701)), "save_image"), "html"nulltrue);
  1210.                     echo "\" alt=\"\" ";
  1211.                     if ((twig_get_attribute($this->env$this->source$context["loop"], "index", [], "any"falsefalsefalse701) > 5)) {
  1212.                         echo " loading=\"lazy\" ";
  1213.                     }
  1214.                     echo " class=\"imgObjectFitCover\">
  1215. \t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>
  1216. \t\t\t\t\t\t\t\t\t\t\t\t\t</span>
  1217. \t\t\t\t\t\t\t\t\t\t\t\t\t<h3 class=\"productsBox-hl\">";
  1218.                     // line 704
  1219.                     echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["RelatedProduct"], "ChildProduct", [], "any"falsefalsefalse704), "name", [], "any"falsefalsefalse704), "html"nulltrue);
  1220.                     echo "</h3>
  1221. \t\t\t\t\t\t\t\t\t\t\t\t\t";
  1222.                     // line 705
  1223.                     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.'705$this->source); })()), "description_list", [], "any"falsefalsefalse705)) {
  1224.                         // line 706
  1225.                         echo "\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p>";
  1226.                         echo twig_nl2br(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'706$this->source); })()), "description_list", [], "any"falsefalsefalse706));
  1227.                         echo "</p>
  1228. \t\t\t\t\t\t\t\t\t\t\t\t\t";
  1229.                     }
  1230.                     // line 708
  1231.                     echo "\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"productsBox-text\">
  1232. \t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  1233.                     // line 709
  1234.                     if (twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["RelatedProduct"], "ChildProduct", [], "any"falsefalsefalse709), "hasProductClass", [], "any"falsefalsefalse709)) {
  1235.                         // line 710
  1236.                         echo "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  1237.                         if ((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["RelatedProduct"], "ChildProduct", [], "any"falsefalsefalse710), "getPrice02Min", [], "any"falsefalsefalse710) == twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["RelatedProduct"], "ChildProduct", [], "any"falsefalsefalse710), "getPrice02Max", [], "any"falsefalsefalse710))) {
  1238.                             // line 711
  1239.                             echo "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  1240.                             echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["RelatedProduct"], "ChildProduct", [], "any"falsefalsefalse711), "getPrice02IncTaxMin", [], "any"falsefalsefalse711)), "html"nulltrue);
  1241.                             echo "
  1242. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  1243.                         } else {
  1244.                             // line 713
  1245.                             echo "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  1246.                             echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["RelatedProduct"], "ChildProduct", [], "any"falsefalsefalse713), "getPrice02IncTaxMin", [], "any"falsefalsefalse713)), "html"nulltrue);
  1247.                             echo " ~ ";
  1248.                             echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["RelatedProduct"], "ChildProduct", [], "any"falsefalsefalse713), "getPrice02IncTaxMax", [], "any"falsefalsefalse713)), "html"nulltrue);
  1249.                             echo "
  1250. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  1251.                         }
  1252.                         // line 715
  1253.                         echo "\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  1254.                     } else {
  1255.                         // line 716
  1256.                         echo "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  1257.                         echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["RelatedProduct"], "ChildProduct", [], "any"falsefalsefalse716), "getPrice02IncTaxMin", [], "any"falsefalsefalse716)), "html"nulltrue);
  1258.                         echo "
  1259. \t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  1260.                     }
  1261.                     // line 717
  1262.                     echo "\t\t\t\t\t\t\t\t\t\t\t
  1263. \t\t\t\t\t\t\t\t\t\t\t\t\t\t円<small class=\"isSmall\">税込</small>
  1264. \t\t\t\t\t\t\t\t\t\t\t\t\t</p>\t\t\t\t\t\t\t\t\t\t\t\t\t
  1265. \t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"productsBox-text\">";
  1266.                     // line 720
  1267.                     echo twig_get_attribute($this->env$this->source$context["RelatedProduct"], "content", [], "any"falsefalsefalse720);
  1268.                     echo "</p>
  1269. \t\t\t\t\t\t\t\t\t\t\t\t</a>
  1270. \t\t\t\t\t\t\t\t\t\t\t</article>\t\t\t\t\t\t\t\t\t\t
  1271. \t\t\t\t\t\t\t\t\t\t";
  1272.                 }
  1273.                 // line 724
  1274.                 echo "\t\t\t\t\t\t\t\t\t";
  1275.                 ++$context['loop']['index0'];
  1276.                 ++$context['loop']['index'];
  1277.                 $context['loop']['first'] = false;
  1278.                 if (isset($context['loop']['length'])) {
  1279.                     --$context['loop']['revindex0'];
  1280.                     --$context['loop']['revindex'];
  1281.                     $context['loop']['last'] = === $context['loop']['revindex0'];
  1282.                 }
  1283.             }
  1284.             $_parent $context['_parent'];
  1285.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['RelatedProduct'], $context['_parent'], $context['loop']);
  1286.             $context array_intersect_key($context$_parent) + $_parent;
  1287.             // line 725
  1288.             echo "\t\t\t\t\t\t\t\t</div>
  1289. \t\t\t\t\t\t\t</section>
  1290. \t\t\t\t\t\t\t";
  1291.         }
  1292.         // line 727
  1293.         echo "\t\t\t\t\t\t\t
  1294. \t\t\t\t\t\t\t<!-- /関連商品 -->
  1295. \t\t\t\t\t\t\t<!-- 最近チェックした商品 -->
  1296. \t\t\t\t\t\t\t";
  1297.         // line 732
  1298.         echo twig_include($this->env$context"Block/items_checked.twig", array(), truetrue);
  1299.         echo "
  1300. \t\t\t\t\t\t\t<!-- /最近チェックした商品 -->\t\t
  1301. \t\t\t\t\t\t</section>
  1302. \t\t\t\t\t</div>
  1303. \t\t\t\t\t<!-- /PAGE CONTENTS -->
  1304. \t\t\t\t</div>
  1305. \t\t\t\t<!-- /メインコンテンツ -->
  1306. \t\t\t\t<!-- サイドメニュー -->
  1307. \t\t\t\t";
  1308.         // line 743
  1309.         echo twig_include($this->env$context"Block/l_sub.twig", array(), truetrue);
  1310.         echo "
  1311. \t\t\t\t<!-- /サイドメニュー -->
  1312. \t\t\t</div>
  1313. \t\t</div>
  1314. \t</div>
  1315. ";
  1316.         
  1317.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  1318.         
  1319.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  1320.     }
  1321.     // line 625
  1322.     public function macro_stars($__positive__ null$__negative__ null, ...$__varargs__)
  1323.     {
  1324.         $macros $this->macros;
  1325.         $context $this->env->mergeGlobals([
  1326.             "positive" => $__positive__,
  1327.             "negative" => $__negative__,
  1328.             "varargs" => $__varargs__,
  1329.         ]);
  1330.         $blocks = [];
  1331.         ob_start();
  1332.         try {
  1333.             $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  1334.             $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "macro""stars"));
  1335.             $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  1336.             $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "macro""stars"));
  1337.             // line 626
  1338.             echo "\t\t\t\t\t\t\t\t\t";
  1339.             $context["positive_stars"] = [=> ""=> "★"=> "★★"=> "★★★"=> "★★★★"=> "★★★★★"];
  1340.             // line 627
  1341.             echo "\t\t\t\t\t\t\t\t\t";
  1342.             $context["negative_stars"] = [=> ""=> "☆"=> "☆☆"=> "☆☆☆"=> "☆☆☆☆"=> "☆☆☆☆☆"];
  1343.             // line 628
  1344.             echo "\t\t\t\t\t\t\t\t\t";
  1345.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["positive_stars"]) || array_key_exists("positive_stars"$context) ? $context["positive_stars"] : (function () { throw new RuntimeError('Variable "positive_stars" does not exist.'628$this->source); })()), (isset($context["positive"]) || array_key_exists("positive"$context) ? $context["positive"] : (function () { throw new RuntimeError('Variable "positive" does not exist.'628$this->source); })()), [], "array"falsefalsefalse628), "html"nulltrue);
  1346.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["negative_stars"]) || array_key_exists("negative_stars"$context) ? $context["negative_stars"] : (function () { throw new RuntimeError('Variable "negative_stars" does not exist.'628$this->source); })()), (isset($context["negative"]) || array_key_exists("negative"$context) ? $context["negative"] : (function () { throw new RuntimeError('Variable "negative" does not exist.'628$this->source); })()), [], "array"falsefalsefalse628), "html"nulltrue);
  1347.             echo "
  1348. \t\t\t\t\t\t\t\t";
  1349.             
  1350.             $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  1351.             
  1352.             $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  1353.             return ('' === $tmp ob_get_contents()) ? '' : new Markup($tmp$this->env->getCharset());
  1354.         } finally {
  1355.             ob_end_clean();
  1356.         }
  1357.     }
  1358.     public function getTemplateName()
  1359.     {
  1360.         return "__string_template__ef755d043ca75195efac5a7b0b023faecf3d2096108f773940123c1e1ce00dd4";
  1361.     }
  1362.     public function isTraitable()
  1363.     {
  1364.         return false;
  1365.     }
  1366.     public function getDebugInfo()
  1367.     {
  1368.         return array (  1417 => 628,  1414 => 627,  1411 => 626,  1391 => 625,  1375 => 743,  1361 => 732,  1354 => 727,  1349 => 725,  1335 => 724,  1328 => 720,  1323 => 717,  1317 => 716,  1314 => 715,  1306 => 713,  1300 => 711,  1297 => 710,  1295 => 709,  1292 => 708,  1286 => 706,  1284 => 705,  1280 => 704,  1270 => 701,  1264 => 698,  1261 => 697,  1258 => 696,  1255 => 695,  1238 => 694,  1231 => 689,  1229 => 688,  1216 => 678,  1211 => 676,  1207 => 674,  1201 => 672,  1196 => 669,  1185 => 664,  1178 => 660,  1175 => 659,  1172 => 658,  1170 => 657,  1164 => 653,  1158 => 652,  1153 => 650,  1148 => 649,  1146 => 648,  1138 => 645,  1133 => 642,  1129 => 641,  1124 => 638,  1122 => 637,  1118 => 635,  1115 => 634,  1113 => 633,  1108 => 630,  1106 => 625,  1104 => 624,  1102 => 623,  1065 => 588,  1059 => 587,  1056 => 586,  1047 => 583,  1044 => 582,  1040 => 581,  1025 => 568,  1021 => 567,  1014 => 563,  1009 => 560,  1002 => 556,  997 => 553,  995 => 552,  990 => 551,  988 => 550,  980 => 546,  965 => 534,  960 => 531,  948 => 524,  944 => 523,  938 => 520,  934 => 519,  928 => 516,  921 => 512,  913 => 506,  907 => 504,  904 => 503,  896 => 501,  890 => 499,  888 => 498,  886 => 497,  882 => 495,  879 => 493,  876 => 492,  871 => 490,  866 => 489,  863 => 488,  859 => 486,  854 => 484,  847 => 483,  845 => 482,  841 => 481,  836 => 480,  834 => 479,  831 => 478,  828 => 477,  819 => 470,  815 => 469,  809 => 465,  802 => 462,  798 => 461,  793 => 459,  790 => 458,  787 => 457,  782 => 450,  775 => 446,  771 => 445,  766 => 443,  763 => 442,  761 => 441,  757 => 439,  755 => 438,  751 => 437,  747 => 435,  740 => 431,  735 => 428,  733 => 427,  728 => 424,  722 => 422,  719 => 421,  711 => 419,  705 => 417,  703 => 416,  701 => 415,  697 => 413,  694 => 411,  691 => 410,  686 => 408,  681 => 407,  678 => 406,  674 => 404,  669 => 402,  662 => 401,  660 => 400,  656 => 399,  651 => 398,  649 => 397,  646 => 396,  643 => 395,  638 => 391,  627 => 389,  623 => 388,  618 => 386,  580 => 350,  569 => 349,  551 => 347,  533 => 346,  502 => 317,  492 => 281,  484 => 275,  474 => 274,  445 => 253,  437 => 247,  433 => 246,  429 => 245,  425 => 244,  421 => 242,  415 => 240,  413 => 239,  408 => 238,  405 => 237,  395 => 235,  381 => 233,  373 => 232,  355 => 231,  350 => 229,  327 => 209,  317 => 202,  287 => 175,  282 => 172,  273 => 166,  269 => 164,  267 => 163,  264 => 162,  254 => 155,  250 => 153,  248 => 152,  243 => 149,  180 => 87,  176 => 84,  168 => 82,  166 => 81,  161 => 79,  158 => 78,  156 => 77,  142 => 66,  139 => 65,  137 => 64,  127 => 63,  73 => 16,  63 => 15,  52 => 11,  50 => 13,  37 => 11,);
  1369.     }
  1370.     public function getSourceContext()
  1371.     {
  1372.         return new Source("{#
  1373. This file is part of EC-CUBE
  1374. Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
  1375. http://www.ec-cube.co.jp/
  1376. For the full copyright and license information, please view the LICENSE
  1377. file that was distributed with this source code.
  1378. #}
  1379. {% extends 'default_frame.twig' %}
  1380. {% set body_class = 'product_page' %}
  1381. {% block stylesheet %}
  1382. \t<style>
  1383. \t\t.sub-breadcrumbsWrap {
  1384. \t\t\tmargin-top: 20px;
  1385. \t\t}
  1386. \t\t.sub-breadcrumbs:not(first-child) {
  1387. \t\t\tmargin-top: 10px;
  1388. \t\t}
  1389. \t\t.form-label {
  1390. \t\t\tdisplay: none;
  1391. \t\t}
  1392. \t\t.mb-3 {
  1393. \t\t\tmargin-bottom: 0;
  1394. \t\t}
  1395. \t\t.notHover:hover>* {
  1396. \t\t\tcursor: not-allowed !important;
  1397. \t\t}
  1398. \t\t.notHover {
  1399. \t\t\topacity: 0.5;
  1400. \t\t}\t
  1401. \t\t.notHover:hover {
  1402. \t\t\topacity: 0.5;
  1403. \t\t}
  1404. \t\t#product_review_area .recommend_level {
  1405. \t\t\tcolor: #B79242;
  1406. \t\t}
  1407. \t\tbutton:disabled{
  1408. \t\t\topacity: 0.5;
  1409. \t\t}
  1410. \t\t.mod-form-input-text, .mod-form-input-textArea {
  1411. \t\t\twidth: 100% !important;
  1412. \t\t\tmax-width: none !important;
  1413. \t\t\ttext-align: left !important;
  1414. \t\t\tborder: 1px solid #7c7c7c !important;
  1415. \t\t\tborder-radius: 0px !important;
  1416. \t\t\tmargin: 6px 0 !important;
  1417. \t\t}\t\t
  1418. \t\t.mod-form-description {
  1419. \t\t\tfont-size: 14px;
  1420. \t\t}
  1421. \t\t.option-img {
  1422. \t\t\twidth: 100%;
  1423. \t\t\tmax-width: 400px;
  1424. \t\t}
  1425. \t</style>
  1426. {% endblock %}
  1427. {% block javascript %}
  1428. \t{# 選択肢関係 #}
  1429.     <script>
  1430.         eccube.classCategories = {{ class_categories_as_json(Product)|raw }};
  1431.         // 規格2に選択肢を割り当てる。
  1432.         function fnSetClassCategories(form, classcat_id2_selected) {
  1433.             var \$form = \$(form);
  1434.             var product_id = \$form.find('input[name=product_id]').val();
  1435.             var \$sele1 = \$form.find('select[name=classcategory_id1]');
  1436.             var \$sele2 = \$form.find('select[name=classcategory_id2]');
  1437.             eccube.setClassCategories(\$form, product_id, \$sele1, \$sele2, classcat_id2_selected);
  1438.         }
  1439.         {% if form.classcategory_id2 is defined %}
  1440.         fnSetClassCategories(
  1441.             \$('#form1'), {{ form.classcategory_id2.vars.value|json_encode|raw }}
  1442.         );
  1443.         {% elseif form.classcategory_id1 is defined %}
  1444.         eccube.checkStock(\$('#form1'), {{ Product.id }}, {{ form.classcategory_id1.vars.value|json_encode|raw }}, null);
  1445.         {% endif %}
  1446.     </script>
  1447. \t{# テンプレの画像関係 #}
  1448.     <script>
  1449.         \$(function() {
  1450.             // bfcache無効化
  1451.             \$(window).bind('pageshow', function(event) {
  1452.                 if (event.originalEvent.persisted) {
  1453.                     location.reload(true);
  1454.                 }
  1455.             });
  1456.             // Core Web Vital の Cumulative Layout Shift(CLS)対策のため
  1457.             // img タグに width, height が付与されている.
  1458.             // 630px 未満の画面サイズでは縦横比が壊れるための対策
  1459.             // see https://github.com/EC-CUBE/ec-cube/pull/5023
  1460.             \$('.ec-grid2__cell').hide();
  1461.             var removeSize = function () {
  1462.                 \$('.slide-item').height('');
  1463.                 \$('.slide-item img')
  1464.                     .removeAttr('width')
  1465.                     .removeAttr('height')
  1466.                     .removeAttr('style');
  1467.             };
  1468.             var slickInitial = function(slick) {
  1469.                 \$('.ec-grid2__cell').fadeIn(1500);
  1470.                 var baseHeight = \$(slick.target).height();
  1471.                 var baseWidth = \$(slick.target).width();
  1472.                 var rate = baseWidth / baseHeight;
  1473.                 \$('.slide-item').height(baseHeight * rate); // 余白を削除する
  1474.                 // transform を使用することでCLSの影響を受けないようにする
  1475.                 \$('.slide-item img')
  1476.                     .css(
  1477.                         {
  1478.                             'transform-origin': 'top left',
  1479.                             'transform': 'scaleY(' + rate + ')',
  1480.                             'transition': 'transform .1s'
  1481.                         }
  1482.                     );
  1483.                 // 正しいサイズに近くなったら属性を解除する
  1484.                 setTimeout(removeSize, 500);
  1485.             };
  1486.             \$('.item_visual').on('init', slickInitial);
  1487.             // リサイズ時は CLS の影響を受けないため属性を解除する
  1488.             \$(window).resize(removeSize);
  1489.             \$('.item_visual').slick({
  1490.                 dots: false,
  1491.                 arrows: false,
  1492.                 responsive: [{
  1493.                     breakpoint: 768,
  1494.                     settings: {
  1495.                         dots: true
  1496.                     }
  1497.                 }]
  1498.             });
  1499.             \$('.slideThumb').on('click', function() {
  1500.                 var index = \$(this).attr('data-index');
  1501.                 \$('.item_visual').slick('slickGoTo', index, false);
  1502.             })
  1503.         });
  1504.     </script>
  1505. \t{# カート関係 #}
  1506.     <script>
  1507.         \$(function() {
  1508.             \$('.add-cart').on('click', function(event) {
  1509.                 {% if form.classcategory_id1 is defined %}
  1510.                 // 規格1フォームの必須チェック
  1511.                 if (\$('#classcategory_id1').val() == '__unselected' || \$('#classcategory_id1').val() == '') {
  1512.                     \$('#classcategory_id1')[0].setCustomValidity('{{ '項目を選択してください'|trans }}');
  1513. \t\t\t\t\t
  1514.                     return true;
  1515.                 } else {
  1516.                     \$('#classcategory_id1')[0].setCustomValidity('');
  1517.                 }
  1518.                 {% endif %}
  1519.                 {% if form.classcategory_id2 is defined %}
  1520.                 // 規格2フォームの必須チェック
  1521.                 if (\$('#classcategory_id2').val() == '__unselected' || \$('#classcategory_id2').val() == '') {
  1522.                     \$('#classcategory_id2')[0].setCustomValidity('{{ '項目を選択してください'|trans }}');
  1523.                     return true;
  1524.                 } else {
  1525.                     \$('#classcategory_id2')[0].setCustomValidity('');
  1526.                 }
  1527.                 {% endif %}
  1528.                 // 個数フォームのチェック
  1529.                 if (\$('#quantity').val() <= 0) {
  1530.                     \$('#quantity')[0].setCustomValidity('{{ '1以上の数字を入力してください。'|trans }}');
  1531.                     return true;
  1532.                 } else {
  1533.                     \$('#quantity')[0].setCustomValidity('');
  1534.                 }\t\t\t\t
  1535.                 event.preventDefault();
  1536.                 \$form = \$('#form1');
  1537.                 \$.ajax({
  1538.                     url: \$form.attr('action'),
  1539.                     type: \$form.attr('method'),
  1540.                     data: \$form.serialize(),
  1541.                     dataType: 'json',
  1542.                     beforeSend: function(xhr, settings) {
  1543.                         // Buttonを無効にする
  1544.                         \$('.add-cart').prop('disabled', true);
  1545.                     }
  1546.                 }).done(function(data) {
  1547.                     // レスポンス内のメッセージをalertで表示
  1548.                     \$.each(data.messages, function() {
  1549.                         \$('#ec-modal-header').text(this);
  1550.                     });
  1551.                     \$('.ec-modal').show()
  1552.                     // カートブロックを更新する
  1553.                     \$.ajax({
  1554.                         url: \"{{ url('block_cart') }}\",
  1555.                         type: 'GET',
  1556.                         dataType: 'html'
  1557.                     }).done(function(html) {
  1558.                         \$('.ec-headerRole__cart').html(html);
  1559.                     });
  1560.                 }).fail(function(data) {
  1561.                     alert('{{ 'カートへの追加に失敗しました。'|trans }}');
  1562.                 }).always(function(data) {
  1563.                     // Buttonを有効にする
  1564.                     \$('.add-cart').prop('disabled', false);
  1565.                 });
  1566.             });
  1567.         });
  1568.         \$('.ec-modal-wrap').on('click', function(e) {
  1569.             // モーダル内の処理は外側にバブリングさせない
  1570.             e.stopPropagation();
  1571.         });
  1572.         \$('.ec-modal-overlay, .ec-modal, .ec-modal-close, .ec-inlineBtn--cancel').on('click', function() {
  1573.             \$('.ec-modal').hide()
  1574.         });
  1575.     </script>
  1576.     <script type=\"application/ld+json\">
  1577.     {
  1578.         \"@context\": \"https://schema.org/\",
  1579.         \"@type\": \"Product\",
  1580.         \"name\": \"{{ Product.name }}\",
  1581.         \"image\": [
  1582.             {% for img in Product.ProductImage %}
  1583.                 \"{{ app.request.schemeAndHttpHost }}{{ asset(img, 'save_image') }}\"{% if not loop.last %},{% endif %}
  1584.             {% else %}
  1585.                 \"{{ app.request.schemeAndHttpHost }}{{ asset(''|no_image_product, 'save_image') }}\"
  1586.             {% endfor %}
  1587.         ],
  1588.         \"description\": \"{{ Product.description_list | default(Product.description_detail) | replace({'\\n': '', '\\r': ''}) | slice(0,300) }}\",
  1589.         {% if Product.code_min %}
  1590.         \"sku\": \"{{ Product.code_min }}\",
  1591.         {% endif %}
  1592.         \"offers\": {
  1593.             \"@type\": \"Offer\",
  1594.             \"url\": \"{{ url('product_detail', {'id': Product.id}) }}\",
  1595.             \"priceCurrency\": \"{{ eccube_config.currency }}\",
  1596.             \"price\": {{ Product.getPrice02IncTaxMin ? Product.getPrice02IncTaxMin : 0}},
  1597.             \"availability\": \"{{ Product.stock_find ? \"InStock\" : \"OutOfStock\" }}\"
  1598.         }
  1599.     }
  1600.     </script>
  1601. \t{# レビュー表示 #}
  1602. \t<script>
  1603. \t\t\$(function() {
  1604. \t\t\t\$('#product_review_area').appendTo(\$('.ec-layoutRole__main, .ec-layoutRole__mainWithColumn, .ec-layoutRole__mainBetweenColumn'));
  1605. \t\t\t\$('#product_review_area .ec-rectHeading').on('click', function() {
  1606. \t\t\t\t\$content = \$('#reviewContent');
  1607. \t\t\t\tif (\$content.css('display') == 'none') {
  1608. \t\t\t\t\t\$(this).addClass('is_active');
  1609. \t\t\t\t\t\$content.addClass('is_active');
  1610. \t\t\t\t\t\$content.slideDown(300);
  1611. \t\t\t\t} else {
  1612. \t\t\t\t\t\$(this).removeClass('is_active');
  1613. \t\t\t\t\t\$content.removeClass('is_active');
  1614. \t\t\t\t\t\$content.slideUp(300);
  1615. \t\t\t\t}
  1616. \t\t\t\treturn false;
  1617. \t\t\t});
  1618. \t\t});
  1619. \t</script>\t
  1620. {% endblock %}
  1621. {% block main %}
  1622. \t<div
  1623. \t\tclass=\"sub-container\">
  1624. \t\t<!-- SUB H1 -->
  1625. \t\t<div
  1626. \t\t\tclass=\"sub-h1Wrap\">
  1627. \t\t\t<h1 class=\"sub-h1\">
  1628. \t\t\t\t{{ Product.name }}
  1629. \t\t\t</h1>
  1630. \t\t</div>
  1631. \t\t<!-- /SUB H1 -->
  1632. \t\t<div
  1633. \t\t\tclass=\"l-container\">
  1634. \t\t\t<!-- パンくずリスト -->
  1635. \t\t\t{# <div class=\"sub-breadcrumbsWrap\">\t\t\t\t
  1636. \t\t\t\t{% if Product.ProductCategories is not empty %}
  1637. \t\t\t\t\t{% for ProductCategory in Product.ProductCategories %}
  1638. \t\t\t\t\t\t<ol class=\"sub-breadcrumbs\">
  1639. \t\t\t\t\t\t\t<li>
  1640. \t\t\t\t\t\t\t\t<a href=\"{{ url('homepage') }}\">HOME</a>
  1641. \t\t\t\t\t\t\t</li>\t\t\t\t\t
  1642. \t\t\t\t\t\t\t<li>
  1643. \t\t\t\t\t\t\t\t<a href=\"{{ url('product_list') }}\">全商品</a>
  1644. \t\t\t\t\t\t\t</li>\t\t\t\t\t
  1645. \t\t\t\t\t\t\t{% for Category in ProductCategory.Category.path %}
  1646. \t\t\t\t\t\t\t\t<li>
  1647. \t\t\t\t\t\t\t\t\t<a href=\"{{ url('product_list') }}?category_id={{ Category.id }}\">{{ Category.name }}</a>
  1648. \t\t\t\t\t\t\t\t</li>
  1649. \t\t\t\t\t\t\t{% endfor %}
  1650. \t\t\t\t\t\t\t<li>{{ Product.name }}</li>\t
  1651. \t\t\t\t\t\t</ol>
  1652. \t\t\t\t\t{% endfor %}
  1653. \t\t\t\t{% else %}
  1654. \t\t\t\t\t<ol class=\"sub-breadcrumbs\">
  1655. \t\t\t\t\t\t<li>
  1656. \t\t\t\t\t\t\t<a href=\"{{ url('homepage') }}\">HOME</a>
  1657. \t\t\t\t\t\t</li>\t\t\t\t\t
  1658. \t\t\t\t\t\t<li>
  1659. \t\t\t\t\t\t\t<a href=\"{{ url('product_list') }}\">全商品</a>
  1660. \t\t\t\t\t\t</li>\t\t
  1661. \t\t\t\t\t\t<li>{{ Product.name }}</li>\t\t
  1662. \t\t\t\t\t</ol>
  1663. \t\t\t\t{% endif %}\t\t
  1664. \t\t\t</div>\t#}\t\t\t
  1665. \t\t\t<!-- /パンくずリスト -->
  1666. \t\t\t<div
  1667. \t\t\t\tclass=\"l-2ColumnContainer\">
  1668. \t\t\t\t<!-- メインコンテンツ -->
  1669. \t\t\t\t<div
  1670. \t\t\t\t\tclass=\"l-main\">
  1671. \t\t\t\t\t<!-- PAGE CONTENTS -->
  1672. \t\t\t\t\t<div class=\"products productsSingle\">
  1673. \t\t\t\t\t\t<section>
  1674. \t\t\t\t\t\t\t<!-- 上部分(商品名、カートボタン など) -->
  1675. \t\t\t\t\t\t\t<div
  1676. \t\t\t\t\t\t\t\tclass=\"productsSingle-header\">
  1677. \t\t\t\t\t\t\t\t<!-- 写真部分 -->
  1678. \t\t\t\t\t\t\t\t<div class=\"header-imgBlock\">
  1679. \t\t\t\t\t\t\t\t\t<div class=\"header-img\">
  1680. \t\t\t\t\t\t\t\t\t\t<div class=\"header-img-arrow isPrev\" style=\"display: none;\">
  1681. \t\t\t\t\t\t\t\t\t\t\t<p class=\"hdnTxt\">前の写真へ</p>
  1682. \t\t\t\t\t\t\t\t\t\t</div>
  1683. \t\t\t\t\t\t\t\t\t\t<div class=\"imgInner\"></div>
  1684. \t\t\t\t\t\t\t\t\t\t<div class=\"header-img-arrow isNext\" style=\"display: none;\">
  1685. \t\t\t\t\t\t\t\t\t\t\t<p class=\"hdnTxt\">次の写真へ</p>
  1686. \t\t\t\t\t\t\t\t\t\t</div>
  1687. \t\t\t\t\t\t\t\t\t</div>
  1688. \t\t\t\t\t\t\t\t\t<div class=\"header-img-otherContainer\">
  1689. \t\t\t\t\t\t\t\t\t\t{% for ProductImage in Product.ProductImage %}
  1690. \t\t\t\t\t\t\t\t\t\t\t<div class=\"header-img-other\" data-index=\"{{ loop.index0 }}\"><div class=\"imgInner\"><img src=\"{{ asset(ProductImage, 'save_image') }}\" alt=\"\" class=\"imgObjectFitContain\"></div></div>
  1691. \t\t\t\t\t\t\t\t\t\t{% else %}
  1692. \t\t\t\t\t\t\t\t\t\t\t<div class=\"header-img-other\" data-index=\"{{ loop.index0 }}\"><div class=\"imgInner\"><img src=\"{{ asset(''|no_image_product, 'save_image') }}\" alt=\"\" class=\"imgObjectFitContain\"></div></div>\t\t\t\t\t\t\t\t\t\t
  1693. \t\t\t\t\t\t\t\t\t\t{% endfor %}\t\t\t\t\t\t\t\t\t
  1694. \t\t\t\t\t\t\t\t\t</div>
  1695. \t\t\t\t\t\t\t\t\t<script>
  1696. \t\t\t\t\t\t\t\t\t\t// ページが読み込まれたときに実行される関数
  1697. \t\t\t\t\t\t\t\t\t\tdocument.addEventListener(\"DOMContentLoaded\", function() {
  1698. \t\t\t\t\t\t\t\t\t\t\t// .header-img-otherの要素を取得
  1699. \t\t\t\t\t\t\t\t\t\t\tvar headerImgOthers = document.querySelectorAll('.header-img-other');
  1700. \t\t\t\t\t\t\t\t\t\t\t// .isPrevと.isNextを表示する関数
  1701. \t\t\t\t\t\t\t\t\t\t\tfunction displayPrevNextArrows() {
  1702. \t\t\t\t\t\t\t\t\t\t\t\t// .isPrevと.isNextの要素を取得
  1703. \t\t\t\t\t\t\t\t\t\t\t\tvar prevArrow = document.querySelector('.header-img-arrow.isPrev');
  1704. \t\t\t\t\t\t\t\t\t\t\t\tvar nextArrow = document.querySelector('.header-img-arrow.isNext');
  1705. \t\t\t\t\t\t\t\t\t\t\t\t// .header-img-otherの要素が2つ以上あれば、.isPrevと.isNextを表示
  1706. \t\t\t\t\t\t\t\t\t\t\t\tif (headerImgOthers.length >= 2) {
  1707. \t\t\t\t\t\t\t\t\t\t\t\t\tif (prevArrow) {
  1708. \t\t\t\t\t\t\t\t\t\t\t\t\tprevArrow.style.display = 'block';
  1709. \t\t\t\t\t\t\t\t\t\t\t\t\t}
  1710. \t\t\t\t\t\t\t\t\t\t\t\t\tif (nextArrow) {
  1711. \t\t\t\t\t\t\t\t\t\t\t\t\tnextArrow.style.display = 'block';
  1712. \t\t\t\t\t\t\t\t\t\t\t\t\t}
  1713. \t\t\t\t\t\t\t\t\t\t\t\t}
  1714. \t\t\t\t\t\t\t\t\t\t\t}
  1715. \t\t\t\t\t\t\t\t\t\t\t// ページが読み込まれたときに実行
  1716. \t\t\t\t\t\t\t\t\t\t\tdisplayPrevNextArrows();
  1717. \t\t\t\t\t\t\t\t\t\t});
  1718. \t\t\t\t\t\t\t\t\t</script>
  1719. \t\t\t\t\t\t\t\t</div>
  1720. \t\t\t\t\t\t\t\t<!-- /写真部分 -->
  1721. \t\t\t\t\t\t\t\t<!-- 文字部分 -->
  1722. \t\t\t\t\t\t\t\t<div class=\"header-textBlock\">
  1723. \t\t\t\t\t\t\t\t\t<div class=\"header-hlGroup\">
  1724. \t\t\t\t\t\t\t\t\t\t<h2 class=\"header-hl\">{{ Product.name }}</h2>
  1725. \t\t\t\t\t\t\t\t\t\t<div class=\"header-colorGroup\">
  1726. \t\t\t\t\t\t\t\t\t\t\t{% for Tag in Product.Tags %}
  1727. \t\t\t\t\t\t\t\t\t\t\t\t<span class=\"header-color is{{ Tag.id }}\">{{ Tag }}</span>\t\t\t\t\t\t\t\t\t\t\t\t
  1728. \t\t\t\t\t\t\t\t\t\t\t{% endfor %}
  1729. \t\t\t\t\t\t\t\t\t\t</div>
  1730. \t\t\t\t\t\t\t\t\t</div>
  1731. \t\t\t\t\t\t\t\t\t{# 通常価格 #}
  1732. \t\t\t\t\t\t\t\t\t{% if Product.hasProductClass -%}
  1733. \t\t\t\t\t\t\t\t\t\t<div class=\"ec-productRole__priceRegular\">
  1734. \t\t\t\t\t\t\t\t\t\t\t{% if Product.getPrice01Min is not null and Product.getPrice01IncTaxMin == Product.getPrice01IncTaxMax %}
  1735. \t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ec-productRole__priceRegularPrice\"><span class=\"price01-default\" style=\"text-decoration:line-through;\">{{ Product.getPrice01IncTaxMin|number_format }}円</span></span>
  1736. \t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ec-productRole__priceRegularTax\" style=\"text-decoration:line-through;\">{{ '税込'|trans }}</span>
  1737. \t\t\t\t\t\t\t\t\t\t\t{% elseif Product.getPrice01Min is not null and Product.getPrice01Max is not null %}
  1738. \t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ec-productRole__priceRegularPrice\"><span class=\"price01-default\" style=\"text-decoration:line-through;\">{{ Product.getPrice01IncTaxMin|number_format }}~ {{ Product.getPrice01IncTaxMax|number_format }}円</span></span>
  1739. \t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ec-productRole__priceRegularTax\" style=\"text-decoration:line-through;\">{{ '税込'|trans }}</span>
  1740. \t\t\t\t\t\t\t\t\t\t\t{% endif %}
  1741. \t\t\t\t\t\t\t\t\t\t</div>
  1742. \t\t\t\t\t\t\t\t\t{% else %}
  1743. \t\t\t\t\t\t\t\t\t\t{% if Product.getPrice01Max is not null %}
  1744. \t\t\t\t\t\t\t\t\t\t\t<span class=\"ec-productRole__priceRegularPrice\" style=\"text-decoration:line-through;\">{{ Product.getPrice01IncTaxMin|number_format }}円</span>
  1745. \t\t\t\t\t\t\t\t\t\t\t<span class=\"ec-productRole__priceRegularTax\" style=\"text-decoration:line-through;\">{{ '税込'|trans }}</span>
  1746. \t\t\t\t\t\t\t\t\t\t{% endif %}
  1747. \t\t\t\t\t\t\t\t\t{% endif %}
  1748. \t\t\t\t\t\t\t\t\t
  1749.                                     {# 販売価格 #}
  1750.                                     <p class=\"header-price\" style=\"margin-top:5px;\">
  1751.                                         <em class=\"isPrice\">
  1752.                                             {% if Product.hasProductClass -%}
  1753.                                                 {% if Product.getPrice02IncTaxMin|number_format == Product.getPrice02IncTaxMax|number_format %}
  1754.                                                     {{ Product.getPrice02IncTaxMin|number_format }}
  1755.                                                 {% else %}
  1756.                                                     {{ Product.getPrice02IncTaxMin|number_format }} ~ {{ Product.getPrice02IncTaxMax|number_format }}
  1757.                                                 {% endif %}
  1758.                                             {% else %}
  1759.                                                 {{ Product.getPrice02IncTaxMin|number_format }}
  1760.                                             {% endif %}
  1761.                                         </em>円<small class=\"isSmall\">税込</small>
  1762.                                     </p>
  1763. \t\t\t\t\t\t\t\t\t                                    
  1764. \t\t\t\t\t\t\t\t\t{% if Product.description_detail is not null %}
  1765. \t\t\t\t\t\t\t\t\t\t<div class=\"header-productsInfo\">
  1766. \t\t\t\t\t\t\t\t\t\t\t<h3 class=\"header-productsInfo-hl\">商品情報</h3>
  1767. \t\t\t\t\t\t\t\t\t\t\t<div class=\"header-productsInfo-text\">
  1768. \t\t\t\t\t\t\t\t\t\t\t\t{{ Product.description_detail|raw|nl2br }}
  1769. \t\t\t\t\t\t\t\t\t\t\t</div>
  1770. \t\t\t\t\t\t\t\t\t\t</div>
  1771. \t\t\t\t\t\t\t\t\t{% endif %}
  1772. \t\t\t\t\t\t\t\t\t<div class=\"header-orderContainer\">
  1773. \t\t\t\t\t\t\t\t\t\t<form action=\"{{ url('product_add_cart', {id:Product.id}) }}\" method=\"post\" id=\"form1\" name=\"form1\">
  1774. \t\t\t\t\t\t\t\t\t\t\t{% if Product.stock_find %}
  1775. \t\t\t\t\t\t\t\t\t\t\t\t<table class=\"mod-table-form\">
  1776. \t\t\t\t\t\t\t\t\t\t\t\t\t<tbody>
  1777. \t\t\t\t\t\t\t\t\t\t\t\t\t\t{% if form.classcategory_id1 is defined %}
  1778. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<tr>
  1779. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<th>{{ form.classcategory_id1.vars.label }}</th>
  1780. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td>
  1781. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{ form_row(form.classcategory_id1,{'id': 'classcategory_id1', 'attr': {'class': 'mod-form-select'}}) }}
  1782. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{ form_errors(form.classcategory_id1,{'id': 'classcategory_id1', 'attr': {'class': 'mod-form-select'}}) }}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  1783. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</td>
  1784. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</tr>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  1785. \t\t\t\t\t\t\t\t\t\t\t\t\t\t{% endif %}
  1786. \t\t\t\t\t\t\t\t\t\t\t\t\t\t{{ include('Product/option.twig', ignore_missing=true) }}
  1787. \t\t\t\t\t\t\t\t\t\t\t\t\t\t{# <tr>
  1788. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<th>彫刻内容</th>
  1789. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  1790. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input type=\"text\" class=\"mod-form-input-text\" id=\"TyokokuNaiyo\" placeholder=\"彫刻内容をご記入ください\">
  1791. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</td>
  1792. \t\t\t\t\t\t\t\t\t\t\t\t\t\t</tr> #}
  1793. \t\t\t\t\t\t\t\t\t\t\t\t\t\t{% if form.classcategory_id2 is defined %}
  1794. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<tr>
  1795. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<th>{{ form.classcategory_id2.vars.label }}</th>
  1796. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td>
  1797. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{ form_row(form.classcategory_id2,{'id': 'classcategory_id2', 'attr': {'class': 'mod-form-select'}}) }}
  1798. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{ form_errors(form.classcategory_id2,{'id': 'classcategory_id2', 'attr': {'class': 'mod-form-select'}}) }}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  1799. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</td>
  1800. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</tr>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  1801. \t\t\t\t\t\t\t\t\t\t\t\t\t\t{% endif %}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  1802. \t\t\t\t\t\t\t\t\t\t\t\t\t\t<tr>
  1803. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<th>注文数</th>
  1804. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td>
  1805. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{ form_widget(form.quantity, {'id': 'quantity', 'attr': {'class': 'mod-form-input-text'}}) }}
  1806. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{ form_errors(form.quantity, {'id': 'quantity', 'attr': {'class': 'mod-form-input-text'}}) }}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  1807. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</td>
  1808. \t\t\t\t\t\t\t\t\t\t\t\t\t\t</tr>
  1809. \t\t\t\t\t\t\t\t\t\t\t\t\t</tbody>
  1810. \t\t\t\t\t\t\t\t\t\t\t\t</table>
  1811. \t\t\t\t\t\t\t\t\t\t\t\t{# 通常価格 #}
  1812. \t\t\t\t\t\t\t\t\t\t\t\t{% if Product.hasProductClass -%}
  1813. \t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"ec-productRole__priceRegular\" style=\"text-align:left;\">
  1814. \t\t\t\t\t\t\t\t\t\t\t\t\t\t{% if Product.getPrice01Min is not null and Product.getPrice01IncTaxMin == Product.getPrice01IncTaxMax %}
  1815. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ec-productRole__priceRegularPrice\"><span class=\"price01-default\" style=\"text-decoration:line-through;\">{{ Product.getPrice01IncTaxMin|number_format }}円</span></span>
  1816. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ec-productRole__priceRegularTax\" style=\"text-decoration:line-through;\">{{ '税込'|trans }}</span>
  1817. \t\t\t\t\t\t\t\t\t\t\t\t\t\t{% elseif Product.getPrice01Min is not null and Product.getPrice01Max is not null %}
  1818. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ec-productRole__priceRegularPrice\"><span class=\"price01-default\" style=\"text-decoration:line-through;\">{{ Product.getPrice01IncTaxMin|number_format }}~ {{ Product.getPrice01IncTaxMax|number_format }}円</span></span>
  1819. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ec-productRole__priceRegularTax\" style=\"text-decoration:line-through;\">{{ '税込'|trans }}</span>
  1820. \t\t\t\t\t\t\t\t\t\t\t\t\t\t{% endif %}
  1821. \t\t\t\t\t\t\t\t\t\t\t\t\t</div>
  1822. \t\t\t\t\t\t\t\t\t\t\t\t{% else %}
  1823. \t\t\t\t\t\t\t\t\t\t\t\t\t{% if Product.getPrice01Max is not null %}
  1824. \t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ec-productRole__priceRegularPrice\" style=\"text-decoration:line-through;\">{{ Product.getPrice01IncTaxMin|number_format }}円</span>
  1825. \t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ec-productRole__priceRegularTax\" style=\"text-decoration:line-through;\">{{ '税込'|trans }}</span>
  1826. \t\t\t\t\t\t\t\t\t\t\t\t\t{% endif %}
  1827. \t\t\t\t\t\t\t\t\t\t\t\t{% endif %}
  1828. \t\t\t\t\t\t\t\t\t\t\t\t
  1829. \t\t\t\t\t\t\t\t\t\t\t\t{# 販売価格 #}
  1830. \t\t\t\t\t\t\t\t\t\t\t\t<p class=\"header-price\" style=\"margin-top:5px; text-align:left;\">
  1831. \t\t\t\t\t\t\t\t\t\t\t\t\t<em class=\"isPrice\">
  1832. \t\t\t\t\t\t\t\t\t\t\t\t\t\t{% if Product.hasProductClass -%}
  1833. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{% if Product.getPrice02IncTaxMin|number_format == Product.getPrice02IncTaxMax|number_format %}
  1834. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{ Product.getPrice02IncTaxMin|number_format }}
  1835. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{% else %}
  1836. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{ Product.getPrice02IncTaxMin|number_format }} ~ {{ Product.getPrice02IncTaxMax|number_format }}
  1837. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{% endif %}
  1838. \t\t\t\t\t\t\t\t\t\t\t\t\t\t{% else %}
  1839. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{ Product.getPrice02IncTaxMin|number_format }}
  1840. \t\t\t\t\t\t\t\t\t\t\t\t\t\t{% endif %}
  1841. \t\t\t\t\t\t\t\t\t\t\t\t\t</em>円<small class=\"isSmall\">税込</small>
  1842. \t\t\t\t\t\t\t\t\t\t\t\t</p>
  1843. \t\t\t\t\t\t\t\t\t\t\t\t
  1844. \t\t\t\t\t\t\t\t\t\t\t\t<div class=\"mod-shopping-btn isCart\">
  1845. \t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"btnInner\">カートに入れる</span>
  1846. \t\t\t\t\t\t\t\t\t\t\t\t\t<button type=\"submit\" class=\"ec-blockBtn--action add-cart\" id=\"ConfirmSubmit\">
  1847. \t\t\t\t\t\t\t\t\t\t\t\t\t\t{{ 'カートに入れる'|trans }}
  1848. \t\t\t\t\t\t\t\t\t\t\t\t\t</button>
  1849. \t\t\t\t\t\t\t\t\t\t\t\t</div>
  1850. \t\t\t\t\t\t\t\t\t\t\t\t
  1851. \t\t\t\t\t\t\t\t\t\t\t\t{{ include('Product/option_description.twig') }}<div class=\"ec-modal\">
  1852. \t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"ec-modal-overlay\">
  1853. \t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"ec-modal-wrap\">
  1854. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ec-modal-close\"><span class=\"ec-icon\"><img src=\"{{ asset('assets/icon/cross-dark.svg') }}\" alt=\"\"/></span></span>
  1855. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div id=\"ec-modal-header\" class=\"text-center\">{{ 'カートに追加しました。'|trans }}</div>
  1856. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"ec-modal-box\">
  1857. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"ec-role\">
  1858. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ec-inlineBtn--cancel\">{{ 'お買い物を続ける'|trans }}</span>
  1859. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"{{ url('cart') }}\" class=\"ec-inlineBtn--action\">{{ 'カートへ進む'|trans }}</a>
  1860. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>
  1861. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>
  1862. \t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>
  1863. \t\t\t\t\t\t\t\t\t\t\t\t\t</div>
  1864. \t\t\t\t\t\t\t\t\t\t\t\t</div>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  1865. \t\t\t\t\t\t\t\t\t\t\t{% else %}
  1866. \t\t\t\t\t\t\t\t\t\t\t\t<div class=\"mod-shopping-btn isCart notHover\">
  1867. \t\t\t\t\t\t\t\t\t\t\t\t<span class=\"btnInner\">ただいま品切れ中です。</span>
  1868. \t\t\t\t\t\t\t\t\t\t\t\t\t<button type=\"button\" class=\"ec-blockBtn--action\" disabled=\"disabled\">
  1869. \t\t\t\t\t\t\t\t\t\t\t\t\t\t{{ 'ただいま品切れ中です。'|trans }}
  1870. \t\t\t\t\t\t\t\t\t\t\t\t\t</button>
  1871. \t\t\t\t\t\t\t\t\t\t\t\t</div>
  1872. \t\t\t\t\t\t\t\t\t\t\t\t<span class=\"is-soldout-detail\">申し訳ございませんが、この商品は現在在庫切れです。</span>
  1873. \t\t\t\t\t\t\t\t\t\t\t\t<style>
  1874. \t\t\t\t\t\t\t\t\t\t\t\t\t.is-soldout-detail{
  1875. \t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: inline-block;
  1876. \t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: #f00;
  1877. \t\t\t\t\t\t\t\t\t\t\t\t\t\tmargin: 15px;
  1878. \t\t\t\t\t\t\t\t\t\t\t\t\t}
  1879. \t\t\t\t\t\t\t\t\t\t\t\t</style>
  1880. \t\t\t\t\t\t\t\t\t\t\t{% endif %}
  1881. \t\t\t\t\t\t\t\t\t\t\t{{ form_rest(form) }}
  1882. \t\t\t\t\t\t\t\t\t\t</form>\t\t\t\t\t\t\t\t\t\t
  1883. \t\t\t\t\t\t\t\t\t\t\t<div class=\"header-order-btnContainer\">
  1884. \t\t\t\t\t\t\t\t\t\t\t\t{% if BaseInfo.option_favorite_product %}
  1885. \t\t\t\t\t\t\t\t\t\t\t\t\t<form action=\"{{ url('product_add_favorite', {id:Product.id}) }}\" method=\"post\">
  1886. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{% if is_favorite == false %}
  1887. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"mod-shopping-btn isFavorite\">
  1888. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"btnInner\">お気に入りに追加</span>
  1889. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--cancel\">
  1890. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{ 'お気に入りに追加'|trans }}
  1891. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</button>
  1892. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>
  1893. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{% else %}
  1894. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"mod-shopping-btn isFavorite notHover\">
  1895. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"btnInner\">お気に入りに追加済です。</span>
  1896. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--cancel\"
  1897. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled=\"disabled\">{{ 'お気に入りに追加済です。'|trans }}
  1898. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</button>
  1899. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>
  1900. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{% endif %}
  1901. \t\t\t\t\t\t\t\t\t\t\t\t\t</form>
  1902. \t\t\t\t\t\t\t\t\t\t\t\t{% endif %}\t\t\t\t\t\t\t\t\t\t
  1903. \t\t\t\t\t\t\t\t\t\t\t</div>\t\t\t\t\t\t\t\t\t\t\t
  1904. \t\t\t\t\t\t\t\t\t\t<a href=\"#productsSingle-guideline\" class=\"header-order-guideline\">出荷の目安を確認する</a>
  1905. \t\t\t\t\t\t\t\t\t</div>
  1906. \t\t\t\t\t\t\t\t</div>
  1907. \t\t\t\t\t\t\t\t<!-- /文字部分 -->
  1908. \t\t\t\t\t\t\t</div>
  1909. \t\t\t\t\t\t\t<!-- /上部分(商品名、カートボタン など) -->
  1910. \t\t\t\t\t\t\t<!-- 詳しい説明 -->
  1911. \t\t\t\t\t\t\t<div class=\"productsSingle-explanation\">
  1912. \t\t\t\t\t\t\t\t{% for filename in Product.ViewData(1) %}
  1913. \t\t\t\t\t\t\t\t\t<div class=\"img\">
  1914. \t\t\t\t\t\t\t\t\t\t<img src=\"{{ asset(filename, 'save_image') }}\" width=\"1320\" height=\"338\" alt=\"\" class=\"imgFit\" loading=\"lazy\">
  1915. \t\t\t\t\t\t\t\t\t</div>
  1916. \t\t\t\t\t\t\t\t{% endfor %}
  1917. \t\t\t\t\t\t\t\t{% if Product.freearea is not null %}
  1918. \t\t\t\t\t\t\t\t\t<p>{{ include(template_from_string(Product.freearea)) }}</p>
  1919. \t\t\t\t\t\t\t\t{% endif %}\t
  1920. \t\t\t\t\t\t\t</div>\t\t\t\t\t
  1921. \t\t\t\t\t\t\t<!-- /詳しい説明 -->
  1922. \t\t\t\t\t\t\t<!-- 出荷の目安 -->
  1923. \t\t\t\t\t\t\t<section class=\"productsSingle-guideline\" id=\"productsSingle-guideline\">
  1924. \t\t\t\t\t\t\t\t<h3 class=\"mod-hl-02 productsSingle-guideline-hl\">
  1925. \t\t\t\t\t\t\t\t\t<span class=\"isJp\">出荷の目安</span>
  1926. \t\t\t\t\t\t\t\t</h3>
  1927. \t\t\t\t\t\t\t\t<p class=\"productsSingle-guideline-schedule\">
  1928. \t\t\t\t\t\t\t\t\t<span class=\"schedule-up\">
  1929. \t\t\t\t\t\t\t\t\t\t<em class=\"schedule-up-em\">
  1930. \t\t\t\t\t\t\t\t\t\t\t<time class=\"schedule-up-time\" datetime=\"\"></time> 16:00
  1931. \t\t\t\t\t\t\t\t\t\t</em><br>
  1932. \t\t\t\t\t\t\t\t\t\t迄のご注文は
  1933. \t\t\t\t\t\t\t\t\t</span>
  1934. \t\t\t\t\t\t\t\t\t<span class=\"schedule-under\">
  1935. \t\t\t\t\t\t\t\t\t\t<em class=\"schedule-under-em\">
  1936. \t\t\t\t\t\t\t\t\t\t\t<time class=\"schedule-under-time\" datetime=\"\"></time>
  1937. \t\t\t\t\t\t\t\t\t\t</em><br>
  1938. \t\t\t\t\t\t\t\t\t\t出荷予定
  1939. \t\t\t\t\t\t\t\t\t</span>
  1940. \t\t\t\t\t\t\t\t</p>\t\t\t\t\t\t\t
  1941. \t\t\t\t\t\t\t\t<small class=\"defaultTxt productsSingle-guideline-text\">※あくまでも目安です。商品やご注文内容・ご注文時期によって更に日数がかかる場合があります。<br>運送会社の配送状況により延着の場合がございます。ご了承ください。</small>
  1942. \t\t\t\t\t\t\t</section>
  1943. \t\t\t\t\t\t\t<!-- /出荷の目安 -->
  1944. \t\t\t\t\t\t\t<!-- お客様の声 -->
  1945. \t\t\t\t\t\t\t<section class=\"productsSingle-voice\">
  1946. \t\t\t\t\t\t\t\t<h3 class=\"mod-hl-02 productsSingle-voice-hl\">
  1947. \t\t\t\t\t\t\t\t\t<span class=\"isJp\">お客様の声</span>
  1948. \t\t\t\t\t\t\t\t</h3>
  1949. \t\t\t\t\t\t\t\t{% import _self as stars %}
  1950. \t\t\t\t\t\t\t\t{# 星テキスト生成用マクロ #}
  1951. \t\t\t\t\t\t\t\t{% macro stars(positive, negative) %}
  1952. \t\t\t\t\t\t\t\t\t{% set positive_stars = [\"\", \"★\", \"★★\", \"★★★\", \"★★★★\", \"★★★★★\"] %}
  1953. \t\t\t\t\t\t\t\t\t{% set negative_stars = [\"\", \"☆\", \"☆☆\", \"☆☆☆\", \"☆☆☆☆\", \"☆☆☆☆☆\"] %}
  1954. \t\t\t\t\t\t\t\t\t{{ positive_stars[positive] }}{{ negative_stars[negative] }}
  1955. \t\t\t\t\t\t\t\t{% endmacro %}
  1956. \t\t\t\t\t\t\t\t
  1957. \t\t\t\t\t\t\t\t<div id=\"product_review_area\">
  1958. \t\t\t\t\t\t\t\t\t<div class=\"ec-role\">
  1959. \t\t\t\t\t\t\t\t\t\t{% set positive_avg_star = ProductReviewAvg %}
  1960. \t\t\t\t\t\t\t\t\t\t{% set negative_avg_star = 5 - positive_avg_star %}
  1961. \t\t\t\t\t\t\t\t\t\t<div id=\"reviewContent\">
  1962. \t\t\t\t\t\t\t\t\t\t\t{% if ProductReviews %}
  1963. \t\t\t\t\t\t\t\t\t\t\t\t<div class=\"productsSingle-voiceContainer\">
  1964. \t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"mod-voiceInner\">
  1965. \t\t\t\t\t\t\t\t\t\t\t\t\t\t{% for ProductReview in ProductReviews %}
  1966. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"voiceBox\">
  1967. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"voiceBoxInner\">
  1968. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"voiceBox-textBlock\">
  1969. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<h4 class=\"voiceBox-productsName\">{{ ProductReview.Product.name }}<br>{{ ProductReview.title }}</h4>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  1970. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"voiceBox-nameBlock marginTop10\">
  1971. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"voiceBox-name\">
  1972. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{% if ProductReview.reviewer_url %}
  1973. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"{{ ProductReview.reviewer_url }}\" rel=\"ugc nofollow\"
  1974. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttarget=\"_blank\">{{ 'product_review.front.product_detail.name'|trans({ '%name%': ProductReview.reviewer_name }) }}</a>
  1975. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{% else %}
  1976. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{ 'product_review.front.product_detail.name'|trans({ '%name%': ProductReview.reviewer_name }) }}
  1977. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{% endif %}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  1978. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</p>
  1979. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p>
  1980. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{% set positive_star = ProductReview.recommend_level %}
  1981. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{% set negative_star = 5 - positive_star %}
  1982. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"recommend_level\">
  1983. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{ stars.stars(positive_star, negative_star) }}
  1984. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  1985. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</p>
  1986. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>
  1987. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"voiceBox-text\">{{ ProductReview.comment|nl2br }}</p>
  1988. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>
  1989. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>
  1990. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>
  1991. \t\t\t\t\t\t\t\t\t\t\t\t\t\t{% endfor %}
  1992. \t\t\t\t\t\t\t\t\t\t\t\t\t</div>
  1993. \t\t\t\t\t\t\t\t\t\t\t\t</div>\t\t\t\t\t\t\t\t\t\t
  1994. \t\t\t\t\t\t\t\t\t\t\t{% else %}
  1995. \t\t\t\t\t\t\t\t\t\t\t\t<p class=\"textCenter marginTop30\">{{ 'product_review.front.product_detail.no_review'|trans }}</p>
  1996. \t\t\t\t\t\t\t\t\t\t\t{% endif %}
  1997. \t\t\t\t\t\t\t\t\t\t</div>
  1998. \t\t\t\t\t\t\t\t\t\t<div>
  1999. \t\t\t\t\t\t\t\t\t\t\t<a href=\"{{ url('product_review_index', { id: Product.id }) }}\"
  2000. \t\t\t\t\t\t\t\t\t\t\tclass=\"mod-shopping-btn isReview\">
  2001. \t\t\t\t\t\t\t\t\t\t\t\t<span class=\"btnInner\">{{ 'product_review.front.product_detail.post_review'|trans }}</span>
  2002. \t\t\t\t\t\t\t\t\t\t\t</a>
  2003. \t\t\t\t\t\t\t\t\t\t</div>
  2004. \t\t\t\t\t\t\t\t\t</div>
  2005. \t\t\t\t\t\t\t\t</div>\t\t\t\t\t\t\t\t
  2006. \t\t\t\t\t\t\t</section>
  2007. \t\t\t\t\t\t\t<!-- /お客様の声 -->
  2008. \t\t\t\t\t\t\t<!-- 関連商品 -->
  2009. \t\t\t\t\t\t\t{% if Product.RelatedProducts is not empty %}
  2010. \t\t\t\t\t\t\t<section class=\"products-subSection\">
  2011. \t\t\t\t\t\t\t\t<h3 class=\"mod-hl-02\">
  2012. \t\t\t\t\t\t\t\t\t<span class=\"isJp\">関連商品</span>
  2013. \t\t\t\t\t\t\t\t</h3>
  2014. \t\t\t\t\t\t\t\t<div class=\"mod-products-list\">
  2015. \t\t\t\t\t\t\t\t\t{% for RelatedProduct in Product.RelatedProducts %}
  2016. \t\t\t\t\t\t\t\t\t\t{% set ChildProduct = RelatedProduct.ChildProduct %}
  2017. \t\t\t\t\t\t\t\t\t\t{% if ChildProduct.Status.id == constant(\"Eccube\\\\Entity\\\\Master\\\\ProductStatus::DISPLAY_SHOW\") %}
  2018. \t\t\t\t\t\t\t\t\t\t\t<article class=\"productsBox\">
  2019. \t\t\t\t\t\t\t\t\t\t\t\t<a href=\"{{ url('product_detail', {id : ChildProduct.id}) }}\" class=\"productsBoxInner\">
  2020. \t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"productsBox-img\">
  2021. \t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"imgInner\">
  2022. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img src=\"{{ asset(RelatedProduct.ChildProduct.main_list_image|no_image_product, 'save_image') }}\" alt=\"\" {% if loop.index > 5 %} loading=\"lazy\" {% endif %} class=\"imgObjectFitCover\">
  2023. \t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>
  2024. \t\t\t\t\t\t\t\t\t\t\t\t\t</span>
  2025. \t\t\t\t\t\t\t\t\t\t\t\t\t<h3 class=\"productsBox-hl\">{{ RelatedProduct.ChildProduct.name }}</h3>
  2026. \t\t\t\t\t\t\t\t\t\t\t\t\t{% if Product.description_list %}
  2027. \t\t\t\t\t\t\t\t\t\t\t\t\t\t<p>{{ Product.description_list|raw|nl2br }}</p>
  2028. \t\t\t\t\t\t\t\t\t\t\t\t\t{% endif %}
  2029. \t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"productsBox-text\">
  2030. \t\t\t\t\t\t\t\t\t\t\t\t\t\t{% if RelatedProduct.ChildProduct.hasProductClass %}
  2031. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{% if RelatedProduct.ChildProduct.getPrice02Min == RelatedProduct.ChildProduct.getPrice02Max %}
  2032. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{ RelatedProduct.ChildProduct.getPrice02IncTaxMin|price }}
  2033. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{% else %}
  2034. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{ RelatedProduct.ChildProduct.getPrice02IncTaxMin|price }} ~ {{ RelatedProduct.ChildProduct.getPrice02IncTaxMax|price }}
  2035. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{% endif %}
  2036. \t\t\t\t\t\t\t\t\t\t\t\t\t\t{% else %}
  2037. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{ RelatedProduct.ChildProduct.getPrice02IncTaxMin|price }}
  2038. \t\t\t\t\t\t\t\t\t\t\t\t\t\t{% endif %}\t\t\t\t\t\t\t\t\t\t\t
  2039. \t\t\t\t\t\t\t\t\t\t\t\t\t\t円<small class=\"isSmall\">税込</small>
  2040. \t\t\t\t\t\t\t\t\t\t\t\t\t</p>\t\t\t\t\t\t\t\t\t\t\t\t\t
  2041. \t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"productsBox-text\">{{ RelatedProduct.content|raw }}</p>
  2042. \t\t\t\t\t\t\t\t\t\t\t\t</a>
  2043. \t\t\t\t\t\t\t\t\t\t\t</article>\t\t\t\t\t\t\t\t\t\t
  2044. \t\t\t\t\t\t\t\t\t\t{% endif %}
  2045. \t\t\t\t\t\t\t\t\t{% endfor %}
  2046. \t\t\t\t\t\t\t\t</div>
  2047. \t\t\t\t\t\t\t</section>
  2048. \t\t\t\t\t\t\t{% endif %}\t\t\t\t\t\t\t
  2049. \t\t\t\t\t\t\t<!-- /関連商品 -->
  2050. \t\t\t\t\t\t\t<!-- 最近チェックした商品 -->
  2051. \t\t\t\t\t\t\t{{ include('Block/items_checked.twig', ignore_missing = true) }}
  2052. \t\t\t\t\t\t\t<!-- /最近チェックした商品 -->\t\t
  2053. \t\t\t\t\t\t</section>
  2054. \t\t\t\t\t</div>
  2055. \t\t\t\t\t<!-- /PAGE CONTENTS -->
  2056. \t\t\t\t</div>
  2057. \t\t\t\t<!-- /メインコンテンツ -->
  2058. \t\t\t\t<!-- サイドメニュー -->
  2059. \t\t\t\t{{ include('Block/l_sub.twig', ignore_missing = true) }}
  2060. \t\t\t\t<!-- /サイドメニュー -->
  2061. \t\t\t</div>
  2062. \t\t</div>
  2063. \t</div>
  2064. {% endblock %}""__string_template__ef755d043ca75195efac5a7b0b023faecf3d2096108f773940123c1e1ce00dd4""");
  2065.     }
  2066. }