<?php
use Twig\Environment;
use Twig\Error\LoaderError;
use Twig\Error\RuntimeError;
use Twig\Extension\SandboxExtension;
use Twig\Markup;
use Twig\Sandbox\SecurityError;
use Twig\Sandbox\SecurityNotAllowedTagError;
use Twig\Sandbox\SecurityNotAllowedFilterError;
use Twig\Sandbox\SecurityNotAllowedFunctionError;
use Twig\Source;
use Twig\Template;
/* Product/list.twig */
class __TwigTemplate_2540083cd6d312e1063499d94ad38e033494c7a31043c32ede75cc0607468d8c extends \Eccube\Twig\Template
{
private $source;
private $macros = [];
public function __construct(Environment $env)
{
parent::__construct($env);
$this->source = $this->getSourceContext();
$this->blocks = [
'stylesheet' => [$this, 'block_stylesheet'],
'javascript' => [$this, 'block_javascript'],
'main' => [$this, 'block_main'],
];
}
protected function doGetParent(array $context)
{
// line 11
return "default_frame.twig";
}
protected function doDisplay(array $context, array $blocks = [])
{
$macros = $this->macros;
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "Product/list.twig"));
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "Product/list.twig"));
// line 13
$context["body_class"] = "product_page";
// line 11
$this->parent = $this->loadTemplate("default_frame.twig", "Product/list.twig", 11);
$this->parent->display($context, array_merge($this->blocks, $blocks));
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
}
// line 15
public function block_stylesheet($context, array $blocks = [])
{
$macros = $this->macros;
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "stylesheet"));
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "stylesheet"));
// line 16
echo " <link rel=\"stylesheet\" href=\"/html/plugins/ion-rangeslider/css/ion.rangeSlider.min.css\">
<style>
/* ============================================
サイドバー付き 2カラムレイアウト
============================================ */
.ec-productListLayout {
display: flex;
gap: 32px;
align-items: flex-start;
}
/* ============================================
サイドバー(フィルターパネル)
============================================ */
.ec-filterSidebar {
position: static;
margin: 20px;
width: 240px;
flex-shrink: 0;
}
/* Wide desktop: center the main column to align with site grid (1130 + 280 sidebar) */
@media (min-width: 1410px) {
\t\t\t.ec-searchnavRole {
\t\t\t\tmargin-left: calc((100% - 1130px - 280px) / 2);
\t\t\t}
\t\t\t.ec-shelfRole {
\t\t\t\tmargin-left: calc((100% - 1130px - 280px) / 2);
\t\t\t}
\t\t\t.ec-pagerRole {
\t\t\t\tmargin-left: calc((100% - 1130px - 280px) / 2);
\t\t\t}
\t\t}
.ec-filterSidebar__section {
background: #fff;
border: 1px solid #e8e8e8;
border-radius: 6px;
padding: 18px 16px;
margin-bottom: 16px;
}
.ec-filterSidebar__heading {
font-size: 13px;
font-weight: bold;
color: #222;
margin: 0 0 12px;
padding-bottom: 10px;
border-bottom: 2px solid #222;
letter-spacing: 0.05em;
}
/* カテゴリリスト */
.ec-filterSidebar__categoryList,
.ec-filterSidebar__categoryList ul {
list-style: none;
padding: 0;
margin: 0;
}
.ec-filterSidebar__categoryList li a {
display: block;
padding: 6px 8px;
font-size: 13px;
color: #444;
text-decoration: none;
border-radius: 4px;
transition: background 0.15s, color 0.15s;
}
.ec-filterSidebar__categoryList li a:hover {
background: #f5f5f5;
color: #222;
}
.ec-filterSidebar__categoryList li.is-active > a {
font-weight: bold;
color: #c00;
background: #fff5f5;
}
/* サブカテゴリ */
.ec-filterSidebar__categoryList ul {
padding-left: 12px;
margin-top: 2px;
}
.ec-filterSidebar__categoryList ul li a {
font-size: 12px;
color: #666;
padding: 4px 8px;
}
/* メーカーリスト */
.ec-filterSidebar__makerList {
list-style: none;
padding: 0;
margin: 0;
}
.ec-filterSidebar__makerList li {
border-bottom: 1px solid #f0f0f0;
}
.ec-filterSidebar__makerList li:last-child {
border-bottom: none;
}
.ec-filterSidebar__makerList li a {
display: flex;
align-items: center;
gap: 6px;
padding: 7px 6px;
font-size: 13px;
color: #444;
text-decoration: none;
transition: color 0.15s;
}
.ec-filterSidebar__makerList li a:hover {
color: #c00;
}
.ec-filterSidebar__makerList li.is-active a {
font-weight: bold;
color: #c00;
}
.ec-filterSidebar__makerList li.is-active a::before {
content: \"✓\";
font-size: 11px;
color: #c00;
}
/* 価格帯フィルター */
.ec-filterSidebar__priceDisplay {
text-align: center;
font-size: 13px;
color: #333;
margin-bottom: 12px;
font-weight: bold;
}
.ec-filterSidebar__priceDisplay span {
color: #c00;
}
.ec-filterSidebar__priceSliderWrap {
/* Side padding holds room for ion-rangeSlider .irs-to / .irs-from labels
so the max-value tooltip never spills past the sidebar edge. */
padding: 0 14px;
margin-bottom: 16px;
}
.ec-filterSidebar__priceApply {
display: block;
width: 100%;
padding: 8px;
background: #222;
color: #fff;
border: none;
border-radius: 4px;
font-size: 13px;
cursor: pointer;
text-align: center;
transition: background 0.2s;
}
.ec-filterSidebar__priceApply:hover {
background: #444;
}
.ec-filterSidebar__pricePreset {
list-style: none;
padding: 0;
margin: 10px 0 0;
}
.ec-filterSidebar__pricePreset li a {
display: block;
padding: 5px 6px;
font-size: 12px;
color: #666;
text-decoration: none;
border-radius: 4px;
transition: background 0.15s;
}
.ec-filterSidebar__pricePreset li a:hover {
background: #f5f5f5;
color: #333;
}
/* 絞り込みリセット */
.ec-filterSidebar__reset a {
display: block;
text-align: center;
padding: 8px;
font-size: 12px;
color: #888;
text-decoration: underline;
border: 1px solid #ddd;
border-radius: 4px;
transition: color 0.15s, border-color 0.15s;
}
.ec-filterSidebar__reset a:hover {
color: #c00;
border-color: #c00;
}
/* 現在の絞り込み条件バッジ */
.ec-filterActive {
display: flex;
flex-wrap: wrap;
gap: 6px;
margin-bottom: 12px;
padding: 10px 12px;
background: #f9f9f9;
border: 1px solid #e8e8e8;
border-radius: 6px;
}
.ec-filterActive__label {
font-size: 11px;
color: #888;
align-self: center;
margin-right: 4px;
}
.ec-filterActive__tag {
display: inline-flex;
align-items: center;
gap: 4px;
padding: 3px 8px;
background: #222;
color: #fff;
border-radius: 20px;
font-size: 11px;
}
.ec-filterActive__tag a {
color: #aaa;
text-decoration: none;
font-size: 12px;
line-height: 1;
}
.ec-filterActive__tag a:hover {
color: #fff;
}
/* メインコンテンツ側 */
.ec-productListMain {
flex: 1;
min-width: 0;
width: 100%;
}
/* ion-rangeslider カスタマイズ */
.irs--flat .irs-bar {
background-color: #222;
}
.irs--flat .irs-handle > i:first-child {
background-color: #222;
}
.irs--flat .irs-from,
.irs--flat .irs-to,
.irs--flat .irs-single {
background-color: #222;
font-size: 11px;
}
/* Tablet (768-1199px): stack sidebar above grid to avoid overlap */
@media (min-width: 768px) and (max-width: 1199px) {
.ec-productListLayout {
flex-direction: column;
gap: 0;
}
.ec-filterSidebar {
width: 100%;
margin: 0 0 16px;
}
.ec-productListMain {
width: 100%;
}
/* Allow CTA to wrap and avoid truncation in 2-col tablet grid */
.ec-shelfGrid .ec-blockBtn--action {
white-space: normal;
line-height: 1.3;
height: auto;
min-height: 56px;
padding: 12px 8px;
font-size: 0.8rem;
}
}
/* Price slider tooltip: prevent label overlap when results are empty */
.ec-productListMain .ec-shelfRole:empty + .ec-pagerRole,
.ec-productListMain:has(.ec-shelfGrid:empty) .ec-filterSidebar__priceSliderWrap .irs-from,
.ec-productListMain:has(.ec-shelfGrid:empty) .ec-filterSidebar__priceSliderWrap .irs-to,
.ec-productListMain:has(.ec-shelfGrid:empty) .ec-filterSidebar__priceSliderWrap .irs-single {
visibility: hidden;
}
.ec-filterSidebar__priceSliderWrap .irs {
position: relative;
z-index: 1;
}
.ec-filterSidebar__priceSliderWrap .irs-from,
.ec-filterSidebar__priceSliderWrap .irs-to,
.ec-filterSidebar__priceSliderWrap .irs-single {
white-space: nowrap;
}
/* モバイル対応 */
@media (max-width: 767px) {
/* 横スクロール禁止 */
body, html {
overflow-x: hidden;
max-width: 100vw;
}
.ec-productListLayout {
flex-direction: column;
gap: 0;
}
.ec-filterSidebar {
width: 100%;
margin: 0;
}
/* スマホで商品一覧を確実に表示 */
.ec-productListMain {
width: 100%;
flex: none;
margin: 0;
}
.ec-filterSidebar__section {
margin-bottom: 10px;
}
/* Allow CTA to wrap and avoid truncation in narrow mobile cards */
.ec-shelfGrid .ec-blockBtn--action {
white-space: normal;
word-break: keep-all;
overflow-wrap: anywhere;
line-height: 1.3;
height: auto;
min-height: 56px;
padding: 12px 8px;
font-size: 0.8rem;
}
/* モバイルではアコーディオン形式 */
.ec-filterSidebar__body {
display: none;
}
.ec-filterSidebar__body.is-open {
display: block;
}
.ec-filterSidebar__heading {
cursor: pointer;
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 0;
padding-bottom: 0;
border-bottom: none;
}
.ec-filterSidebar__heading.is-open {
margin-bottom: 12px;
padding-bottom: 10px;
border-bottom: 2px solid #222;
}
.ec-filterSidebar__heading::after {
content: \"▼\";
font-size: 10px;
color: #888;
transition: transform 0.2s;
}
.ec-filterSidebar__heading.is-open::after {
transform: rotate(180deg);
}
}
</style>
";
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
}
// line 414
public function block_javascript($context, array $blocks = [])
{
$macros = $this->macros;
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "javascript"));
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "javascript"));
// line 415
echo " <script>
eccube.productsClassCategories = {
";
// line 417
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable((isset($context["pagination"]) || array_key_exists("pagination", $context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.', 417, $this->source); })()));
$context['loop'] = [
'parent' => $context['_parent'],
'index0' => 0,
'index' => 1,
'first' => true,
];
if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
$length = count($context['_seq']);
$context['loop']['revindex0'] = $length - 1;
$context['loop']['revindex'] = $length;
$context['loop']['length'] = $length;
$context['loop']['last'] = 1 === $length;
}
foreach ($context['_seq'] as $context["_key"] => $context["Product"]) {
// line 418
echo " \"";
echo twig_escape_filter($this->env, twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["Product"], "id", [], "any", false, false, false, 418), "js"), "html", null, true);
echo "\": ";
echo $this->extensions['Eccube\Twig\Extension\EccubeExtension']->getClassCategoriesAsJson($context["Product"]);
if ((twig_get_attribute($this->env, $this->source, $context["loop"], "last", [], "any", false, false, false, 418) == false)) {
echo ", ";
}
// line 419
echo " ";
++$context['loop']['index0'];
++$context['loop']['index'];
$context['loop']['first'] = false;
if (isset($context['loop']['length'])) {
--$context['loop']['revindex0'];
--$context['loop']['revindex'];
$context['loop']['last'] = 0 === $context['loop']['revindex0'];
}
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['Product'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 420
echo " };
\$(function() {
// 表示件数を変更
\$('.disp-number').change(function() {
var dispNumber = \$(this).val();
\$('#disp_number').val(dispNumber);
\$('#pageno').val(1);
\$(\"#form1\").submit();
});
// 並び順を変更
\$('.order-by').change(function() {
var orderBy = \$(this).val();
\$('#orderby').val(orderBy);
\$('#pageno').val(1);
\$(\"#form1\").submit();
});
// ==============================
// 価格帯スライダー(ion-rangeslider)
// ==============================
var priceMin = parseInt('";
// line 443
((twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 443, $this->source); })()), "request", [], "any", false, false, false, 443), "query", [], "any", false, false, false, 443), "get", [0 => "price_min"], "method", false, false, false, 443)) ? (print (twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 443, $this->source); })()), "request", [], "any", false, false, false, 443), "query", [], "any", false, false, false, 443), "get", [0 => "price_min"], "method", false, false, false, 443), "html", null, true))) : (print (0)));
echo "') || 0;
var priceMax = parseInt('";
// line 444
((twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 444, $this->source); })()), "request", [], "any", false, false, false, 444), "query", [], "any", false, false, false, 444), "get", [0 => "price_max"], "method", false, false, false, 444)) ? (print (twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 444, $this->source); })()), "request", [], "any", false, false, false, 444), "query", [], "any", false, false, false, 444), "get", [0 => "price_max"], "method", false, false, false, 444), "html", null, true))) : (print (5000000)));
echo "') || 5000000;
\$(\"#price-range-slider\").ionRangeSlider({
type: \"double\",
min: 0,
max: 5000000,
from: priceMin,
to: priceMax,
step: 10000,
prettify_enabled: true,
prettify_separator: \",\",
postfix: \"円\",
onFinish: function(data) {
\$('#price_min_val').val(data.from);
\$('#price_max_val').val(data.to);
// 表示更新
\$('#price-display-min').text(Number(data.from).toLocaleString());
\$('#price-display-max').text(Number(data.to).toLocaleString());
}
});
// 価格フォーム送信
\$('#price-filter-apply').on('click', function() {
var min = \$('#price_min_val').val();
var max = \$('#price_max_val').val();
var url = new URL(window.location.href);
url.searchParams.set('price_min', min);
url.searchParams.set('price_max', max);
url.searchParams.delete('pageno');
window.location.href = url.toString();
});
// モバイル:アコーディオン(初期状態を閉じる)
function initMobileAccordion() {
if (\$(window).width() <= 767) {
\$('.ec-filterSidebar__heading').removeClass('is-open');
\$('.ec-filterSidebar__body').removeClass('is-open');
}
}
initMobileAccordion();
\$(window).on('resize', initMobileAccordion);
\$('.ec-filterSidebar__heading').on('click', function() {
if (\$(window).width() <= 767) {
\$(this).toggleClass('is-open');
\$(this).next('.ec-filterSidebar__body').toggleClass('is-open');
}
});
});
\$('.ec-modal-wrap').on('click', function(e) {
e.stopPropagation();
});
\$('.ec-modal-overlay, .ec-modal, .ec-modal-close, .ec-inlineBtn--cancel').on('click', function() {
\$('.ec-modal').hide()
});
\t // 価格プリセットのクイック適用
\t function applyPrice(min, max) {
\t var url = new URL(window.location.href);
\t url.searchParams.set('price_min', min);
\t url.searchParams.set('price_max', max);
\t url.searchParams.delete('pageno');
\t window.location.href = url.toString();
\t }
</script>
<script src=\"/html/plugins/ion-rangeslider/js/ion.rangeSlider.min.js\"></script>
";
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
}
// line 514
public function block_main($context, array $blocks = [])
{
$macros = $this->macros;
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "main"));
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "main"));
// line 515
echo "
";
// line 517
$context["hasFilter"] = (((twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 517, $this->source); })()), "request", [], "any", false, false, false, 517), "query", [], "any", false, false, false, 517), "get", [0 => "category_id"], "method", false, false, false, 517) || twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 517, $this->source); })()), "request", [], "any", false, false, false, 517), "query", [], "any", false, false, false, 517), "get", [0 => "maker_id"], "method", false, false, false, 517)) || twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 517, $this->source); })()), "request", [], "any", false, false, false, 517), "query", [], "any", false, false, false, 517), "get", [0 => "price_min"], "method", false, false, false, 517)) || twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 517, $this->source); })()), "request", [], "any", false, false, false, 517), "query", [], "any", false, false, false, 517), "get", [0 => "price_max"], "method", false, false, false, 517));
// line 518
echo "
";
// line 522
echo " <div class=\"ec-productListLayout\">
";
// line 525
echo " <aside class=\"ec-filterSidebar\">
";
// line 527
echo " <div class=\"ec-filterSidebar__section\">
<h3 class=\"ec-filterSidebar__heading\">価格帯</h3>
<div class=\"ec-filterSidebar__body is-open\">
<div class=\"ec-filterSidebar__priceDisplay\">
<span id=\"price-display-min\">";
// line 531
((twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_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", false, false, false, 531), "query", [], "any", false, false, false, 531), "get", [0 => "price_min"], "method", false, false, false, 531)) ? (print (twig_escape_filter($this->env, twig_number_format_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_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", false, false, false, 531), "query", [], "any", false, false, false, 531), "get", [0 => "price_min"], "method", false, false, false, 531)), "html", null, true))) : (print ("0")));
echo "</span>円
〜
<span id=\"price-display-max\">";
// line 533
((twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 533, $this->source); })()), "request", [], "any", false, false, false, 533), "query", [], "any", false, false, false, 533), "get", [0 => "price_max"], "method", false, false, false, 533)) ? (print (twig_escape_filter($this->env, twig_number_format_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 533, $this->source); })()), "request", [], "any", false, false, false, 533), "query", [], "any", false, false, false, 533), "get", [0 => "price_max"], "method", false, false, false, 533)), "html", null, true))) : (print ("5,000,000")));
echo "</span>円
</div>
<div class=\"ec-filterSidebar__priceSliderWrap\">
<input type=\"text\" id=\"price-range-slider\" style=\"display:none;\">
<input type=\"hidden\" id=\"price_min_val\" value=\"";
// line 537
((twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 537, $this->source); })()), "request", [], "any", false, false, false, 537), "query", [], "any", false, false, false, 537), "get", [0 => "price_min"], "method", false, false, false, 537)) ? (print (twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 537, $this->source); })()), "request", [], "any", false, false, false, 537), "query", [], "any", false, false, false, 537), "get", [0 => "price_min"], "method", false, false, false, 537), "html", null, true))) : (print (0)));
echo "\">
<input type=\"hidden\" id=\"price_max_val\" value=\"";
// line 538
((twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 538, $this->source); })()), "request", [], "any", false, false, false, 538), "query", [], "any", false, false, false, 538), "get", [0 => "price_max"], "method", false, false, false, 538)) ? (print (twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 538, $this->source); })()), "request", [], "any", false, false, false, 538), "query", [], "any", false, false, false, 538), "get", [0 => "price_max"], "method", false, false, false, 538), "html", null, true))) : (print (5000000)));
echo "\">
</div>
<button id=\"price-filter-apply\" class=\"ec-filterSidebar__priceApply\">この価格帯で絞り込む</button>
<ul class=\"ec-filterSidebar__pricePreset\">
<li><a href=\"javascript:void(0);\" onclick=\"applyPrice(0, 300000)\">〜30万円</a></li>
<li><a href=\"javascript:void(0);\" onclick=\"applyPrice(300000, 600000)\">30万円〜60万円</a></li>
<li><a href=\"javascript:void(0);\" onclick=\"applyPrice(600000, 1000000)\">60万円〜100万円</a></li>
<li><a href=\"javascript:void(0);\" onclick=\"applyPrice(1000000, 5000000)\">100万円〜</a></li>
</ul>
</div>
</div>
";
// line 553
echo " <div class=\"ec-filterSidebar__section\">
<h3 class=\"ec-filterSidebar__heading\">ブランド</h3>
<div class=\"ec-filterSidebar__body is-open\">
<ul class=\"ec-filterSidebar__makerList\">
";
// line 557
if (array_key_exists("Makers", $context)) {
// line 558
echo " ";
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable((isset($context["Makers"]) || array_key_exists("Makers", $context) ? $context["Makers"] : (function () { throw new RuntimeError('Variable "Makers" does not exist.', 558, $this->source); })()));
foreach ($context['_seq'] as $context["_key"] => $context["MakerItem"]) {
// line 559
echo " <li class=\"";
echo ((( !(null === (isset($context["Maker"]) || array_key_exists("Maker", $context) ? $context["Maker"] : (function () { throw new RuntimeError('Variable "Maker" does not exist.', 559, $this->source); })())) && (twig_get_attribute($this->env, $this->source, (isset($context["Maker"]) || array_key_exists("Maker", $context) ? $context["Maker"] : (function () { throw new RuntimeError('Variable "Maker" does not exist.', 559, $this->source); })()), "id", [], "any", false, false, false, 559) == twig_get_attribute($this->env, $this->source, $context["MakerItem"], "id", [], "any", false, false, false, 559)))) ? ("is-active") : (""));
echo "\">
<a href=\"";
// line 560
echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_list");
echo "?maker_id=";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["MakerItem"], "id", [], "any", false, false, false, 560), "html", null, true);
if (twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 560, $this->source); })()), "request", [], "any", false, false, false, 560), "query", [], "any", false, false, false, 560), "get", [0 => "category_id"], "method", false, false, false, 560)) {
echo "&category_id=";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 560, $this->source); })()), "request", [], "any", false, false, false, 560), "query", [], "any", false, false, false, 560), "get", [0 => "category_id"], "method", false, false, false, 560), "html", null, true);
}
echo "\">
";
// line 561
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["MakerItem"], "name", [], "any", false, false, false, 561), "html", null, true);
echo "
</a>
</li>
";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['MakerItem'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 565
echo " ";
} else {
// line 566
echo " ";
// line 567
echo " ";
$context["makerList"] = [0 => ["id" => 1, "name" => "LIXIL"], 1 => ["id" => 2, "name" => "YKK AP"], 2 => ["id" => 3, "name" => "三協アルミ"], 3 => ["id" => 4, "name" => "四国化成"], 4 => ["id" => 5, "name" => "タカショー"], 5 => ["id" => 6, "name" => "ユニソン"], 6 => ["id" => 7, "name" => "エスビック"], 7 => ["id" => 8, "name" => "パナソニック"], 8 => ["id" => 9, "name" => "イナバ"], 9 => ["id" => 10, "name" => "ヨドコウ"], 10 => ["id" => 13, "name" => "タクボ"]];
// line 580
echo " ";
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable((isset($context["makerList"]) || array_key_exists("makerList", $context) ? $context["makerList"] : (function () { throw new RuntimeError('Variable "makerList" does not exist.', 580, $this->source); })()));
foreach ($context['_seq'] as $context["_key"] => $context["maker"]) {
// line 581
echo " <li class=\"";
echo ((( !(null === (isset($context["Maker"]) || array_key_exists("Maker", $context) ? $context["Maker"] : (function () { throw new RuntimeError('Variable "Maker" does not exist.', 581, $this->source); })())) && (twig_get_attribute($this->env, $this->source, (isset($context["Maker"]) || array_key_exists("Maker", $context) ? $context["Maker"] : (function () { throw new RuntimeError('Variable "Maker" does not exist.', 581, $this->source); })()), "id", [], "any", false, false, false, 581) == twig_get_attribute($this->env, $this->source, $context["maker"], "id", [], "any", false, false, false, 581)))) ? ("is-active") : (""));
echo "\">
<a href=\"";
// line 582
echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_list");
echo "?maker_id=";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["maker"], "id", [], "any", false, false, false, 582), "html", null, true);
if (twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 582, $this->source); })()), "request", [], "any", false, false, false, 582), "query", [], "any", false, false, false, 582), "get", [0 => "category_id"], "method", false, false, false, 582)) {
echo "&category_id=";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 582, $this->source); })()), "request", [], "any", false, false, false, 582), "query", [], "any", false, false, false, 582), "get", [0 => "category_id"], "method", false, false, false, 582), "html", null, true);
}
echo "\">
";
// line 583
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["maker"], "name", [], "any", false, false, false, 583), "html", null, true);
echo "
</a>
</li>
";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['maker'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 587
echo " ";
}
// line 588
echo " </ul>
</div>
</div>
";
// line 592
echo " <div class=\"ec-filterSidebar__section\">
<h3 class=\"ec-filterSidebar__heading\">カテゴリ</h3>
<div class=\"ec-filterSidebar__body is-open\">
";
// line 595
$context["categoryList"] = [0 => ["id" => 7, "name" => "カーポート・車庫", "children" => []], 1 => ["id" => 16, "name" => "ガレージ・倉庫", "children" => []], 2 => ["id" => 8, "name" => "サイクルポート・駐輪場", "children" => []], 3 => ["id" => 9, "name" => "ゲート", "children" => [0 => ["id" => 30, "name" => "跳ね上げ式ゲート"], 1 => ["id" => 29, "name" => "伸縮ゲート"], 2 => ["id" => 31, "name" => "ガレージシャッター"]]], 4 => ["id" => 12, "name" => "テラス", "children" => [0 => ["id" => 33, "name" => "テラス囲い"], 1 => ["id" => 32, "name" => "テラス屋根"]]], 5 => ["id" => 19, "name" => "ベランダ・バルコニー", "children" => [0 => ["id" => 35, "name" => "ベランダ・バルコニー屋根"], 1 => ["id" => 34, "name" => "ベランダ・バルコニー"]]], 6 => ["id" => 18, "name" => "オーニング・日よけ", "children" => []], 7 => ["id" => 11, "name" => "ウッドデッキ", "children" => [0 => ["id" => 37, "name" => "タイルデッキ"], 1 => ["id" => 36, "name" => "ウッドデッキ"]]], 8 => ["id" => 14, "name" => "フェンス・柵", "children" => []], 9 => ["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" => [0 => ["id" => 38, "name" => "パーゴラ"], 1 => ["id" => 39, "name" => "立水栓・ガーデンシンク"], 2 => ["id" => 40, "name" => "手すり"], 3 => ["id" => 10, "name" => "ストックヤード"], 4 => ["id" => 27, "name" => "ゴミステーション"], 5 => ["id" => 42, "name" => "面格子・窓格子"], 6 => ["id" => 41, "name" => "窓シャッター"], 7 => ["id" => 43, "name" => "玄関ドア"], 8 => ["id" => 28, "name" => "石材"], 9 => ["id" => 44, "name" => "照明"], 10 => ["id" => 21, "name" => "DIY材料"]]]];
// line 638
echo " <ul class=\"ec-filterSidebar__categoryList\">
<li class=\"";
// line 639
echo (((twig_test_empty(twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 639, $this->source); })()), "request", [], "any", false, false, false, 639), "query", [], "any", false, false, false, 639), "get", [0 => "category_id"], "method", false, false, false, 639)) && (null === (isset($context["Maker"]) || array_key_exists("Maker", $context) ? $context["Maker"] : (function () { throw new RuntimeError('Variable "Maker" does not exist.', 639, $this->source); })())))) ? ("is-active") : (""));
echo "\">
<a href=\"";
// line 640
echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_list");
echo "\">すべて</a>
</li>
";
// line 642
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable((isset($context["categoryList"]) || array_key_exists("categoryList", $context) ? $context["categoryList"] : (function () { throw new RuntimeError('Variable "categoryList" does not exist.', 642, $this->source); })()));
foreach ($context['_seq'] as $context["_key"] => $context["cat"]) {
// line 643
echo " <li class=\"";
echo (((twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 643, $this->source); })()), "request", [], "any", false, false, false, 643), "query", [], "any", false, false, false, 643), "get", [0 => "category_id"], "method", false, false, false, 643) == twig_get_attribute($this->env, $this->source, $context["cat"], "id", [], "any", false, false, false, 643))) ? ("is-active") : (""));
echo "\">
<a href=\"";
// line 644
echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_list");
echo "?category_id=";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["cat"], "id", [], "any", false, false, false, 644), "html", null, true);
if (twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 644, $this->source); })()), "request", [], "any", false, false, false, 644), "query", [], "any", false, false, false, 644), "get", [0 => "maker_id"], "method", false, false, false, 644)) {
echo "&maker_id=";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 644, $this->source); })()), "request", [], "any", false, false, false, 644), "query", [], "any", false, false, false, 644), "get", [0 => "maker_id"], "method", false, false, false, 644), "html", null, true);
}
echo "\">
";
// line 645
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["cat"], "name", [], "any", false, false, false, 645), "html", null, true);
echo "
</a>
";
// line 647
if ((twig_length_filter($this->env, twig_get_attribute($this->env, $this->source, $context["cat"], "children", [], "any", false, false, false, 647)) > 0)) {
// line 648
echo " <ul>
";
// line 649
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, $context["cat"], "children", [], "any", false, false, false, 649));
foreach ($context['_seq'] as $context["_key"] => $context["child"]) {
// line 650
echo " <li class=\"";
echo (((twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 650, $this->source); })()), "request", [], "any", false, false, false, 650), "query", [], "any", false, false, false, 650), "get", [0 => "category_id"], "method", false, false, false, 650) == twig_get_attribute($this->env, $this->source, $context["child"], "id", [], "any", false, false, false, 650))) ? ("is-active") : (""));
echo "\">
<a href=\"";
// line 651
echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_list");
echo "?category_id=";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["child"], "id", [], "any", false, false, false, 651), "html", null, true);
if (twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 651, $this->source); })()), "request", [], "any", false, false, false, 651), "query", [], "any", false, false, false, 651), "get", [0 => "maker_id"], "method", false, false, false, 651)) {
echo "&maker_id=";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 651, $this->source); })()), "request", [], "any", false, false, false, 651), "query", [], "any", false, false, false, 651), "get", [0 => "maker_id"], "method", false, false, false, 651), "html", null, true);
}
echo "\">
";
// line 652
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["child"], "name", [], "any", false, false, false, 652), "html", null, true);
echo "
</a>
</li>
";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['child'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 656
echo " </ul>
";
}
// line 658
echo " </li>
";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['cat'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 660
echo " </ul>
</div>
</div>
";
// line 665
echo " ";
if ((isset($context["hasFilter"]) || array_key_exists("hasFilter", $context) ? $context["hasFilter"] : (function () { throw new RuntimeError('Variable "hasFilter" does not exist.', 665, $this->source); })())) {
// line 666
echo " <div class=\"ec-filterSidebar__reset\">
<a href=\"";
// line 667
echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_list");
echo "\">絞り込みをすべてリセット</a>
</div>
";
}
// line 670
echo "
</aside>
";
// line 673
echo "
";
// line 675
echo " <div class=\"ec-productListMain\">
";
// line 676
if ((twig_length_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, 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.', 676, $this->source); })()), "category_id", [], "any", false, false, false, 676), "vars", [], "any", false, false, false, 676), "errors", [], "any", false, false, false, 676)) > 0)) {
// line 677
echo " <div class=\"ec-searchnavRole\">
<p class=\"errormsg text-danger\">";
// line 678
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("ご指定のカテゴリは存在しません"), "html", null, true);
echo "</p>
</div>
";
} else {
// line 681
echo " ";
// line 682
echo " <div class=\"ec-searchnavRole\">
<form name=\"form1\" id=\"form1\" method=\"get\" action=\"?\">
";
// line 684
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable((isset($context["search_form"]) || array_key_exists("search_form", $context) ? $context["search_form"] : (function () { throw new RuntimeError('Variable "search_form" does not exist.', 684, $this->source); })()));
foreach ($context['_seq'] as $context["_key"] => $context["item"]) {
// line 685
echo " <input type=\"hidden\" id=\"";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, $context["item"], "vars", [], "any", false, false, false, 685), "id", [], "any", false, false, false, 685), "html", null, true);
echo "\"
name=\"";
// line 686
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, $context["item"], "vars", [], "any", false, false, false, 686), "full_name", [], "any", false, false, false, 686), "html", null, true);
echo "\"
";
// line 687
if ( !twig_test_empty(twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, $context["item"], "vars", [], "any", false, false, false, 687), "value", [], "any", false, false, false, 687))) {
echo "value=\"";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, $context["item"], "vars", [], "any", false, false, false, 687), "value", [], "any", false, false, false, 687), "html", null, true);
echo "\" ";
}
echo "/>
";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['item'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 689
echo " </form>
";
// line 692
echo " <div class=\"ec-searchnavRole__topicpath\">
<ol class=\"ec-topicpath\">
<li class=\"ec-topicpath__item\"><a href=\"";
// line 694
echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_list");
echo "\">";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("全て"), "html", null, true);
echo "</a></li>
";
// line 695
if ( !(null === (isset($context["Category"]) || array_key_exists("Category", $context) ? $context["Category"] : (function () { throw new RuntimeError('Variable "Category" does not exist.', 695, $this->source); })()))) {
// line 696
echo " ";
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, (isset($context["Category"]) || array_key_exists("Category", $context) ? $context["Category"] : (function () { throw new RuntimeError('Variable "Category" does not exist.', 696, $this->source); })()), "path", [], "any", false, false, false, 696));
$context['loop'] = [
'parent' => $context['_parent'],
'index0' => 0,
'index' => 1,
'first' => true,
];
if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
$length = count($context['_seq']);
$context['loop']['revindex0'] = $length - 1;
$context['loop']['revindex'] = $length;
$context['loop']['length'] = $length;
$context['loop']['last'] = 1 === $length;
}
foreach ($context['_seq'] as $context["_key"] => $context["Path"]) {
// line 697
echo " <li class=\"ec-topicpath__divider\">|</li>
<li class=\"ec-topicpath__item";
// line 698
if (twig_get_attribute($this->env, $this->source, $context["loop"], "last", [], "any", false, false, false, 698)) {
echo "--active";
}
echo "\">
<a href=\"";
// line 699
echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_list");
echo "?category_id=";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["Path"], "id", [], "any", false, false, false, 699), "html", null, true);
echo "\">";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["Path"], "name", [], "any", false, false, false, 699), "html", null, true);
echo "</a>
</li>
";
++$context['loop']['index0'];
++$context['loop']['index'];
$context['loop']['first'] = false;
if (isset($context['loop']['length'])) {
--$context['loop']['revindex0'];
--$context['loop']['revindex'];
$context['loop']['last'] = 0 === $context['loop']['revindex0'];
}
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['Path'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 702
echo " ";
}
// line 703
echo " ";
if ( !(null === (isset($context["Maker"]) || array_key_exists("Maker", $context) ? $context["Maker"] : (function () { throw new RuntimeError('Variable "Maker" does not exist.', 703, $this->source); })()))) {
// line 704
echo " <li class=\"ec-topicpath__divider\">|</li>
<li class=\"ec-topicpath__item--active\">
<a href=\"";
// line 706
echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_list");
echo "?maker_id=";
echo twig_escape_filter($this->env, 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.', 706, $this->source); })()), "id", [], "any", false, false, false, 706), "html", null, true);
echo "\">";
echo twig_escape_filter($this->env, 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.', 706, $this->source); })()), "name", [], "any", false, false, false, 706), "html", null, true);
echo "</a>
</li>
";
}
// line 709
echo " ";
if ((twig_get_attribute($this->env, $this->source, 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.', 709, $this->source); })()), "vars", [], "any", false, false, false, 709), "value", [], "any", false, false, false, 709) && twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, 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.', 709, $this->source); })()), "vars", [], "any", false, false, false, 709), "value", [], "any", false, false, false, 709), "name", [], "any", false, false, false, 709))) {
// line 710
echo " <li class=\"ec-topicpath__divider\">|</li>
<li class=\"ec-topicpath__item\">";
// line 711
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("「%name%」の検索結果", ["%name%" => twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, 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.', 711, $this->source); })()), "vars", [], "any", false, false, false, 711), "value", [], "any", false, false, false, 711), "name", [], "any", false, false, false, 711)]), "html", null, true);
echo "</li>
";
}
// line 713
echo " </ol>
</div>
";
// line 719
echo " ";
if ((isset($context["hasFilter"]) || array_key_exists("hasFilter", $context) ? $context["hasFilter"] : (function () { throw new RuntimeError('Variable "hasFilter" does not exist.', 719, $this->source); })())) {
// line 720
echo " <div class=\"ec-filterActive\">
<span class=\"ec-filterActive__label\">絞り込み中:</span>
";
// line 722
if ( !(null === (isset($context["Category"]) || array_key_exists("Category", $context) ? $context["Category"] : (function () { throw new RuntimeError('Variable "Category" does not exist.', 722, $this->source); })()))) {
// line 723
echo " ";
$context["removeCategoryParam"] = ("category_id=" . twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 723, $this->source); })()), "request", [], "any", false, false, false, 723), "query", [], "any", false, false, false, 723), "get", [0 => "category_id"], "method", false, false, false, 723));
// line 724
echo " <span class=\"ec-filterActive__tag\">
";
// line 725
echo twig_escape_filter($this->env, 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.', 725, $this->source); })()), "name", [], "any", false, false, false, 725), "html", null, true);
echo "
<a href=\"";
// line 726
echo twig_escape_filter($this->env, twig_replace_filter(twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 726, $this->source); })()), "request", [], "any", false, false, false, 726), "uri", [], "any", false, false, false, 726), [(isset($context["removeCategoryParam"]) || array_key_exists("removeCategoryParam", $context) ? $context["removeCategoryParam"] : (function () { throw new RuntimeError('Variable "removeCategoryParam" does not exist.', 726, $this->source); })()) => ""]), "html", null, true);
echo "\" title=\"解除\">✕</a>
</span>
";
}
// line 729
echo " ";
if ( !(null === (isset($context["Maker"]) || array_key_exists("Maker", $context) ? $context["Maker"] : (function () { throw new RuntimeError('Variable "Maker" does not exist.', 729, $this->source); })()))) {
// line 730
echo " <span class=\"ec-filterActive__tag\">
";
// line 731
echo twig_escape_filter($this->env, 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.', 731, $this->source); })()), "name", [], "any", false, false, false, 731), "html", null, true);
echo "
<a href=\"";
// line 732
echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_list");
if (twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 732, $this->source); })()), "request", [], "any", false, false, false, 732), "query", [], "any", false, false, false, 732), "get", [0 => "category_id"], "method", false, false, false, 732)) {
echo "?category_id=";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 732, $this->source); })()), "request", [], "any", false, false, false, 732), "query", [], "any", false, false, false, 732), "get", [0 => "category_id"], "method", false, false, false, 732), "html", null, true);
}
echo "\" title=\"解除\">✕</a>
</span>
";
}
// line 735
echo " ";
if ((twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_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", false, false, false, 735), "query", [], "any", false, false, false, 735), "get", [0 => "price_min"], "method", false, false, false, 735) || twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_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", false, false, false, 735), "query", [], "any", false, false, false, 735), "get", [0 => "price_max"], "method", false, false, false, 735))) {
// line 736
echo " <span class=\"ec-filterActive__tag\">
";
// line 737
if (twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_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", false, false, false, 737), "query", [], "any", false, false, false, 737), "get", [0 => "price_min"], "method", false, false, false, 737)) {
echo twig_escape_filter($this->env, twig_number_format_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_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", false, false, false, 737), "query", [], "any", false, false, false, 737), "get", [0 => "price_min"], "method", false, false, false, 737)), "html", null, true);
echo "円";
} else {
echo "0円";
}
// line 738
echo " 〜
";
// line 739
if (twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 739, $this->source); })()), "request", [], "any", false, false, false, 739), "query", [], "any", false, false, false, 739), "get", [0 => "price_max"], "method", false, false, false, 739)) {
echo twig_escape_filter($this->env, twig_number_format_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 739, $this->source); })()), "request", [], "any", false, false, false, 739), "query", [], "any", false, false, false, 739), "get", [0 => "price_max"], "method", false, false, false, 739)), "html", null, true);
echo "円";
} else {
echo "上限なし";
}
// line 740
echo " <a href=\"javascript:void(0);\" onclick=\"
var url = new URL(window.location.href);
url.searchParams.delete('price_min');
url.searchParams.delete('price_max');
window.location.href = url.toString();
\" title=\"解除\">✕</a>
</span>
";
}
// line 748
echo " </div>
";
}
// line 750
echo "
";
// line 752
echo " <div class=\"ec-searchnavRole__infos\">
<div class=\"ec-searchnavRole__counter\">
";
// line 754
if ((twig_get_attribute($this->env, $this->source, (isset($context["pagination"]) || array_key_exists("pagination", $context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.', 754, $this->source); })()), "totalItemCount", [], "any", false, false, false, 754) > 0)) {
// line 755
echo " ";
echo $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("<span class=\"ec-font-bold\">%count%件</span><span>の商品が見つかりました</span>", ["%count%" => twig_get_attribute($this->env, $this->source, (isset($context["pagination"]) || array_key_exists("pagination", $context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.', 755, $this->source); })()), "totalItemCount", [], "any", false, false, false, 755)]);
echo "
";
} else {
// line 757
echo " <span>";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お探しの商品は見つかりませんでした"), "html", null, true);
echo "</span>
";
}
// line 759
echo " </div>
";
// line 760
if ((twig_get_attribute($this->env, $this->source, (isset($context["pagination"]) || array_key_exists("pagination", $context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.', 760, $this->source); })()), "totalItemCount", [], "any", false, false, false, 760) > 0)) {
// line 761
echo " <div class=\"ec-searchnavRole__actions\">
<div class=\"ec-select\">
";
// line 763
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env, $this->source, (isset($context["search_form"]) || array_key_exists("search_form", $context) ? $context["search_form"] : (function () { throw new RuntimeError('Variable "search_form" does not exist.', 763, $this->source); })()), "disp_number", [], "any", false, false, false, 763), 'widget', ["id" => "", "attr" => ["class" => "disp-number"]]);
echo "
";
// line 764
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env, $this->source, (isset($context["search_form"]) || array_key_exists("search_form", $context) ? $context["search_form"] : (function () { throw new RuntimeError('Variable "search_form" does not exist.', 764, $this->source); })()), "orderby", [], "any", false, false, false, 764), 'widget', ["id" => "", "attr" => ["class" => "order-by"]]);
echo "
</div>
</div>
";
}
// line 768
echo " </div>
</div>
";
// line 772
if ((twig_get_attribute($this->env, $this->source, (isset($context["pagination"]) || array_key_exists("pagination", $context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.', 772, $this->source); })()), "totalItemCount", [], "any", false, false, false, 772) > 0)) {
// line 773
echo " <div class=\"ec-shelfRole\">
<ul class=\"ec-shelfGrid\">
";
// line 775
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable((isset($context["pagination"]) || array_key_exists("pagination", $context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.', 775, $this->source); })()));
$context['loop'] = [
'parent' => $context['_parent'],
'index0' => 0,
'index' => 1,
'first' => true,
];
if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
$length = count($context['_seq']);
$context['loop']['revindex0'] = $length - 1;
$context['loop']['revindex'] = $length;
$context['loop']['length'] = $length;
$context['loop']['last'] = 1 === $length;
}
foreach ($context['_seq'] as $context["_key"] => $context["Product"]) {
// line 776
echo " <li class=\"ec-shelfGrid__item\" style=\"position:relative;\">
";
// line 777
if (twig_get_attribute($this->env, $this->source, (isset($context["BaseInfo"]) || array_key_exists("BaseInfo", $context) ? $context["BaseInfo"] : (function () { throw new RuntimeError('Variable "BaseInfo" does not exist.', 777, $this->source); })()), "option_favorite_product", [], "any", false, false, false, 777)) {
// line 778
echo " <div style=\"position:absolute;top:8px;right:20px;z-index:10;\">
<form action=\"";
// line 779
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", false, false, false, 779)]), "html", null, true);
echo "\" method=\"post\">
<button type=\"submit\" id=\"favorite\" class=\"favorite\">♡</button>
</form>
</div>
";
}
// line 784
echo " <a href=\"";
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", false, false, false, 784)]), "html", null, true);
echo "\">
<p class=\"ec-shelfGrid__item-image\">
<img src=\"";
// line 786
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", false, false, false, 786)), "save_image"), "html", null, true);
echo "\" alt=\"";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["Product"], "name", [], "any", false, false, false, 786), "html", null, true);
echo "\" width=\"180\" height=\"180\"";
if ((twig_get_attribute($this->env, $this->source, $context["loop"], "index", [], "any", false, false, false, 786) > 5)) {
echo " loading=\"lazy\"";
}
echo ">
</p>
<h5><strong>";
// line 788
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", false, false, false, 788), "related_keyword"), "html", null, true);
echo "</strong></h5>
<p class=\"price02-default\">
";
// line 790
if (((null === twig_get_attribute($this->env, $this->source, $context["Product"], "getPrice02Max", [], "any", false, false, false, 790)) || (twig_get_attribute($this->env, $this->source, $context["Product"], "getPrice02Max", [], "any", false, false, false, 790) == 0))) {
// line 791
echo " 現地調査見積
";
} elseif (twig_get_attribute($this->env, $this->source, // line 792
$context["Product"], "hasProductClass", [], "any", false, false, false, 792)) {
// line 793
echo " ";
if ((twig_get_attribute($this->env, $this->source, $context["Product"], "getPrice02Min", [], "any", false, false, false, 793) == twig_get_attribute($this->env, $this->source, $context["Product"], "getPrice02Max", [], "any", false, false, false, 793))) {
// line 794
echo " ";
echo twig_escape_filter($this->env, twig_number_format_filter($this->env, twig_get_attribute($this->env, $this->source, $context["Product"], "getPrice02IncTaxMin", [], "any", false, false, false, 794)), "html", null, true);
echo "円
";
} else {
// line 796
echo " ";
echo twig_escape_filter($this->env, twig_number_format_filter($this->env, twig_get_attribute($this->env, $this->source, $context["Product"], "getPrice02IncTaxMin", [], "any", false, false, false, 796)), "html", null, true);
echo "円 ~ ";
echo twig_escape_filter($this->env, twig_number_format_filter($this->env, twig_get_attribute($this->env, $this->source, $context["Product"], "getPrice02IncTaxMax", [], "any", false, false, false, 796)), "html", null, true);
echo "円
";
}
// line 798
echo " ";
} else {
// line 799
echo " ";
echo twig_escape_filter($this->env, twig_number_format_filter($this->env, twig_get_attribute($this->env, $this->source, $context["Product"], "getPrice02IncTaxMin", [], "any", false, false, false, 799)), "html", null, true);
echo "円 ~
";
}
// line 801
echo " </p>
</a>
";
// line 804
if (twig_get_attribute($this->env, $this->source, $context["Product"], "stock_find", [], "any", false, false, false, 804)) {
// line 805
echo " ";
$context["form"] = twig_get_attribute($this->env, $this->source, (isset($context["forms"]) || array_key_exists("forms", $context) ? $context["forms"] : (function () { throw new RuntimeError('Variable "forms" does not exist.', 805, $this->source); })()), twig_get_attribute($this->env, $this->source, $context["Product"], "id", [], "any", false, false, false, 805), [], "array", false, false, false, 805);
// line 806
echo " <form name=\"form";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["Product"], "id", [], "any", false, false, false, 806), "html", null, true);
echo "\" id=\"productForm";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["Product"], "id", [], "any", false, false, false, 806), "html", null, true);
echo "\" action=\"";
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", false, false, false, 806)]), "html", null, true);
echo "\" method=\"get\">
<div class=\"ec-productRole__actions\">
";
// line 808
if (twig_get_attribute($this->env, $this->source, ($context["form"] ?? null), "classcategory_id1", [], "any", true, true, false, 808)) {
// line 809
echo " <div class=\"ec-select\">
";
// line 810
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env, $this->source, (isset($context["form"]) || array_key_exists("form", $context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.', 810, $this->source); })()), "classcategory_id1", [], "any", false, false, false, 810), 'widget');
echo "
";
// line 811
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env, $this->source, (isset($context["form"]) || array_key_exists("form", $context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.', 811, $this->source); })()), "classcategory_id1", [], "any", false, false, false, 811), 'errors');
echo "
</div>
";
// line 813
if (twig_get_attribute($this->env, $this->source, ($context["form"] ?? null), "classcategory_id2", [], "any", true, true, false, 813)) {
// line 814
echo " <div class=\"ec-select\">
";
// line 815
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env, $this->source, (isset($context["form"]) || array_key_exists("form", $context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.', 815, $this->source); })()), "classcategory_id2", [], "any", false, false, false, 815), 'widget');
echo "
";
// line 816
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env, $this->source, (isset($context["form"]) || array_key_exists("form", $context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.', 816, $this->source); })()), "classcategory_id2", [], "any", false, false, false, 816), 'errors');
echo "
</div>
";
}
// line 819
echo " ";
}
// line 820
echo " <div class=\"ec-numberInput\" style=\"display:none;\"><span>";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("数量"), "html", null, true);
echo "</span>
";
// line 821
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env, $this->source, (isset($context["form"]) || array_key_exists("form", $context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.', 821, $this->source); })()), "quantity", [], "any", false, false, false, 821), 'errors');
echo "
</div>
</div>
<div class=\"ec-productRole__btn\">
<button class=\"ec-blockBtn--action\">
";
// line 826
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お見積もりはこちら"), "html", null, true);
echo "
</button>
</div>
</form>
";
} else {
// line 831
echo " <div class=\"ec-productRole__btn\">
<button type=\"button\" class=\"ec-blockBtn--action\" disabled=\"disabled\">
";
// line 833
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("ただいま品切れ中です。"), "html", null, true);
echo "
</button>
</div>
";
}
// line 837
echo " </li>
";
++$context['loop']['index0'];
++$context['loop']['index'];
$context['loop']['first'] = false;
if (isset($context['loop']['length'])) {
--$context['loop']['revindex0'];
--$context['loop']['revindex'];
$context['loop']['last'] = 0 === $context['loop']['revindex0'];
}
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['Product'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 839
echo " </ul>
</div>
<div class=\"ec-pagerRole\">
";
// line 842
$this->loadTemplate("pager.twig", "Product/list.twig", 842)->display(twig_array_merge($context, ["pages" => twig_get_attribute($this->env, $this->source, (isset($context["pagination"]) || array_key_exists("pagination", $context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.', 842, $this->source); })()), "paginationData", [], "any", false, false, false, 842)]));
// line 843
echo " </div>
";
}
// line 845
echo " </div>
";
// line 847
echo "
</div>
";
// line 850
echo "
";
}
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
}
public function getTemplateName()
{
return "Product/list.twig";
}
public function isTraitable()
{
return false;
}
public function getDebugInfo()
{
return array ( 1386 => 850, 1382 => 847, 1379 => 845, 1375 => 843, 1373 => 842, 1368 => 839, 1353 => 837, 1346 => 833, 1342 => 831, 1334 => 826, 1326 => 821, 1321 => 820, 1318 => 819, 1312 => 816, 1308 => 815, 1305 => 814, 1303 => 813, 1298 => 811, 1294 => 810, 1291 => 809, 1289 => 808, 1279 => 806, 1276 => 805, 1274 => 804, 1269 => 801, 1263 => 799, 1260 => 798, 1252 => 796, 1246 => 794, 1243 => 793, 1241 => 792, 1238 => 791, 1236 => 790, 1231 => 788, 1220 => 786, 1214 => 784, 1206 => 779, 1203 => 778, 1201 => 777, 1198 => 776, 1181 => 775, 1177 => 773, 1175 => 772, 1169 => 768, 1162 => 764, 1158 => 763, 1154 => 761, 1152 => 760, 1149 => 759, 1143 => 757, 1137 => 755, 1135 => 754, 1131 => 752, 1128 => 750, 1124 => 748, 1114 => 740, 1107 => 739, 1104 => 738, 1097 => 737, 1094 => 736, 1091 => 735, 1081 => 732, 1077 => 731, 1074 => 730, 1071 => 729, 1065 => 726, 1061 => 725, 1058 => 724, 1055 => 723, 1053 => 722, 1049 => 720, 1046 => 719, 1041 => 713, 1036 => 711, 1033 => 710, 1030 => 709, 1020 => 706, 1016 => 704, 1013 => 703, 1010 => 702, 989 => 699, 983 => 698, 980 => 697, 962 => 696, 960 => 695, 954 => 694, 950 => 692, 946 => 689, 934 => 687, 930 => 686, 925 => 685, 921 => 684, 917 => 682, 915 => 681, 909 => 678, 906 => 677, 904 => 676, 901 => 675, 898 => 673, 894 => 670, 888 => 667, 885 => 666, 882 => 665, 876 => 660, 869 => 658, 865 => 656, 855 => 652, 845 => 651, 840 => 650, 836 => 649, 833 => 648, 831 => 647, 826 => 645, 816 => 644, 811 => 643, 807 => 642, 802 => 640, 798 => 639, 795 => 638, 793 => 595, 788 => 592, 783 => 588, 780 => 587, 770 => 583, 760 => 582, 755 => 581, 750 => 580, 747 => 567, 745 => 566, 742 => 565, 732 => 561, 722 => 560, 717 => 559, 712 => 558, 710 => 557, 704 => 553, 687 => 538, 683 => 537, 676 => 533, 671 => 531, 665 => 527, 662 => 525, 658 => 522, 655 => 518, 653 => 517, 649 => 515, 639 => 514, 560 => 444, 556 => 443, 531 => 420, 517 => 419, 509 => 418, 492 => 417, 488 => 415, 478 => 414, 73 => 16, 63 => 15, 52 => 11, 50 => 13, 37 => 11,);
}
public function getSourceContext()
{
return new Source("{#
This file is part of EC-CUBE
Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
http://www.ec-cube.co.jp/
For the full copyright and license information, please view the LICENSE
file that was distributed with this source code.
#}
{% extends 'default_frame.twig' %}
{% set body_class = 'product_page' %}
{% block stylesheet %}
<link rel=\"stylesheet\" href=\"/html/plugins/ion-rangeslider/css/ion.rangeSlider.min.css\">
<style>
/* ============================================
サイドバー付き 2カラムレイアウト
============================================ */
.ec-productListLayout {
display: flex;
gap: 32px;
align-items: flex-start;
}
/* ============================================
サイドバー(フィルターパネル)
============================================ */
.ec-filterSidebar {
position: static;
margin: 20px;
width: 240px;
flex-shrink: 0;
}
/* Wide desktop: center the main column to align with site grid (1130 + 280 sidebar) */
@media (min-width: 1410px) {
\t\t\t.ec-searchnavRole {
\t\t\t\tmargin-left: calc((100% - 1130px - 280px) / 2);
\t\t\t}
\t\t\t.ec-shelfRole {
\t\t\t\tmargin-left: calc((100% - 1130px - 280px) / 2);
\t\t\t}
\t\t\t.ec-pagerRole {
\t\t\t\tmargin-left: calc((100% - 1130px - 280px) / 2);
\t\t\t}
\t\t}
.ec-filterSidebar__section {
background: #fff;
border: 1px solid #e8e8e8;
border-radius: 6px;
padding: 18px 16px;
margin-bottom: 16px;
}
.ec-filterSidebar__heading {
font-size: 13px;
font-weight: bold;
color: #222;
margin: 0 0 12px;
padding-bottom: 10px;
border-bottom: 2px solid #222;
letter-spacing: 0.05em;
}
/* カテゴリリスト */
.ec-filterSidebar__categoryList,
.ec-filterSidebar__categoryList ul {
list-style: none;
padding: 0;
margin: 0;
}
.ec-filterSidebar__categoryList li a {
display: block;
padding: 6px 8px;
font-size: 13px;
color: #444;
text-decoration: none;
border-radius: 4px;
transition: background 0.15s, color 0.15s;
}
.ec-filterSidebar__categoryList li a:hover {
background: #f5f5f5;
color: #222;
}
.ec-filterSidebar__categoryList li.is-active > a {
font-weight: bold;
color: #c00;
background: #fff5f5;
}
/* サブカテゴリ */
.ec-filterSidebar__categoryList ul {
padding-left: 12px;
margin-top: 2px;
}
.ec-filterSidebar__categoryList ul li a {
font-size: 12px;
color: #666;
padding: 4px 8px;
}
/* メーカーリスト */
.ec-filterSidebar__makerList {
list-style: none;
padding: 0;
margin: 0;
}
.ec-filterSidebar__makerList li {
border-bottom: 1px solid #f0f0f0;
}
.ec-filterSidebar__makerList li:last-child {
border-bottom: none;
}
.ec-filterSidebar__makerList li a {
display: flex;
align-items: center;
gap: 6px;
padding: 7px 6px;
font-size: 13px;
color: #444;
text-decoration: none;
transition: color 0.15s;
}
.ec-filterSidebar__makerList li a:hover {
color: #c00;
}
.ec-filterSidebar__makerList li.is-active a {
font-weight: bold;
color: #c00;
}
.ec-filterSidebar__makerList li.is-active a::before {
content: \"✓\";
font-size: 11px;
color: #c00;
}
/* 価格帯フィルター */
.ec-filterSidebar__priceDisplay {
text-align: center;
font-size: 13px;
color: #333;
margin-bottom: 12px;
font-weight: bold;
}
.ec-filterSidebar__priceDisplay span {
color: #c00;
}
.ec-filterSidebar__priceSliderWrap {
/* Side padding holds room for ion-rangeSlider .irs-to / .irs-from labels
so the max-value tooltip never spills past the sidebar edge. */
padding: 0 14px;
margin-bottom: 16px;
}
.ec-filterSidebar__priceApply {
display: block;
width: 100%;
padding: 8px;
background: #222;
color: #fff;
border: none;
border-radius: 4px;
font-size: 13px;
cursor: pointer;
text-align: center;
transition: background 0.2s;
}
.ec-filterSidebar__priceApply:hover {
background: #444;
}
.ec-filterSidebar__pricePreset {
list-style: none;
padding: 0;
margin: 10px 0 0;
}
.ec-filterSidebar__pricePreset li a {
display: block;
padding: 5px 6px;
font-size: 12px;
color: #666;
text-decoration: none;
border-radius: 4px;
transition: background 0.15s;
}
.ec-filterSidebar__pricePreset li a:hover {
background: #f5f5f5;
color: #333;
}
/* 絞り込みリセット */
.ec-filterSidebar__reset a {
display: block;
text-align: center;
padding: 8px;
font-size: 12px;
color: #888;
text-decoration: underline;
border: 1px solid #ddd;
border-radius: 4px;
transition: color 0.15s, border-color 0.15s;
}
.ec-filterSidebar__reset a:hover {
color: #c00;
border-color: #c00;
}
/* 現在の絞り込み条件バッジ */
.ec-filterActive {
display: flex;
flex-wrap: wrap;
gap: 6px;
margin-bottom: 12px;
padding: 10px 12px;
background: #f9f9f9;
border: 1px solid #e8e8e8;
border-radius: 6px;
}
.ec-filterActive__label {
font-size: 11px;
color: #888;
align-self: center;
margin-right: 4px;
}
.ec-filterActive__tag {
display: inline-flex;
align-items: center;
gap: 4px;
padding: 3px 8px;
background: #222;
color: #fff;
border-radius: 20px;
font-size: 11px;
}
.ec-filterActive__tag a {
color: #aaa;
text-decoration: none;
font-size: 12px;
line-height: 1;
}
.ec-filterActive__tag a:hover {
color: #fff;
}
/* メインコンテンツ側 */
.ec-productListMain {
flex: 1;
min-width: 0;
width: 100%;
}
/* ion-rangeslider カスタマイズ */
.irs--flat .irs-bar {
background-color: #222;
}
.irs--flat .irs-handle > i:first-child {
background-color: #222;
}
.irs--flat .irs-from,
.irs--flat .irs-to,
.irs--flat .irs-single {
background-color: #222;
font-size: 11px;
}
/* Tablet (768-1199px): stack sidebar above grid to avoid overlap */
@media (min-width: 768px) and (max-width: 1199px) {
.ec-productListLayout {
flex-direction: column;
gap: 0;
}
.ec-filterSidebar {
width: 100%;
margin: 0 0 16px;
}
.ec-productListMain {
width: 100%;
}
/* Allow CTA to wrap and avoid truncation in 2-col tablet grid */
.ec-shelfGrid .ec-blockBtn--action {
white-space: normal;
line-height: 1.3;
height: auto;
min-height: 56px;
padding: 12px 8px;
font-size: 0.8rem;
}
}
/* Price slider tooltip: prevent label overlap when results are empty */
.ec-productListMain .ec-shelfRole:empty + .ec-pagerRole,
.ec-productListMain:has(.ec-shelfGrid:empty) .ec-filterSidebar__priceSliderWrap .irs-from,
.ec-productListMain:has(.ec-shelfGrid:empty) .ec-filterSidebar__priceSliderWrap .irs-to,
.ec-productListMain:has(.ec-shelfGrid:empty) .ec-filterSidebar__priceSliderWrap .irs-single {
visibility: hidden;
}
.ec-filterSidebar__priceSliderWrap .irs {
position: relative;
z-index: 1;
}
.ec-filterSidebar__priceSliderWrap .irs-from,
.ec-filterSidebar__priceSliderWrap .irs-to,
.ec-filterSidebar__priceSliderWrap .irs-single {
white-space: nowrap;
}
/* モバイル対応 */
@media (max-width: 767px) {
/* 横スクロール禁止 */
body, html {
overflow-x: hidden;
max-width: 100vw;
}
.ec-productListLayout {
flex-direction: column;
gap: 0;
}
.ec-filterSidebar {
width: 100%;
margin: 0;
}
/* スマホで商品一覧を確実に表示 */
.ec-productListMain {
width: 100%;
flex: none;
margin: 0;
}
.ec-filterSidebar__section {
margin-bottom: 10px;
}
/* Allow CTA to wrap and avoid truncation in narrow mobile cards */
.ec-shelfGrid .ec-blockBtn--action {
white-space: normal;
word-break: keep-all;
overflow-wrap: anywhere;
line-height: 1.3;
height: auto;
min-height: 56px;
padding: 12px 8px;
font-size: 0.8rem;
}
/* モバイルではアコーディオン形式 */
.ec-filterSidebar__body {
display: none;
}
.ec-filterSidebar__body.is-open {
display: block;
}
.ec-filterSidebar__heading {
cursor: pointer;
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 0;
padding-bottom: 0;
border-bottom: none;
}
.ec-filterSidebar__heading.is-open {
margin-bottom: 12px;
padding-bottom: 10px;
border-bottom: 2px solid #222;
}
.ec-filterSidebar__heading::after {
content: \"▼\";
font-size: 10px;
color: #888;
transition: transform 0.2s;
}
.ec-filterSidebar__heading.is-open::after {
transform: rotate(180deg);
}
}
</style>
{% endblock %}
{% block javascript %}
<script>
eccube.productsClassCategories = {
{% for Product in pagination %}
\"{{ Product.id|escape('js') }}\": {{ class_categories_as_json(Product)|raw }}{% if loop.last == false %}, {% endif %}
{% endfor %}
};
\$(function() {
// 表示件数を変更
\$('.disp-number').change(function() {
var dispNumber = \$(this).val();
\$('#disp_number').val(dispNumber);
\$('#pageno').val(1);
\$(\"#form1\").submit();
});
// 並び順を変更
\$('.order-by').change(function() {
var orderBy = \$(this).val();
\$('#orderby').val(orderBy);
\$('#pageno').val(1);
\$(\"#form1\").submit();
});
// ==============================
// 価格帯スライダー(ion-rangeslider)
// ==============================
var priceMin = parseInt('{{ app.request.query.get(\"price_min\") ?: 0 }}') || 0;
var priceMax = parseInt('{{ app.request.query.get(\"price_max\") ?: 5000000 }}') || 5000000;
\$(\"#price-range-slider\").ionRangeSlider({
type: \"double\",
min: 0,
max: 5000000,
from: priceMin,
to: priceMax,
step: 10000,
prettify_enabled: true,
prettify_separator: \",\",
postfix: \"円\",
onFinish: function(data) {
\$('#price_min_val').val(data.from);
\$('#price_max_val').val(data.to);
// 表示更新
\$('#price-display-min').text(Number(data.from).toLocaleString());
\$('#price-display-max').text(Number(data.to).toLocaleString());
}
});
// 価格フォーム送信
\$('#price-filter-apply').on('click', function() {
var min = \$('#price_min_val').val();
var max = \$('#price_max_val').val();
var url = new URL(window.location.href);
url.searchParams.set('price_min', min);
url.searchParams.set('price_max', max);
url.searchParams.delete('pageno');
window.location.href = url.toString();
});
// モバイル:アコーディオン(初期状態を閉じる)
function initMobileAccordion() {
if (\$(window).width() <= 767) {
\$('.ec-filterSidebar__heading').removeClass('is-open');
\$('.ec-filterSidebar__body').removeClass('is-open');
}
}
initMobileAccordion();
\$(window).on('resize', initMobileAccordion);
\$('.ec-filterSidebar__heading').on('click', function() {
if (\$(window).width() <= 767) {
\$(this).toggleClass('is-open');
\$(this).next('.ec-filterSidebar__body').toggleClass('is-open');
}
});
});
\$('.ec-modal-wrap').on('click', function(e) {
e.stopPropagation();
});
\$('.ec-modal-overlay, .ec-modal, .ec-modal-close, .ec-inlineBtn--cancel').on('click', function() {
\$('.ec-modal').hide()
});
\t // 価格プリセットのクイック適用
\t function applyPrice(min, max) {
\t var url = new URL(window.location.href);
\t url.searchParams.set('price_min', min);
\t url.searchParams.set('price_max', max);
\t url.searchParams.delete('pageno');
\t window.location.href = url.toString();
\t }
</script>
<script src=\"/html/plugins/ion-rangeslider/js/ion.rangeSlider.min.js\"></script>
{% endblock %}
{% block main %}
{% 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') %}
{# ==============================
2カラムレイアウト本体
============================== #}
<div class=\"ec-productListLayout\">
{# ===== サイドバー(左カラム)===== #}
<aside class=\"ec-filterSidebar\">
{# ----- 価格帯 ----- #}
<div class=\"ec-filterSidebar__section\">
<h3 class=\"ec-filterSidebar__heading\">価格帯</h3>
<div class=\"ec-filterSidebar__body is-open\">
<div class=\"ec-filterSidebar__priceDisplay\">
<span id=\"price-display-min\">{{ app.request.query.get('price_min') ? app.request.query.get('price_min')|number_format : '0' }}</span>円
〜
<span id=\"price-display-max\">{{ app.request.query.get('price_max') ? app.request.query.get('price_max')|number_format : '5,000,000' }}</span>円
</div>
<div class=\"ec-filterSidebar__priceSliderWrap\">
<input type=\"text\" id=\"price-range-slider\" style=\"display:none;\">
<input type=\"hidden\" id=\"price_min_val\" value=\"{{ app.request.query.get('price_min') ?: 0 }}\">
<input type=\"hidden\" id=\"price_max_val\" value=\"{{ app.request.query.get('price_max') ?: 5000000 }}\">
</div>
<button id=\"price-filter-apply\" class=\"ec-filterSidebar__priceApply\">この価格帯で絞り込む</button>
<ul class=\"ec-filterSidebar__pricePreset\">
<li><a href=\"javascript:void(0);\" onclick=\"applyPrice(0, 300000)\">〜30万円</a></li>
<li><a href=\"javascript:void(0);\" onclick=\"applyPrice(300000, 600000)\">30万円〜60万円</a></li>
<li><a href=\"javascript:void(0);\" onclick=\"applyPrice(600000, 1000000)\">60万円〜100万円</a></li>
<li><a href=\"javascript:void(0);\" onclick=\"applyPrice(1000000, 5000000)\">100万円〜</a></li>
</ul>
</div>
</div>
{# ----- メーカー(ブランド)----- #}
<div class=\"ec-filterSidebar__section\">
<h3 class=\"ec-filterSidebar__heading\">ブランド</h3>
<div class=\"ec-filterSidebar__body is-open\">
<ul class=\"ec-filterSidebar__makerList\">
{% if Makers is defined %}
{% for MakerItem in Makers %}
<li class=\"{{ Maker is not null and Maker.id == MakerItem.id ? 'is-active' : '' }}\">
<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 %}\">
{{ MakerItem.name }}
</a>
</li>
{% endfor %}
{% else %}
{# Makersがコントローラから渡されない場合は静的リストで対応 #}
{% set 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: 'ヨドコウ'},
{id: 13, name: 'タクボ'}
] %}
{% for maker in makerList %}
<li class=\"{{ Maker is not null and Maker.id == maker.id ? 'is-active' : '' }}\">
<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 %}\">
{{ maker.name }}
</a>
</li>
{% endfor %}
{% endif %}
</ul>
</div>
</div>
{# ----- カテゴリ ----- #}
<div class=\"ec-filterSidebar__section\">
<h3 class=\"ec-filterSidebar__heading\">カテゴリ</h3>
<div class=\"ec-filterSidebar__body is-open\">
{% set 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: []},
{id: 13, name: 'ポスト・門柱宅配ボックス', children: []},
{id: 15, name: '物置・収納・屋外倉庫', children: []},
{id: 20, name: 'ガーデンファニチャー', children: []},
{id: 22, name: '人工芝', children: []},
{id: 17, name: '内窓・二重窓', children: []},
{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: '照明'},
{id: 21, name: 'DIY材料'}
]}
] %}
<ul class=\"ec-filterSidebar__categoryList\">
<li class=\"{{ app.request.query.get('category_id') is empty and Maker is null ? 'is-active' : '' }}\">
<a href=\"{{ url('product_list') }}\">すべて</a>
</li>
{% for cat in categoryList %}
<li class=\"{{ app.request.query.get('category_id') == cat.id ? 'is-active' : '' }}\">
<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 %}\">
{{ cat.name }}
</a>
{% if cat.children|length > 0 %}
<ul>
{% for child in cat.children %}
<li class=\"{{ app.request.query.get('category_id') == child.id ? 'is-active' : '' }}\">
<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 %}\">
{{ child.name }}
</a>
</li>
{% endfor %}
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
</div>
</div>
{# ----- リセット ----- #}
{% if hasFilter %}
<div class=\"ec-filterSidebar__reset\">
<a href=\"{{ url('product_list') }}\">絞り込みをすべてリセット</a>
</div>
{% endif %}
</aside>
{# / サイドバー #}
{# ===== 商品一覧(右カラム)===== #}
<div class=\"ec-productListMain\">
{% if search_form.category_id.vars.errors|length > 0 %}
<div class=\"ec-searchnavRole\">
<p class=\"errormsg text-danger\">{{ 'ご指定のカテゴリは存在しません'|trans }}</p>
</div>
{% else %}
{# 検索フォーム(hidden) #}
<div class=\"ec-searchnavRole\">
<form name=\"form1\" id=\"form1\" method=\"get\" action=\"?\">
{% for item in search_form %}
<input type=\"hidden\" id=\"{{ item.vars.id }}\"
name=\"{{ item.vars.full_name }}\"
{% if item.vars.value is not empty %}value=\"{{ item.vars.value }}\" {% endif %}/>
{% endfor %}
</form>
{# パンくずリスト #}
<div class=\"ec-searchnavRole__topicpath\">
<ol class=\"ec-topicpath\">
<li class=\"ec-topicpath__item\"><a href=\"{{ url('product_list') }}\">{{ '全て'|trans }}</a></li>
{% if Category is not null %}
{% for Path in Category.path %}
<li class=\"ec-topicpath__divider\">|</li>
<li class=\"ec-topicpath__item{% if loop.last %}--active{% endif %}\">
<a href=\"{{ url('product_list') }}?category_id={{ Path.id }}\">{{ Path.name }}</a>
</li>
{% endfor %}
{% endif %}
{% if Maker is not null %}
<li class=\"ec-topicpath__divider\">|</li>
<li class=\"ec-topicpath__item--active\">
<a href=\"{{ url('product_list') }}?maker_id={{ Maker.id }}\">{{ Maker.name }}</a>
</li>
{% endif %}
{% if search_form.vars.value and search_form.vars.value.name %}
<li class=\"ec-topicpath__divider\">|</li>
<li class=\"ec-topicpath__item\">{{ '「%name%」の検索結果'|trans({ '%name%': search_form.vars.value.name }) }}</li>
{% endif %}
</ol>
</div>
{# ==============================
現在の絞り込み条件バッジ
============================== #}
{% if hasFilter %}
<div class=\"ec-filterActive\">
<span class=\"ec-filterActive__label\">絞り込み中:</span>
{% if Category is not null %}
{% set removeCategoryParam = 'category_id=' ~ app.request.query.get('category_id') %}
<span class=\"ec-filterActive__tag\">
{{ Category.name }}
<a href=\"{{ app.request.uri|replace({(removeCategoryParam): ''}) }}\" title=\"解除\">✕</a>
</span>
{% endif %}
{% if Maker is not null %}
<span class=\"ec-filterActive__tag\">
{{ Maker.name }}
<a href=\"{{ url('product_list') }}{% if app.request.query.get('category_id') %}?category_id={{ app.request.query.get('category_id') }}{% endif %}\" title=\"解除\">✕</a>
</span>
{% endif %}
{% if app.request.query.get('price_min') or app.request.query.get('price_max') %}
<span class=\"ec-filterActive__tag\">
{% if app.request.query.get('price_min') %}{{ app.request.query.get('price_min')|number_format }}円{% else %}0円{% endif %}
〜
{% if app.request.query.get('price_max') %}{{ app.request.query.get('price_max')|number_format }}円{% else %}上限なし{% endif %}
<a href=\"javascript:void(0);\" onclick=\"
var url = new URL(window.location.href);
url.searchParams.delete('price_min');
url.searchParams.delete('price_max');
window.location.href = url.toString();
\" title=\"解除\">✕</a>
</span>
{% endif %}
</div>
{% endif %}
{# 件数・並び順 #}
<div class=\"ec-searchnavRole__infos\">
<div class=\"ec-searchnavRole__counter\">
{% if pagination.totalItemCount > 0 %}
{{ '<span class=\"ec-font-bold\">%count%件</span><span>の商品が見つかりました</span>'|trans({ '%count%': pagination.totalItemCount })|raw }}
{% else %}
<span>{{ 'お探しの商品は見つかりませんでした'|trans }}</span>
{% endif %}
</div>
{% if pagination.totalItemCount > 0 %}
<div class=\"ec-searchnavRole__actions\">
<div class=\"ec-select\">
{{ form_widget(search_form.disp_number, {'id': '', 'attr': {'class': 'disp-number'}}) }}
{{ form_widget(search_form.orderby, {'id': '', 'attr': {'class': 'order-by'}}) }}
</div>
</div>
{% endif %}
</div>
</div>
{% if pagination.totalItemCount > 0 %}
<div class=\"ec-shelfRole\">
<ul class=\"ec-shelfGrid\">
{% for Product in pagination %}
<li class=\"ec-shelfGrid__item\" style=\"position:relative;\">
{% if BaseInfo.option_favorite_product %}
<div style=\"position:absolute;top:8px;right:20px;z-index:10;\">
<form action=\"{{ url('product_add_favorite', {id:Product.id}) }}\" method=\"post\">
<button type=\"submit\" id=\"favorite\" class=\"favorite\">♡</button>
</form>
</div>
{% endif %}
<a href=\"{{ url('product_detail', {'id': Product.id}) }}\">
<p class=\"ec-shelfGrid__item-image\">
<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 %}>
</p>
<h5><strong>{{ getProduct_field(Product.id,\"related_keyword\") }}</strong></h5>
<p class=\"price02-default\">
{% if Product.getPrice02Max is null or Product.getPrice02Max == 0 %}
現地調査見積
{% elseif Product.hasProductClass %}
{% if Product.getPrice02Min == Product.getPrice02Max %}
{{ Product.getPrice02IncTaxMin|number_format }}円
{% else %}
{{ Product.getPrice02IncTaxMin|number_format }}円 ~ {{ Product.getPrice02IncTaxMax|number_format }}円
{% endif %}
{% else %}
{{ Product.getPrice02IncTaxMin|number_format }}円 ~
{% endif %}
</p>
</a>
{% if Product.stock_find %}
{% set form = forms[Product.id] %}
<form name=\"form{{ Product.id }}\" id=\"productForm{{ Product.id }}\" action=\"{{ url('product_detail', {id:Product.id}) }}\" method=\"get\">
<div class=\"ec-productRole__actions\">
{% if form.classcategory_id1 is defined %}
<div class=\"ec-select\">
{{ form_widget(form.classcategory_id1) }}
{{ form_errors(form.classcategory_id1) }}
</div>
{% if form.classcategory_id2 is defined %}
<div class=\"ec-select\">
{{ form_widget(form.classcategory_id2) }}
{{ form_errors(form.classcategory_id2) }}
</div>
{% endif %}
{% endif %}
<div class=\"ec-numberInput\" style=\"display:none;\"><span>{{ '数量'|trans }}</span>
{{ form_errors(form.quantity) }}
</div>
</div>
<div class=\"ec-productRole__btn\">
<button class=\"ec-blockBtn--action\">
{{ 'お見積もりはこちら'|trans }}
</button>
</div>
</form>
{% else %}
<div class=\"ec-productRole__btn\">
<button type=\"button\" class=\"ec-blockBtn--action\" disabled=\"disabled\">
{{ 'ただいま品切れ中です。'|trans }}
</button>
</div>
{% endif %}
</li>
{% endfor %}
</ul>
</div>
<div class=\"ec-pagerRole\">
{% include \"pager.twig\" with {'pages': pagination.paginationData} %}
</div>
{% endif %}
</div>
{# / 商品一覧 #}
</div>
{# / ec-productListLayout #}
{% endif %}
{% endblock %}
", "Product/list.twig", "/home/xs538259/exterior-plus.jp/public_html/app/template/default/Product/list.twig");
}
}