var/cache/dev/twig/86/869483483f558c9578d0a79dcfe11d579e84670443e1bf607822738aec2ac0bb.php line 53

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