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