var/cache/dev/twig/5e/5e5c3113f9b41fb713d774a515f2c1af1044ded03994d0316524bb5012307768.php line 40

Open in your IDE?
  1. <?php
  2. use Twig\Environment;
  3. use Twig\Error\LoaderError;
  4. use Twig\Error\RuntimeError;
  5. use Twig\Extension\SandboxExtension;
  6. use Twig\Markup;
  7. use Twig\Sandbox\SecurityError;
  8. use Twig\Sandbox\SecurityNotAllowedTagError;
  9. use Twig\Sandbox\SecurityNotAllowedFilterError;
  10. use Twig\Sandbox\SecurityNotAllowedFunctionError;
  11. use Twig\Source;
  12. use Twig\Template;
  13. /* Product/list.twig */
  14. class __TwigTemplate_2540083cd6d312e1063499d94ad38e033494c7a31043c32ede75cc0607468d8c 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/list.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/list.twig"));
  40.         // line 13
  41.         $context["body_class"] = "product_page";
  42.         // line 11
  43.         $this->parent $this->loadTemplate("default_frame.twig""Product/list.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 "    <link rel=\"stylesheet\" href=\"/html/plugins/ion-rangeslider/css/ion.rangeSlider.min.css\">
  60.     <style>
  61.         /* ============================================
  62.            サイドバー付き 2カラムレイアウト
  63.         ============================================ */
  64.         .ec-productListLayout {
  65.             display: flex;
  66.             gap: 32px;
  67.             align-items: flex-start;
  68.         }
  69.         /* ============================================
  70.            サイドバー(フィルターパネル)
  71.         ============================================ */
  72.         .ec-filterSidebar {
  73.             position: static;
  74.             margin: 20px;
  75.             width: 240px;
  76.             flex-shrink: 0;
  77.         }
  78.         /* Wide desktop: center the main column to align with site grid (1130 + 280 sidebar) */
  79.         @media (min-width: 1410px) {
  80. \t\t\t.ec-searchnavRole {
  81. \t\t\t\tmargin-left: calc((100% - 1130px - 280px) / 2);
  82. \t\t\t}
  83. \t\t\t.ec-shelfRole {
  84. \t\t\t\tmargin-left: calc((100% - 1130px - 280px) / 2);
  85. \t\t\t}
  86. \t\t\t.ec-pagerRole {
  87. \t\t\t\tmargin-left: calc((100% - 1130px - 280px) / 2);
  88. \t\t\t}
  89. \t\t}
  90.         .ec-filterSidebar__section {
  91.             background: #fff;
  92.             border: 1px solid #e8e8e8;
  93.             border-radius: 6px;
  94.             padding: 18px 16px;
  95.             margin-bottom: 16px;
  96.         }
  97.         .ec-filterSidebar__heading {
  98.             font-size: 13px;
  99.             font-weight: bold;
  100.             color: #222;
  101.             margin: 0 0 12px;
  102.             padding-bottom: 10px;
  103.             border-bottom: 2px solid #222;
  104.             letter-spacing: 0.05em;
  105.         }
  106.         /* カテゴリリスト */
  107.         .ec-filterSidebar__categoryList,
  108.         .ec-filterSidebar__categoryList ul {
  109.             list-style: none;
  110.             padding: 0;
  111.             margin: 0;
  112.         }
  113.         .ec-filterSidebar__categoryList li a {
  114.             display: block;
  115.             padding: 6px 8px;
  116.             font-size: 13px;
  117.             color: #444;
  118.             text-decoration: none;
  119.             border-radius: 4px;
  120.             transition: background 0.15s, color 0.15s;
  121.         }
  122.         .ec-filterSidebar__categoryList li a:hover {
  123.             background: #f5f5f5;
  124.             color: #222;
  125.         }
  126.         .ec-filterSidebar__categoryList li.is-active > a {
  127.             font-weight: bold;
  128.             color: #c00;
  129.             background: #fff5f5;
  130.         }
  131.         /* サブカテゴリ */
  132.         .ec-filterSidebar__categoryList ul {
  133.             padding-left: 12px;
  134.             margin-top: 2px;
  135.         }
  136.         .ec-filterSidebar__categoryList ul li a {
  137.             font-size: 12px;
  138.             color: #666;
  139.             padding: 4px 8px;
  140.         }
  141.         /* メーカーリスト */
  142.         .ec-filterSidebar__makerList {
  143.             list-style: none;
  144.             padding: 0;
  145.             margin: 0;
  146.         }
  147.         .ec-filterSidebar__makerList li {
  148.             border-bottom: 1px solid #f0f0f0;
  149.         }
  150.         .ec-filterSidebar__makerList li:last-child {
  151.             border-bottom: none;
  152.         }
  153.         .ec-filterSidebar__makerList li a {
  154.             display: flex;
  155.             align-items: center;
  156.             gap: 6px;
  157.             padding: 7px 6px;
  158.             font-size: 13px;
  159.             color: #444;
  160.             text-decoration: none;
  161.             transition: color 0.15s;
  162.         }
  163.         .ec-filterSidebar__makerList li a:hover {
  164.             color: #c00;
  165.         }
  166.         .ec-filterSidebar__makerList li.is-active a {
  167.             font-weight: bold;
  168.             color: #c00;
  169.         }
  170.         .ec-filterSidebar__makerList li.is-active a::before {
  171.             content: \"✓\";
  172.             font-size: 11px;
  173.             color: #c00;
  174.         }
  175.         /* 価格帯フィルター */
  176.         .ec-filterSidebar__priceDisplay {
  177.             text-align: center;
  178.             font-size: 13px;
  179.             color: #333;
  180.             margin-bottom: 12px;
  181.             font-weight: bold;
  182.         }
  183.         .ec-filterSidebar__priceDisplay span {
  184.             color: #c00;
  185.         }
  186.         .ec-filterSidebar__priceSliderWrap {
  187.             /* Side padding holds room for ion-rangeSlider .irs-to / .irs-from labels
  188.                so the max-value tooltip never spills past the sidebar edge. */
  189.             padding: 0 14px;
  190.             margin-bottom: 16px;
  191.         }
  192.         .ec-filterSidebar__priceApply {
  193.             display: block;
  194.             width: 100%;
  195.             padding: 8px;
  196.             background: #222;
  197.             color: #fff;
  198.             border: none;
  199.             border-radius: 4px;
  200.             font-size: 13px;
  201.             cursor: pointer;
  202.             text-align: center;
  203.             transition: background 0.2s;
  204.         }
  205.         .ec-filterSidebar__priceApply:hover {
  206.             background: #444;
  207.         }
  208.         .ec-filterSidebar__pricePreset {
  209.             list-style: none;
  210.             padding: 0;
  211.             margin: 10px 0 0;
  212.         }
  213.         .ec-filterSidebar__pricePreset li a {
  214.             display: block;
  215.             padding: 5px 6px;
  216.             font-size: 12px;
  217.             color: #666;
  218.             text-decoration: none;
  219.             border-radius: 4px;
  220.             transition: background 0.15s;
  221.         }
  222.         .ec-filterSidebar__pricePreset li a:hover {
  223.             background: #f5f5f5;
  224.             color: #333;
  225.         }
  226.         /* 絞り込みリセット */
  227.         .ec-filterSidebar__reset a {
  228.             display: block;
  229.             text-align: center;
  230.             padding: 8px;
  231.             font-size: 12px;
  232.             color: #888;
  233.             text-decoration: underline;
  234.             border: 1px solid #ddd;
  235.             border-radius: 4px;
  236.             transition: color 0.15s, border-color 0.15s;
  237.         }
  238.         .ec-filterSidebar__reset a:hover {
  239.             color: #c00;
  240.             border-color: #c00;
  241.         }
  242.         /* 現在の絞り込み条件バッジ */
  243.         .ec-filterActive {
  244.             display: flex;
  245.             flex-wrap: wrap;
  246.             gap: 6px;
  247.             margin-bottom: 12px;
  248.             padding: 10px 12px;
  249.             background: #f9f9f9;
  250.             border: 1px solid #e8e8e8;
  251.             border-radius: 6px;
  252.         }
  253.         .ec-filterActive__label {
  254.             font-size: 11px;
  255.             color: #888;
  256.             align-self: center;
  257.             margin-right: 4px;
  258.         }
  259.         .ec-filterActive__tag {
  260.             display: inline-flex;
  261.             align-items: center;
  262.             gap: 4px;
  263.             padding: 3px 8px;
  264.             background: #222;
  265.             color: #fff;
  266.             border-radius: 20px;
  267.             font-size: 11px;
  268.         }
  269.         .ec-filterActive__tag a {
  270.             color: #aaa;
  271.             text-decoration: none;
  272.             font-size: 12px;
  273.             line-height: 1;
  274.         }
  275.         .ec-filterActive__tag a:hover {
  276.             color: #fff;
  277.         }
  278.         /* メインコンテンツ側 */
  279.         .ec-productListMain {
  280.             flex: 1;
  281.             min-width: 0;
  282.             width: 100%;  
  283.         }
  284.         /* ion-rangeslider カスタマイズ */
  285.         .irs--flat .irs-bar {
  286.             background-color: #222;
  287.         }
  288.         .irs--flat .irs-handle > i:first-child {
  289.             background-color: #222;
  290.         }
  291.         .irs--flat .irs-from,
  292.         .irs--flat .irs-to,
  293.         .irs--flat .irs-single {
  294.             background-color: #222;
  295.             font-size: 11px;
  296.         }
  297.         /* Tablet (768-1199px): stack sidebar above grid to avoid overlap */
  298.         @media (min-width: 768px) and (max-width: 1199px) {
  299.             .ec-productListLayout {
  300.                 flex-direction: column;
  301.                 gap: 0;
  302.             }
  303.             .ec-filterSidebar {
  304.                 width: 100%;
  305.                 margin: 0 0 16px;
  306.             }
  307.             .ec-productListMain {
  308.                 width: 100%;
  309.             }
  310.             /* Allow CTA to wrap and avoid truncation in 2-col tablet grid */
  311.             .ec-shelfGrid .ec-blockBtn--action {
  312.                 white-space: normal;
  313.                 line-height: 1.3;
  314.                 height: auto;
  315.                 min-height: 56px;
  316.                 padding: 12px 8px;
  317.                 font-size: 0.8rem;
  318.             }
  319.         }
  320.         /* Price slider tooltip: prevent label overlap when results are empty */
  321.         .ec-productListMain .ec-shelfRole:empty + .ec-pagerRole,
  322.         .ec-productListMain:has(.ec-shelfGrid:empty) .ec-filterSidebar__priceSliderWrap .irs-from,
  323.         .ec-productListMain:has(.ec-shelfGrid:empty) .ec-filterSidebar__priceSliderWrap .irs-to,
  324.         .ec-productListMain:has(.ec-shelfGrid:empty) .ec-filterSidebar__priceSliderWrap .irs-single {
  325.             visibility: hidden;
  326.         }
  327.         .ec-filterSidebar__priceSliderWrap .irs {
  328.             position: relative;
  329.             z-index: 1;
  330.         }
  331.         .ec-filterSidebar__priceSliderWrap .irs-from,
  332.         .ec-filterSidebar__priceSliderWrap .irs-to,
  333.         .ec-filterSidebar__priceSliderWrap .irs-single {
  334.             white-space: nowrap;
  335.         }
  336.         /* モバイル対応 */
  337.         @media (max-width: 767px) {
  338.             /* 横スクロール禁止 */
  339.             body, html {
  340.                 overflow-x: hidden;
  341.                 max-width: 100vw;
  342.             }
  343.             .ec-productListLayout {
  344.                 flex-direction: column;
  345.                 gap: 0;
  346.             }
  347.             .ec-filterSidebar {
  348.                 width: 100%;
  349.                 margin: 0;
  350.             }
  351.             /* スマホで商品一覧を確実に表示 */
  352.             .ec-productListMain {
  353.                 width: 100%;
  354.                 flex: none;
  355.                 margin: 0;
  356.             }
  357.             .ec-filterSidebar__section {
  358.                 margin-bottom: 10px;
  359.             }
  360.             /* Allow CTA to wrap and avoid truncation in narrow mobile cards */
  361.             .ec-shelfGrid .ec-blockBtn--action {
  362.                 white-space: normal;
  363.                 word-break: keep-all;
  364.                 overflow-wrap: anywhere;
  365.                 line-height: 1.3;
  366.                 height: auto;
  367.                 min-height: 56px;
  368.                 padding: 12px 8px;
  369.                 font-size: 0.8rem;
  370.             }
  371.             /* モバイルではアコーディオン形式 */
  372.             .ec-filterSidebar__body {
  373.                 display: none;
  374.             }
  375.             .ec-filterSidebar__body.is-open {
  376.                 display: block;
  377.             }
  378.             .ec-filterSidebar__heading {
  379.                 cursor: pointer;
  380.                 display: flex;
  381.                 justify-content: space-between;
  382.                 align-items: center;
  383.                 margin-bottom: 0;
  384.                 padding-bottom: 0;
  385.                 border-bottom: none;
  386.             }
  387.             .ec-filterSidebar__heading.is-open {
  388.                 margin-bottom: 12px;
  389.                 padding-bottom: 10px;
  390.                 border-bottom: 2px solid #222;
  391.             }
  392.             .ec-filterSidebar__heading::after {
  393.                 content: \"▼\";
  394.                 font-size: 10px;
  395.                 color: #888;
  396.                 transition: transform 0.2s;
  397.             }
  398.             .ec-filterSidebar__heading.is-open::after {
  399.                 transform: rotate(180deg);
  400.             }
  401.         }
  402.     </style>
  403. ";
  404.         
  405.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  406.         
  407.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  408.     }
  409.     // line 414
  410.     public function block_javascript($context, array $blocks = [])
  411.     {
  412.         $macros $this->macros;
  413.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  414.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""javascript"));
  415.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  416.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""javascript"));
  417.         // line 415
  418.         echo "    <script>
  419.         eccube.productsClassCategories = {
  420.             ";
  421.         // line 417
  422.         $context['_parent'] = $context;
  423.         $context['_seq'] = twig_ensure_traversable((isset($context["pagination"]) || array_key_exists("pagination"$context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.'417$this->source); })()));
  424.         $context['loop'] = [
  425.           'parent' => $context['_parent'],
  426.           'index0' => 0,
  427.           'index'  => 1,
  428.           'first'  => true,
  429.         ];
  430.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  431.             $length count($context['_seq']);
  432.             $context['loop']['revindex0'] = $length 1;
  433.             $context['loop']['revindex'] = $length;
  434.             $context['loop']['length'] = $length;
  435.             $context['loop']['last'] = === $length;
  436.         }
  437.         foreach ($context['_seq'] as $context["_key"] => $context["Product"]) {
  438.             // line 418
  439.             echo "            \"";
  440.             echo twig_escape_filter($this->envtwig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsefalse418), "js"), "html"nulltrue);
  441.             echo "\": ";
  442.             echo $this->extensions['Eccube\Twig\Extension\EccubeExtension']->getClassCategoriesAsJson($context["Product"]);
  443.             if ((twig_get_attribute($this->env$this->source$context["loop"], "last", [], "any"falsefalsefalse418) == false)) {
  444.                 echo ", ";
  445.             }
  446.             // line 419
  447.             echo "            ";
  448.             ++$context['loop']['index0'];
  449.             ++$context['loop']['index'];
  450.             $context['loop']['first'] = false;
  451.             if (isset($context['loop']['length'])) {
  452.                 --$context['loop']['revindex0'];
  453.                 --$context['loop']['revindex'];
  454.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  455.             }
  456.         }
  457.         $_parent $context['_parent'];
  458.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['Product'], $context['_parent'], $context['loop']);
  459.         $context array_intersect_key($context$_parent) + $_parent;
  460.         // line 420
  461.         echo "        };
  462.         \$(function() {
  463.             // 表示件数を変更
  464.             \$('.disp-number').change(function() {
  465.                 var dispNumber = \$(this).val();
  466.                 \$('#disp_number').val(dispNumber);
  467.                 \$('#pageno').val(1);
  468.                 \$(\"#form1\").submit();
  469.             });
  470.             // 並び順を変更
  471.             \$('.order-by').change(function() {
  472.                 var orderBy = \$(this).val();
  473.                 \$('#orderby').val(orderBy);
  474.                 \$('#pageno').val(1);
  475.                 \$(\"#form1\").submit();
  476.             });
  477.             // ==============================
  478.             // 価格帯スライダー(ion-rangeslider)
  479.             // ==============================
  480.             var priceMin = parseInt('";
  481.         // line 443
  482.         ((twig_get_attribute($this->env$this->sourcetwig_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.'443$this->source); })()), "request", [], "any"falsefalsefalse443), "query", [], "any"falsefalsefalse443), "get", [=> "price_min"], "method"falsefalsefalse443)) ? (print (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["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'443$this->source); })()), "request", [], "any"falsefalsefalse443), "query", [], "any"falsefalsefalse443), "get", [=> "price_min"], "method"falsefalsefalse443), "html"nulltrue))) : (print (0)));
  483.         echo "') || 0;
  484.             var priceMax = parseInt('";
  485.         // line 444
  486.         ((twig_get_attribute($this->env$this->sourcetwig_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.'444$this->source); })()), "request", [], "any"falsefalsefalse444), "query", [], "any"falsefalsefalse444), "get", [=> "price_max"], "method"falsefalsefalse444)) ? (print (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["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'444$this->source); })()), "request", [], "any"falsefalsefalse444), "query", [], "any"falsefalsefalse444), "get", [=> "price_max"], "method"falsefalsefalse444), "html"nulltrue))) : (print (5000000)));
  487.         echo "') || 5000000;
  488.             \$(\"#price-range-slider\").ionRangeSlider({
  489.                 type: \"double\",
  490.                 min: 0,
  491.                 max: 5000000,
  492.                 from: priceMin,
  493.                 to: priceMax,
  494.                 step: 10000,
  495.                 prettify_enabled: true,
  496.                 prettify_separator: \",\",
  497.                 postfix: \"円\",
  498.                 onFinish: function(data) {
  499.                     \$('#price_min_val').val(data.from);
  500.                     \$('#price_max_val').val(data.to);
  501.                     // 表示更新
  502.                     \$('#price-display-min').text(Number(data.from).toLocaleString());
  503.                     \$('#price-display-max').text(Number(data.to).toLocaleString());
  504.                 }
  505.             });
  506.             // 価格フォーム送信
  507.             \$('#price-filter-apply').on('click', function() {
  508.                 var min = \$('#price_min_val').val();
  509.                 var max = \$('#price_max_val').val();
  510.                 var url = new URL(window.location.href);
  511.                 url.searchParams.set('price_min', min);
  512.                 url.searchParams.set('price_max', max);
  513.                 url.searchParams.delete('pageno');
  514.                 window.location.href = url.toString();
  515.             });
  516.             // モバイル:アコーディオン(初期状態を閉じる)
  517.             function initMobileAccordion() {
  518.                 if (\$(window).width() <= 767) {
  519.                     \$('.ec-filterSidebar__heading').removeClass('is-open');
  520.                     \$('.ec-filterSidebar__body').removeClass('is-open');
  521.                 }
  522.             }
  523.             initMobileAccordion();
  524.             \$(window).on('resize', initMobileAccordion);
  525.             \$('.ec-filterSidebar__heading').on('click', function() {
  526.                 if (\$(window).width() <= 767) {
  527.                     \$(this).toggleClass('is-open');
  528.                     \$(this).next('.ec-filterSidebar__body').toggleClass('is-open');
  529.                 }
  530.             });
  531.         });
  532.         \$('.ec-modal-wrap').on('click', function(e) {
  533.             e.stopPropagation();
  534.         });
  535.         \$('.ec-modal-overlay, .ec-modal, .ec-modal-close, .ec-inlineBtn--cancel').on('click', function() {
  536.             \$('.ec-modal').hide()
  537.         });
  538. \t    // 価格プリセットのクイック適用
  539. \t    function applyPrice(min, max) {
  540. \t        var url = new URL(window.location.href);
  541. \t        url.searchParams.set('price_min', min);
  542. \t        url.searchParams.set('price_max', max);
  543. \t        url.searchParams.delete('pageno');
  544. \t        window.location.href = url.toString();
  545. \t    }
  546.     </script>
  547.     <script src=\"/html/plugins/ion-rangeslider/js/ion.rangeSlider.min.js\"></script>
  548. ";
  549.         
  550.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  551.         
  552.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  553.     }
  554.     // line 514
  555.     public function block_main($context, array $blocks = [])
  556.     {
  557.         $macros $this->macros;
  558.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  559.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""main"));
  560.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  561.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""main"));
  562.         // line 515
  563.         echo "
  564.         ";
  565.         // line 517
  566.         $context["hasFilter"] = (((twig_get_attribute($this->env$this->sourcetwig_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.'517$this->source); })()), "request", [], "any"falsefalsefalse517), "query", [], "any"falsefalsefalse517), "get", [=> "category_id"], "method"falsefalsefalse517) || twig_get_attribute($this->env$this->sourcetwig_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.'517$this->source); })()), "request", [], "any"falsefalsefalse517), "query", [], "any"falsefalsefalse517), "get", [=> "maker_id"], "method"falsefalsefalse517)) || twig_get_attribute($this->env$this->sourcetwig_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.'517$this->source); })()), "request", [], "any"falsefalsefalse517), "query", [], "any"falsefalsefalse517), "get", [=> "price_min"], "method"falsefalsefalse517)) || twig_get_attribute($this->env$this->sourcetwig_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.'517$this->source); })()), "request", [], "any"falsefalsefalse517), "query", [], "any"falsefalsefalse517), "get", [=> "price_max"], "method"falsefalsefalse517));
  567.         // line 518
  568.         echo "
  569.         ";
  570.         // line 522
  571.         echo "        <div class=\"ec-productListLayout\">
  572.             ";
  573.         // line 525
  574.         echo "            <aside class=\"ec-filterSidebar\">
  575.                 ";
  576.         // line 527
  577.         echo "                <div class=\"ec-filterSidebar__section\">
  578.                     <h3 class=\"ec-filterSidebar__heading\">価格帯</h3>
  579.                     <div class=\"ec-filterSidebar__body is-open\">
  580.                         <div class=\"ec-filterSidebar__priceDisplay\">
  581.                             <span id=\"price-display-min\">";
  582.         // line 531
  583.         ((twig_get_attribute($this->env$this->sourcetwig_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.'531$this->source); })()), "request", [], "any"falsefalsefalse531), "query", [], "any"falsefalsefalse531), "get", [=> "price_min"], "method"falsefalsefalse531)) ? (print (twig_escape_filter($this->envtwig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_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.'531$this->source); })()), "request", [], "any"falsefalsefalse531), "query", [], "any"falsefalsefalse531), "get", [=> "price_min"], "method"falsefalsefalse531)), "html"nulltrue))) : (print ("0")));
  584.         echo "</span>円
  585.                             〜
  586.                             <span id=\"price-display-max\">";
  587.         // line 533
  588.         ((twig_get_attribute($this->env$this->sourcetwig_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.'533$this->source); })()), "request", [], "any"falsefalsefalse533), "query", [], "any"falsefalsefalse533), "get", [=> "price_max"], "method"falsefalsefalse533)) ? (print (twig_escape_filter($this->envtwig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_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.'533$this->source); })()), "request", [], "any"falsefalsefalse533), "query", [], "any"falsefalsefalse533), "get", [=> "price_max"], "method"falsefalsefalse533)), "html"nulltrue))) : (print ("5,000,000")));
  589.         echo "</span>円
  590.                         </div>
  591.                         <div class=\"ec-filterSidebar__priceSliderWrap\">
  592.                             <input type=\"text\" id=\"price-range-slider\" style=\"display:none;\">
  593.                             <input type=\"hidden\" id=\"price_min_val\" value=\"";
  594.         // line 537
  595.         ((twig_get_attribute($this->env$this->sourcetwig_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.'537$this->source); })()), "request", [], "any"falsefalsefalse537), "query", [], "any"falsefalsefalse537), "get", [=> "price_min"], "method"falsefalsefalse537)) ? (print (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["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'537$this->source); })()), "request", [], "any"falsefalsefalse537), "query", [], "any"falsefalsefalse537), "get", [=> "price_min"], "method"falsefalsefalse537), "html"nulltrue))) : (print (0)));
  596.         echo "\">
  597.                             <input type=\"hidden\" id=\"price_max_val\" value=\"";
  598.         // line 538
  599.         ((twig_get_attribute($this->env$this->sourcetwig_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.'538$this->source); })()), "request", [], "any"falsefalsefalse538), "query", [], "any"falsefalsefalse538), "get", [=> "price_max"], "method"falsefalsefalse538)) ? (print (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["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'538$this->source); })()), "request", [], "any"falsefalsefalse538), "query", [], "any"falsefalsefalse538), "get", [=> "price_max"], "method"falsefalsefalse538), "html"nulltrue))) : (print (5000000)));
  600.         echo "\">
  601.                         </div>
  602.                         <button id=\"price-filter-apply\" class=\"ec-filterSidebar__priceApply\">この価格帯で絞り込む</button>
  603.                         <ul class=\"ec-filterSidebar__pricePreset\">
  604.                             <li><a href=\"javascript:void(0);\" onclick=\"applyPrice(0, 300000)\">〜30万円</a></li>
  605.                             <li><a href=\"javascript:void(0);\" onclick=\"applyPrice(300000, 600000)\">30万円〜60万円</a></li>
  606.                             <li><a href=\"javascript:void(0);\" onclick=\"applyPrice(600000, 1000000)\">60万円〜100万円</a></li>
  607.                             <li><a href=\"javascript:void(0);\" onclick=\"applyPrice(1000000, 5000000)\">100万円〜</a></li>
  608.                         </ul>
  609.                     </div>
  610.                 </div>
  611.                 ";
  612.         // line 553
  613.         echo "                <div class=\"ec-filterSidebar__section\">
  614.                     <h3 class=\"ec-filterSidebar__heading\">ブランド</h3>
  615.                     <div class=\"ec-filterSidebar__body is-open\">
  616.                         <ul class=\"ec-filterSidebar__makerList\">
  617.                             ";
  618.         // line 557
  619.         if (array_key_exists("Makers"$context)) {
  620.             // line 558
  621.             echo "                                ";
  622.             $context['_parent'] = $context;
  623.             $context['_seq'] = twig_ensure_traversable((isset($context["Makers"]) || array_key_exists("Makers"$context) ? $context["Makers"] : (function () { throw new RuntimeError('Variable "Makers" does not exist.'558$this->source); })()));
  624.             foreach ($context['_seq'] as $context["_key"] => $context["MakerItem"]) {
  625.                 // line 559
  626.                 echo "                                    <li class=\"";
  627.                 echo ((( !(null === (isset($context["Maker"]) || array_key_exists("Maker"$context) ? $context["Maker"] : (function () { throw new RuntimeError('Variable "Maker" does not exist.'559$this->source); })())) && (twig_get_attribute($this->env$this->source, (isset($context["Maker"]) || array_key_exists("Maker"$context) ? $context["Maker"] : (function () { throw new RuntimeError('Variable "Maker" does not exist.'559$this->source); })()), "id", [], "any"falsefalsefalse559) == twig_get_attribute($this->env$this->source$context["MakerItem"], "id", [], "any"falsefalsefalse559)))) ? ("is-active") : (""));
  628.                 echo "\">
  629.                                         <a href=\"";
  630.                 // line 560
  631.                 echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_list");
  632.                 echo "?maker_id=";
  633.                 echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["MakerItem"], "id", [], "any"falsefalsefalse560), "html"nulltrue);
  634.                 if (twig_get_attribute($this->env$this->sourcetwig_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.'560$this->source); })()), "request", [], "any"falsefalsefalse560), "query", [], "any"falsefalsefalse560), "get", [=> "category_id"], "method"falsefalsefalse560)) {
  635.                     echo "&category_id=";
  636.                     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["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'560$this->source); })()), "request", [], "any"falsefalsefalse560), "query", [], "any"falsefalsefalse560), "get", [=> "category_id"], "method"falsefalsefalse560), "html"nulltrue);
  637.                 }
  638.                 echo "\">
  639.                                             ";
  640.                 // line 561
  641.                 echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["MakerItem"], "name", [], "any"falsefalsefalse561), "html"nulltrue);
  642.                 echo "
  643.                                         </a>
  644.                                     </li>
  645.                                 ";
  646.             }
  647.             $_parent $context['_parent'];
  648.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['MakerItem'], $context['_parent'], $context['loop']);
  649.             $context array_intersect_key($context$_parent) + $_parent;
  650.             // line 565
  651.             echo "                            ";
  652.         } else {
  653.             // line 566
  654.             echo "                                ";
  655.             // line 567
  656.             echo "                                ";
  657.             $context["makerList"] = [=> ["id" => 1"name" => "LIXIL"], => ["id" => 2"name" => "YKK AP"], => ["id" => 3"name" => "三協アルミ"], => ["id" => 4"name" => "四国化成"], => ["id" => 5"name" => "タカショー"], => ["id" => 6"name" => "ユニソン"], => ["id" => 7"name" => "エスビック"], => ["id" => 8"name" => "パナソニック"], => ["id" => 9"name" => "イナバ"], => ["id" => 10"name" => "ヨドコウ"], 10 => ["id" => 13"name" => "タクボ"]];
  658.             // line 580
  659.             echo "                                ";
  660.             $context['_parent'] = $context;
  661.             $context['_seq'] = twig_ensure_traversable((isset($context["makerList"]) || array_key_exists("makerList"$context) ? $context["makerList"] : (function () { throw new RuntimeError('Variable "makerList" does not exist.'580$this->source); })()));
  662.             foreach ($context['_seq'] as $context["_key"] => $context["maker"]) {
  663.                 // line 581
  664.                 echo "                                    <li class=\"";
  665.                 echo ((( !(null === (isset($context["Maker"]) || array_key_exists("Maker"$context) ? $context["Maker"] : (function () { throw new RuntimeError('Variable "Maker" does not exist.'581$this->source); })())) && (twig_get_attribute($this->env$this->source, (isset($context["Maker"]) || array_key_exists("Maker"$context) ? $context["Maker"] : (function () { throw new RuntimeError('Variable "Maker" does not exist.'581$this->source); })()), "id", [], "any"falsefalsefalse581) == twig_get_attribute($this->env$this->source$context["maker"], "id", [], "any"falsefalsefalse581)))) ? ("is-active") : (""));
  666.                 echo "\">
  667.                                         <a href=\"";
  668.                 // line 582
  669.                 echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_list");
  670.                 echo "?maker_id=";
  671.                 echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["maker"], "id", [], "any"falsefalsefalse582), "html"nulltrue);
  672.                 if (twig_get_attribute($this->env$this->sourcetwig_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.'582$this->source); })()), "request", [], "any"falsefalsefalse582), "query", [], "any"falsefalsefalse582), "get", [=> "category_id"], "method"falsefalsefalse582)) {
  673.                     echo "&category_id=";
  674.                     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["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'582$this->source); })()), "request", [], "any"falsefalsefalse582), "query", [], "any"falsefalsefalse582), "get", [=> "category_id"], "method"falsefalsefalse582), "html"nulltrue);
  675.                 }
  676.                 echo "\">
  677.                                             ";
  678.                 // line 583
  679.                 echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["maker"], "name", [], "any"falsefalsefalse583), "html"nulltrue);
  680.                 echo "
  681.                                         </a>
  682.                                     </li>
  683.                                 ";
  684.             }
  685.             $_parent $context['_parent'];
  686.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['maker'], $context['_parent'], $context['loop']);
  687.             $context array_intersect_key($context$_parent) + $_parent;
  688.             // line 587
  689.             echo "                            ";
  690.         }
  691.         // line 588
  692.         echo "                        </ul>
  693.                     </div>
  694.                 </div>
  695.                 ";
  696.         // line 592
  697.         echo "                <div class=\"ec-filterSidebar__section\">
  698.                     <h3 class=\"ec-filterSidebar__heading\">カテゴリ</h3>
  699.                     <div class=\"ec-filterSidebar__body is-open\">
  700.                         ";
  701.         // line 595
  702.         $context["categoryList"] = [=> ["id" => 7"name" => "カーポート・車庫""children" => []], => ["id" => 16"name" => "ガレージ・倉庫""children" => []], => ["id" => 8"name" => "サイクルポート・駐輪場""children" => []], => ["id" => 9"name" => "ゲート""children" => [=> ["id" => 30"name" => "跳ね上げ式ゲート"], => ["id" => 29"name" => "伸縮ゲート"], => ["id" => 31"name" => "ガレージシャッター"]]], => ["id" => 12"name" => "テラス""children" => [=> ["id" => 33"name" => "テラス囲い"], => ["id" => 32"name" => "テラス屋根"]]], => ["id" => 19"name" => "ベランダ・バルコニー""children" => [=> ["id" => 35"name" => "ベランダ・バルコニー屋根"], => ["id" => 34"name" => "ベランダ・バルコニー"]]], => ["id" => 18"name" => "オーニング・日よけ""children" => []], => ["id" => 11"name" => "ウッドデッキ""children" => [=> ["id" => 37"name" => "タイルデッキ"], => ["id" => 36"name" => "ウッドデッキ"]]], => ["id" => 14"name" => "フェンス・柵""children" => []], => ["id" => 25"name" => "門扉""children" => []], 10 => ["id" => 13"name" => "ポスト・門柱宅配ボックス""children" => []], 11 => ["id" => 15"name" => "物置・収納・屋外倉庫""children" => []], 12 => ["id" => 20"name" => "ガーデンファニチャー""children" => []], 13 => ["id" => 22"name" => "人工芝""children" => []], 14 => ["id" => 17"name" => "内窓・二重窓""children" => []], 15 => ["id" => 26"name" => "その他""children" => [=> ["id" => 38"name" => "パーゴラ"], => ["id" => 39"name" => "立水栓・ガーデンシンク"], => ["id" => 40"name" => "手すり"], => ["id" => 10"name" => "ストックヤード"], => ["id" => 27"name" => "ゴミステーション"], => ["id" => 42"name" => "面格子・窓格子"], => ["id" => 41"name" => "窓シャッター"], => ["id" => 43"name" => "玄関ドア"], => ["id" => 28"name" => "石材"], => ["id" => 44"name" => "照明"], 10 => ["id" => 21"name" => "DIY材料"]]]];
  703.         // line 638
  704.         echo "                        <ul class=\"ec-filterSidebar__categoryList\">
  705.                             <li class=\"";
  706.         // line 639
  707.         echo (((twig_test_empty(twig_get_attribute($this->env$this->sourcetwig_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.'639$this->source); })()), "request", [], "any"falsefalsefalse639), "query", [], "any"falsefalsefalse639), "get", [=> "category_id"], "method"falsefalsefalse639)) && (null === (isset($context["Maker"]) || array_key_exists("Maker"$context) ? $context["Maker"] : (function () { throw new RuntimeError('Variable "Maker" does not exist.'639$this->source); })())))) ? ("is-active") : (""));
  708.         echo "\">
  709.                                 <a href=\"";
  710.         // line 640
  711.         echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_list");
  712.         echo "\">すべて</a>
  713.                             </li>
  714.                             ";
  715.         // line 642
  716.         $context['_parent'] = $context;
  717.         $context['_seq'] = twig_ensure_traversable((isset($context["categoryList"]) || array_key_exists("categoryList"$context) ? $context["categoryList"] : (function () { throw new RuntimeError('Variable "categoryList" does not exist.'642$this->source); })()));
  718.         foreach ($context['_seq'] as $context["_key"] => $context["cat"]) {
  719.             // line 643
  720.             echo "                                <li class=\"";
  721.             echo (((twig_get_attribute($this->env$this->sourcetwig_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.'643$this->source); })()), "request", [], "any"falsefalsefalse643), "query", [], "any"falsefalsefalse643), "get", [=> "category_id"], "method"falsefalsefalse643) == twig_get_attribute($this->env$this->source$context["cat"], "id", [], "any"falsefalsefalse643))) ? ("is-active") : (""));
  722.             echo "\">
  723.                                     <a href=\"";
  724.             // line 644
  725.             echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_list");
  726.             echo "?category_id=";
  727.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["cat"], "id", [], "any"falsefalsefalse644), "html"nulltrue);
  728.             if (twig_get_attribute($this->env$this->sourcetwig_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.'644$this->source); })()), "request", [], "any"falsefalsefalse644), "query", [], "any"falsefalsefalse644), "get", [=> "maker_id"], "method"falsefalsefalse644)) {
  729.                 echo "&maker_id=";
  730.                 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["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'644$this->source); })()), "request", [], "any"falsefalsefalse644), "query", [], "any"falsefalsefalse644), "get", [=> "maker_id"], "method"falsefalsefalse644), "html"nulltrue);
  731.             }
  732.             echo "\">
  733.                                         ";
  734.             // line 645
  735.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["cat"], "name", [], "any"falsefalsefalse645), "html"nulltrue);
  736.             echo "
  737.                                     </a>
  738.                                     ";
  739.             // line 647
  740.             if ((twig_length_filter($this->envtwig_get_attribute($this->env$this->source$context["cat"], "children", [], "any"falsefalsefalse647)) > 0)) {
  741.                 // line 648
  742.                 echo "                                        <ul>
  743.                                             ";
  744.                 // line 649
  745.                 $context['_parent'] = $context;
  746.                 $context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env$this->source$context["cat"], "children", [], "any"falsefalsefalse649));
  747.                 foreach ($context['_seq'] as $context["_key"] => $context["child"]) {
  748.                     // line 650
  749.                     echo "                                                <li class=\"";
  750.                     echo (((twig_get_attribute($this->env$this->sourcetwig_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.'650$this->source); })()), "request", [], "any"falsefalsefalse650), "query", [], "any"falsefalsefalse650), "get", [=> "category_id"], "method"falsefalsefalse650) == twig_get_attribute($this->env$this->source$context["child"], "id", [], "any"falsefalsefalse650))) ? ("is-active") : (""));
  751.                     echo "\">
  752.                                                     <a href=\"";
  753.                     // line 651
  754.                     echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_list");
  755.                     echo "?category_id=";
  756.                     echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["child"], "id", [], "any"falsefalsefalse651), "html"nulltrue);
  757.                     if (twig_get_attribute($this->env$this->sourcetwig_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.'651$this->source); })()), "request", [], "any"falsefalsefalse651), "query", [], "any"falsefalsefalse651), "get", [=> "maker_id"], "method"falsefalsefalse651)) {
  758.                         echo "&maker_id=";
  759.                         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["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'651$this->source); })()), "request", [], "any"falsefalsefalse651), "query", [], "any"falsefalsefalse651), "get", [=> "maker_id"], "method"falsefalsefalse651), "html"nulltrue);
  760.                     }
  761.                     echo "\">
  762.                                                         ";
  763.                     // line 652
  764.                     echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["child"], "name", [], "any"falsefalsefalse652), "html"nulltrue);
  765.                     echo "
  766.                                                     </a>
  767.                                                 </li>
  768.                                             ";
  769.                 }
  770.                 $_parent $context['_parent'];
  771.                 unset($context['_seq'], $context['_iterated'], $context['_key'], $context['child'], $context['_parent'], $context['loop']);
  772.                 $context array_intersect_key($context$_parent) + $_parent;
  773.                 // line 656
  774.                 echo "                                        </ul>
  775.                                     ";
  776.             }
  777.             // line 658
  778.             echo "                                </li>
  779.                             ";
  780.         }
  781.         $_parent $context['_parent'];
  782.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['cat'], $context['_parent'], $context['loop']);
  783.         $context array_intersect_key($context$_parent) + $_parent;
  784.         // line 660
  785.         echo "                        </ul>
  786.                     </div>
  787.                 </div>
  788.                 ";
  789.         // line 665
  790.         echo "                ";
  791.         if ((isset($context["hasFilter"]) || array_key_exists("hasFilter"$context) ? $context["hasFilter"] : (function () { throw new RuntimeError('Variable "hasFilter" does not exist.'665$this->source); })())) {
  792.             // line 666
  793.             echo "                    <div class=\"ec-filterSidebar__reset\">
  794.                         <a href=\"";
  795.             // line 667
  796.             echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_list");
  797.             echo "\">絞り込みをすべてリセット</a>
  798.                     </div>
  799.                 ";
  800.         }
  801.         // line 670
  802.         echo "
  803.             </aside>
  804.             ";
  805.         // line 673
  806.         echo "
  807.             ";
  808.         // line 675
  809.         echo "            <div class=\"ec-productListMain\">
  810.     ";
  811.         // line 676
  812.         if ((twig_length_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["search_form"]) || array_key_exists("search_form"$context) ? $context["search_form"] : (function () { throw new RuntimeError('Variable "search_form" does not exist.'676$this->source); })()), "category_id", [], "any"falsefalsefalse676), "vars", [], "any"falsefalsefalse676), "errors", [], "any"falsefalsefalse676)) > 0)) {
  813.             // line 677
  814.             echo "        <div class=\"ec-searchnavRole\">
  815.             <p class=\"errormsg text-danger\">";
  816.             // line 678
  817.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("ご指定のカテゴリは存在しません"), "html"nulltrue);
  818.             echo "</p>
  819.         </div>
  820.     ";
  821.         } else {
  822.             // line 681
  823.             echo "        ";
  824.             // line 682
  825.             echo "        <div class=\"ec-searchnavRole\">
  826.             <form name=\"form1\" id=\"form1\" method=\"get\" action=\"?\">
  827.                 ";
  828.             // line 684
  829.             $context['_parent'] = $context;
  830.             $context['_seq'] = twig_ensure_traversable((isset($context["search_form"]) || array_key_exists("search_form"$context) ? $context["search_form"] : (function () { throw new RuntimeError('Variable "search_form" does not exist.'684$this->source); })()));
  831.             foreach ($context['_seq'] as $context["_key"] => $context["item"]) {
  832.                 // line 685
  833.                 echo "                    <input type=\"hidden\" id=\"";
  834.                 echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["item"], "vars", [], "any"falsefalsefalse685), "id", [], "any"falsefalsefalse685), "html"nulltrue);
  835.                 echo "\"
  836.                            name=\"";
  837.                 // line 686
  838.                 echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["item"], "vars", [], "any"falsefalsefalse686), "full_name", [], "any"falsefalsefalse686), "html"nulltrue);
  839.                 echo "\"
  840.                            ";
  841.                 // line 687
  842.                 if ( !twig_test_empty(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["item"], "vars", [], "any"falsefalsefalse687), "value", [], "any"falsefalsefalse687))) {
  843.                     echo "value=\"";
  844.                     echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["item"], "vars", [], "any"falsefalsefalse687), "value", [], "any"falsefalsefalse687), "html"nulltrue);
  845.                     echo "\" ";
  846.                 }
  847.                 echo "/>
  848.                 ";
  849.             }
  850.             $_parent $context['_parent'];
  851.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['item'], $context['_parent'], $context['loop']);
  852.             $context array_intersect_key($context$_parent) + $_parent;
  853.             // line 689
  854.             echo "            </form>
  855.             ";
  856.             // line 692
  857.             echo "            <div class=\"ec-searchnavRole__topicpath\">
  858.                 <ol class=\"ec-topicpath\">
  859.                     <li class=\"ec-topicpath__item\"><a href=\"";
  860.             // line 694
  861.             echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_list");
  862.             echo "\">";
  863.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("全て"), "html"nulltrue);
  864.             echo "</a></li>
  865.                     ";
  866.             // line 695
  867.             if ( !(null === (isset($context["Category"]) || array_key_exists("Category"$context) ? $context["Category"] : (function () { throw new RuntimeError('Variable "Category" does not exist.'695$this->source); })()))) {
  868.                 // line 696
  869.                 echo "                        ";
  870.                 $context['_parent'] = $context;
  871.                 $context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env$this->source, (isset($context["Category"]) || array_key_exists("Category"$context) ? $context["Category"] : (function () { throw new RuntimeError('Variable "Category" does not exist.'696$this->source); })()), "path", [], "any"falsefalsefalse696));
  872.                 $context['loop'] = [
  873.                   'parent' => $context['_parent'],
  874.                   'index0' => 0,
  875.                   'index'  => 1,
  876.                   'first'  => true,
  877.                 ];
  878.                 if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  879.                     $length count($context['_seq']);
  880.                     $context['loop']['revindex0'] = $length 1;
  881.                     $context['loop']['revindex'] = $length;
  882.                     $context['loop']['length'] = $length;
  883.                     $context['loop']['last'] = === $length;
  884.                 }
  885.                 foreach ($context['_seq'] as $context["_key"] => $context["Path"]) {
  886.                     // line 697
  887.                     echo "                            <li class=\"ec-topicpath__divider\">|</li>
  888.                             <li class=\"ec-topicpath__item";
  889.                     // line 698
  890.                     if (twig_get_attribute($this->env$this->source$context["loop"], "last", [], "any"falsefalsefalse698)) {
  891.                         echo "--active";
  892.                     }
  893.                     echo "\">
  894.                                 <a href=\"";
  895.                     // line 699
  896.                     echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_list");
  897.                     echo "?category_id=";
  898.                     echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["Path"], "id", [], "any"falsefalsefalse699), "html"nulltrue);
  899.                     echo "\">";
  900.                     echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["Path"], "name", [], "any"falsefalsefalse699), "html"nulltrue);
  901.                     echo "</a>
  902.                             </li>
  903.                         ";
  904.                     ++$context['loop']['index0'];
  905.                     ++$context['loop']['index'];
  906.                     $context['loop']['first'] = false;
  907.                     if (isset($context['loop']['length'])) {
  908.                         --$context['loop']['revindex0'];
  909.                         --$context['loop']['revindex'];
  910.                         $context['loop']['last'] = === $context['loop']['revindex0'];
  911.                     }
  912.                 }
  913.                 $_parent $context['_parent'];
  914.                 unset($context['_seq'], $context['_iterated'], $context['_key'], $context['Path'], $context['_parent'], $context['loop']);
  915.                 $context array_intersect_key($context$_parent) + $_parent;
  916.                 // line 702
  917.                 echo "                    ";
  918.             }
  919.             // line 703
  920.             echo "                    ";
  921.             if ( !(null === (isset($context["Maker"]) || array_key_exists("Maker"$context) ? $context["Maker"] : (function () { throw new RuntimeError('Variable "Maker" does not exist.'703$this->source); })()))) {
  922.                 // line 704
  923.                 echo "                        <li class=\"ec-topicpath__divider\">|</li>
  924.                         <li class=\"ec-topicpath__item--active\">
  925.                             <a href=\"";
  926.                 // line 706
  927.                 echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_list");
  928.                 echo "?maker_id=";
  929.                 echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Maker"]) || array_key_exists("Maker"$context) ? $context["Maker"] : (function () { throw new RuntimeError('Variable "Maker" does not exist.'706$this->source); })()), "id", [], "any"falsefalsefalse706), "html"nulltrue);
  930.                 echo "\">";
  931.                 echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Maker"]) || array_key_exists("Maker"$context) ? $context["Maker"] : (function () { throw new RuntimeError('Variable "Maker" does not exist.'706$this->source); })()), "name", [], "any"falsefalsefalse706), "html"nulltrue);
  932.                 echo "</a>
  933.                         </li>
  934.                     ";
  935.             }
  936.             // line 709
  937.             echo "                    ";
  938.             if ((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["search_form"]) || array_key_exists("search_form"$context) ? $context["search_form"] : (function () { throw new RuntimeError('Variable "search_form" does not exist.'709$this->source); })()), "vars", [], "any"falsefalsefalse709), "value", [], "any"falsefalsefalse709) && twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["search_form"]) || array_key_exists("search_form"$context) ? $context["search_form"] : (function () { throw new RuntimeError('Variable "search_form" does not exist.'709$this->source); })()), "vars", [], "any"falsefalsefalse709), "value", [], "any"falsefalsefalse709), "name", [], "any"falsefalsefalse709))) {
  939.                 // line 710
  940.                 echo "                        <li class=\"ec-topicpath__divider\">|</li>
  941.                         <li class=\"ec-topicpath__item\">";
  942.                 // line 711
  943.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("「%name%」の検索結果", ["%name%" => twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["search_form"]) || array_key_exists("search_form"$context) ? $context["search_form"] : (function () { throw new RuntimeError('Variable "search_form" does not exist.'711$this->source); })()), "vars", [], "any"falsefalsefalse711), "value", [], "any"falsefalsefalse711), "name", [], "any"falsefalsefalse711)]), "html"nulltrue);
  944.                 echo "</li>
  945.                     ";
  946.             }
  947.             // line 713
  948.             echo "                </ol>
  949.             </div>
  950.         ";
  951.             // line 719
  952.             echo "        ";
  953.             if ((isset($context["hasFilter"]) || array_key_exists("hasFilter"$context) ? $context["hasFilter"] : (function () { throw new RuntimeError('Variable "hasFilter" does not exist.'719$this->source); })())) {
  954.                 // line 720
  955.                 echo "            <div class=\"ec-filterActive\">
  956.                 <span class=\"ec-filterActive__label\">絞り込み中:</span>
  957.                 ";
  958.                 // line 722
  959.                 if ( !(null === (isset($context["Category"]) || array_key_exists("Category"$context) ? $context["Category"] : (function () { throw new RuntimeError('Variable "Category" does not exist.'722$this->source); })()))) {
  960.                     // line 723
  961.                     echo "                    ";
  962.                     $context["removeCategoryParam"] = ("category_id=" twig_get_attribute($this->env$this->sourcetwig_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.'723$this->source); })()), "request", [], "any"falsefalsefalse723), "query", [], "any"falsefalsefalse723), "get", [=> "category_id"], "method"falsefalsefalse723));
  963.                     // line 724
  964.                     echo "                    <span class=\"ec-filterActive__tag\">
  965.                         ";
  966.                     // line 725
  967.                     echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Category"]) || array_key_exists("Category"$context) ? $context["Category"] : (function () { throw new RuntimeError('Variable "Category" does not exist.'725$this->source); })()), "name", [], "any"falsefalsefalse725), "html"nulltrue);
  968.                     echo "
  969.                         <a href=\"";
  970.                     // line 726
  971.                     echo twig_escape_filter($this->envtwig_replace_filter(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'726$this->source); })()), "request", [], "any"falsefalsefalse726), "uri", [], "any"falsefalsefalse726), [(isset($context["removeCategoryParam"]) || array_key_exists("removeCategoryParam"$context) ? $context["removeCategoryParam"] : (function () { throw new RuntimeError('Variable "removeCategoryParam" does not exist.'726$this->source); })()) => ""]), "html"nulltrue);
  972.                     echo "\" title=\"解除\">✕</a>
  973.                     </span>
  974.                 ";
  975.                 }
  976.                 // line 729
  977.                 echo "                ";
  978.                 if ( !(null === (isset($context["Maker"]) || array_key_exists("Maker"$context) ? $context["Maker"] : (function () { throw new RuntimeError('Variable "Maker" does not exist.'729$this->source); })()))) {
  979.                     // line 730
  980.                     echo "                    <span class=\"ec-filterActive__tag\">
  981.                         ";
  982.                     // line 731
  983.                     echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Maker"]) || array_key_exists("Maker"$context) ? $context["Maker"] : (function () { throw new RuntimeError('Variable "Maker" does not exist.'731$this->source); })()), "name", [], "any"falsefalsefalse731), "html"nulltrue);
  984.                     echo "
  985.                         <a href=\"";
  986.                     // line 732
  987.                     echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_list");
  988.                     if (twig_get_attribute($this->env$this->sourcetwig_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.'732$this->source); })()), "request", [], "any"falsefalsefalse732), "query", [], "any"falsefalsefalse732), "get", [=> "category_id"], "method"falsefalsefalse732)) {
  989.                         echo "?category_id=";
  990.                         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["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'732$this->source); })()), "request", [], "any"falsefalsefalse732), "query", [], "any"falsefalsefalse732), "get", [=> "category_id"], "method"falsefalsefalse732), "html"nulltrue);
  991.                     }
  992.                     echo "\" title=\"解除\">✕</a>
  993.                     </span>
  994.                 ";
  995.                 }
  996.                 // line 735
  997.                 echo "                ";
  998.                 if ((twig_get_attribute($this->env$this->sourcetwig_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.'735$this->source); })()), "request", [], "any"falsefalsefalse735), "query", [], "any"falsefalsefalse735), "get", [=> "price_min"], "method"falsefalsefalse735) || twig_get_attribute($this->env$this->sourcetwig_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.'735$this->source); })()), "request", [], "any"falsefalsefalse735), "query", [], "any"falsefalsefalse735), "get", [=> "price_max"], "method"falsefalsefalse735))) {
  999.                     // line 736
  1000.                     echo "                    <span class=\"ec-filterActive__tag\">
  1001.                         ";
  1002.                     // line 737
  1003.                     if (twig_get_attribute($this->env$this->sourcetwig_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.'737$this->source); })()), "request", [], "any"falsefalsefalse737), "query", [], "any"falsefalsefalse737), "get", [=> "price_min"], "method"falsefalsefalse737)) {
  1004.                         echo twig_escape_filter($this->envtwig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_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.'737$this->source); })()), "request", [], "any"falsefalsefalse737), "query", [], "any"falsefalsefalse737), "get", [=> "price_min"], "method"falsefalsefalse737)), "html"nulltrue);
  1005.                         echo "円";
  1006.                     } else {
  1007.                         echo "0円";
  1008.                     }
  1009.                     // line 738
  1010.                     echo "                        〜
  1011.                         ";
  1012.                     // line 739
  1013.                     if (twig_get_attribute($this->env$this->sourcetwig_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.'739$this->source); })()), "request", [], "any"falsefalsefalse739), "query", [], "any"falsefalsefalse739), "get", [=> "price_max"], "method"falsefalsefalse739)) {
  1014.                         echo twig_escape_filter($this->envtwig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_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.'739$this->source); })()), "request", [], "any"falsefalsefalse739), "query", [], "any"falsefalsefalse739), "get", [=> "price_max"], "method"falsefalsefalse739)), "html"nulltrue);
  1015.                         echo "円";
  1016.                     } else {
  1017.                         echo "上限なし";
  1018.                     }
  1019.                     // line 740
  1020.                     echo "                        <a href=\"javascript:void(0);\" onclick=\"
  1021.                             var url = new URL(window.location.href);
  1022.                             url.searchParams.delete('price_min');
  1023.                             url.searchParams.delete('price_max');
  1024.                             window.location.href = url.toString();
  1025.                         \" title=\"解除\">✕</a>
  1026.                     </span>
  1027.                 ";
  1028.                 }
  1029.                 // line 748
  1030.                 echo "            </div>
  1031.         ";
  1032.             }
  1033.             // line 750
  1034.             echo "
  1035.             ";
  1036.             // line 752
  1037.             echo "            <div class=\"ec-searchnavRole__infos\">
  1038.                 <div class=\"ec-searchnavRole__counter\">
  1039.                     ";
  1040.             // line 754
  1041.             if ((twig_get_attribute($this->env$this->source, (isset($context["pagination"]) || array_key_exists("pagination"$context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.'754$this->source); })()), "totalItemCount", [], "any"falsefalsefalse754) > 0)) {
  1042.                 // line 755
  1043.                 echo "                        ";
  1044.                 echo $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("<span class=\"ec-font-bold\">%count%件</span><span>の商品が見つかりました</span>", ["%count%" => twig_get_attribute($this->env$this->source, (isset($context["pagination"]) || array_key_exists("pagination"$context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.'755$this->source); })()), "totalItemCount", [], "any"falsefalsefalse755)]);
  1045.                 echo "
  1046.                     ";
  1047.             } else {
  1048.                 // line 757
  1049.                 echo "                        <span>";
  1050.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お探しの商品は見つかりませんでした"), "html"nulltrue);
  1051.                 echo "</span>
  1052.                     ";
  1053.             }
  1054.             // line 759
  1055.             echo "                </div>
  1056.                 ";
  1057.             // line 760
  1058.             if ((twig_get_attribute($this->env$this->source, (isset($context["pagination"]) || array_key_exists("pagination"$context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.'760$this->source); })()), "totalItemCount", [], "any"falsefalsefalse760) > 0)) {
  1059.                 // line 761
  1060.                 echo "                    <div class=\"ec-searchnavRole__actions\">
  1061.                         <div class=\"ec-select\">
  1062.                             ";
  1063.                 // line 763
  1064.                 echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env$this->source, (isset($context["search_form"]) || array_key_exists("search_form"$context) ? $context["search_form"] : (function () { throw new RuntimeError('Variable "search_form" does not exist.'763$this->source); })()), "disp_number", [], "any"falsefalsefalse763), 'widget', ["id" => """attr" => ["class" => "disp-number"]]);
  1065.                 echo "
  1066.                             ";
  1067.                 // line 764
  1068.                 echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env$this->source, (isset($context["search_form"]) || array_key_exists("search_form"$context) ? $context["search_form"] : (function () { throw new RuntimeError('Variable "search_form" does not exist.'764$this->source); })()), "orderby", [], "any"falsefalsefalse764), 'widget', ["id" => """attr" => ["class" => "order-by"]]);
  1069.                 echo "
  1070.                         </div>
  1071.                     </div>
  1072.                 ";
  1073.             }
  1074.             // line 768
  1075.             echo "            </div>
  1076.         </div>
  1077.                 ";
  1078.             // line 772
  1079.             if ((twig_get_attribute($this->env$this->source, (isset($context["pagination"]) || array_key_exists("pagination"$context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.'772$this->source); })()), "totalItemCount", [], "any"falsefalsefalse772) > 0)) {
  1080.                 // line 773
  1081.                 echo "                    <div class=\"ec-shelfRole\">
  1082.                         <ul class=\"ec-shelfGrid\">
  1083.                             ";
  1084.                 // line 775
  1085.                 $context['_parent'] = $context;
  1086.                 $context['_seq'] = twig_ensure_traversable((isset($context["pagination"]) || array_key_exists("pagination"$context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.'775$this->source); })()));
  1087.                 $context['loop'] = [
  1088.                   'parent' => $context['_parent'],
  1089.                   'index0' => 0,
  1090.                   'index'  => 1,
  1091.                   'first'  => true,
  1092.                 ];
  1093.                 if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  1094.                     $length count($context['_seq']);
  1095.                     $context['loop']['revindex0'] = $length 1;
  1096.                     $context['loop']['revindex'] = $length;
  1097.                     $context['loop']['length'] = $length;
  1098.                     $context['loop']['last'] = === $length;
  1099.                 }
  1100.                 foreach ($context['_seq'] as $context["_key"] => $context["Product"]) {
  1101.                     // line 776
  1102.                     echo "                                <li class=\"ec-shelfGrid__item\" style=\"position:relative;\">
  1103.                                     ";
  1104.                     // line 777
  1105.                     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.'777$this->source); })()), "option_favorite_product", [], "any"falsefalsefalse777)) {
  1106.                         // line 778
  1107.                         echo "                                        <div style=\"position:absolute;top:8px;right:20px;z-index:10;\">
  1108.                                             <form action=\"";
  1109.                         // line 779
  1110.                         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$context["Product"], "id", [], "any"falsefalsefalse779)]), "html"nulltrue);
  1111.                         echo "\" method=\"post\">
  1112.                                                 <button type=\"submit\" id=\"favorite\" class=\"favorite\">&#9825;</button>
  1113.                                             </form>
  1114.                                         </div>
  1115.                                     ";
  1116.                     }
  1117.                     // line 784
  1118.                     echo "                                    <a href=\"";
  1119.                     echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_detail", ["id" => twig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsefalse784)]), "html"nulltrue);
  1120.                     echo "\">
  1121.                                         <p class=\"ec-shelfGrid__item-image\">
  1122.                                             <img src=\"";
  1123.                     // line 786
  1124.                     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->source$context["Product"], "main_list_image", [], "any"falsefalsefalse786)), "save_image"), "html"nulltrue);
  1125.                     echo "\" alt=\"";
  1126.                     echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["Product"], "name", [], "any"falsefalsefalse786), "html"nulltrue);
  1127.                     echo "\" width=\"180\" height=\"180\"";
  1128.                     if ((twig_get_attribute($this->env$this->source$context["loop"], "index", [], "any"falsefalsefalse786) > 5)) {
  1129.                         echo " loading=\"lazy\"";
  1130.                     }
  1131.                     echo ">
  1132.                                         </p>
  1133.                                         <h5><strong>";
  1134.                     // line 788
  1135.                     echo twig_escape_filter($this->env$this->extensions['Plugin\ProductField\Twig\Extension\EccubeExtension']->getProduct_field(twig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsefalse788), "related_keyword"), "html"nulltrue);
  1136.                     echo "</strong></h5>
  1137.                                         <p class=\"price02-default\">
  1138.                                             ";
  1139.                     // line 790
  1140.                     if (((null === twig_get_attribute($this->env$this->source$context["Product"], "getPrice02Max", [], "any"falsefalsefalse790)) || (twig_get_attribute($this->env$this->source$context["Product"], "getPrice02Max", [], "any"falsefalsefalse790) == 0))) {
  1141.                         // line 791
  1142.                         echo "                                                現地調査見積
  1143.                                             ";
  1144.                     } elseif (twig_get_attribute($this->env$this->source,                     // line 792
  1145. $context["Product"], "hasProductClass", [], "any"falsefalsefalse792)) {
  1146.                         // line 793
  1147.                         echo "                                                ";
  1148.                         if ((twig_get_attribute($this->env$this->source$context["Product"], "getPrice02Min", [], "any"falsefalsefalse793) == twig_get_attribute($this->env$this->source$context["Product"], "getPrice02Max", [], "any"falsefalsefalse793))) {
  1149.                             // line 794
  1150.                             echo "                                                    ";
  1151.                             echo twig_escape_filter($this->envtwig_number_format_filter($this->envtwig_get_attribute($this->env$this->source$context["Product"], "getPrice02IncTaxMin", [], "any"falsefalsefalse794)), "html"nulltrue);
  1152.                             echo "円
  1153.                                                 ";
  1154.                         } else {
  1155.                             // line 796
  1156.                             echo "                                                    ";
  1157.                             echo twig_escape_filter($this->envtwig_number_format_filter($this->envtwig_get_attribute($this->env$this->source$context["Product"], "getPrice02IncTaxMin", [], "any"falsefalsefalse796)), "html"nulltrue);
  1158.                             echo "円  ~ ";
  1159.                             echo twig_escape_filter($this->envtwig_number_format_filter($this->envtwig_get_attribute($this->env$this->source$context["Product"], "getPrice02IncTaxMax", [], "any"falsefalsefalse796)), "html"nulltrue);
  1160.                             echo "円
  1161.                                                 ";
  1162.                         }
  1163.                         // line 798
  1164.                         echo "                                            ";
  1165.                     } else {
  1166.                         // line 799
  1167.                         echo "                                                ";
  1168.                         echo twig_escape_filter($this->envtwig_number_format_filter($this->envtwig_get_attribute($this->env$this->source$context["Product"], "getPrice02IncTaxMin", [], "any"falsefalsefalse799)), "html"nulltrue);
  1169.                         echo "円 ~
  1170.                                             ";
  1171.                     }
  1172.                     // line 801
  1173.                     echo "                                        </p>
  1174.                                     </a>
  1175.                                     ";
  1176.                     // line 804
  1177.                     if (twig_get_attribute($this->env$this->source$context["Product"], "stock_find", [], "any"falsefalsefalse804)) {
  1178.                         // line 805
  1179.                         echo "                                        ";
  1180.                         $context["form"] = twig_get_attribute($this->env$this->source, (isset($context["forms"]) || array_key_exists("forms"$context) ? $context["forms"] : (function () { throw new RuntimeError('Variable "forms" does not exist.'805$this->source); })()), twig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsefalse805), [], "array"falsefalsefalse805);
  1181.                         // line 806
  1182.                         echo "                                        <form name=\"form";
  1183.                         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsefalse806), "html"nulltrue);
  1184.                         echo "\" id=\"productForm";
  1185.                         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsefalse806), "html"nulltrue);
  1186.                         echo "\" action=\"";
  1187.                         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_detail", ["id" => twig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsefalse806)]), "html"nulltrue);
  1188.                         echo "\" method=\"get\">
  1189.                                             <div class=\"ec-productRole__actions\">
  1190.                                                 ";
  1191.                         // line 808
  1192.                         if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id1", [], "any"truetruefalse808)) {
  1193.                             // line 809
  1194.                             echo "                                                    <div class=\"ec-select\">
  1195.                                                         ";
  1196.                             // line 810
  1197.                             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.'810$this->source); })()), "classcategory_id1", [], "any"falsefalsefalse810), 'widget');
  1198.                             echo "
  1199.                                                         ";
  1200.                             // line 811
  1201.                             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.'811$this->source); })()), "classcategory_id1", [], "any"falsefalsefalse811), 'errors');
  1202.                             echo "
  1203.                                                     </div>
  1204.                                                     ";
  1205.                             // line 813
  1206.                             if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id2", [], "any"truetruefalse813)) {
  1207.                                 // line 814
  1208.                                 echo "                                                        <div class=\"ec-select\">
  1209.                                                             ";
  1210.                                 // line 815
  1211.                                 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.'815$this->source); })()), "classcategory_id2", [], "any"falsefalsefalse815), 'widget');
  1212.                                 echo "
  1213.                                                             ";
  1214.                                 // line 816
  1215.                                 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.'816$this->source); })()), "classcategory_id2", [], "any"falsefalsefalse816), 'errors');
  1216.                                 echo "
  1217.                                                         </div>
  1218.                                                     ";
  1219.                             }
  1220.                             // line 819
  1221.                             echo "                                                ";
  1222.                         }
  1223.                         // line 820
  1224.                         echo "                                                <div class=\"ec-numberInput\" style=\"display:none;\"><span>";
  1225.                         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("数量"), "html"nulltrue);
  1226.                         echo "</span>
  1227.                                                     ";
  1228.                         // line 821
  1229.                         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.'821$this->source); })()), "quantity", [], "any"falsefalsefalse821), 'errors');
  1230.                         echo "
  1231.                                                 </div>
  1232.                                             </div>
  1233.                                             <div class=\"ec-productRole__btn\">
  1234.                                                 <button class=\"ec-blockBtn--action\">
  1235.                                                     ";
  1236.                         // line 826
  1237.                         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お見積もりはこちら"), "html"nulltrue);
  1238.                         echo "
  1239.                                                 </button>
  1240.                                             </div>
  1241.                                         </form>
  1242.                                     ";
  1243.                     } else {
  1244.                         // line 831
  1245.                         echo "                                        <div class=\"ec-productRole__btn\">
  1246.                                             <button type=\"button\" class=\"ec-blockBtn--action\" disabled=\"disabled\">
  1247.                                                 ";
  1248.                         // line 833
  1249.                         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("ただいま品切れ中です。"), "html"nulltrue);
  1250.                         echo "
  1251.                                             </button>
  1252.                                         </div>
  1253.                                     ";
  1254.                     }
  1255.                     // line 837
  1256.                     echo "                                </li>
  1257.                             ";
  1258.                     ++$context['loop']['index0'];
  1259.                     ++$context['loop']['index'];
  1260.                     $context['loop']['first'] = false;
  1261.                     if (isset($context['loop']['length'])) {
  1262.                         --$context['loop']['revindex0'];
  1263.                         --$context['loop']['revindex'];
  1264.                         $context['loop']['last'] = === $context['loop']['revindex0'];
  1265.                     }
  1266.                 }
  1267.                 $_parent $context['_parent'];
  1268.                 unset($context['_seq'], $context['_iterated'], $context['_key'], $context['Product'], $context['_parent'], $context['loop']);
  1269.                 $context array_intersect_key($context$_parent) + $_parent;
  1270.                 // line 839
  1271.                 echo "                        </ul>
  1272.                     </div>
  1273.                     <div class=\"ec-pagerRole\">
  1274.                         ";
  1275.                 // line 842
  1276.                 $this->loadTemplate("pager.twig""Product/list.twig"842)->display(twig_array_merge($context, ["pages" => twig_get_attribute($this->env$this->source, (isset($context["pagination"]) || array_key_exists("pagination"$context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.'842$this->source); })()), "paginationData", [], "any"falsefalsefalse842)]));
  1277.                 // line 843
  1278.                 echo "                    </div>
  1279.                 ";
  1280.             }
  1281.             // line 845
  1282.             echo "            </div>
  1283.             ";
  1284.             // line 847
  1285.             echo "
  1286.         </div>
  1287.         ";
  1288.             // line 850
  1289.             echo "
  1290.     ";
  1291.         }
  1292.         
  1293.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  1294.         
  1295.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  1296.     }
  1297.     public function getTemplateName()
  1298.     {
  1299.         return "Product/list.twig";
  1300.     }
  1301.     public function isTraitable()
  1302.     {
  1303.         return false;
  1304.     }
  1305.     public function getDebugInfo()
  1306.     {
  1307.         return array (  1386 => 850,  1382 => 847,  1379 => 845,  1375 => 843,  1373 => 842,  1368 => 839,  1353 => 837,  1346 => 833,  1342 => 831,  1334 => 826,  1326 => 821,  1321 => 820,  1318 => 819,  1312 => 816,  1308 => 815,  1305 => 814,  1303 => 813,  1298 => 811,  1294 => 810,  1291 => 809,  1289 => 808,  1279 => 806,  1276 => 805,  1274 => 804,  1269 => 801,  1263 => 799,  1260 => 798,  1252 => 796,  1246 => 794,  1243 => 793,  1241 => 792,  1238 => 791,  1236 => 790,  1231 => 788,  1220 => 786,  1214 => 784,  1206 => 779,  1203 => 778,  1201 => 777,  1198 => 776,  1181 => 775,  1177 => 773,  1175 => 772,  1169 => 768,  1162 => 764,  1158 => 763,  1154 => 761,  1152 => 760,  1149 => 759,  1143 => 757,  1137 => 755,  1135 => 754,  1131 => 752,  1128 => 750,  1124 => 748,  1114 => 740,  1107 => 739,  1104 => 738,  1097 => 737,  1094 => 736,  1091 => 735,  1081 => 732,  1077 => 731,  1074 => 730,  1071 => 729,  1065 => 726,  1061 => 725,  1058 => 724,  1055 => 723,  1053 => 722,  1049 => 720,  1046 => 719,  1041 => 713,  1036 => 711,  1033 => 710,  1030 => 709,  1020 => 706,  1016 => 704,  1013 => 703,  1010 => 702,  989 => 699,  983 => 698,  980 => 697,  962 => 696,  960 => 695,  954 => 694,  950 => 692,  946 => 689,  934 => 687,  930 => 686,  925 => 685,  921 => 684,  917 => 682,  915 => 681,  909 => 678,  906 => 677,  904 => 676,  901 => 675,  898 => 673,  894 => 670,  888 => 667,  885 => 666,  882 => 665,  876 => 660,  869 => 658,  865 => 656,  855 => 652,  845 => 651,  840 => 650,  836 => 649,  833 => 648,  831 => 647,  826 => 645,  816 => 644,  811 => 643,  807 => 642,  802 => 640,  798 => 639,  795 => 638,  793 => 595,  788 => 592,  783 => 588,  780 => 587,  770 => 583,  760 => 582,  755 => 581,  750 => 580,  747 => 567,  745 => 566,  742 => 565,  732 => 561,  722 => 560,  717 => 559,  712 => 558,  710 => 557,  704 => 553,  687 => 538,  683 => 537,  676 => 533,  671 => 531,  665 => 527,  662 => 525,  658 => 522,  655 => 518,  653 => 517,  649 => 515,  639 => 514,  560 => 444,  556 => 443,  531 => 420,  517 => 419,  509 => 418,  492 => 417,  488 => 415,  478 => 414,  73 => 16,  63 => 15,  52 => 11,  50 => 13,  37 => 11,);
  1308.     }
  1309.     public function getSourceContext()
  1310.     {
  1311.         return new Source("{#
  1312. This file is part of EC-CUBE
  1313. Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
  1314. http://www.ec-cube.co.jp/
  1315. For the full copyright and license information, please view the LICENSE
  1316. file that was distributed with this source code.
  1317. #}
  1318. {% extends 'default_frame.twig' %}
  1319. {% set body_class = 'product_page' %}
  1320. {% block stylesheet %}
  1321.     <link rel=\"stylesheet\" href=\"/html/plugins/ion-rangeslider/css/ion.rangeSlider.min.css\">
  1322.     <style>
  1323.         /* ============================================
  1324.            サイドバー付き 2カラムレイアウト
  1325.         ============================================ */
  1326.         .ec-productListLayout {
  1327.             display: flex;
  1328.             gap: 32px;
  1329.             align-items: flex-start;
  1330.         }
  1331.         /* ============================================
  1332.            サイドバー(フィルターパネル)
  1333.         ============================================ */
  1334.         .ec-filterSidebar {
  1335.             position: static;
  1336.             margin: 20px;
  1337.             width: 240px;
  1338.             flex-shrink: 0;
  1339.         }
  1340.         /* Wide desktop: center the main column to align with site grid (1130 + 280 sidebar) */
  1341.         @media (min-width: 1410px) {
  1342. \t\t\t.ec-searchnavRole {
  1343. \t\t\t\tmargin-left: calc((100% - 1130px - 280px) / 2);
  1344. \t\t\t}
  1345. \t\t\t.ec-shelfRole {
  1346. \t\t\t\tmargin-left: calc((100% - 1130px - 280px) / 2);
  1347. \t\t\t}
  1348. \t\t\t.ec-pagerRole {
  1349. \t\t\t\tmargin-left: calc((100% - 1130px - 280px) / 2);
  1350. \t\t\t}
  1351. \t\t}
  1352.         .ec-filterSidebar__section {
  1353.             background: #fff;
  1354.             border: 1px solid #e8e8e8;
  1355.             border-radius: 6px;
  1356.             padding: 18px 16px;
  1357.             margin-bottom: 16px;
  1358.         }
  1359.         .ec-filterSidebar__heading {
  1360.             font-size: 13px;
  1361.             font-weight: bold;
  1362.             color: #222;
  1363.             margin: 0 0 12px;
  1364.             padding-bottom: 10px;
  1365.             border-bottom: 2px solid #222;
  1366.             letter-spacing: 0.05em;
  1367.         }
  1368.         /* カテゴリリスト */
  1369.         .ec-filterSidebar__categoryList,
  1370.         .ec-filterSidebar__categoryList ul {
  1371.             list-style: none;
  1372.             padding: 0;
  1373.             margin: 0;
  1374.         }
  1375.         .ec-filterSidebar__categoryList li a {
  1376.             display: block;
  1377.             padding: 6px 8px;
  1378.             font-size: 13px;
  1379.             color: #444;
  1380.             text-decoration: none;
  1381.             border-radius: 4px;
  1382.             transition: background 0.15s, color 0.15s;
  1383.         }
  1384.         .ec-filterSidebar__categoryList li a:hover {
  1385.             background: #f5f5f5;
  1386.             color: #222;
  1387.         }
  1388.         .ec-filterSidebar__categoryList li.is-active > a {
  1389.             font-weight: bold;
  1390.             color: #c00;
  1391.             background: #fff5f5;
  1392.         }
  1393.         /* サブカテゴリ */
  1394.         .ec-filterSidebar__categoryList ul {
  1395.             padding-left: 12px;
  1396.             margin-top: 2px;
  1397.         }
  1398.         .ec-filterSidebar__categoryList ul li a {
  1399.             font-size: 12px;
  1400.             color: #666;
  1401.             padding: 4px 8px;
  1402.         }
  1403.         /* メーカーリスト */
  1404.         .ec-filterSidebar__makerList {
  1405.             list-style: none;
  1406.             padding: 0;
  1407.             margin: 0;
  1408.         }
  1409.         .ec-filterSidebar__makerList li {
  1410.             border-bottom: 1px solid #f0f0f0;
  1411.         }
  1412.         .ec-filterSidebar__makerList li:last-child {
  1413.             border-bottom: none;
  1414.         }
  1415.         .ec-filterSidebar__makerList li a {
  1416.             display: flex;
  1417.             align-items: center;
  1418.             gap: 6px;
  1419.             padding: 7px 6px;
  1420.             font-size: 13px;
  1421.             color: #444;
  1422.             text-decoration: none;
  1423.             transition: color 0.15s;
  1424.         }
  1425.         .ec-filterSidebar__makerList li a:hover {
  1426.             color: #c00;
  1427.         }
  1428.         .ec-filterSidebar__makerList li.is-active a {
  1429.             font-weight: bold;
  1430.             color: #c00;
  1431.         }
  1432.         .ec-filterSidebar__makerList li.is-active a::before {
  1433.             content: \"✓\";
  1434.             font-size: 11px;
  1435.             color: #c00;
  1436.         }
  1437.         /* 価格帯フィルター */
  1438.         .ec-filterSidebar__priceDisplay {
  1439.             text-align: center;
  1440.             font-size: 13px;
  1441.             color: #333;
  1442.             margin-bottom: 12px;
  1443.             font-weight: bold;
  1444.         }
  1445.         .ec-filterSidebar__priceDisplay span {
  1446.             color: #c00;
  1447.         }
  1448.         .ec-filterSidebar__priceSliderWrap {
  1449.             /* Side padding holds room for ion-rangeSlider .irs-to / .irs-from labels
  1450.                so the max-value tooltip never spills past the sidebar edge. */
  1451.             padding: 0 14px;
  1452.             margin-bottom: 16px;
  1453.         }
  1454.         .ec-filterSidebar__priceApply {
  1455.             display: block;
  1456.             width: 100%;
  1457.             padding: 8px;
  1458.             background: #222;
  1459.             color: #fff;
  1460.             border: none;
  1461.             border-radius: 4px;
  1462.             font-size: 13px;
  1463.             cursor: pointer;
  1464.             text-align: center;
  1465.             transition: background 0.2s;
  1466.         }
  1467.         .ec-filterSidebar__priceApply:hover {
  1468.             background: #444;
  1469.         }
  1470.         .ec-filterSidebar__pricePreset {
  1471.             list-style: none;
  1472.             padding: 0;
  1473.             margin: 10px 0 0;
  1474.         }
  1475.         .ec-filterSidebar__pricePreset li a {
  1476.             display: block;
  1477.             padding: 5px 6px;
  1478.             font-size: 12px;
  1479.             color: #666;
  1480.             text-decoration: none;
  1481.             border-radius: 4px;
  1482.             transition: background 0.15s;
  1483.         }
  1484.         .ec-filterSidebar__pricePreset li a:hover {
  1485.             background: #f5f5f5;
  1486.             color: #333;
  1487.         }
  1488.         /* 絞り込みリセット */
  1489.         .ec-filterSidebar__reset a {
  1490.             display: block;
  1491.             text-align: center;
  1492.             padding: 8px;
  1493.             font-size: 12px;
  1494.             color: #888;
  1495.             text-decoration: underline;
  1496.             border: 1px solid #ddd;
  1497.             border-radius: 4px;
  1498.             transition: color 0.15s, border-color 0.15s;
  1499.         }
  1500.         .ec-filterSidebar__reset a:hover {
  1501.             color: #c00;
  1502.             border-color: #c00;
  1503.         }
  1504.         /* 現在の絞り込み条件バッジ */
  1505.         .ec-filterActive {
  1506.             display: flex;
  1507.             flex-wrap: wrap;
  1508.             gap: 6px;
  1509.             margin-bottom: 12px;
  1510.             padding: 10px 12px;
  1511.             background: #f9f9f9;
  1512.             border: 1px solid #e8e8e8;
  1513.             border-radius: 6px;
  1514.         }
  1515.         .ec-filterActive__label {
  1516.             font-size: 11px;
  1517.             color: #888;
  1518.             align-self: center;
  1519.             margin-right: 4px;
  1520.         }
  1521.         .ec-filterActive__tag {
  1522.             display: inline-flex;
  1523.             align-items: center;
  1524.             gap: 4px;
  1525.             padding: 3px 8px;
  1526.             background: #222;
  1527.             color: #fff;
  1528.             border-radius: 20px;
  1529.             font-size: 11px;
  1530.         }
  1531.         .ec-filterActive__tag a {
  1532.             color: #aaa;
  1533.             text-decoration: none;
  1534.             font-size: 12px;
  1535.             line-height: 1;
  1536.         }
  1537.         .ec-filterActive__tag a:hover {
  1538.             color: #fff;
  1539.         }
  1540.         /* メインコンテンツ側 */
  1541.         .ec-productListMain {
  1542.             flex: 1;
  1543.             min-width: 0;
  1544.             width: 100%;  
  1545.         }
  1546.         /* ion-rangeslider カスタマイズ */
  1547.         .irs--flat .irs-bar {
  1548.             background-color: #222;
  1549.         }
  1550.         .irs--flat .irs-handle > i:first-child {
  1551.             background-color: #222;
  1552.         }
  1553.         .irs--flat .irs-from,
  1554.         .irs--flat .irs-to,
  1555.         .irs--flat .irs-single {
  1556.             background-color: #222;
  1557.             font-size: 11px;
  1558.         }
  1559.         /* Tablet (768-1199px): stack sidebar above grid to avoid overlap */
  1560.         @media (min-width: 768px) and (max-width: 1199px) {
  1561.             .ec-productListLayout {
  1562.                 flex-direction: column;
  1563.                 gap: 0;
  1564.             }
  1565.             .ec-filterSidebar {
  1566.                 width: 100%;
  1567.                 margin: 0 0 16px;
  1568.             }
  1569.             .ec-productListMain {
  1570.                 width: 100%;
  1571.             }
  1572.             /* Allow CTA to wrap and avoid truncation in 2-col tablet grid */
  1573.             .ec-shelfGrid .ec-blockBtn--action {
  1574.                 white-space: normal;
  1575.                 line-height: 1.3;
  1576.                 height: auto;
  1577.                 min-height: 56px;
  1578.                 padding: 12px 8px;
  1579.                 font-size: 0.8rem;
  1580.             }
  1581.         }
  1582.         /* Price slider tooltip: prevent label overlap when results are empty */
  1583.         .ec-productListMain .ec-shelfRole:empty + .ec-pagerRole,
  1584.         .ec-productListMain:has(.ec-shelfGrid:empty) .ec-filterSidebar__priceSliderWrap .irs-from,
  1585.         .ec-productListMain:has(.ec-shelfGrid:empty) .ec-filterSidebar__priceSliderWrap .irs-to,
  1586.         .ec-productListMain:has(.ec-shelfGrid:empty) .ec-filterSidebar__priceSliderWrap .irs-single {
  1587.             visibility: hidden;
  1588.         }
  1589.         .ec-filterSidebar__priceSliderWrap .irs {
  1590.             position: relative;
  1591.             z-index: 1;
  1592.         }
  1593.         .ec-filterSidebar__priceSliderWrap .irs-from,
  1594.         .ec-filterSidebar__priceSliderWrap .irs-to,
  1595.         .ec-filterSidebar__priceSliderWrap .irs-single {
  1596.             white-space: nowrap;
  1597.         }
  1598.         /* モバイル対応 */
  1599.         @media (max-width: 767px) {
  1600.             /* 横スクロール禁止 */
  1601.             body, html {
  1602.                 overflow-x: hidden;
  1603.                 max-width: 100vw;
  1604.             }
  1605.             .ec-productListLayout {
  1606.                 flex-direction: column;
  1607.                 gap: 0;
  1608.             }
  1609.             .ec-filterSidebar {
  1610.                 width: 100%;
  1611.                 margin: 0;
  1612.             }
  1613.             /* スマホで商品一覧を確実に表示 */
  1614.             .ec-productListMain {
  1615.                 width: 100%;
  1616.                 flex: none;
  1617.                 margin: 0;
  1618.             }
  1619.             .ec-filterSidebar__section {
  1620.                 margin-bottom: 10px;
  1621.             }
  1622.             /* Allow CTA to wrap and avoid truncation in narrow mobile cards */
  1623.             .ec-shelfGrid .ec-blockBtn--action {
  1624.                 white-space: normal;
  1625.                 word-break: keep-all;
  1626.                 overflow-wrap: anywhere;
  1627.                 line-height: 1.3;
  1628.                 height: auto;
  1629.                 min-height: 56px;
  1630.                 padding: 12px 8px;
  1631.                 font-size: 0.8rem;
  1632.             }
  1633.             /* モバイルではアコーディオン形式 */
  1634.             .ec-filterSidebar__body {
  1635.                 display: none;
  1636.             }
  1637.             .ec-filterSidebar__body.is-open {
  1638.                 display: block;
  1639.             }
  1640.             .ec-filterSidebar__heading {
  1641.                 cursor: pointer;
  1642.                 display: flex;
  1643.                 justify-content: space-between;
  1644.                 align-items: center;
  1645.                 margin-bottom: 0;
  1646.                 padding-bottom: 0;
  1647.                 border-bottom: none;
  1648.             }
  1649.             .ec-filterSidebar__heading.is-open {
  1650.                 margin-bottom: 12px;
  1651.                 padding-bottom: 10px;
  1652.                 border-bottom: 2px solid #222;
  1653.             }
  1654.             .ec-filterSidebar__heading::after {
  1655.                 content: \"▼\";
  1656.                 font-size: 10px;
  1657.                 color: #888;
  1658.                 transition: transform 0.2s;
  1659.             }
  1660.             .ec-filterSidebar__heading.is-open::after {
  1661.                 transform: rotate(180deg);
  1662.             }
  1663.         }
  1664.     </style>
  1665. {% endblock %}
  1666. {% block javascript %}
  1667.     <script>
  1668.         eccube.productsClassCategories = {
  1669.             {% for Product in pagination %}
  1670.             \"{{ Product.id|escape('js') }}\": {{ class_categories_as_json(Product)|raw }}{% if loop.last == false %}, {% endif %}
  1671.             {% endfor %}
  1672.         };
  1673.         \$(function() {
  1674.             // 表示件数を変更
  1675.             \$('.disp-number').change(function() {
  1676.                 var dispNumber = \$(this).val();
  1677.                 \$('#disp_number').val(dispNumber);
  1678.                 \$('#pageno').val(1);
  1679.                 \$(\"#form1\").submit();
  1680.             });
  1681.             // 並び順を変更
  1682.             \$('.order-by').change(function() {
  1683.                 var orderBy = \$(this).val();
  1684.                 \$('#orderby').val(orderBy);
  1685.                 \$('#pageno').val(1);
  1686.                 \$(\"#form1\").submit();
  1687.             });
  1688.             // ==============================
  1689.             // 価格帯スライダー(ion-rangeslider)
  1690.             // ==============================
  1691.             var priceMin = parseInt('{{ app.request.query.get(\"price_min\") ?: 0 }}') || 0;
  1692.             var priceMax = parseInt('{{ app.request.query.get(\"price_max\") ?: 5000000 }}') || 5000000;
  1693.             \$(\"#price-range-slider\").ionRangeSlider({
  1694.                 type: \"double\",
  1695.                 min: 0,
  1696.                 max: 5000000,
  1697.                 from: priceMin,
  1698.                 to: priceMax,
  1699.                 step: 10000,
  1700.                 prettify_enabled: true,
  1701.                 prettify_separator: \",\",
  1702.                 postfix: \"円\",
  1703.                 onFinish: function(data) {
  1704.                     \$('#price_min_val').val(data.from);
  1705.                     \$('#price_max_val').val(data.to);
  1706.                     // 表示更新
  1707.                     \$('#price-display-min').text(Number(data.from).toLocaleString());
  1708.                     \$('#price-display-max').text(Number(data.to).toLocaleString());
  1709.                 }
  1710.             });
  1711.             // 価格フォーム送信
  1712.             \$('#price-filter-apply').on('click', function() {
  1713.                 var min = \$('#price_min_val').val();
  1714.                 var max = \$('#price_max_val').val();
  1715.                 var url = new URL(window.location.href);
  1716.                 url.searchParams.set('price_min', min);
  1717.                 url.searchParams.set('price_max', max);
  1718.                 url.searchParams.delete('pageno');
  1719.                 window.location.href = url.toString();
  1720.             });
  1721.             // モバイル:アコーディオン(初期状態を閉じる)
  1722.             function initMobileAccordion() {
  1723.                 if (\$(window).width() <= 767) {
  1724.                     \$('.ec-filterSidebar__heading').removeClass('is-open');
  1725.                     \$('.ec-filterSidebar__body').removeClass('is-open');
  1726.                 }
  1727.             }
  1728.             initMobileAccordion();
  1729.             \$(window).on('resize', initMobileAccordion);
  1730.             \$('.ec-filterSidebar__heading').on('click', function() {
  1731.                 if (\$(window).width() <= 767) {
  1732.                     \$(this).toggleClass('is-open');
  1733.                     \$(this).next('.ec-filterSidebar__body').toggleClass('is-open');
  1734.                 }
  1735.             });
  1736.         });
  1737.         \$('.ec-modal-wrap').on('click', function(e) {
  1738.             e.stopPropagation();
  1739.         });
  1740.         \$('.ec-modal-overlay, .ec-modal, .ec-modal-close, .ec-inlineBtn--cancel').on('click', function() {
  1741.             \$('.ec-modal').hide()
  1742.         });
  1743. \t    // 価格プリセットのクイック適用
  1744. \t    function applyPrice(min, max) {
  1745. \t        var url = new URL(window.location.href);
  1746. \t        url.searchParams.set('price_min', min);
  1747. \t        url.searchParams.set('price_max', max);
  1748. \t        url.searchParams.delete('pageno');
  1749. \t        window.location.href = url.toString();
  1750. \t    }
  1751.     </script>
  1752.     <script src=\"/html/plugins/ion-rangeslider/js/ion.rangeSlider.min.js\"></script>
  1753. {% endblock %}
  1754. {% block main %}
  1755.         {% set hasFilter = app.request.query.get('category_id') or app.request.query.get('maker_id') or app.request.query.get('price_min') or app.request.query.get('price_max') %}
  1756.         {# ==============================
  1757.            2カラムレイアウト本体
  1758.         ============================== #}
  1759.         <div class=\"ec-productListLayout\">
  1760.             {# ===== サイドバー(左カラム)===== #}
  1761.             <aside class=\"ec-filterSidebar\">
  1762.                 {# ----- 価格帯 ----- #}
  1763.                 <div class=\"ec-filterSidebar__section\">
  1764.                     <h3 class=\"ec-filterSidebar__heading\">価格帯</h3>
  1765.                     <div class=\"ec-filterSidebar__body is-open\">
  1766.                         <div class=\"ec-filterSidebar__priceDisplay\">
  1767.                             <span id=\"price-display-min\">{{ app.request.query.get('price_min') ? app.request.query.get('price_min')|number_format : '0' }}</span>円
  1768.                             〜
  1769.                             <span id=\"price-display-max\">{{ app.request.query.get('price_max') ? app.request.query.get('price_max')|number_format : '5,000,000' }}</span>円
  1770.                         </div>
  1771.                         <div class=\"ec-filterSidebar__priceSliderWrap\">
  1772.                             <input type=\"text\" id=\"price-range-slider\" style=\"display:none;\">
  1773.                             <input type=\"hidden\" id=\"price_min_val\" value=\"{{ app.request.query.get('price_min') ?: 0 }}\">
  1774.                             <input type=\"hidden\" id=\"price_max_val\" value=\"{{ app.request.query.get('price_max') ?: 5000000 }}\">
  1775.                         </div>
  1776.                         <button id=\"price-filter-apply\" class=\"ec-filterSidebar__priceApply\">この価格帯で絞り込む</button>
  1777.                         <ul class=\"ec-filterSidebar__pricePreset\">
  1778.                             <li><a href=\"javascript:void(0);\" onclick=\"applyPrice(0, 300000)\">〜30万円</a></li>
  1779.                             <li><a href=\"javascript:void(0);\" onclick=\"applyPrice(300000, 600000)\">30万円〜60万円</a></li>
  1780.                             <li><a href=\"javascript:void(0);\" onclick=\"applyPrice(600000, 1000000)\">60万円〜100万円</a></li>
  1781.                             <li><a href=\"javascript:void(0);\" onclick=\"applyPrice(1000000, 5000000)\">100万円〜</a></li>
  1782.                         </ul>
  1783.                     </div>
  1784.                 </div>
  1785.                 {# ----- メーカー(ブランド)----- #}
  1786.                 <div class=\"ec-filterSidebar__section\">
  1787.                     <h3 class=\"ec-filterSidebar__heading\">ブランド</h3>
  1788.                     <div class=\"ec-filterSidebar__body is-open\">
  1789.                         <ul class=\"ec-filterSidebar__makerList\">
  1790.                             {% if Makers is defined %}
  1791.                                 {% for MakerItem in Makers %}
  1792.                                     <li class=\"{{ Maker is not null and Maker.id == MakerItem.id ? 'is-active' : '' }}\">
  1793.                                         <a href=\"{{ url('product_list') }}?maker_id={{ MakerItem.id }}{% if app.request.query.get('category_id') %}&category_id={{ app.request.query.get('category_id') }}{% endif %}\">
  1794.                                             {{ MakerItem.name }}
  1795.                                         </a>
  1796.                                     </li>
  1797.                                 {% endfor %}
  1798.                             {% else %}
  1799.                                 {# Makersがコントローラから渡されない場合は静的リストで対応 #}
  1800.                                 {% set makerList = [
  1801.                                     {id: 1,  name: 'LIXIL'},
  1802.                                     {id: 2,  name: 'YKK AP'},
  1803.                                     {id: 3,  name: '三協アルミ'},
  1804.                                     {id: 4,  name: '四国化成'},
  1805.                                     {id: 5,  name: 'タカショー'},
  1806.                                     {id: 6,  name: 'ユニソン'},
  1807.                                     {id: 7,  name: 'エスビック'},
  1808.                                     {id: 8,  name: 'パナソニック'},
  1809.                                     {id: 9,  name: 'イナバ'},
  1810.                                     {id: 10, name: 'ヨドコウ'},
  1811.                                     {id: 13, name: 'タクボ'}
  1812.                                 ] %}
  1813.                                 {% for maker in makerList %}
  1814.                                     <li class=\"{{ Maker is not null and Maker.id == maker.id ? 'is-active' : '' }}\">
  1815.                                         <a href=\"{{ url('product_list') }}?maker_id={{ maker.id }}{% if app.request.query.get('category_id') %}&category_id={{ app.request.query.get('category_id') }}{% endif %}\">
  1816.                                             {{ maker.name }}
  1817.                                         </a>
  1818.                                     </li>
  1819.                                 {% endfor %}
  1820.                             {% endif %}
  1821.                         </ul>
  1822.                     </div>
  1823.                 </div>
  1824.                 {# ----- カテゴリ ----- #}
  1825.                 <div class=\"ec-filterSidebar__section\">
  1826.                     <h3 class=\"ec-filterSidebar__heading\">カテゴリ</h3>
  1827.                     <div class=\"ec-filterSidebar__body is-open\">
  1828.                         {% set categoryList = [
  1829.                             {id: 7,  name: 'カーポート・車庫',         children: []},
  1830.                             {id: 16, name: 'ガレージ・倉庫',           children: []},
  1831.                             {id: 8,  name: 'サイクルポート・駐輪場',   children: []},
  1832.                             {id: 9,  name: 'ゲート',                   children: [
  1833.                                 {id: 30, name: '跳ね上げ式ゲート'},
  1834.                                 {id: 29, name: '伸縮ゲート'},
  1835.                                 {id: 31, name: 'ガレージシャッター'}
  1836.                             ]},
  1837.                             {id: 12, name: 'テラス',                   children: [
  1838.                                 {id: 33, name: 'テラス囲い'},
  1839.                                 {id: 32, name: 'テラス屋根'}
  1840.                             ]},
  1841.                             {id: 19, name: 'ベランダ・バルコニー',     children: [
  1842.                                 {id: 35, name: 'ベランダ・バルコニー屋根'},
  1843.                                 {id: 34, name: 'ベランダ・バルコニー'}
  1844.                             ]},
  1845.                             {id: 18, name: 'オーニング・日よけ',       children: []},
  1846.                             {id: 11, name: 'ウッドデッキ',             children: [
  1847.                                 {id: 37, name: 'タイルデッキ'},
  1848.                                 {id: 36, name: 'ウッドデッキ'}
  1849.                             ]},
  1850.                             {id: 14, name: 'フェンス・柵',             children: []},
  1851.                             {id: 25, name: '門扉',                     children: []},
  1852.                             {id: 13, name: 'ポスト・門柱宅配ボックス', children: []},
  1853.                             {id: 15, name: '物置・収納・屋外倉庫',     children: []},
  1854.                             {id: 20, name: 'ガーデンファニチャー',     children: []},
  1855.                             {id: 22, name: '人工芝',                   children: []},
  1856.                             {id: 17, name: '内窓・二重窓',             children: []},
  1857.                             {id: 26, name: 'その他',                   children: [
  1858.                                 {id: 38, name: 'パーゴラ'},
  1859.                                 {id: 39, name: '立水栓・ガーデンシンク'},
  1860.                                 {id: 40, name: '手すり'},
  1861.                                 {id: 10, name: 'ストックヤード'},
  1862.                                 {id: 27, name: 'ゴミステーション'},
  1863.                                 {id: 42, name: '面格子・窓格子'},
  1864.                                 {id: 41, name: '窓シャッター'},
  1865.                                 {id: 43, name: '玄関ドア'},
  1866.                                 {id: 28, name: '石材'},
  1867.                                 {id: 44, name: '照明'},
  1868.                                 {id: 21, name: 'DIY材料'}
  1869.                             ]}
  1870.                         ] %}
  1871.                         <ul class=\"ec-filterSidebar__categoryList\">
  1872.                             <li class=\"{{ app.request.query.get('category_id') is empty and Maker is null ? 'is-active' : '' }}\">
  1873.                                 <a href=\"{{ url('product_list') }}\">すべて</a>
  1874.                             </li>
  1875.                             {% for cat in categoryList %}
  1876.                                 <li class=\"{{ app.request.query.get('category_id') == cat.id ? 'is-active' : '' }}\">
  1877.                                     <a href=\"{{ url('product_list') }}?category_id={{ cat.id }}{% if app.request.query.get('maker_id') %}&maker_id={{ app.request.query.get('maker_id') }}{% endif %}\">
  1878.                                         {{ cat.name }}
  1879.                                     </a>
  1880.                                     {% if cat.children|length > 0 %}
  1881.                                         <ul>
  1882.                                             {% for child in cat.children %}
  1883.                                                 <li class=\"{{ app.request.query.get('category_id') == child.id ? 'is-active' : '' }}\">
  1884.                                                     <a href=\"{{ url('product_list') }}?category_id={{ child.id }}{% if app.request.query.get('maker_id') %}&maker_id={{ app.request.query.get('maker_id') }}{% endif %}\">
  1885.                                                         {{ child.name }}
  1886.                                                     </a>
  1887.                                                 </li>
  1888.                                             {% endfor %}
  1889.                                         </ul>
  1890.                                     {% endif %}
  1891.                                 </li>
  1892.                             {% endfor %}
  1893.                         </ul>
  1894.                     </div>
  1895.                 </div>
  1896.                 {# ----- リセット ----- #}
  1897.                 {% if hasFilter %}
  1898.                     <div class=\"ec-filterSidebar__reset\">
  1899.                         <a href=\"{{ url('product_list') }}\">絞り込みをすべてリセット</a>
  1900.                     </div>
  1901.                 {% endif %}
  1902.             </aside>
  1903.             {# / サイドバー #}
  1904.             {# ===== 商品一覧(右カラム)===== #}
  1905.             <div class=\"ec-productListMain\">
  1906.     {% if search_form.category_id.vars.errors|length > 0 %}
  1907.         <div class=\"ec-searchnavRole\">
  1908.             <p class=\"errormsg text-danger\">{{ 'ご指定のカテゴリは存在しません'|trans }}</p>
  1909.         </div>
  1910.     {% else %}
  1911.         {# 検索フォーム(hidden) #}
  1912.         <div class=\"ec-searchnavRole\">
  1913.             <form name=\"form1\" id=\"form1\" method=\"get\" action=\"?\">
  1914.                 {% for item in search_form %}
  1915.                     <input type=\"hidden\" id=\"{{ item.vars.id }}\"
  1916.                            name=\"{{ item.vars.full_name }}\"
  1917.                            {% if item.vars.value is not empty %}value=\"{{ item.vars.value }}\" {% endif %}/>
  1918.                 {% endfor %}
  1919.             </form>
  1920.             {# パンくずリスト #}
  1921.             <div class=\"ec-searchnavRole__topicpath\">
  1922.                 <ol class=\"ec-topicpath\">
  1923.                     <li class=\"ec-topicpath__item\"><a href=\"{{ url('product_list') }}\">{{ '全て'|trans }}</a></li>
  1924.                     {% if Category is not null %}
  1925.                         {% for Path in Category.path %}
  1926.                             <li class=\"ec-topicpath__divider\">|</li>
  1927.                             <li class=\"ec-topicpath__item{% if loop.last %}--active{% endif %}\">
  1928.                                 <a href=\"{{ url('product_list') }}?category_id={{ Path.id }}\">{{ Path.name }}</a>
  1929.                             </li>
  1930.                         {% endfor %}
  1931.                     {% endif %}
  1932.                     {% if Maker is not null %}
  1933.                         <li class=\"ec-topicpath__divider\">|</li>
  1934.                         <li class=\"ec-topicpath__item--active\">
  1935.                             <a href=\"{{ url('product_list') }}?maker_id={{ Maker.id }}\">{{ Maker.name }}</a>
  1936.                         </li>
  1937.                     {% endif %}
  1938.                     {% if search_form.vars.value and search_form.vars.value.name %}
  1939.                         <li class=\"ec-topicpath__divider\">|</li>
  1940.                         <li class=\"ec-topicpath__item\">{{ '「%name%」の検索結果'|trans({ '%name%': search_form.vars.value.name }) }}</li>
  1941.                     {% endif %}
  1942.                 </ol>
  1943.             </div>
  1944.         {# ==============================
  1945.            現在の絞り込み条件バッジ
  1946.         ============================== #}
  1947.         {% if hasFilter %}
  1948.             <div class=\"ec-filterActive\">
  1949.                 <span class=\"ec-filterActive__label\">絞り込み中:</span>
  1950.                 {% if Category is not null %}
  1951.                     {% set removeCategoryParam = 'category_id=' ~ app.request.query.get('category_id') %}
  1952.                     <span class=\"ec-filterActive__tag\">
  1953.                         {{ Category.name }}
  1954.                         <a href=\"{{ app.request.uri|replace({(removeCategoryParam): ''}) }}\" title=\"解除\">✕</a>
  1955.                     </span>
  1956.                 {% endif %}
  1957.                 {% if Maker is not null %}
  1958.                     <span class=\"ec-filterActive__tag\">
  1959.                         {{ Maker.name }}
  1960.                         <a href=\"{{ url('product_list') }}{% if app.request.query.get('category_id') %}?category_id={{ app.request.query.get('category_id') }}{% endif %}\" title=\"解除\">✕</a>
  1961.                     </span>
  1962.                 {% endif %}
  1963.                 {% if app.request.query.get('price_min') or app.request.query.get('price_max') %}
  1964.                     <span class=\"ec-filterActive__tag\">
  1965.                         {% if app.request.query.get('price_min') %}{{ app.request.query.get('price_min')|number_format }}円{% else %}0円{% endif %}
  1966.                         〜
  1967.                         {% if app.request.query.get('price_max') %}{{ app.request.query.get('price_max')|number_format }}円{% else %}上限なし{% endif %}
  1968.                         <a href=\"javascript:void(0);\" onclick=\"
  1969.                             var url = new URL(window.location.href);
  1970.                             url.searchParams.delete('price_min');
  1971.                             url.searchParams.delete('price_max');
  1972.                             window.location.href = url.toString();
  1973.                         \" title=\"解除\">✕</a>
  1974.                     </span>
  1975.                 {% endif %}
  1976.             </div>
  1977.         {% endif %}
  1978.             {# 件数・並び順 #}
  1979.             <div class=\"ec-searchnavRole__infos\">
  1980.                 <div class=\"ec-searchnavRole__counter\">
  1981.                     {% if pagination.totalItemCount > 0 %}
  1982.                         {{ '<span class=\"ec-font-bold\">%count%件</span><span>の商品が見つかりました</span>'|trans({ '%count%': pagination.totalItemCount })|raw }}
  1983.                     {% else %}
  1984.                         <span>{{ 'お探しの商品は見つかりませんでした'|trans }}</span>
  1985.                     {% endif %}
  1986.                 </div>
  1987.                 {% if pagination.totalItemCount > 0 %}
  1988.                     <div class=\"ec-searchnavRole__actions\">
  1989.                         <div class=\"ec-select\">
  1990.                             {{ form_widget(search_form.disp_number, {'id': '', 'attr': {'class': 'disp-number'}}) }}
  1991.                             {{ form_widget(search_form.orderby, {'id': '', 'attr': {'class': 'order-by'}}) }}
  1992.                         </div>
  1993.                     </div>
  1994.                 {% endif %}
  1995.             </div>
  1996.         </div>
  1997.                 {% if pagination.totalItemCount > 0 %}
  1998.                     <div class=\"ec-shelfRole\">
  1999.                         <ul class=\"ec-shelfGrid\">
  2000.                             {% for Product in pagination %}
  2001.                                 <li class=\"ec-shelfGrid__item\" style=\"position:relative;\">
  2002.                                     {% if BaseInfo.option_favorite_product %}
  2003.                                         <div style=\"position:absolute;top:8px;right:20px;z-index:10;\">
  2004.                                             <form action=\"{{ url('product_add_favorite', {id:Product.id}) }}\" method=\"post\">
  2005.                                                 <button type=\"submit\" id=\"favorite\" class=\"favorite\">&#9825;</button>
  2006.                                             </form>
  2007.                                         </div>
  2008.                                     {% endif %}
  2009.                                     <a href=\"{{ url('product_detail', {'id': Product.id}) }}\">
  2010.                                         <p class=\"ec-shelfGrid__item-image\">
  2011.                                             <img src=\"{{ asset(Product.main_list_image|no_image_product, 'save_image') }}\" alt=\"{{ Product.name }}\" width=\"180\" height=\"180\"{% if loop.index > 5 %} loading=\"lazy\"{% endif %}>
  2012.                                         </p>
  2013.                                         <h5><strong>{{ getProduct_field(Product.id,\"related_keyword\") }}</strong></h5>
  2014.                                         <p class=\"price02-default\">
  2015.                                             {% if Product.getPrice02Max is null or Product.getPrice02Max == 0 %}
  2016.                                                 現地調査見積
  2017.                                             {% elseif Product.hasProductClass %}
  2018.                                                 {% if Product.getPrice02Min == Product.getPrice02Max %}
  2019.                                                     {{ Product.getPrice02IncTaxMin|number_format }}円
  2020.                                                 {% else %}
  2021.                                                     {{ Product.getPrice02IncTaxMin|number_format }}円  ~ {{ Product.getPrice02IncTaxMax|number_format }}円
  2022.                                                 {% endif %}
  2023.                                             {% else %}
  2024.                                                 {{ Product.getPrice02IncTaxMin|number_format }}円 ~
  2025.                                             {% endif %}
  2026.                                         </p>
  2027.                                     </a>
  2028.                                     {% if Product.stock_find %}
  2029.                                         {% set form = forms[Product.id] %}
  2030.                                         <form name=\"form{{ Product.id }}\" id=\"productForm{{ Product.id }}\" action=\"{{ url('product_detail', {id:Product.id}) }}\" method=\"get\">
  2031.                                             <div class=\"ec-productRole__actions\">
  2032.                                                 {% if form.classcategory_id1 is defined %}
  2033.                                                     <div class=\"ec-select\">
  2034.                                                         {{ form_widget(form.classcategory_id1) }}
  2035.                                                         {{ form_errors(form.classcategory_id1) }}
  2036.                                                     </div>
  2037.                                                     {% if form.classcategory_id2 is defined %}
  2038.                                                         <div class=\"ec-select\">
  2039.                                                             {{ form_widget(form.classcategory_id2) }}
  2040.                                                             {{ form_errors(form.classcategory_id2) }}
  2041.                                                         </div>
  2042.                                                     {% endif %}
  2043.                                                 {% endif %}
  2044.                                                 <div class=\"ec-numberInput\" style=\"display:none;\"><span>{{ '数量'|trans }}</span>
  2045.                                                     {{ form_errors(form.quantity) }}
  2046.                                                 </div>
  2047.                                             </div>
  2048.                                             <div class=\"ec-productRole__btn\">
  2049.                                                 <button class=\"ec-blockBtn--action\">
  2050.                                                     {{ 'お見積もりはこちら'|trans }}
  2051.                                                 </button>
  2052.                                             </div>
  2053.                                         </form>
  2054.                                     {% else %}
  2055.                                         <div class=\"ec-productRole__btn\">
  2056.                                             <button type=\"button\" class=\"ec-blockBtn--action\" disabled=\"disabled\">
  2057.                                                 {{ 'ただいま品切れ中です。'|trans }}
  2058.                                             </button>
  2059.                                         </div>
  2060.                                     {% endif %}
  2061.                                 </li>
  2062.                             {% endfor %}
  2063.                         </ul>
  2064.                     </div>
  2065.                     <div class=\"ec-pagerRole\">
  2066.                         {% include \"pager.twig\" with {'pages': pagination.paginationData} %}
  2067.                     </div>
  2068.                 {% endif %}
  2069.             </div>
  2070.             {# / 商品一覧 #}
  2071.         </div>
  2072.         {# / ec-productListLayout #}
  2073.     {% endif %}
  2074. {% endblock %}
  2075. ""Product/list.twig""/home/xs538259/exterior-plus.jp/public_html/app/template/default/Product/list.twig");
  2076.     }
  2077. }