<?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 {
padding: 0 4px;
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 412
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 413
echo " <script>
eccube.productsClassCategories = {
";
// line 415
$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.', 415, $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 416
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, 416), "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, 416) == false)) {
echo ", ";
}
// line 417
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 418
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 441
((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.', 441, $this->source); })()), "request", [], "any", false, false, false, 441), "query", [], "any", false, false, false, 441), "get", [0 => "price_min"], "method", false, false, false, 441)) ? (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.', 441, $this->source); })()), "request", [], "any", false, false, false, 441), "query", [], "any", false, false, false, 441), "get", [0 => "price_min"], "method", false, false, false, 441), "html", null, true))) : (print (0)));
echo "') || 0;
var priceMax = parseInt('";
// line 442
((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.', 442, $this->source); })()), "request", [], "any", false, false, false, 442), "query", [], "any", false, false, false, 442), "get", [0 => "price_max"], "method", false, false, false, 442)) ? (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.', 442, $this->source); })()), "request", [], "any", false, false, false, 442), "query", [], "any", false, false, false, 442), "get", [0 => "price_max"], "method", false, false, false, 442), "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 512
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 513
echo "
";
// line 515
$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.', 515, $this->source); })()), "request", [], "any", false, false, false, 515), "query", [], "any", false, false, false, 515), "get", [0 => "category_id"], "method", false, false, false, 515) || 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.', 515, $this->source); })()), "request", [], "any", false, false, false, 515), "query", [], "any", false, false, false, 515), "get", [0 => "maker_id"], "method", false, false, false, 515)) || 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.', 515, $this->source); })()), "request", [], "any", false, false, false, 515), "query", [], "any", false, false, false, 515), "get", [0 => "price_min"], "method", false, false, false, 515)) || 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.', 515, $this->source); })()), "request", [], "any", false, false, false, 515), "query", [], "any", false, false, false, 515), "get", [0 => "price_max"], "method", false, false, false, 515));
// line 516
echo "
";
// line 520
echo " <div class=\"ec-productListLayout\">
";
// line 523
echo " <aside class=\"ec-filterSidebar\">
";
// line 525
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 529
((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.', 529, $this->source); })()), "request", [], "any", false, false, false, 529), "query", [], "any", false, false, false, 529), "get", [0 => "price_min"], "method", false, false, false, 529)) ? (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.', 529, $this->source); })()), "request", [], "any", false, false, false, 529), "query", [], "any", false, false, false, 529), "get", [0 => "price_min"], "method", false, false, false, 529)), "html", null, true))) : (print ("0")));
echo "</span>円
〜
<span id=\"price-display-max\">";
// 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_max"], "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_max"], "method", false, false, false, 531)), "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 535
((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.', 535, $this->source); })()), "request", [], "any", false, false, false, 535), "query", [], "any", false, false, false, 535), "get", [0 => "price_min"], "method", false, false, false, 535)) ? (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.', 535, $this->source); })()), "request", [], "any", false, false, false, 535), "query", [], "any", false, false, false, 535), "get", [0 => "price_min"], "method", false, false, false, 535), "html", null, true))) : (print (0)));
echo "\">
<input type=\"hidden\" id=\"price_max_val\" value=\"";
// line 536
((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.', 536, $this->source); })()), "request", [], "any", false, false, false, 536), "query", [], "any", false, false, false, 536), "get", [0 => "price_max"], "method", false, false, false, 536)) ? (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.', 536, $this->source); })()), "request", [], "any", false, false, false, 536), "query", [], "any", false, false, false, 536), "get", [0 => "price_max"], "method", false, false, false, 536), "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 551
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 555
if (array_key_exists("Makers", $context)) {
// line 556
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.', 556, $this->source); })()));
foreach ($context['_seq'] as $context["_key"] => $context["MakerItem"]) {
// line 557
echo " <li class=\"";
echo ((( !(null === (isset($context["Maker"]) || array_key_exists("Maker", $context) ? $context["Maker"] : (function () { throw new RuntimeError('Variable "Maker" does not exist.', 557, $this->source); })())) && (twig_get_attribute($this->env, $this->source, (isset($context["Maker"]) || array_key_exists("Maker", $context) ? $context["Maker"] : (function () { throw new RuntimeError('Variable "Maker" does not exist.', 557, $this->source); })()), "id", [], "any", false, false, false, 557) == twig_get_attribute($this->env, $this->source, $context["MakerItem"], "id", [], "any", false, false, false, 557)))) ? ("is-active") : (""));
echo "\">
<a href=\"";
// line 558
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, 558), "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.', 558, $this->source); })()), "request", [], "any", false, false, false, 558), "query", [], "any", false, false, false, 558), "get", [0 => "category_id"], "method", false, false, false, 558)) {
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.', 558, $this->source); })()), "request", [], "any", false, false, false, 558), "query", [], "any", false, false, false, 558), "get", [0 => "category_id"], "method", false, false, false, 558), "html", null, true);
}
echo "\">
";
// line 559
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["MakerItem"], "name", [], "any", false, false, false, 559), "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 563
echo " ";
} else {
// line 564
echo " ";
// line 565
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 578
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.', 578, $this->source); })()));
foreach ($context['_seq'] as $context["_key"] => $context["maker"]) {
// line 579
echo " <li class=\"";
echo ((( !(null === (isset($context["Maker"]) || array_key_exists("Maker", $context) ? $context["Maker"] : (function () { throw new RuntimeError('Variable "Maker" does not exist.', 579, $this->source); })())) && (twig_get_attribute($this->env, $this->source, (isset($context["Maker"]) || array_key_exists("Maker", $context) ? $context["Maker"] : (function () { throw new RuntimeError('Variable "Maker" does not exist.', 579, $this->source); })()), "id", [], "any", false, false, false, 579) == twig_get_attribute($this->env, $this->source, $context["maker"], "id", [], "any", false, false, false, 579)))) ? ("is-active") : (""));
echo "\">
<a href=\"";
// line 580
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, 580), "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.', 580, $this->source); })()), "request", [], "any", false, false, false, 580), "query", [], "any", false, false, false, 580), "get", [0 => "category_id"], "method", false, false, false, 580)) {
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.', 580, $this->source); })()), "request", [], "any", false, false, false, 580), "query", [], "any", false, false, false, 580), "get", [0 => "category_id"], "method", false, false, false, 580), "html", null, true);
}
echo "\">
";
// line 581
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["maker"], "name", [], "any", false, false, false, 581), "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 585
echo " ";
}
// line 586
echo " </ul>
</div>
</div>
";
// line 590
echo " <div class=\"ec-filterSidebar__section\">
<h3 class=\"ec-filterSidebar__heading\">カテゴリ</h3>
<div class=\"ec-filterSidebar__body is-open\">
";
// line 593
$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 636
echo " <ul class=\"ec-filterSidebar__categoryList\">
<li class=\"";
// line 637
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.', 637, $this->source); })()), "request", [], "any", false, false, false, 637), "query", [], "any", false, false, false, 637), "get", [0 => "category_id"], "method", false, false, false, 637)) && (null === (isset($context["Maker"]) || array_key_exists("Maker", $context) ? $context["Maker"] : (function () { throw new RuntimeError('Variable "Maker" does not exist.', 637, $this->source); })())))) ? ("is-active") : (""));
echo "\">
<a href=\"";
// line 638
echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_list");
echo "\">すべて</a>
</li>
";
// line 640
$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.', 640, $this->source); })()));
foreach ($context['_seq'] as $context["_key"] => $context["cat"]) {
// line 641
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.', 641, $this->source); })()), "request", [], "any", false, false, false, 641), "query", [], "any", false, false, false, 641), "get", [0 => "category_id"], "method", false, false, false, 641) == twig_get_attribute($this->env, $this->source, $context["cat"], "id", [], "any", false, false, false, 641))) ? ("is-active") : (""));
echo "\">
<a href=\"";
// line 642
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, 642), "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.', 642, $this->source); })()), "request", [], "any", false, false, false, 642), "query", [], "any", false, false, false, 642), "get", [0 => "maker_id"], "method", false, false, false, 642)) {
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.', 642, $this->source); })()), "request", [], "any", false, false, false, 642), "query", [], "any", false, false, false, 642), "get", [0 => "maker_id"], "method", false, false, false, 642), "html", null, true);
}
echo "\">
";
// line 643
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["cat"], "name", [], "any", false, false, false, 643), "html", null, true);
echo "
</a>
";
// line 645
if ((twig_length_filter($this->env, twig_get_attribute($this->env, $this->source, $context["cat"], "children", [], "any", false, false, false, 645)) > 0)) {
// line 646
echo " <ul>
";
// line 647
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, $context["cat"], "children", [], "any", false, false, false, 647));
foreach ($context['_seq'] as $context["_key"] => $context["child"]) {
// line 648
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.', 648, $this->source); })()), "request", [], "any", false, false, false, 648), "query", [], "any", false, false, false, 648), "get", [0 => "category_id"], "method", false, false, false, 648) == twig_get_attribute($this->env, $this->source, $context["child"], "id", [], "any", false, false, false, 648))) ? ("is-active") : (""));
echo "\">
<a href=\"";
// line 649
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, 649), "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.', 649, $this->source); })()), "request", [], "any", false, false, false, 649), "query", [], "any", false, false, false, 649), "get", [0 => "maker_id"], "method", false, false, false, 649)) {
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.', 649, $this->source); })()), "request", [], "any", false, false, false, 649), "query", [], "any", false, false, false, 649), "get", [0 => "maker_id"], "method", false, false, false, 649), "html", null, true);
}
echo "\">
";
// line 650
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["child"], "name", [], "any", false, false, false, 650), "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 654
echo " </ul>
";
}
// line 656
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 658
echo " </ul>
</div>
</div>
";
// line 663
echo " ";
if ((isset($context["hasFilter"]) || array_key_exists("hasFilter", $context) ? $context["hasFilter"] : (function () { throw new RuntimeError('Variable "hasFilter" does not exist.', 663, $this->source); })())) {
// line 664
echo " <div class=\"ec-filterSidebar__reset\">
<a href=\"";
// line 665
echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_list");
echo "\">絞り込みをすべてリセット</a>
</div>
";
}
// line 668
echo "
</aside>
";
// line 671
echo "
";
// line 673
echo " <div class=\"ec-productListMain\">
";
// line 674
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.', 674, $this->source); })()), "category_id", [], "any", false, false, false, 674), "vars", [], "any", false, false, false, 674), "errors", [], "any", false, false, false, 674)) > 0)) {
// line 675
echo " <div class=\"ec-searchnavRole\">
<p class=\"errormsg text-danger\">";
// line 676
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("ご指定のカテゴリは存在しません"), "html", null, true);
echo "</p>
</div>
";
} else {
// line 679
echo " ";
// line 680
echo " <div class=\"ec-searchnavRole\">
<form name=\"form1\" id=\"form1\" method=\"get\" action=\"?\">
";
// line 682
$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.', 682, $this->source); })()));
foreach ($context['_seq'] as $context["_key"] => $context["item"]) {
// line 683
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, 683), "id", [], "any", false, false, false, 683), "html", null, true);
echo "\"
name=\"";
// line 684
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, 684), "full_name", [], "any", false, false, false, 684), "html", null, true);
echo "\"
";
// line 685
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, 685), "value", [], "any", false, false, false, 685))) {
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, 685), "value", [], "any", false, false, false, 685), "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 687
echo " </form>
";
// line 690
echo " <div class=\"ec-searchnavRole__topicpath\">
<ol class=\"ec-topicpath\">
<li class=\"ec-topicpath__item\"><a href=\"";
// line 692
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 693
if ( !(null === (isset($context["Category"]) || array_key_exists("Category", $context) ? $context["Category"] : (function () { throw new RuntimeError('Variable "Category" does not exist.', 693, $this->source); })()))) {
// line 694
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.', 694, $this->source); })()), "path", [], "any", false, false, false, 694));
$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 695
echo " <li class=\"ec-topicpath__divider\">|</li>
<li class=\"ec-topicpath__item";
// line 696
if (twig_get_attribute($this->env, $this->source, $context["loop"], "last", [], "any", false, false, false, 696)) {
echo "--active";
}
echo "\">
<a href=\"";
// line 697
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, 697), "html", null, true);
echo "\">";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["Path"], "name", [], "any", false, false, false, 697), "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 700
echo " ";
}
// line 701
echo " ";
if ( !(null === (isset($context["Maker"]) || array_key_exists("Maker", $context) ? $context["Maker"] : (function () { throw new RuntimeError('Variable "Maker" does not exist.', 701, $this->source); })()))) {
// line 702
echo " <li class=\"ec-topicpath__divider\">|</li>
<li class=\"ec-topicpath__item--active\">
<a href=\"";
// line 704
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.', 704, $this->source); })()), "id", [], "any", false, false, false, 704), "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.', 704, $this->source); })()), "name", [], "any", false, false, false, 704), "html", null, true);
echo "</a>
</li>
";
}
// line 707
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.', 707, $this->source); })()), "vars", [], "any", false, false, false, 707), "value", [], "any", false, false, false, 707) && 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.', 707, $this->source); })()), "vars", [], "any", false, false, false, 707), "value", [], "any", false, false, false, 707), "name", [], "any", false, false, false, 707))) {
// line 708
echo " <li class=\"ec-topicpath__divider\">|</li>
<li class=\"ec-topicpath__item\">";
// line 709
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.', 709, $this->source); })()), "vars", [], "any", false, false, false, 709), "value", [], "any", false, false, false, 709), "name", [], "any", false, false, false, 709)]), "html", null, true);
echo "</li>
";
}
// line 711
echo " </ol>
</div>
";
// line 717
echo " ";
if ((isset($context["hasFilter"]) || array_key_exists("hasFilter", $context) ? $context["hasFilter"] : (function () { throw new RuntimeError('Variable "hasFilter" does not exist.', 717, $this->source); })())) {
// line 718
echo " <div class=\"ec-filterActive\">
<span class=\"ec-filterActive__label\">絞り込み中:</span>
";
// line 720
if ( !(null === (isset($context["Category"]) || array_key_exists("Category", $context) ? $context["Category"] : (function () { throw new RuntimeError('Variable "Category" does not exist.', 720, $this->source); })()))) {
// line 721
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.', 721, $this->source); })()), "request", [], "any", false, false, false, 721), "query", [], "any", false, false, false, 721), "get", [0 => "category_id"], "method", false, false, false, 721));
// line 722
echo " <span class=\"ec-filterActive__tag\">
";
// line 723
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.', 723, $this->source); })()), "name", [], "any", false, false, false, 723), "html", null, true);
echo "
<a href=\"";
// line 724
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.', 724, $this->source); })()), "request", [], "any", false, false, false, 724), "uri", [], "any", false, false, false, 724), [(isset($context["removeCategoryParam"]) || array_key_exists("removeCategoryParam", $context) ? $context["removeCategoryParam"] : (function () { throw new RuntimeError('Variable "removeCategoryParam" does not exist.', 724, $this->source); })()) => ""]), "html", null, true);
echo "\" title=\"解除\">✕</a>
</span>
";
}
// line 727
echo " ";
if ( !(null === (isset($context["Maker"]) || array_key_exists("Maker", $context) ? $context["Maker"] : (function () { throw new RuntimeError('Variable "Maker" does not exist.', 727, $this->source); })()))) {
// line 728
echo " <span class=\"ec-filterActive__tag\">
";
// line 729
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.', 729, $this->source); })()), "name", [], "any", false, false, false, 729), "html", null, true);
echo "
<a href=\"";
// line 730
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.', 730, $this->source); })()), "request", [], "any", false, false, false, 730), "query", [], "any", false, false, false, 730), "get", [0 => "category_id"], "method", false, false, false, 730)) {
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.', 730, $this->source); })()), "request", [], "any", false, false, false, 730), "query", [], "any", false, false, false, 730), "get", [0 => "category_id"], "method", false, false, false, 730), "html", null, true);
}
echo "\" title=\"解除\">✕</a>
</span>
";
}
// line 733
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.', 733, $this->source); })()), "request", [], "any", false, false, false, 733), "query", [], "any", false, false, false, 733), "get", [0 => "price_min"], "method", false, false, false, 733) || 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.', 733, $this->source); })()), "request", [], "any", false, false, false, 733), "query", [], "any", false, false, false, 733), "get", [0 => "price_max"], "method", false, false, false, 733))) {
// line 734
echo " <span class=\"ec-filterActive__tag\">
";
// line 735
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)) {
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.', 735, $this->source); })()), "request", [], "any", false, false, false, 735), "query", [], "any", false, false, false, 735), "get", [0 => "price_min"], "method", false, false, false, 735)), "html", null, true);
echo "円";
} else {
echo "0円";
}
// line 736
echo " 〜
";
// 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_max"], "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_max"], "method", false, false, false, 737)), "html", null, true);
echo "円";
} else {
echo "上限なし";
}
// line 738
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 746
echo " </div>
";
}
// line 748
echo "
";
// line 750
echo " <div class=\"ec-searchnavRole__infos\">
<div class=\"ec-searchnavRole__counter\">
";
// line 752
if ((twig_get_attribute($this->env, $this->source, (isset($context["pagination"]) || array_key_exists("pagination", $context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.', 752, $this->source); })()), "totalItemCount", [], "any", false, false, false, 752) > 0)) {
// line 753
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.', 753, $this->source); })()), "totalItemCount", [], "any", false, false, false, 753)]);
echo "
";
} else {
// line 755
echo " <span>";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お探しの商品は見つかりませんでした"), "html", null, true);
echo "</span>
";
}
// line 757
echo " </div>
";
// line 758
if ((twig_get_attribute($this->env, $this->source, (isset($context["pagination"]) || array_key_exists("pagination", $context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.', 758, $this->source); })()), "totalItemCount", [], "any", false, false, false, 758) > 0)) {
// line 759
echo " <div class=\"ec-searchnavRole__actions\">
<div class=\"ec-select\">
";
// line 761
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env, $this->source, (isset($context["search_form"]) || array_key_exists("search_form", $context) ? $context["search_form"] : (function () { throw new RuntimeError('Variable "search_form" does not exist.', 761, $this->source); })()), "disp_number", [], "any", false, false, false, 761), 'widget', ["id" => "", "attr" => ["class" => "disp-number"]]);
echo "
";
// line 762
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env, $this->source, (isset($context["search_form"]) || array_key_exists("search_form", $context) ? $context["search_form"] : (function () { throw new RuntimeError('Variable "search_form" does not exist.', 762, $this->source); })()), "orderby", [], "any", false, false, false, 762), 'widget', ["id" => "", "attr" => ["class" => "order-by"]]);
echo "
</div>
</div>
";
}
// line 766
echo " </div>
</div>
";
// line 770
if ((twig_get_attribute($this->env, $this->source, (isset($context["pagination"]) || array_key_exists("pagination", $context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.', 770, $this->source); })()), "totalItemCount", [], "any", false, false, false, 770) > 0)) {
// line 771
echo " <div class=\"ec-shelfRole\">
<ul class=\"ec-shelfGrid\">
";
// line 773
$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.', 773, $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 774
echo " <li class=\"ec-shelfGrid__item\" style=\"position:relative;\">
";
// line 775
if (twig_get_attribute($this->env, $this->source, (isset($context["BaseInfo"]) || array_key_exists("BaseInfo", $context) ? $context["BaseInfo"] : (function () { throw new RuntimeError('Variable "BaseInfo" does not exist.', 775, $this->source); })()), "option_favorite_product", [], "any", false, false, false, 775)) {
// line 776
echo " <div style=\"position:absolute;top:8px;right:20px;z-index:10;\">
<form action=\"";
// line 777
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, 777)]), "html", null, true);
echo "\" method=\"post\">
<button type=\"submit\" id=\"favorite\" class=\"favorite\">♡</button>
</form>
</div>
";
}
// line 782
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, 782)]), "html", null, true);
echo "\">
<p class=\"ec-shelfGrid__item-image\">
<img src=\"";
// line 784
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, 784)), "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, 784), "html", null, true);
echo "\" width=\"180\" height=\"180\"";
if ((twig_get_attribute($this->env, $this->source, $context["loop"], "index", [], "any", false, false, false, 784) > 5)) {
echo " loading=\"lazy\"";
}
echo ">
</p>
<h5><strong>";
// line 786
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, 786), "related_keyword"), "html", null, true);
echo "</strong></h5>
<p class=\"price02-default\">
";
// line 788
if (((null === twig_get_attribute($this->env, $this->source, $context["Product"], "getPrice02Max", [], "any", false, false, false, 788)) || (twig_get_attribute($this->env, $this->source, $context["Product"], "getPrice02Max", [], "any", false, false, false, 788) == 0))) {
// line 789
echo " 現地調査見積
";
} elseif (twig_get_attribute($this->env, $this->source, // line 790
$context["Product"], "hasProductClass", [], "any", false, false, false, 790)) {
// line 791
echo " ";
if ((twig_get_attribute($this->env, $this->source, $context["Product"], "getPrice02Min", [], "any", false, false, false, 791) == twig_get_attribute($this->env, $this->source, $context["Product"], "getPrice02Max", [], "any", false, false, false, 791))) {
// line 792
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, 792)), "html", null, true);
echo "円
";
} else {
// 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 "円 ~ ";
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, 794)), "html", null, true);
echo "円
";
}
// line 796
echo " ";
} else {
// line 797
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, 797)), "html", null, true);
echo "円 ~
";
}
// line 799
echo " </p>
</a>
";
// line 802
if (twig_get_attribute($this->env, $this->source, $context["Product"], "stock_find", [], "any", false, false, false, 802)) {
// line 803
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.', 803, $this->source); })()), twig_get_attribute($this->env, $this->source, $context["Product"], "id", [], "any", false, false, false, 803), [], "array", false, false, false, 803);
// line 804
echo " <form name=\"form";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["Product"], "id", [], "any", false, false, false, 804), "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, 804), "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, 804)]), "html", null, true);
echo "\" method=\"get\">
<div class=\"ec-productRole__actions\">
";
// line 806
if (twig_get_attribute($this->env, $this->source, ($context["form"] ?? null), "classcategory_id1", [], "any", true, true, false, 806)) {
// line 807
echo " <div class=\"ec-select\">
";
// line 808
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env, $this->source, (isset($context["form"]) || array_key_exists("form", $context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.', 808, $this->source); })()), "classcategory_id1", [], "any", false, false, false, 808), 'widget');
echo "
";
// line 809
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env, $this->source, (isset($context["form"]) || array_key_exists("form", $context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.', 809, $this->source); })()), "classcategory_id1", [], "any", false, false, false, 809), 'errors');
echo "
</div>
";
// line 811
if (twig_get_attribute($this->env, $this->source, ($context["form"] ?? null), "classcategory_id2", [], "any", true, true, false, 811)) {
// line 812
echo " <div class=\"ec-select\">
";
// line 813
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env, $this->source, (isset($context["form"]) || array_key_exists("form", $context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.', 813, $this->source); })()), "classcategory_id2", [], "any", false, false, false, 813), 'widget');
echo "
";
// line 814
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env, $this->source, (isset($context["form"]) || array_key_exists("form", $context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.', 814, $this->source); })()), "classcategory_id2", [], "any", false, false, false, 814), 'errors');
echo "
</div>
";
}
// line 817
echo " ";
}
// line 818
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 819
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env, $this->source, (isset($context["form"]) || array_key_exists("form", $context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.', 819, $this->source); })()), "quantity", [], "any", false, false, false, 819), 'errors');
echo "
</div>
</div>
<div class=\"ec-productRole__btn\">
<button class=\"ec-blockBtn--action\">
";
// line 824
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お見積もりはこちら"), "html", null, true);
echo "
</button>
</div>
</form>
";
} else {
// line 829
echo " <div class=\"ec-productRole__btn\">
<button type=\"button\" class=\"ec-blockBtn--action\" disabled=\"disabled\">
";
// line 831
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("ただいま品切れ中です。"), "html", null, true);
echo "
</button>
</div>
";
}
// line 835
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 837
echo " </ul>
</div>
<div class=\"ec-pagerRole\">
";
// line 840
$this->loadTemplate("pager.twig", "Product/list.twig", 840)->display(twig_array_merge($context, ["pages" => twig_get_attribute($this->env, $this->source, (isset($context["pagination"]) || array_key_exists("pagination", $context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.', 840, $this->source); })()), "paginationData", [], "any", false, false, false, 840)]));
// line 841
echo " </div>
";
}
// line 843
echo " </div>
";
// line 845
echo "
</div>
";
// line 848
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 ( 1384 => 848, 1380 => 845, 1377 => 843, 1373 => 841, 1371 => 840, 1366 => 837, 1351 => 835, 1344 => 831, 1340 => 829, 1332 => 824, 1324 => 819, 1319 => 818, 1316 => 817, 1310 => 814, 1306 => 813, 1303 => 812, 1301 => 811, 1296 => 809, 1292 => 808, 1289 => 807, 1287 => 806, 1277 => 804, 1274 => 803, 1272 => 802, 1267 => 799, 1261 => 797, 1258 => 796, 1250 => 794, 1244 => 792, 1241 => 791, 1239 => 790, 1236 => 789, 1234 => 788, 1229 => 786, 1218 => 784, 1212 => 782, 1204 => 777, 1201 => 776, 1199 => 775, 1196 => 774, 1179 => 773, 1175 => 771, 1173 => 770, 1167 => 766, 1160 => 762, 1156 => 761, 1152 => 759, 1150 => 758, 1147 => 757, 1141 => 755, 1135 => 753, 1133 => 752, 1129 => 750, 1126 => 748, 1122 => 746, 1112 => 738, 1105 => 737, 1102 => 736, 1095 => 735, 1092 => 734, 1089 => 733, 1079 => 730, 1075 => 729, 1072 => 728, 1069 => 727, 1063 => 724, 1059 => 723, 1056 => 722, 1053 => 721, 1051 => 720, 1047 => 718, 1044 => 717, 1039 => 711, 1034 => 709, 1031 => 708, 1028 => 707, 1018 => 704, 1014 => 702, 1011 => 701, 1008 => 700, 987 => 697, 981 => 696, 978 => 695, 960 => 694, 958 => 693, 952 => 692, 948 => 690, 944 => 687, 932 => 685, 928 => 684, 923 => 683, 919 => 682, 915 => 680, 913 => 679, 907 => 676, 904 => 675, 902 => 674, 899 => 673, 896 => 671, 892 => 668, 886 => 665, 883 => 664, 880 => 663, 874 => 658, 867 => 656, 863 => 654, 853 => 650, 843 => 649, 838 => 648, 834 => 647, 831 => 646, 829 => 645, 824 => 643, 814 => 642, 809 => 641, 805 => 640, 800 => 638, 796 => 637, 793 => 636, 791 => 593, 786 => 590, 781 => 586, 778 => 585, 768 => 581, 758 => 580, 753 => 579, 748 => 578, 745 => 565, 743 => 564, 740 => 563, 730 => 559, 720 => 558, 715 => 557, 710 => 556, 708 => 555, 702 => 551, 685 => 536, 681 => 535, 674 => 531, 669 => 529, 663 => 525, 660 => 523, 656 => 520, 653 => 516, 651 => 515, 647 => 513, 637 => 512, 558 => 442, 554 => 441, 529 => 418, 515 => 417, 507 => 416, 490 => 415, 486 => 413, 476 => 412, 73 => 16, 63 => 15, 52 => 11, 50 => 13, 37 => 11,);
}
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 {
padding: 0 4px;
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");
}
}