<?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/detail.twig */
class __TwigTemplate_f8323847ccbfc05f7213b846afe26efc 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'],
];
$this->sandbox = $this->env->getExtension('\Twig\Extension\SandboxExtension');
$this->checkSecurity();
}
protected function doGetParent(array $context)
{
// line 11
return "default_frame.twig";
}
protected function doDisplay(array $context, array $blocks = [])
{
$macros = $this->macros;
$__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "Product/detail.twig"));
$__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "Product/detail.twig"));
// line 13
$context["body_class"] = "product_page";
// line 11
$this->parent = $this->loadTemplate("default_frame.twig", "Product/detail.twig", 11);
$this->parent->display($context, array_merge($this->blocks, $blocks));
$__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
}
// line 15
public function block_stylesheet($context, array $blocks = [])
{
$macros = $this->macros;
$__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "stylesheet"));
$__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "stylesheet"));
// line 16
echo " <style>
.slick-slider {
margin-bottom: 30px;
}
.slick-dots {
position: absolute;
bottom: -45px;
display: block;
width: 100%;
padding: 0;
list-style: none;
text-align: center;
}
.slick-dots li {
position: relative;
display: inline-block;
width: 20px;
height: 20px;
margin: 0 5px;
padding: 0;
cursor: pointer;
}
.slick-dots li button {
font-size: 0;
line-height: 0;
display: block;
width: 20px;
height: 20px;
padding: 5px;
cursor: pointer;
color: transparent;
border: 0;
outline: none;
background: transparent;
}
.slick-dots li button:hover,
.slick-dots li button:focus {
outline: none;
}
.slick-dots li button:hover:before,
.slick-dots li button:focus:before {
opacity: 1;
}
.slick-dots li button:before {
content: \" \";
line-height: 20px;
position: absolute;
top: 0;
left: 0;
width: 12px;
height: 12px;
text-align: center;
opacity: .25;
background-color: black;
border-radius: 50%;
}
.slick-dots li.slick-active button:before {
opacity: .75;
background-color: black;
}
.slick-dots li button.thumbnail img {
width: 0;
height: 0;
}
</style>
<link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css\" />
<link rel=\"stylesheet\" href=\"/html/template/default/assets/css/swiper-customize.min.css\">
<style>
#modalWrapAlert {
display: none;
background: 0 0;
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
z-index: 100;
overflow: hidden
}
.modalBoxAlert {
position: fixed;
width: 85%;
max-width: 420px;
height: 0;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
overflow: hidden;
opacity: 1;
display: none;
border-radius: 3px;
z-index: 1000
}
.modalInnerAlert {
padding: 10px;
text-align: center;
box-sizing: border-box;
background: rgba(0, 0, 0, .7);
color: #fff
}
</style>
";
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
$__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
}
// line 135
public function block_javascript($context, array $blocks = [])
{
$macros = $this->macros;
$__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "javascript"));
$__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "javascript"));
// line 136
echo " ";
// line 137
echo " ";
$context["rootCategoryId"] = null;
// line 138
echo " ";
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 138, $this->source); })()), "ProductCategories", [], "any", false, false, true, 138));
foreach ($context['_seq'] as $context["_key"] => $context["ProductCategory"]) {
// line 139
echo " ";
$context["Category"] = twig_get_attribute($this->env, $this->source, $context["ProductCategory"], "Category", [], "any", false, false, true, 139);
// line 140
echo " ";
$context["rootCategory"] = (isset($context["Category"]) || array_key_exists("Category", $context) ? $context["Category"] : (function () { throw new RuntimeError('Variable "Category" does not exist.', 140, $this->source); })());
// line 141
echo " ";
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable(range(1, 10));
foreach ($context['_seq'] as $context["_key"] => $context["i"]) {
if (twig_get_attribute($this->env, $this->source, (isset($context["rootCategory"]) || array_key_exists("rootCategory", $context) ? $context["rootCategory"] : (function () { throw new RuntimeError('Variable "rootCategory" does not exist.', 141, $this->source); })()), "Parent", [], "any", false, false, true, 141)) {
// line 142
echo " ";
$context["rootCategory"] = twig_get_attribute($this->env, $this->source, (isset($context["rootCategory"]) || array_key_exists("rootCategory", $context) ? $context["rootCategory"] : (function () { throw new RuntimeError('Variable "rootCategory" does not exist.', 142, $this->source); })()), "Parent", [], "any", false, false, true, 142);
// line 143
echo " ";
}
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['i'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 144
echo " ";
$context["rootCategoryId"] = twig_get_attribute($this->env, $this->source, (isset($context["rootCategory"]) || array_key_exists("rootCategory", $context) ? $context["rootCategory"] : (function () { throw new RuntimeError('Variable "rootCategory" does not exist.', 144, $this->source); })()), "id", [], "any", false, false, true, 144);
// line 145
echo " ";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductCategory'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 146
echo " <script>
eccube.classCategories = ";
// line 147
echo $this->extensions['Eccube\Twig\Extension\EccubeExtension']->getClassCategoriesAsJson($this->sandbox->ensureToStringAllowed((isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 147, $this->source); })()), 147, $this->source));
echo ";
// 規格2に選択肢を割り当てる。
function fnSetClassCategories(form, classcat_id2_selected) {
var \$form = \$(form);
var product_id = \$form.find('input[name=product_id]').val();
var \$sele1 = \$form.find('select[name=classcategory_id1]');
var \$sele2 = \$form.find('select[name=classcategory_id2]');
eccube.setClassCategories(\$form, product_id, \$sele1, \$sele2, classcat_id2_selected);
}
";
// line 159
echo " ";
if (((isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 159, $this->source); })()) == 7)) {
// line 160
echo " window.addEventListener('load', () => {
const selectElement = document.getElementById('classcategory_id1');
if (selectElement) {
selectElement.selectedIndex = 1;\t// 2番目のoptionを選択
// 規格1の選択後に規格2の選択肢を設定
fnSetClassCategories(\$('#form1'), null);
// イベント発火処理(ネイティブ+jQuery)
const triggerChangeEvents = () => {
// 規格1の変更イベントを発火
\$(selectElement).trigger('change');
};
// 規格1の変更イベントを発火(300msの遅延を追加)
setTimeout(triggerChangeEvents, 300);
}
";
// line 178
if (twig_get_attribute($this->env, $this->source, ($context["form"] ?? null), "classcategory_id2", [], "any", true, true, true, 178)) {
// line 179
echo " fnSetClassCategories(
\$('#form1'), ";
// line 180
echo json_encode($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, 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.', 180, $this->source); })()), "classcategory_id2", [], "any", false, false, true, 180), "vars", [], "any", false, false, true, 180), "value", [], "any", false, false, true, 180), 180, $this->source));
echo "
);
";
} elseif (twig_get_attribute($this->env, $this->source, // line 182
($context["form"] ?? null), "classcategory_id1", [], "any", true, true, true, 182)) {
// line 183
echo " eccube.checkStock(\$('#form1'), ";
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 183, $this->source); })()), "id", [], "any", false, false, true, 183), 183, $this->source), "html", null, true);
echo ", ";
echo json_encode($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, 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.', 183, $this->source); })()), "classcategory_id1", [], "any", false, false, true, 183), "vars", [], "any", false, false, true, 183), "value", [], "any", false, false, true, 183), 183, $this->source));
echo ", null);
";
} else {
// line 185
echo " // 規格が存在しない場合の処理
eccube.checkStock(\$('#form1'), ";
// line 186
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 186, $this->source); })()), "id", [], "any", false, false, true, 186), 186, $this->source), "html", null, true);
echo ", null, null);
";
}
// line 188
echo " });
";
} elseif (( // line 189
(isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 189, $this->source); })()) == 8)) {
// line 190
echo " ";
} elseif (((isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 190, $this->source); })()) == 9)) {
// line 191
echo " ";
} elseif (((isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 191, $this->source); })()) == 10)) {
// line 192
echo "
";
// line 193
if (twig_get_attribute($this->env, $this->source, ($context["form"] ?? null), "classcategory_id2", [], "any", true, true, true, 193)) {
// line 194
echo " fnSetClassCategories(
\$('#form1'), ";
// line 195
echo json_encode($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, 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.', 195, $this->source); })()), "classcategory_id2", [], "any", false, false, true, 195), "vars", [], "any", false, false, true, 195), "value", [], "any", false, false, true, 195), 195, $this->source));
echo "
);
";
} elseif (twig_get_attribute($this->env, $this->source, // line 197
($context["form"] ?? null), "classcategory_id1", [], "any", true, true, true, 197)) {
// line 198
echo " eccube.checkStock(\$('#form1'), ";
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 198, $this->source); })()), "id", [], "any", false, false, true, 198), 198, $this->source), "html", null, true);
echo ", ";
echo json_encode($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, 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.', 198, $this->source); })()), "classcategory_id1", [], "any", false, false, true, 198), "vars", [], "any", false, false, true, 198), "value", [], "any", false, false, true, 198), 198, $this->source));
echo ", null);
";
}
// line 200
echo " ";
}
// line 202
echo " </script>
<script>
\$(function() {
// bfcache無効化
\$(window).bind('pageshow', function(event) {
if (event.originalEvent.persisted) {
location.reload(true);
}
});
// Core Web Vital の Cumulative Layout Shift(CLS)対策のため
// img タグに width, height が付与されている.
// 630px 未満の画面サイズでは縦横比が壊れるための対策
// see https://github.com/EC-CUBE/ec-cube/pull/5023
\$('.ec-grid2__cell').hide();
var removeSize = function () {
\$('.slide-item').height('');
\$('.slide-item img')
.removeAttr('width')
.removeAttr('height')
.removeAttr('style');
};
var slickInitial = function(slick) {
\$('.ec-grid2__cell').fadeIn(1500);
var baseHeight = \$(slick.target).height();
var baseWidth = \$(slick.target).width();
var rate = baseWidth / baseHeight;
\$('.slide-item').height(baseHeight * rate); // 余白を削除する
// transform を使用することでCLSの影響を受けないようにする
\$('.slide-item img')
.css(
{
'transform-origin': 'top left',
'transform': 'scaleY(' + rate + ')',
'transition': 'transform .1s'
}
);
// 正しいサイズに近くなったら属性を解除する
setTimeout(removeSize, 500);
};
\$('.item_visual').on('init', slickInitial);
// リサイズ時は CLS の影響を受けないため属性を解除する
\$(window).resize(removeSize);
\$('.item_visual').slick({
dots: false,
arrows: false,
responsive: [{
breakpoint: 768,
settings: {
dots: true
}
}]
});
\$('.slideThumb').on('click', function() {
var index = \$(this).attr('data-index');
\$('.item_visual').slick('slickGoTo', index, false);
})
});
</script>
<script>
\$(function() {
\$('.add-cart').on('click', function(event) {
";
// line 266
if (twig_get_attribute($this->env, $this->source, ($context["form"] ?? null), "classcategory_id1", [], "any", true, true, true, 266)) {
// line 267
echo " // 規格1フォームの必須チェック
if (\$('#classcategory_id1').val() == '__unselected' || \$('#classcategory_id1').val() == '') {
\$('#classcategory_id1')[0].setCustomValidity('";
// line 269
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("項目が選択されていません"), "html", null, true);
echo "');
return true;
} else {
\$('#classcategory_id1')[0].setCustomValidity('');
}
";
}
// line 275
echo "
";
// line 276
if (twig_get_attribute($this->env, $this->source, ($context["form"] ?? null), "classcategory_id2", [], "any", true, true, true, 276)) {
// line 277
echo " // 規格2フォームの必須チェック
if (\$('#classcategory_id2').val() == '__unselected' || \$('#classcategory_id2').val() == '') {
\$('#classcategory_id2')[0].setCustomValidity('";
// line 279
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("項目が選択されていません"), "html", null, true);
echo "');
return true;
} else {
\$('#classcategory_id2')[0].setCustomValidity('');
}
";
}
// line 285
echo "
// 個数フォームのチェック
if (\$('#quantity').val() < 1) {
\$('#quantity')[0].setCustomValidity('";
// line 288
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("1以上で入力してください。"), "html", null, true);
echo "');
return true;
} else {
\$('#quantity')[0].setCustomValidity('');
}
event.preventDefault();
\$form = \$('#form1');
\$.ajax({
url: \$form.attr('action'),
type: \$form.attr('method'),
data: \$form.serialize(),
dataType: 'json',
beforeSend: function(xhr, settings) {
// Buttonを無効にする
\$('.add-cart').prop('disabled', true);
}
}).done(function(data) {
// レスポンス内のメッセージをalertで表示
\$.each(data.messages, function() {
\$('#ec-modal-header').text(this);
});
\$('.ec-modal').show()
// カートブロックを更新する
\$.ajax({
url: \"";
// line 315
echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("block_cart");
echo "\",
type: 'GET',
dataType: 'html'
}).done(function(html) {
\$('.ec-headerRole__cart').html(html);
});
}).fail(function(data) {
alert('";
// line 322
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートへの追加に失敗しました。"), "html", null, true);
echo "');
}).always(function(data) {
// Buttonを有効にする
\$('.add-cart').prop('disabled', false);
});
});
});
\$('.ec-modal-wrap').on('click', function(e) {
// モーダル内の処理は外側にバブリングさせない
e.stopPropagation();
});
\$('.ec-modal-overlay, .ec-modal, .ec-modal-close, .inlineBtn--cancel').on('click', function() {
\$('.ec-modal').hide()
});
</script>
<script type=\"application/ld+json\">
{
\"@context\": \"https://schema.org/\",
\"@type\": \"Product\",
\"name\": \"";
// line 342
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 342, $this->source); })()), "name", [], "any", false, false, true, 342), 342, $this->source), "html", null, true);
echo "\",
\"image\": [
";
// line 344
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 344, $this->source); })()), "ProductImage", [], "any", false, false, true, 344));
$context['_iterated'] = false;
$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["img"]) {
// line 345
echo " \"";
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(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.', 345, $this->source); })()), "request", [], "any", false, false, true, 345), "schemeAndHttpHost", [], "any", false, false, true, 345), 345, $this->source), "html", null, true);
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($this->sandbox->ensureToStringAllowed($context["img"], 345, $this->source), "save_image"), "html", null, true);
echo "\"";
if ( !twig_get_attribute($this->env, $this->source, $context["loop"], "last", [], "any", false, false, true, 345)) {
echo ",";
}
// line 346
echo "
";
$context['_iterated'] = true;
++$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'];
}
}
if (!$context['_iterated']) {
// line 348
echo " \"";
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(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.', 348, $this->source); })()), "request", [], "any", false, false, true, 348), "schemeAndHttpHost", [], "any", false, false, true, 348), 348, $this->source), "html", null, true);
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($this->extensions['Eccube\Twig\Extension\EccubeExtension']->getNoImageProduct(""), "save_image"), "html", null, true);
echo "\"
";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['img'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 350
echo " ],
\"description\": \"";
// line 351
echo twig_escape_filter($this->env, twig_slice($this->env, twig_replace_filter(((twig_get_attribute($this->env, $this->source, ($context["Product"] ?? null), "description_list", [], "any", true, true, true, 351)) ? (_twig_default_filter($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, ($context["Product"] ?? null), "description_list", [], "any", false, false, true, 351), 351, $this->source), $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 351, $this->source); })()), "description_detail", [], "any", false, false, true, 351), 351, $this->source))) : (twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 351, $this->source); })()), "description_detail", [], "any", false, false, true, 351))), ["
" => "", "
" => ""]), 0, 300), "html", null, true);
echo "\",
";
// line 352
if (twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 352, $this->source); })()), "code_min", [], "any", false, false, true, 352)) {
// line 353
echo " \"sku\": \"";
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 353, $this->source); })()), "code_min", [], "any", false, false, true, 353), 353, $this->source), "html", null, true);
echo "\",
";
}
// line 355
echo " \"offers\": {
\"@type\": \"Offer\",
\"url\": \"";
// line 357
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_detail", ["id" => twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 357, $this->source); })()), "id", [], "any", false, false, true, 357)]), "html", null, true);
echo "\",
\"priceCurrency\": \"";
// line 358
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["eccube_config"]) || array_key_exists("eccube_config", $context) ? $context["eccube_config"] : (function () { throw new RuntimeError('Variable "eccube_config" does not exist.', 358, $this->source); })()), "currency", [], "any", false, false, true, 358), 358, $this->source), "html", null, true);
echo "\",
\"price\": ";
// line 359
((twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 359, $this->source); })()), "getPrice02IncTaxMin", [], "any", false, false, true, 359)) ? (print (twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 359, $this->source); })()), "getPrice02IncTaxMin", [], "any", false, false, true, 359), "html", null, true))) : (print (0)));
echo ",
\"availability\": \"";
// line 360
echo ((twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 360, $this->source); })()), "stock_find", [], "any", false, false, true, 360)) ? ("InStock") : ("OutOfStock"));
echo "\"
}
}
</script>
<script src=\"https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js\"></script>
<script>
// swiperを生成
var swiperMain = new Swiper('.swiper-container', {
effect: 'fade', // フェードエフェクトを適用
speed: 600,
loop: true,
pagination: {
el: '.swiper-pagination',
clickable: true,
},
navigation: { // コメントアウトまたは削除
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
},
});
// slideToメソッドを実行する関数を定義
function slideThumb(index) {
swiperMain.slideTo(index);
}
</script>
<script>
";
// line 386
if (((isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 386, $this->source); })()) == 7)) {
// line 387
echo " \$(function() {
\$('.ball_type').change(function() {
let selCnt = 0;
const ballType = document.forms.formSelPC.ball_type;
for( let i=0; i < ballType.length; i++ ) {
if( ballType[i].checked ) {
selCnt++;
}
}
if( selCnt == ballType.length ) {
for( let i=0; i < ballType.length; i++ ) {
ballType[i].checked = false;
}
//alert('絞り込みたい項目がある場合のみチェックしてください。');
selAlert();
}
});
\$('.ball_nums').change(function() {
let selCnt = 0;
const ballNums = document.forms.formSelPC.ball_nums;
for( let i=0; i < ballNums.length; i++ ) {
if( ballNums[i].checked ) {
selCnt++;
}
}
if( selCnt == ballNums.length ) {
for( let i=0; i < ballNums.length; i++ ) {
ballNums[i].checked = false;
}
//alert('絞り込みたい項目がある場合のみチェックしてください。');
selAlert();
}
});
\$('.ball_price').change(function() {
let selCnt = 0;
const ballPrice = document.forms.formSelPC.ball_price;
for( let i=0; i < ballPrice.length; i++ ) {
if( ballPrice[i].checked ) {
selCnt++;
}
}
if( selCnt == ballPrice.length ) {
for( let i=0; i < ballPrice.length; i++ ) {
ballPrice[i].checked = false;
}
//alert('絞り込みたい項目がある場合のみチェックしてください。');
selAlert();
}
});
\$('.ball_type_sp').change(function() {
let selCnt = 0;
const ballType = document.forms.formSelSP.ball_type;
for( let i=0; i < ballType.length; i++ ) {
if( ballType[i].checked ) {
selCnt++;
}
}
if( selCnt == ballType.length ) {
for( let i=0; i < ballType.length; i++ ) {
ballType[i].checked = false;
}
//alert('絞り込みたい項目がある場合のみチェックしてください。');
selAlert();
}
});
\$('.ball_nums_sp').change(function() {
let selCnt = 0;
const ballNums = document.forms.formSelSP.ball_nums;
for( let i=0; i < ballNums.length; i++ ) {
if( ballNums[i].checked ) {
selCnt++;
}
}
if( selCnt == ballNums.length ) {
for( let i=0; i < ballNums.length; i++ ) {
ballNums[i].checked = false;
}
//alert('絞り込みたい項目がある場合のみチェックしてください。');
selAlert();
}
});
\$('.ball_price_sp').change(function() {
let selCnt = 0;
const ballPrice = document.forms.formSelSP.ball_price;
for( let i=0; i < ballPrice.length; i++ ) {
if( ballPrice[i].checked ) {
selCnt++;
}
}
if( selCnt == ballPrice.length ) {
for( let i=0; i < ballPrice.length; i++ ) {
ballPrice[i].checked = false;
}
//alert('絞り込みたい項目がある場合のみチェックしてください。');
selAlert();
}
});
});
function setValPC() {
let sels_type = '';
const ballType = document.forms.formSelPC.ball_type;
for( let i=0; i < ballType.length; i++ ) {
if( ballType[i].checked ) {
if( sels_type ) {
sels_type = sels_type + ',';
}
sels_type = sels_type + ballType[i].value;
}
}
document.forms.formSelPC2.elements['ball-type'].value = sels_type;
let sels_nums = '';
const ballNums = document.forms.formSelPC.ball_nums;
for( let i=0; i < ballNums.length; i++ ) {
if( ballNums[i].checked ) {
if( sels_nums ) {
sels_nums = sels_nums + ',';
}
sels_nums = sels_nums + ballNums[i].value;
}
}
document.forms.formSelPC2.elements['ball-nums'].value = sels_nums;
let sels_price = '';
const ballPrice = document.forms.formSelPC.ball_price;
for( let i=0; i < ballPrice.length; i++ ) {
if( ballPrice[i].checked ) {
if( sels_price ) {
sels_price = sels_price + ',';
}
sels_price = sels_price + ballPrice[i].value;
}
}
document.forms.formSelPC2.elements['ball-price'].value = sels_price;
document.forms.formSelPC2.submit();
}
function setValSP() {
let sels_type = '';
const ballType = document.forms.formSelSP.ball_type;
for( let i=0; i < ballType.length; i++ ) {
if( ballType[i].checked ) {
if( sels_type ) {
sels_type = sels_type + ',';
}
sels_type = sels_type + ballType[i].value;
}
}
document.forms.formSelSP2.elements['ball-type'].value = sels_type;
let sels_nums = '';
const ballNums = document.forms.formSelSP.ball_nums;
for( let i=0; i < ballNums.length; i++ ) {
if( ballNums[i].checked ) {
if( sels_nums ) {
sels_nums = sels_nums + ',';
}
sels_nums = sels_nums + ballNums[i].value;
}
}
document.forms.formSelSP2.elements['ball-nums'].value = sels_nums;
let sels_price = '';
const ballPrice = document.forms.formSelSP.ball_price;
for( let i=0; i < ballPrice.length; i++ ) {
if( ballPrice[i].checked ) {
if( sels_price ) {
sels_price = sels_price + ',';
}
sels_price = sels_price + ballPrice[i].value;
}
}
document.forms.formSelSP2.elements['ball-price'].value = sels_price;
document.forms.formSelSP2.submit();
}
";
} elseif (( // line 564
(isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 564, $this->source); })()) == 8)) {
// line 565
echo " ";
} elseif (((isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 565, $this->source); })()) == 9)) {
// line 566
echo " \$(function() {
\$('.design_cate').change(function() {
let selCnt = 0;
const designCate = document.forms.formSelPC.design_cate;
for( let i=0; i < designCate.length; i++ ) {
if( designCate[i].checked ) {
selCnt++;
}
}
if( selCnt == designCate.length ) {
for( let i=0; i < designCate.length; i++ ) {
designCate[i].checked = false;
}
//alert('絞り込みたい項目がある場合のみチェックしてください。');
selAlert();
}
});
\$('.design_cate_sp').change(function() {
let selCnt = 0;
const designCate = document.forms.formSelSP.design_cate;
for( let i=0; i < designCate.length; i++ ) {
if( designCate[i].checked ) {
selCnt++;
}
}
if( selCnt == designCate.length ) {
for( let i=0; i < designCate.length; i++ ) {
designCate[i].checked = false;
}
//alert('絞り込みたい項目がある場合のみチェックしてください。');
selAlert();
}
});
});
function setValPC() {
let sels_design = '';
const designCate = document.forms.formSelPC.design_cate;
for( let i=0; i < designCate.length; i++ ) {
if( designCate[i].checked ) {
if( sels_design ) {
sels_design = sels_design + ',';
}
sels_design = sels_design + designCate[i].value;
}
}
document.forms.formSelPC2.elements['design-cate'].value = sels_design;
document.forms.formSelPC2.submit();
}
function setValSP() {
let sels_design = '';
const designCate = document.forms.formSelSP.design_cate;
for( let i=0; i < designCate.length; i++ ) {
if( designCate[i].checked ) {
if( sels_design ) {
sels_design = sels_design + ',';
}
sels_design = sels_design + designCate[i].value;
}
}
document.forms.formSelSP2.elements['design-cate'].value = sels_design;
document.forms.formSelSP2.submit();
}
";
} elseif (( // line 631
(isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 631, $this->source); })()) == 10)) {
// line 632
echo " ";
}
// line 633
echo " </script>
<script>
function selAlert() {
var modalThis = \$('body').find('#alert01');
//bodyの最下にwrapを作る
\$('body').append('<div id=\"modalWrapAlert\" />');
var wrap = \$('#modalWrapAlert');
wrap.fadeIn('200');
modalThis.fadeIn('200');
//モーダルの高さを取ってくる
function mdlHeight() {
var wh = \$(window).innerHeight();
var attH = modalThis.find('.modalInnerAlert').innerHeight();
modalThis.css({
height: attH
});
}
mdlHeight();
\$(window).on('resize', function () {
mdlHeight();
});
function clickAction() {
modalThis.fadeOut('200');
wrap.fadeOut('200', function () {
wrap.remove();
});
}
//wrapクリックされたら
wrap.on('click', function () {
clickAction();
return false;
});
//2秒後に消える
setTimeout(clickAction, 2000);
return false;
}
</script>
";
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
$__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
}
// line 676
public function block_main($context, array $blocks = [])
{
$macros = $this->macros;
$__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "main"));
$__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "main"));
// line 677
echo " ";
// line 678
echo " ";
$context["rootCategoryId"] = null;
// line 679
echo " ";
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 679, $this->source); })()), "ProductCategories", [], "any", false, false, true, 679));
foreach ($context['_seq'] as $context["_key"] => $context["ProductCategory"]) {
// line 680
echo " ";
$context["Category"] = twig_get_attribute($this->env, $this->source, $context["ProductCategory"], "Category", [], "any", false, false, true, 680);
// line 681
echo " ";
$context["rootCategory"] = (isset($context["Category"]) || array_key_exists("Category", $context) ? $context["Category"] : (function () { throw new RuntimeError('Variable "Category" does not exist.', 681, $this->source); })());
// line 682
echo " ";
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable(range(1, 10));
foreach ($context['_seq'] as $context["_key"] => $context["i"]) {
if (twig_get_attribute($this->env, $this->source, (isset($context["rootCategory"]) || array_key_exists("rootCategory", $context) ? $context["rootCategory"] : (function () { throw new RuntimeError('Variable "rootCategory" does not exist.', 682, $this->source); })()), "Parent", [], "any", false, false, true, 682)) {
// line 683
echo " ";
$context["rootCategory"] = twig_get_attribute($this->env, $this->source, (isset($context["rootCategory"]) || array_key_exists("rootCategory", $context) ? $context["rootCategory"] : (function () { throw new RuntimeError('Variable "rootCategory" does not exist.', 683, $this->source); })()), "Parent", [], "any", false, false, true, 683);
// line 684
echo " ";
}
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['i'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 685
echo " ";
$context["rootCategoryId"] = twig_get_attribute($this->env, $this->source, (isset($context["rootCategory"]) || array_key_exists("rootCategory", $context) ? $context["rootCategory"] : (function () { throw new RuntimeError('Variable "rootCategory" does not exist.', 685, $this->source); })()), "id", [], "any", false, false, true, 685);
// line 686
echo " ";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductCategory'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 687
echo " <div class=\"container\">
<!-- パンくずリスト -->
<nav aria-label=\"breadcrumb\" class=\"my-3\">
<ol class=\"breadcrumb\">
<li class=\"breadcrumb-item\"><a href=\"";
// line 691
echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("homepage");
echo "\">ホーム</a></li>
";
// line 692
if (((isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 692, $this->source); })()) == 7)) {
// line 693
echo " <li class=\"breadcrumb-item\"><a href=\"";
echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_list", ["category_id" => 7]);
echo "\">ボールを選ぶ</a></li>
<li class=\"breadcrumb-item active\" aria-current=\"page\">";
// line 694
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 694, $this->source); })()), "name", [], "any", false, false, true, 694), 694, $this->source), "html", null, true);
echo "</li>
";
} elseif (( // line 695
(isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 695, $this->source); })()) == 8)) {
// line 696
echo " ";
} elseif (((isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 696, $this->source); })()) == 9)) {
// line 697
echo " <li class=\"breadcrumb-item\"><a href=\"";
echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_list", ["category_id" => 9]);
echo "\">デザインを選ぶ</a></li>
<li class=\"breadcrumb-item active\" aria-current=\"page\">";
// line 698
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 698, $this->source); })()), "name", [], "any", false, false, true, 698), 698, $this->source), "html", null, true);
echo "</li>
";
} elseif (( // line 699
(isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 699, $this->source); })()) == 10)) {
// line 700
echo " ";
}
// line 701
echo " </ol>
</nav>
<div class=\"layout-2colmun\">
";
// line 704
if (((isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 704, $this->source); })()) == 7)) {
// line 705
echo " ";
echo $this->extensions['Eccube\Twig\Extension\IgnoreTwigSandboxErrorExtension']->twig_include($this->env, $context, "Product/aside_ball.twig");
echo "
";
} elseif (( // line 706
(isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 706, $this->source); })()) == 8)) {
// line 707
echo " ";
} elseif (((isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 707, $this->source); })()) == 9)) {
// line 708
echo " ";
echo $this->extensions['Eccube\Twig\Extension\IgnoreTwigSandboxErrorExtension']->twig_include($this->env, $context, "Product/aside_design.twig");
echo "
";
} elseif (( // line 709
(isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 709, $this->source); })()) == 10)) {
// line 710
echo " ";
}
// line 711
echo " <main class=\"main\">
<div class=\"row mb-5\">
<div class=\"col-md-6\">
<div id=\"product-detail\">
<!-- main -->
<div class=\"swiper-container\">
<div class=\"swiper-wrapper\">
";
// line 718
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 718, $this->source); })()), "ProductImage", [], "any", false, false, true, 718));
$context['_iterated'] = false;
foreach ($context['_seq'] as $context["_key"] => $context["ProductImage"]) {
// line 719
echo " <div class=\"swiper-slide\" style=\"background-image: url('";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($this->sandbox->ensureToStringAllowed($context["ProductImage"], 719, $this->source), "save_image"), "html", null, true);
echo "'); background-size: contain; background-repeat: no-repeat;\"></div>
";
$context['_iterated'] = true;
}
if (!$context['_iterated']) {
// line 721
echo " <div class=\"swiper-slide\" style=\"background-image: url('";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($this->extensions['Eccube\Twig\Extension\EccubeExtension']->getNoImageProduct(""), "save_image"), "html", null, true);
echo "'); background-size: contain; background-repeat: no-repeat;\"></div>
";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductImage'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 723
echo " </div>
<div class=\"swiper-button-prev\"></div>
<div class=\"swiper-button-next\"></div>
</div>
<!-- thumbnail -->
<ul class=\"thumb-list\">
";
// line 729
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 729, $this->source); })()), "ProductImage", [], "any", false, false, true, 729));
$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["ProductImage"]) {
// line 730
echo " <li class=\"thumb-item\">
<a class=\"thumb-link\" href=\"javascript:void(0);\" onclick=\"slideThumb(";
// line 731
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, $context["loop"], "index0", [], "any", false, false, true, 731), 731, $this->source), "html", null, true);
echo ")\" style=\"background-image: url('";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($this->sandbox->ensureToStringAllowed($context["ProductImage"], 731, $this->source), "save_image"), "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['ProductImage'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 734
echo " </ul>
</div>
</div>
<div class=\"col-md-6\">
<h1 class=\"fw-bold _fs-5 mb-3\">";
// line 738
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 738, $this->source); })()), "name", [], "any", false, false, true, 738), 738, $this->source), "html", null, true);
echo "</h1>
<div class=\"item-thumb mb-3\">
";
// line 740
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 740, $this->source); })()), "Tags", [], "any", false, false, true, 740));
foreach ($context['_seq'] as $context["_key"] => $context["Tag"]) {
// line 741
echo " ";
if ((twig_get_attribute($this->env, $this->source, $context["Tag"], "name", [], "any", false, false, true, 741) == "一番人気")) {
// line 742
echo " <span class=\"icon -popular -large\">一番人気</span>
";
} elseif ((twig_get_attribute($this->env, $this->source, // line 743
$context["Tag"], "name", [], "any", false, false, true, 743) == "即日配送")) {
// line 744
echo " <span class=\"icon -rapid -large\">即日配送</span>
";
} elseif ((twig_get_attribute($this->env, $this->source, // line 745
$context["Tag"], "name", [], "any", false, false, true, 745) == "代引手数料無料")) {
// line 746
echo " <span class=\"icon -free -large\">代引手数料無料</span>
";
} elseif ((twig_get_attribute($this->env, $this->source, // line 747
$context["Tag"], "name", [], "any", false, false, true, 747) == "送料無料")) {
// line 748
echo " <span class=\"icon -free -large\">送料無料</span>
";
} elseif ((twig_get_attribute($this->env, $this->source, // line 749
$context["Tag"], "name", [], "any", false, false, true, 749) == "3%還元")) {
// line 750
echo " <span class=\"icon -point -large\">3%還元</span>
";
} elseif ((twig_get_attribute($this->env, $this->source, // line 751
$context["Tag"], "name", [], "any", false, false, true, 751) == "人気")) {
// line 752
echo " <span class=\"icon -popular -large\">人気</span>
";
}
// line 754
echo " ";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['Tag'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 755
echo " ";
if (((isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 755, $this->source); })()) == 7)) {
// line 756
echo " ";
if (twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 756, $this->source); })()), "hasProductClass", [], "any", false, false, true, 756)) {
// line 757
if ((twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 757, $this->source); })()), "getPrice02IncTaxMin", [], "any", false, false, true, 757) == twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 757, $this->source); })()), "getPrice02IncTaxMax", [], "any", false, false, true, 757))) {
// line 758
echo " <div class=\"price -large\"><span class=\"price02-default\">¥";
echo twig_escape_filter($this->env, twig_number_format_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 758, $this->source); })()), "getPrice02IncTaxMin", [], "any", false, false, true, 758), 758, $this->source)), "html", null, true);
echo "</span> <span>(税込)</span></div>
";
} else {
// line 760
echo " <div class=\"price -large\"><span class=\"price02-default\">¥";
echo twig_escape_filter($this->env, twig_number_format_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 760, $this->source); })()), "getPrice02IncTaxMin", [], "any", false, false, true, 760), 760, $this->source)), "html", null, true);
echo " ~ ¥";
echo twig_escape_filter($this->env, twig_number_format_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 760, $this->source); })()), "getPrice02IncTaxMax", [], "any", false, false, true, 760), 760, $this->source)), "html", null, true);
echo "</span> <span>(税込)</span></div>
";
}
// line 762
echo " ";
} else {
// line 763
echo " <div class=\"price -large\"><span class=\"price02-default\">¥";
echo twig_escape_filter($this->env, twig_number_format_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 763, $this->source); })()), "getPrice02IncTaxMin", [], "any", false, false, true, 763), 763, $this->source)), "html", null, true);
echo "</span> <span>(税込)</span></div>
";
}
// line 765
echo " ";
}
// line 766
echo " </div>
<form action=\"";
// line 767
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_add_cart", ["id" => twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 767, $this->source); })()), "id", [], "any", false, false, true, 767)]), "html", null, true);
echo "\" method=\"post\" id=\"form1\" name=\"form1\">
";
// line 768
if (((isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 768, $this->source); })()) == 7)) {
// line 769
echo " <div class=\"border-top border-bottom py-3 mb-4\">
<div class=\"d-flex align-items-center pb-3\">
<div class=\"w-25 text-end\">";
// line 771
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("商品コード"), "html", null, true);
echo ":</div>
<div class=\"ps-3\">";
// line 772
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 772, $this->source); })()), "code_min", [], "any", false, false, true, 772), 772, $this->source), "html", null, true);
if ((twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 772, $this->source); })()), "code_min", [], "any", false, false, true, 772) != twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 772, $this->source); })()), "code_max", [], "any", false, false, true, 772))) {
echo " ~ ";
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 772, $this->source); })()), "code_max", [], "any", false, false, true, 772), 772, $this->source), "html", null, true);
}
echo "</div>
</div>
";
// line 774
if (twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 774, $this->source); })()), "stock_find", [], "any", false, false, true, 774)) {
// line 775
echo " ";
if (twig_get_attribute($this->env, $this->source, ($context["form"] ?? null), "classcategory_id1", [], "any", true, true, true, 775)) {
// line 776
echo " <div class=\"d-flex align-items-center pb-1 d-none\">
";
// line 777
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(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.', 777, $this->source); })()), "classcategory_id1", [], "any", false, false, true, 777), 777, $this->source), 'row');
echo "
";
// line 778
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(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.', 778, $this->source); })()), "classcategory_id1", [], "any", false, false, true, 778), 778, $this->source), 'errors');
echo "
</div>
";
// line 780
if (twig_get_attribute($this->env, $this->source, ($context["form"] ?? null), "classcategory_id2", [], "any", true, true, true, 780)) {
// line 781
echo " <div class=\"detail-color pb-1\">
";
// line 782
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(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.', 782, $this->source); })()), "classcategory_id2", [], "any", false, false, true, 782), 782, $this->source), 'row');
echo "
";
// line 783
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(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.', 783, $this->source); })()), "classcategory_id2", [], "any", false, false, true, 783), 783, $this->source), 'errors');
echo "
</div>
";
}
// line 786
echo " ";
}
// line 787
echo " <div class=\"d-flex align-items-center py-1\">
<div class=\"w-25 text-end\">";
// line 788
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("数量"), "html", null, true);
echo "</div>
<div class=\"ps-3\">
";
// line 790
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(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.', 790, $this->source); })()), "quantity", [], "any", false, false, true, 790), 790, $this->source), 'widget');
echo "
";
// line 791
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(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.', 791, $this->source); })()), "quantity", [], "any", false, false, true, 791), 791, $this->source), 'errors');
echo "
</div>
</div>
";
}
// line 795
echo " </div>
";
} elseif (( // line 796
(isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 796, $this->source); })()) == 8)) {
// line 797
echo " ";
} elseif (((isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 797, $this->source); })()) == 9)) {
// line 798
echo " <div class=\"d-flex align-items-center pb-3\">
<div class=\"text-start\">";
// line 799
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("商品コード"), "html", null, true);
echo ":</div>
<div class=\"ps-3\">";
// line 800
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 800, $this->source); })()), "code_min", [], "any", false, false, true, 800), 800, $this->source), "html", null, true);
if ((twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 800, $this->source); })()), "code_min", [], "any", false, false, true, 800) != twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 800, $this->source); })()), "code_max", [], "any", false, false, true, 800))) {
echo " ~ ";
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 800, $this->source); })()), "code_max", [], "any", false, false, true, 800), 800, $this->source), "html", null, true);
}
echo "</div>
</div>
";
// line 802
if (twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 802, $this->source); })()), "stock_find", [], "any", false, false, true, 802)) {
// line 803
echo " ";
if (twig_get_attribute($this->env, $this->source, ($context["form"] ?? null), "classcategory_id1", [], "any", true, true, true, 803)) {
// line 804
echo " ";
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(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.', 804, $this->source); })()), "classcategory_id1", [], "any", false, false, true, 804), 804, $this->source), 'row', ["attr" => ["type" => "hidden"]]);
echo "
";
// line 805
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(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.', 805, $this->source); })()), "classcategory_id1", [], "any", false, false, true, 805), 805, $this->source), 'errors');
echo "
";
// line 806
if (twig_get_attribute($this->env, $this->source, ($context["form"] ?? null), "classcategory_id2", [], "any", true, true, true, 806)) {
// line 807
echo " ";
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(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.', 807, $this->source); })()), "classcategory_id2", [], "any", false, false, true, 807), 807, $this->source), 'row', ["attr" => ["type" => "hidden"]]);
echo "
";
// line 808
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(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_id2", [], "any", false, false, true, 808), 808, $this->source), 'errors');
echo "
";
}
// line 810
echo " ";
}
// line 811
echo " ";
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["form"]) || array_key_exists("form", $context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.', 811, $this->source); })()), "quantity", [], "any", false, false, true, 811), 811, $this->source), 'widget', ["type" => "hidden"]);
echo "
";
// line 812
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(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.', 812, $this->source); })()), "quantity", [], "any", false, false, true, 812), 812, $this->source), 'errors');
echo "
";
}
// line 814
echo " ";
} elseif (((isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 814, $this->source); })()) == 10)) {
// line 815
echo " ";
}
// line 816
echo " <div class=\"d-flex justify-content-between\">
";
// line 817
if (twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 817, $this->source); })()), "stock_find", [], "any", false, false, true, 817)) {
// line 818
echo " <a href=\"javascript:void(0);\" class=\"me-1 btn btn-danger btn-lg rounded-0 w-100 add-cart\"><i class=\"icon-shopping_cart\"></i>";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートに入れる"), "html", null, true);
echo "</a>
";
} else {
// line 820
echo " <button type=\"button\" class=\"me-1 btn btn-danger btn-lg rounded-0 w-100\" disabled=\"disabled\">";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("ただいま品切れ中です。"), "html", null, true);
echo "</button>
";
}
// line 822
echo " ";
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.', 822, $this->source); })()), "option_favorite_product", [], "any", false, false, true, 822)) {
// line 823
echo " ";
if (((isset($context["is_favorite"]) || array_key_exists("is_favorite", $context) ? $context["is_favorite"] : (function () { throw new RuntimeError('Variable "is_favorite" does not exist.', 823, $this->source); })()) == false)) {
// line 824
echo " <a href=\"javascript:void(0);\" onclick=\"document.forms.formFavorite.submit();\" class=\"ms-1 btn btn-dark btn-lg rounded-0 w-100\">";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お気に入りに追加"), "html", null, true);
echo "</a>
";
} else {
// line 826
echo " <button type=\"button\" id=\"favorite\" class=\"ms-1 btn btn-dark btn-lg rounded-0 w-100\" disabled=\"disabled\">";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お気に入り登録済"), "html", null, true);
echo "</button>
";
}
// line 828
echo " ";
}
// line 829
echo " </div>
";
// line 830
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed((isset($context["form"]) || array_key_exists("form", $context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.', 830, $this->source); })()), 830, $this->source), 'rest');
echo "
</form>
";
// line 833
echo " <form action=\"";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_add_favorite", ["id" => twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 833, $this->source); })()), "id", [], "any", false, false, true, 833)]), "html", null, true);
echo "\" method=\"post\" id=\"formFavorite\" name=\"formFavorite\"></form>
";
// line 835
echo " <div class=\"ec-modal\">
<div class=\"ec-modal-overlay\">
<div class=\"ec-modal-wrap\">
<span class=\"ec-modal-close\"><span class=\"ec-icon\"><img src=\"";
// line 838
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/icon/cross-dark.svg"), "html", null, true);
echo "\" alt=\"\"/></span></span>
<div id=\"ec-modal-header\" class=\"text-center\">";
// line 839
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートに追加しました。"), "html", null, true);
echo "</div>
<div class=\"ec-modal-box\">
<div class=\"ec-role\">
<span class=\"btn btn-dark btn-lg me-2 mb-3 inlineBtn--cancel\">";
// line 842
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お買い物を続ける"), "html", null, true);
echo "</span>
<a href=\"";
// line 843
echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("cart");
echo "\" class=\"btn btn-danger btn-lg mb-3\"><i class=\"icon-shopping_cart\"></i>";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートへ進む"), "html", null, true);
echo "</a>
</div>
</div>
</div>
</div>
</div>
";
// line 850
echo " <div class=\"_bg-gray p-3 mt-4\">
";
// line 851
if (((isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 851, $this->source); })()) == 7)) {
// line 852
echo " <ul class=\"list-unstyled mb-0\">
<li>※価格は【印刷代込み(税込)】です。</li>
<li>※パッケージは予告なく変更になる場合がございます。</li>
<li>※3球単位で 1 デザイン印刷可能です。</li>
</ul>
";
} elseif (( // line 857
(isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 857, $this->source); })()) == 8)) {
// line 858
echo " ";
} elseif (((isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 858, $this->source); })()) == 9)) {
// line 859
echo " <ul class=\"list-unstyled mb-0\">
<li>※3球単位で 1 デザイン印刷可能です。</li>
</ul>
";
} elseif (( // line 862
(isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 862, $this->source); })()) == 10)) {
// line 863
echo " ";
}
// line 864
echo " </div>
</div>
</div>
<div class=\"me-2 d-block d-lg-none\">
<a href=\"\" class=\"btn btn-outline-dark btn-lg w-100\" data-bs-toggle=\"modal\" data-bs-target=\"#filterModal\">別の商品を見る</a>
</div>
<hr class=\"my-5\">
";
// line 874
if (twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 874, $this->source); })()), "freearea", [], "any", false, false, true, 874)) {
// line 875
echo " <div class=\"ec-productRole__description\">";
echo twig_nl2br($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 875, $this->source); })()), "freearea", [], "any", false, false, true, 875), 875, $this->source));
echo "</div>
";
}
// line 877
echo "
";
// line 890
echo " ";
if (((isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 890, $this->source); })()) == 7)) {
// line 891
echo " ";
echo $this->extensions['Eccube\Twig\Extension\IgnoreTwigSandboxErrorExtension']->twig_include($this->env, $context, "Block/product_detail.twig");
// line 892
echo " ";
} elseif (((isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 892, $this->source); })()) == 8)) {
// line 893
echo " ";
} elseif (((isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 893, $this->source); })()) == 9)) {
// line 894
echo " ";
echo $this->extensions['Eccube\Twig\Extension\IgnoreTwigSandboxErrorExtension']->twig_include($this->env, $context, "Block/product_detail.twig");
// line 895
echo " ";
} elseif (((isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 895, $this->source); })()) == 10)) {
// line 896
echo " ";
}
// line 897
echo " <form name=\"formSelSP2\" id=\"formSelSP2\" method=\"get\" action=\"";
echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_list");
echo "\">
<input type=\"hidden\" name=\"mode\">
";
// line 899
if (((isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 899, $this->source); })()) == 7)) {
// line 900
echo " <input type=\"hidden\" name=\"category_id\" value=\"7\">
";
} elseif (( // line 901
(isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 901, $this->source); })()) == 8)) {
// line 902
echo " ";
} elseif (((isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 902, $this->source); })()) == 9)) {
// line 903
echo " <input type=\"hidden\" name=\"category_id\" value=\"9\">
";
} elseif (( // line 904
(isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 904, $this->source); })()) == 10)) {
// line 905
echo " ";
}
// line 906
echo " <input type=\"hidden\" name=\"name\">
<input type=\"hidden\" name=\"pageno\" value=\"1\">
<input type=\"hidden\" name=\"disp_number\" value=\"21\">
<input type=\"hidden\" name=\"orderby\" value=\"2\">
";
// line 910
if (((isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 910, $this->source); })()) == 7)) {
// line 911
echo " <input type=\"hidden\" id=\"ball-type\" name=\"ball-type\">
<input type=\"hidden\" id=\"ball-nums\" name=\"ball-nums\">
<input type=\"hidden\" id=\"ball-price\" name=\"ball-price\">
";
} elseif (( // line 914
(isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 914, $this->source); })()) == 8)) {
// line 915
echo " ";
} elseif (((isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 915, $this->source); })()) == 9)) {
// line 916
echo " <input type=\"hidden\" id=\"design-cate\" name=\"design-cate\">
";
} elseif (( // line 917
(isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 917, $this->source); })()) == 10)) {
// line 918
echo " ";
}
// line 919
echo " </form>
<div class=\"modalBoxAlert\" id=\"alert01\">
<div class=\"modalInnerAlert\">
絞り込みたい項目がある場合のみチェックしてください。
</div>
</div>
</main>
</div>
</div>
<!-- modal -->
<div class=\"modal fade\" id=\"filterModal\" tabindex=\"-1\" aria-labelledby=\"filterModalLabel\" aria-hidden=\"true\">
<div class=\"modal-dialog\">
<div class=\"modal-content\">
<div class=\"modal-header\">
<h5 class=\"modal-title\" id=\"filterModalLabel\">絞り込み</h5>
<button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\" aria-label=\"Close\"></button>
</div>
<form name=\"formSelSP\" id=\"formSelSP\">
<div class=\"modal-body\">
<!-- 絞り込みフォームの内容をここに追加 -->
";
// line 940
if (((isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 940, $this->source); })()) == 7)) {
// line 941
echo " <div class=\"aside-filter _modal\">
<div class=\"title\">
ボールの種類から選ぶ
</div>
<ul class=\"list-unstyled mb-0 list\">
<li>
<label>
<input type=\"checkbox\" name=\"ball_type\" class=\"ball_type_sp\" value=\"14\">
持ち込みボール
</label>
</li>
<li>
<label>
<input type=\"checkbox\" name=\"ball_type\" class=\"ball_type_sp\" value=\"11\">
スリクソン
</label>
</li>
<li>
<label>
<input type=\"checkbox\" name=\"ball_type\" class=\"ball_type_sp\" value=\"12\">
ゼクシオ
</label>
</li>
<li>
<label>
<input type=\"checkbox\" name=\"ball_type\" class=\"ball_type_sp\" value=\"13\">
ツアースペシャル
</label>
</li>
</ul>
<div class=\"title\">
ボールの球数から選ぶ
</div>
<ul class=\"list-unstyled mb-0 list\">
<li>
<label>
<input type=\"checkbox\" name=\"ball_nums\" class=\"ball_nums_sp\" value=\"8,13\">
3球
</label>
</li>
<li>
<label>
<input type=\"checkbox\" name=\"ball_nums\" class=\"ball_nums_sp\" value=\"11,14\">
6球
</label>
</li>
<li>
<label>
<input type=\"checkbox\" name=\"ball_nums\" class=\"ball_nums_sp\" value=\"12,15\">
12球
</label>
</li>
</ul>
<div class=\"title\">
価格で選ぶ
</div>
<ul class=\"list-unstyled mb-0 list\">
<li>
<label>
<input type=\"checkbox\" name=\"ball_price\" class=\"ball_price_sp\" value=\"1\">
~2,999円
</label>
</li>
<li>
<label>
<input type=\"checkbox\" name=\"ball_price\" class=\"ball_price_sp\" value=\"2\">
3,000円~4,999円
</label>
</li>
<li>
<label>
<input type=\"checkbox\" name=\"ball_price\" class=\"ball_price_sp\" value=\"3\">
5,000円~9,999円
</label>
</li>
<li>
<label>
<input type=\"checkbox\" name=\"ball_price\" class=\"ball_price_sp\" value=\"4\">
10,000円以上
</label>
</li>
</ul>
</div>
";
} elseif (( // line 1024
(isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 1024, $this->source); })()) == 8)) {
// line 1025
echo " ";
} elseif (((isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 1025, $this->source); })()) == 9)) {
// line 1026
echo " <div class=\"aside-filter _modal\">
<div class=\"title\">
カテゴリから選ぶ
</div>
<ul class=\"list-unstyled mb-0 list\">
<li>
<label>
<input type=\"checkbox\" name=\"design_cate\" class=\"design_cate_sp\" value=\"15\">
誕生日祝い
</label>
</li>
<li>
<label>
<input type=\"checkbox\" name=\"design_cate\" class=\"design_cate_sp\" value=\"16\">
定年退職祝い
</label>
</li>
<li>
<label>
<input type=\"checkbox\" name=\"design_cate\" class=\"design_cate_sp\" value=\"17\">
還暦祝い
</label>
</li>
<li>
<label>
<input type=\"checkbox\" name=\"design_cate\" class=\"design_cate_sp\" value=\"18\">
コンペ景品
</label>
</li>
<li>
<label>
<input type=\"checkbox\" name=\"design_cate\" class=\"design_cate_sp\" value=\"19\">
父の日祝い
</label>
</li>
<li>
<label>
<input type=\"checkbox\" name=\"design_cate\" class=\"design_cate_sp\" value=\"20\">
母の日祝い
</label>
</li>
<li>
<label>
<input type=\"checkbox\" name=\"design_cate\" class=\"design_cate_sp\" value=\"21\">
GOLFPRINT オリジナル
</label>
</li>
</ul>
</div>
";
} elseif (( // line 1075
(isset($context["rootCategoryId"]) || array_key_exists("rootCategoryId", $context) ? $context["rootCategoryId"] : (function () { throw new RuntimeError('Variable "rootCategoryId" does not exist.', 1075, $this->source); })()) == 10)) {
// line 1076
echo " ";
}
// line 1077
echo " </div>
<div class=\"modal-footer\">
<button type=\"button\" class=\"btn btn-outline-dark\" data-bs-dismiss=\"modal\">閉じる</button>
<button type=\"button\" class=\"btn btn-outline-dark\" onclick=\"location.href='";
// line 1080
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_detail", ["id" => twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 1080, $this->source); })()), "id", [], "any", false, false, true, 1080)]), "html", null, true);
echo "'\">クリア</button>
<button type=\"button\" onclick=\"setValSP()\" class=\"btn btn-primary\">絞り込む</button>
</div>
</form>
</div>
</div>
</div>
";
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
$__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
}
public function getTemplateName()
{
return "Product/detail.twig";
}
public function isTraitable()
{
return false;
}
public function getDebugInfo()
{
return array ( 1760 => 1080, 1755 => 1077, 1752 => 1076, 1750 => 1075, 1699 => 1026, 1696 => 1025, 1694 => 1024, 1609 => 941, 1607 => 940, 1584 => 919, 1581 => 918, 1579 => 917, 1576 => 916, 1573 => 915, 1571 => 914, 1566 => 911, 1564 => 910, 1558 => 906, 1555 => 905, 1553 => 904, 1550 => 903, 1547 => 902, 1545 => 901, 1542 => 900, 1540 => 899, 1534 => 897, 1531 => 896, 1528 => 895, 1525 => 894, 1522 => 893, 1519 => 892, 1516 => 891, 1513 => 890, 1510 => 877, 1504 => 875, 1502 => 874, 1490 => 864, 1487 => 863, 1485 => 862, 1480 => 859, 1477 => 858, 1475 => 857, 1468 => 852, 1466 => 851, 1463 => 850, 1452 => 843, 1448 => 842, 1442 => 839, 1438 => 838, 1433 => 835, 1428 => 833, 1423 => 830, 1420 => 829, 1417 => 828, 1411 => 826, 1405 => 824, 1402 => 823, 1399 => 822, 1393 => 820, 1387 => 818, 1385 => 817, 1382 => 816, 1379 => 815, 1376 => 814, 1371 => 812, 1366 => 811, 1363 => 810, 1358 => 808, 1353 => 807, 1351 => 806, 1347 => 805, 1342 => 804, 1339 => 803, 1337 => 802, 1328 => 800, 1324 => 799, 1321 => 798, 1318 => 797, 1316 => 796, 1313 => 795, 1306 => 791, 1302 => 790, 1297 => 788, 1294 => 787, 1291 => 786, 1285 => 783, 1281 => 782, 1278 => 781, 1276 => 780, 1271 => 778, 1267 => 777, 1264 => 776, 1261 => 775, 1259 => 774, 1250 => 772, 1246 => 771, 1242 => 769, 1240 => 768, 1236 => 767, 1233 => 766, 1230 => 765, 1224 => 763, 1221 => 762, 1213 => 760, 1207 => 758, 1205 => 757, 1202 => 756, 1199 => 755, 1193 => 754, 1189 => 752, 1187 => 751, 1184 => 750, 1182 => 749, 1179 => 748, 1177 => 747, 1174 => 746, 1172 => 745, 1169 => 744, 1167 => 743, 1164 => 742, 1161 => 741, 1157 => 740, 1152 => 738, 1146 => 734, 1127 => 731, 1124 => 730, 1107 => 729, 1099 => 723, 1090 => 721, 1082 => 719, 1077 => 718, 1068 => 711, 1065 => 710, 1063 => 709, 1058 => 708, 1055 => 707, 1053 => 706, 1048 => 705, 1046 => 704, 1041 => 701, 1038 => 700, 1036 => 699, 1032 => 698, 1027 => 697, 1024 => 696, 1022 => 695, 1018 => 694, 1013 => 693, 1011 => 692, 1007 => 691, 1001 => 687, 995 => 686, 992 => 685, 985 => 684, 982 => 683, 976 => 682, 973 => 681, 970 => 680, 965 => 679, 962 => 678, 960 => 677, 950 => 676, 899 => 633, 896 => 632, 894 => 631, 827 => 566, 824 => 565, 822 => 564, 643 => 387, 641 => 386, 612 => 360, 608 => 359, 604 => 358, 600 => 357, 596 => 355, 590 => 353, 588 => 352, 583 => 351, 580 => 350, 570 => 348, 556 => 346, 548 => 345, 530 => 344, 525 => 342, 502 => 322, 492 => 315, 462 => 288, 457 => 285, 448 => 279, 444 => 277, 442 => 276, 439 => 275, 430 => 269, 426 => 267, 424 => 266, 358 => 202, 355 => 200, 347 => 198, 345 => 197, 340 => 195, 337 => 194, 335 => 193, 332 => 192, 329 => 191, 326 => 190, 324 => 189, 321 => 188, 316 => 186, 313 => 185, 305 => 183, 303 => 182, 298 => 180, 295 => 179, 293 => 178, 273 => 160, 270 => 159, 256 => 147, 253 => 146, 247 => 145, 244 => 144, 237 => 143, 234 => 142, 228 => 141, 225 => 140, 222 => 139, 217 => 138, 214 => 137, 212 => 136, 202 => 135, 75 => 16, 65 => 15, 54 => 11, 52 => 13, 39 => 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 %}
<style>
.slick-slider {
margin-bottom: 30px;
}
.slick-dots {
position: absolute;
bottom: -45px;
display: block;
width: 100%;
padding: 0;
list-style: none;
text-align: center;
}
.slick-dots li {
position: relative;
display: inline-block;
width: 20px;
height: 20px;
margin: 0 5px;
padding: 0;
cursor: pointer;
}
.slick-dots li button {
font-size: 0;
line-height: 0;
display: block;
width: 20px;
height: 20px;
padding: 5px;
cursor: pointer;
color: transparent;
border: 0;
outline: none;
background: transparent;
}
.slick-dots li button:hover,
.slick-dots li button:focus {
outline: none;
}
.slick-dots li button:hover:before,
.slick-dots li button:focus:before {
opacity: 1;
}
.slick-dots li button:before {
content: \" \";
line-height: 20px;
position: absolute;
top: 0;
left: 0;
width: 12px;
height: 12px;
text-align: center;
opacity: .25;
background-color: black;
border-radius: 50%;
}
.slick-dots li.slick-active button:before {
opacity: .75;
background-color: black;
}
.slick-dots li button.thumbnail img {
width: 0;
height: 0;
}
</style>
<link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css\" />
<link rel=\"stylesheet\" href=\"/html/template/default/assets/css/swiper-customize.min.css\">
<style>
#modalWrapAlert {
display: none;
background: 0 0;
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
z-index: 100;
overflow: hidden
}
.modalBoxAlert {
position: fixed;
width: 85%;
max-width: 420px;
height: 0;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
overflow: hidden;
opacity: 1;
display: none;
border-radius: 3px;
z-index: 1000
}
.modalInnerAlert {
padding: 10px;
text-align: center;
box-sizing: border-box;
background: rgba(0, 0, 0, .7);
color: #fff
}
</style>
{% endblock %}
{% block javascript %}
{# この商品の最上位カテゴリidを取得 #}
{% set rootCategoryId = null %}
{% for ProductCategory in Product.ProductCategories %}
{% set Category = ProductCategory.Category %}
{% set rootCategory = Category %}
{% for i in 1..10 if rootCategory.Parent %}
{% set rootCategory = rootCategory.Parent %}
{% endfor %}
{% set rootCategoryId = rootCategory.id %}
{% endfor %}
<script>
eccube.classCategories = {{ class_categories_as_json(Product)|raw }};
// 規格2に選択肢を割り当てる。
function fnSetClassCategories(form, classcat_id2_selected) {
var \$form = \$(form);
var product_id = \$form.find('input[name=product_id]').val();
var \$sele1 = \$form.find('select[name=classcategory_id1]');
var \$sele2 = \$form.find('select[name=classcategory_id2]');
eccube.setClassCategories(\$form, product_id, \$sele1, \$sele2, classcat_id2_selected);
}
{# ▼▼▼GOLFPRINT:▼▼▼ #}
{% if rootCategoryId == 7 %}{# ボールを選ぶ #}
window.addEventListener('load', () => {
const selectElement = document.getElementById('classcategory_id1');
if (selectElement) {
selectElement.selectedIndex = 1;\t// 2番目のoptionを選択
// 規格1の選択後に規格2の選択肢を設定
fnSetClassCategories(\$('#form1'), null);
// イベント発火処理(ネイティブ+jQuery)
const triggerChangeEvents = () => {
// 規格1の変更イベントを発火
\$(selectElement).trigger('change');
};
// 規格1の変更イベントを発火(300msの遅延を追加)
setTimeout(triggerChangeEvents, 300);
}
{% if form.classcategory_id2 is defined %}
fnSetClassCategories(
\$('#form1'), {{ form.classcategory_id2.vars.value|json_encode|raw }}
);
{% elseif form.classcategory_id1 is defined %}
eccube.checkStock(\$('#form1'), {{ Product.id }}, {{ form.classcategory_id1.vars.value|json_encode|raw }}, null);
{% else %}
// 規格が存在しない場合の処理
eccube.checkStock(\$('#form1'), {{ Product.id }}, null, null);
{% endif %}
});
{% elseif rootCategoryId == 8 %}{# マーカーを選ぶ #}
{% elseif rootCategoryId == 9 %}{# デザインを選ぶ #}
{% elseif rootCategoryId == 10 %}{# ラッピング #}
{% if form.classcategory_id2 is defined %}
fnSetClassCategories(
\$('#form1'), {{ form.classcategory_id2.vars.value|json_encode|raw }}
);
{% elseif form.classcategory_id1 is defined %}
eccube.checkStock(\$('#form1'), {{ Product.id }}, {{ form.classcategory_id1.vars.value|json_encode|raw }}, null);
{% endif %}
{% endif %}
{# ▲▲▲GOLFPRINT:▲▲▲ #}
</script>
<script>
\$(function() {
// bfcache無効化
\$(window).bind('pageshow', function(event) {
if (event.originalEvent.persisted) {
location.reload(true);
}
});
// Core Web Vital の Cumulative Layout Shift(CLS)対策のため
// img タグに width, height が付与されている.
// 630px 未満の画面サイズでは縦横比が壊れるための対策
// see https://github.com/EC-CUBE/ec-cube/pull/5023
\$('.ec-grid2__cell').hide();
var removeSize = function () {
\$('.slide-item').height('');
\$('.slide-item img')
.removeAttr('width')
.removeAttr('height')
.removeAttr('style');
};
var slickInitial = function(slick) {
\$('.ec-grid2__cell').fadeIn(1500);
var baseHeight = \$(slick.target).height();
var baseWidth = \$(slick.target).width();
var rate = baseWidth / baseHeight;
\$('.slide-item').height(baseHeight * rate); // 余白を削除する
// transform を使用することでCLSの影響を受けないようにする
\$('.slide-item img')
.css(
{
'transform-origin': 'top left',
'transform': 'scaleY(' + rate + ')',
'transition': 'transform .1s'
}
);
// 正しいサイズに近くなったら属性を解除する
setTimeout(removeSize, 500);
};
\$('.item_visual').on('init', slickInitial);
// リサイズ時は CLS の影響を受けないため属性を解除する
\$(window).resize(removeSize);
\$('.item_visual').slick({
dots: false,
arrows: false,
responsive: [{
breakpoint: 768,
settings: {
dots: true
}
}]
});
\$('.slideThumb').on('click', function() {
var index = \$(this).attr('data-index');
\$('.item_visual').slick('slickGoTo', index, false);
})
});
</script>
<script>
\$(function() {
\$('.add-cart').on('click', function(event) {
{% if form.classcategory_id1 is defined %}
// 規格1フォームの必須チェック
if (\$('#classcategory_id1').val() == '__unselected' || \$('#classcategory_id1').val() == '') {
\$('#classcategory_id1')[0].setCustomValidity('{{ '項目が選択されていません'|trans }}');
return true;
} else {
\$('#classcategory_id1')[0].setCustomValidity('');
}
{% endif %}
{% if form.classcategory_id2 is defined %}
// 規格2フォームの必須チェック
if (\$('#classcategory_id2').val() == '__unselected' || \$('#classcategory_id2').val() == '') {
\$('#classcategory_id2')[0].setCustomValidity('{{ '項目が選択されていません'|trans }}');
return true;
} else {
\$('#classcategory_id2')[0].setCustomValidity('');
}
{% endif %}
// 個数フォームのチェック
if (\$('#quantity').val() < 1) {
\$('#quantity')[0].setCustomValidity('{{ '1以上で入力してください。'|trans }}');
return true;
} else {
\$('#quantity')[0].setCustomValidity('');
}
event.preventDefault();
\$form = \$('#form1');
\$.ajax({
url: \$form.attr('action'),
type: \$form.attr('method'),
data: \$form.serialize(),
dataType: 'json',
beforeSend: function(xhr, settings) {
// Buttonを無効にする
\$('.add-cart').prop('disabled', true);
}
}).done(function(data) {
// レスポンス内のメッセージをalertで表示
\$.each(data.messages, function() {
\$('#ec-modal-header').text(this);
});
\$('.ec-modal').show()
// カートブロックを更新する
\$.ajax({
url: \"{{ url('block_cart') }}\",
type: 'GET',
dataType: 'html'
}).done(function(html) {
\$('.ec-headerRole__cart').html(html);
});
}).fail(function(data) {
alert('{{ 'カートへの追加に失敗しました。'|trans }}');
}).always(function(data) {
// Buttonを有効にする
\$('.add-cart').prop('disabled', false);
});
});
});
\$('.ec-modal-wrap').on('click', function(e) {
// モーダル内の処理は外側にバブリングさせない
e.stopPropagation();
});
\$('.ec-modal-overlay, .ec-modal, .ec-modal-close, .inlineBtn--cancel').on('click', function() {
\$('.ec-modal').hide()
});
</script>
<script type=\"application/ld+json\">
{
\"@context\": \"https://schema.org/\",
\"@type\": \"Product\",
\"name\": \"{{ Product.name }}\",
\"image\": [
{% for img in Product.ProductImage %}
\"{{ app.request.schemeAndHttpHost }}{{ asset(img, 'save_image') }}\"{% if not loop.last %},{% endif %}
{% else %}
\"{{ app.request.schemeAndHttpHost }}{{ asset(''|no_image_product, 'save_image') }}\"
{% endfor %}
],
\"description\": \"{{ Product.description_list | default(Product.description_detail) | replace({'\\n': '', '\\r': ''}) | slice(0,300) }}\",
{% if Product.code_min %}
\"sku\": \"{{ Product.code_min }}\",
{% endif %}
\"offers\": {
\"@type\": \"Offer\",
\"url\": \"{{ url('product_detail', {'id': Product.id}) }}\",
\"priceCurrency\": \"{{ eccube_config.currency }}\",
\"price\": {{ Product.getPrice02IncTaxMin ? Product.getPrice02IncTaxMin : 0}},
\"availability\": \"{{ Product.stock_find ? \"InStock\" : \"OutOfStock\" }}\"
}
}
</script>
<script src=\"https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js\"></script>
<script>
// swiperを生成
var swiperMain = new Swiper('.swiper-container', {
effect: 'fade', // フェードエフェクトを適用
speed: 600,
loop: true,
pagination: {
el: '.swiper-pagination',
clickable: true,
},
navigation: { // コメントアウトまたは削除
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
},
});
// slideToメソッドを実行する関数を定義
function slideThumb(index) {
swiperMain.slideTo(index);
}
</script>
<script>
{% if rootCategoryId == 7 %}{# ボールを選ぶ #}
\$(function() {
\$('.ball_type').change(function() {
let selCnt = 0;
const ballType = document.forms.formSelPC.ball_type;
for( let i=0; i < ballType.length; i++ ) {
if( ballType[i].checked ) {
selCnt++;
}
}
if( selCnt == ballType.length ) {
for( let i=0; i < ballType.length; i++ ) {
ballType[i].checked = false;
}
//alert('絞り込みたい項目がある場合のみチェックしてください。');
selAlert();
}
});
\$('.ball_nums').change(function() {
let selCnt = 0;
const ballNums = document.forms.formSelPC.ball_nums;
for( let i=0; i < ballNums.length; i++ ) {
if( ballNums[i].checked ) {
selCnt++;
}
}
if( selCnt == ballNums.length ) {
for( let i=0; i < ballNums.length; i++ ) {
ballNums[i].checked = false;
}
//alert('絞り込みたい項目がある場合のみチェックしてください。');
selAlert();
}
});
\$('.ball_price').change(function() {
let selCnt = 0;
const ballPrice = document.forms.formSelPC.ball_price;
for( let i=0; i < ballPrice.length; i++ ) {
if( ballPrice[i].checked ) {
selCnt++;
}
}
if( selCnt == ballPrice.length ) {
for( let i=0; i < ballPrice.length; i++ ) {
ballPrice[i].checked = false;
}
//alert('絞り込みたい項目がある場合のみチェックしてください。');
selAlert();
}
});
\$('.ball_type_sp').change(function() {
let selCnt = 0;
const ballType = document.forms.formSelSP.ball_type;
for( let i=0; i < ballType.length; i++ ) {
if( ballType[i].checked ) {
selCnt++;
}
}
if( selCnt == ballType.length ) {
for( let i=0; i < ballType.length; i++ ) {
ballType[i].checked = false;
}
//alert('絞り込みたい項目がある場合のみチェックしてください。');
selAlert();
}
});
\$('.ball_nums_sp').change(function() {
let selCnt = 0;
const ballNums = document.forms.formSelSP.ball_nums;
for( let i=0; i < ballNums.length; i++ ) {
if( ballNums[i].checked ) {
selCnt++;
}
}
if( selCnt == ballNums.length ) {
for( let i=0; i < ballNums.length; i++ ) {
ballNums[i].checked = false;
}
//alert('絞り込みたい項目がある場合のみチェックしてください。');
selAlert();
}
});
\$('.ball_price_sp').change(function() {
let selCnt = 0;
const ballPrice = document.forms.formSelSP.ball_price;
for( let i=0; i < ballPrice.length; i++ ) {
if( ballPrice[i].checked ) {
selCnt++;
}
}
if( selCnt == ballPrice.length ) {
for( let i=0; i < ballPrice.length; i++ ) {
ballPrice[i].checked = false;
}
//alert('絞り込みたい項目がある場合のみチェックしてください。');
selAlert();
}
});
});
function setValPC() {
let sels_type = '';
const ballType = document.forms.formSelPC.ball_type;
for( let i=0; i < ballType.length; i++ ) {
if( ballType[i].checked ) {
if( sels_type ) {
sels_type = sels_type + ',';
}
sels_type = sels_type + ballType[i].value;
}
}
document.forms.formSelPC2.elements['ball-type'].value = sels_type;
let sels_nums = '';
const ballNums = document.forms.formSelPC.ball_nums;
for( let i=0; i < ballNums.length; i++ ) {
if( ballNums[i].checked ) {
if( sels_nums ) {
sels_nums = sels_nums + ',';
}
sels_nums = sels_nums + ballNums[i].value;
}
}
document.forms.formSelPC2.elements['ball-nums'].value = sels_nums;
let sels_price = '';
const ballPrice = document.forms.formSelPC.ball_price;
for( let i=0; i < ballPrice.length; i++ ) {
if( ballPrice[i].checked ) {
if( sels_price ) {
sels_price = sels_price + ',';
}
sels_price = sels_price + ballPrice[i].value;
}
}
document.forms.formSelPC2.elements['ball-price'].value = sels_price;
document.forms.formSelPC2.submit();
}
function setValSP() {
let sels_type = '';
const ballType = document.forms.formSelSP.ball_type;
for( let i=0; i < ballType.length; i++ ) {
if( ballType[i].checked ) {
if( sels_type ) {
sels_type = sels_type + ',';
}
sels_type = sels_type + ballType[i].value;
}
}
document.forms.formSelSP2.elements['ball-type'].value = sels_type;
let sels_nums = '';
const ballNums = document.forms.formSelSP.ball_nums;
for( let i=0; i < ballNums.length; i++ ) {
if( ballNums[i].checked ) {
if( sels_nums ) {
sels_nums = sels_nums + ',';
}
sels_nums = sels_nums + ballNums[i].value;
}
}
document.forms.formSelSP2.elements['ball-nums'].value = sels_nums;
let sels_price = '';
const ballPrice = document.forms.formSelSP.ball_price;
for( let i=0; i < ballPrice.length; i++ ) {
if( ballPrice[i].checked ) {
if( sels_price ) {
sels_price = sels_price + ',';
}
sels_price = sels_price + ballPrice[i].value;
}
}
document.forms.formSelSP2.elements['ball-price'].value = sels_price;
document.forms.formSelSP2.submit();
}
{% elseif rootCategoryId == 8 %}{# マーカーを選ぶ #}
{% elseif rootCategoryId == 9 %}{# デザインを選ぶ #}
\$(function() {
\$('.design_cate').change(function() {
let selCnt = 0;
const designCate = document.forms.formSelPC.design_cate;
for( let i=0; i < designCate.length; i++ ) {
if( designCate[i].checked ) {
selCnt++;
}
}
if( selCnt == designCate.length ) {
for( let i=0; i < designCate.length; i++ ) {
designCate[i].checked = false;
}
//alert('絞り込みたい項目がある場合のみチェックしてください。');
selAlert();
}
});
\$('.design_cate_sp').change(function() {
let selCnt = 0;
const designCate = document.forms.formSelSP.design_cate;
for( let i=0; i < designCate.length; i++ ) {
if( designCate[i].checked ) {
selCnt++;
}
}
if( selCnt == designCate.length ) {
for( let i=0; i < designCate.length; i++ ) {
designCate[i].checked = false;
}
//alert('絞り込みたい項目がある場合のみチェックしてください。');
selAlert();
}
});
});
function setValPC() {
let sels_design = '';
const designCate = document.forms.formSelPC.design_cate;
for( let i=0; i < designCate.length; i++ ) {
if( designCate[i].checked ) {
if( sels_design ) {
sels_design = sels_design + ',';
}
sels_design = sels_design + designCate[i].value;
}
}
document.forms.formSelPC2.elements['design-cate'].value = sels_design;
document.forms.formSelPC2.submit();
}
function setValSP() {
let sels_design = '';
const designCate = document.forms.formSelSP.design_cate;
for( let i=0; i < designCate.length; i++ ) {
if( designCate[i].checked ) {
if( sels_design ) {
sels_design = sels_design + ',';
}
sels_design = sels_design + designCate[i].value;
}
}
document.forms.formSelSP2.elements['design-cate'].value = sels_design;
document.forms.formSelSP2.submit();
}
{% elseif rootCategoryId == 10 %}{# ラッピング #}
{% endif %}
</script>
<script>
function selAlert() {
var modalThis = \$('body').find('#alert01');
//bodyの最下にwrapを作る
\$('body').append('<div id=\"modalWrapAlert\" />');
var wrap = \$('#modalWrapAlert');
wrap.fadeIn('200');
modalThis.fadeIn('200');
//モーダルの高さを取ってくる
function mdlHeight() {
var wh = \$(window).innerHeight();
var attH = modalThis.find('.modalInnerAlert').innerHeight();
modalThis.css({
height: attH
});
}
mdlHeight();
\$(window).on('resize', function () {
mdlHeight();
});
function clickAction() {
modalThis.fadeOut('200');
wrap.fadeOut('200', function () {
wrap.remove();
});
}
//wrapクリックされたら
wrap.on('click', function () {
clickAction();
return false;
});
//2秒後に消える
setTimeout(clickAction, 2000);
return false;
}
</script>
{% endblock %}
{% block main %}
{# この商品の最上位カテゴリidを取得 #}
{% set rootCategoryId = null %}
{% for ProductCategory in Product.ProductCategories %}
{% set Category = ProductCategory.Category %}
{% set rootCategory = Category %}
{% for i in 1..10 if rootCategory.Parent %}
{% set rootCategory = rootCategory.Parent %}
{% endfor %}
{% set rootCategoryId = rootCategory.id %}
{% endfor %}
<div class=\"container\">
<!-- パンくずリスト -->
<nav aria-label=\"breadcrumb\" class=\"my-3\">
<ol class=\"breadcrumb\">
<li class=\"breadcrumb-item\"><a href=\"{{ url('homepage') }}\">ホーム</a></li>
{% if rootCategoryId == 7 %}{# ボールを選ぶ #}
<li class=\"breadcrumb-item\"><a href=\"{{ url('product_list', {'category_id': 7}) }}\">ボールを選ぶ</a></li>
<li class=\"breadcrumb-item active\" aria-current=\"page\">{{ Product.name }}</li>
{% elseif rootCategoryId == 8 %}{# マーカーを選ぶ #}
{% elseif rootCategoryId == 9 %}{# デザインを選ぶ #}
<li class=\"breadcrumb-item\"><a href=\"{{ url('product_list', {'category_id': 9}) }}\">デザインを選ぶ</a></li>
<li class=\"breadcrumb-item active\" aria-current=\"page\">{{ Product.name }}</li>
{% elseif rootCategoryId == 10 %}{# ラッピング #}
{% endif %}
</ol>
</nav>
<div class=\"layout-2colmun\">
{% if rootCategoryId == 7 %}{# ボールを選ぶ #}
{{ include('Product/aside_ball.twig') }}
{% elseif rootCategoryId == 8 %}{# マーカーを選ぶ #}
{% elseif rootCategoryId == 9 %}{# デザインを選ぶ #}
{{ include('Product/aside_design.twig') }}
{% elseif rootCategoryId == 10 %}{# ラッピング #}
{% endif %}
<main class=\"main\">
<div class=\"row mb-5\">
<div class=\"col-md-6\">
<div id=\"product-detail\">
<!-- main -->
<div class=\"swiper-container\">
<div class=\"swiper-wrapper\">
{% for ProductImage in Product.ProductImage %}
<div class=\"swiper-slide\" style=\"background-image: url('{{ asset(ProductImage, 'save_image') }}'); background-size: contain; background-repeat: no-repeat;\"></div>
{% else %}
<div class=\"swiper-slide\" style=\"background-image: url('{{ asset(''|no_image_product, 'save_image') }}'); background-size: contain; background-repeat: no-repeat;\"></div>
{% endfor %}
</div>
<div class=\"swiper-button-prev\"></div>
<div class=\"swiper-button-next\"></div>
</div>
<!-- thumbnail -->
<ul class=\"thumb-list\">
{% for ProductImage in Product.ProductImage %}
<li class=\"thumb-item\">
<a class=\"thumb-link\" href=\"javascript:void(0);\" onclick=\"slideThumb({{ loop.index0 }})\" style=\"background-image: url('{{ asset(ProductImage, 'save_image') }}')\"></a>
</li>
{% endfor %}
</ul>
</div>
</div>
<div class=\"col-md-6\">
<h1 class=\"fw-bold _fs-5 mb-3\">{{ Product.name }}</h1>
<div class=\"item-thumb mb-3\">
{% for Tag in Product.Tags %}
{% if Tag.name == '一番人気' %}
<span class=\"icon -popular -large\">一番人気</span>
{% elseif Tag.name == '即日配送' %}
<span class=\"icon -rapid -large\">即日配送</span>
{% elseif Tag.name == '代引手数料無料' %}
<span class=\"icon -free -large\">代引手数料無料</span>
{% elseif Tag.name == '送料無料' %}
<span class=\"icon -free -large\">送料無料</span>
{% elseif Tag.name == '3%還元' %}
<span class=\"icon -point -large\">3%還元</span>
{% elseif Tag.name == '人気' %}
<span class=\"icon -popular -large\">人気</span>
{% endif %}
{% endfor %}
{% if rootCategoryId == 7 %}{# ボールを選ぶ #}
{% if Product.hasProductClass -%}
{% if Product.getPrice02IncTaxMin == Product.getPrice02IncTaxMax %}
<div class=\"price -large\"><span class=\"price02-default\">¥{{ Product.getPrice02IncTaxMin|number_format }}</span> <span>(税込)</span></div>
{% else %}
<div class=\"price -large\"><span class=\"price02-default\">¥{{ Product.getPrice02IncTaxMin|number_format }} ~ ¥{{ Product.getPrice02IncTaxMax|number_format }}</span> <span>(税込)</span></div>
{% endif %}
{% else %}
<div class=\"price -large\"><span class=\"price02-default\">¥{{ Product.getPrice02IncTaxMin|number_format }}</span> <span>(税込)</span></div>
{% endif %}
{% endif %}
</div>
<form action=\"{{ url('product_add_cart', {id:Product.id}) }}\" method=\"post\" id=\"form1\" name=\"form1\">
{% if rootCategoryId == 7 %}{# ボールを選ぶ #}
<div class=\"border-top border-bottom py-3 mb-4\">
<div class=\"d-flex align-items-center pb-3\">
<div class=\"w-25 text-end\">{{ '商品コード'|trans }}:</div>
<div class=\"ps-3\">{{ Product.code_min }}{% if Product.code_min != Product.code_max %} ~ {{ Product.code_max }}{% endif %}</div>
</div>
{% if Product.stock_find %}
{% if form.classcategory_id1 is defined %}
<div class=\"d-flex align-items-center pb-1 d-none\">
{{ form_row(form.classcategory_id1) }}
{{ form_errors(form.classcategory_id1) }}
</div>
{% if form.classcategory_id2 is defined %}
<div class=\"detail-color pb-1\">
{{ form_row(form.classcategory_id2) }}
{{ form_errors(form.classcategory_id2) }}
</div>
{% endif %}
{% endif %}
<div class=\"d-flex align-items-center py-1\">
<div class=\"w-25 text-end\">{{ '数量'|trans }}</div>
<div class=\"ps-3\">
{{ form_widget(form.quantity) }}
{{ form_errors(form.quantity) }}
</div>
</div>
{% endif %}
</div>
{% elseif rootCategoryId == 8 %}{# マーカーを選ぶ #}
{% elseif rootCategoryId == 9 %}{# デザインを選ぶ #}
<div class=\"d-flex align-items-center pb-3\">
<div class=\"text-start\">{{ '商品コード'|trans }}:</div>
<div class=\"ps-3\">{{ Product.code_min }}{% if Product.code_min != Product.code_max %} ~ {{ Product.code_max }}{% endif %}</div>
</div>
{% if Product.stock_find %}
{% if form.classcategory_id1 is defined %}
{{ form_row(form.classcategory_id1, {'attr': {'type': 'hidden'}}) }}
{{ form_errors(form.classcategory_id1) }}
{% if form.classcategory_id2 is defined %}
{{ form_row(form.classcategory_id2, {'attr': {'type': 'hidden'}}) }}
{{ form_errors(form.classcategory_id2) }}
{% endif %}
{% endif %}
{{ form_widget(form.quantity, {'type': 'hidden'}) }}
{{ form_errors(form.quantity) }}
{% endif %}
{% elseif rootCategoryId == 10 %}{# ラッピング #}
{% endif %}
<div class=\"d-flex justify-content-between\">
{% if Product.stock_find %}
<a href=\"javascript:void(0);\" class=\"me-1 btn btn-danger btn-lg rounded-0 w-100 add-cart\"><i class=\"icon-shopping_cart\"></i>{{ 'カートに入れる'|trans }}</a>
{% else %}
<button type=\"button\" class=\"me-1 btn btn-danger btn-lg rounded-0 w-100\" disabled=\"disabled\">{{ 'ただいま品切れ中です。'|trans }}</button>
{% endif %}
{% if BaseInfo.option_favorite_product %}
{% if is_favorite == false %}
<a href=\"javascript:void(0);\" onclick=\"document.forms.formFavorite.submit();\" class=\"ms-1 btn btn-dark btn-lg rounded-0 w-100\">{{ 'お気に入りに追加'|trans }}</a>
{% else %}
<button type=\"button\" id=\"favorite\" class=\"ms-1 btn btn-dark btn-lg rounded-0 w-100\" disabled=\"disabled\">{{ 'お気に入り登録済'|trans }}</button>
{% endif %}
{% endif %}
</div>
{{ form_rest(form) }}
</form>
{# お気に入りに追加用フォーム #}
<form action=\"{{ url('product_add_favorite', {id:Product.id}) }}\" method=\"post\" id=\"formFavorite\" name=\"formFavorite\"></form>
{##}
<div class=\"ec-modal\">
<div class=\"ec-modal-overlay\">
<div class=\"ec-modal-wrap\">
<span class=\"ec-modal-close\"><span class=\"ec-icon\"><img src=\"{{ asset('assets/icon/cross-dark.svg') }}\" alt=\"\"/></span></span>
<div id=\"ec-modal-header\" class=\"text-center\">{{ 'カートに追加しました。'|trans }}</div>
<div class=\"ec-modal-box\">
<div class=\"ec-role\">
<span class=\"btn btn-dark btn-lg me-2 mb-3 inlineBtn--cancel\">{{ 'お買い物を続ける'|trans }}</span>
<a href=\"{{ url('cart') }}\" class=\"btn btn-danger btn-lg mb-3\"><i class=\"icon-shopping_cart\"></i>{{ 'カートへ進む'|trans }}</a>
</div>
</div>
</div>
</div>
</div>
{##}
<div class=\"_bg-gray p-3 mt-4\">
{% if rootCategoryId == 7 %}{# ボールを選ぶ #}
<ul class=\"list-unstyled mb-0\">
<li>※価格は【印刷代込み(税込)】です。</li>
<li>※パッケージは予告なく変更になる場合がございます。</li>
<li>※3球単位で 1 デザイン印刷可能です。</li>
</ul>
{% elseif rootCategoryId == 8 %}{# マーカーを選ぶ #}
{% elseif rootCategoryId == 9 %}{# デザインを選ぶ #}
<ul class=\"list-unstyled mb-0\">
<li>※3球単位で 1 デザイン印刷可能です。</li>
</ul>
{% elseif rootCategoryId == 10 %}{# ラッピング #}
{% endif %}
</div>
</div>
</div>
<div class=\"me-2 d-block d-lg-none\">
<a href=\"\" class=\"btn btn-outline-dark btn-lg w-100\" data-bs-toggle=\"modal\" data-bs-target=\"#filterModal\">別の商品を見る</a>
</div>
<hr class=\"my-5\">
{% if Product.freearea %}
<div class=\"ec-productRole__description\">{{ Product.freearea|raw|nl2br }}</div>
{% endif %}
{# 商品管理 - 商品登録 商品説明 欄に入力!
<div class=\"text-center\">
<img src=\"/html/template/default/assets/img/products/item01.png\" width=\"600\" height=\"600\" alt=\"ゼクシオ リバウンド ドライブ II\" class=\"img-fluid\">
</div>
<p>
「ゼクシオ リバウンド ドライブ II」は、ダンロップが提供する高性能ゴルフボールです。
このボールは、ウレタンカバーとアイオノマーカバーの長所を融合し、柔らかな打感と優れたスピン性能、直進性、そして高い飛距離性能を実現しています。3層構造の「リバウンドフレーム」は、剛性の高いエリアと低いエリアを交互に配置し、各ショットで最適なパフォーマンスを発揮しま
す。また、ティーショットからパッティングまで、すべてのショットで高いパフォーマンスを提供する「ALL OK!」性能がさらに進化しています。
カラーバリエーションは、ホワイト、プレミアムホワイト、ライムイエロー、プレミアムピンク、X Mark Edition ホワイトの5種類があり、プレーヤー
の好みに合わせて選択できます。
</p>
#}
{% if rootCategoryId == 7 %}{# ボールを選ぶ #}
{{ include('Block/product_detail.twig') }}{# 印刷サイズ・サービス #}
{% elseif rootCategoryId == 8 %}{# マーカーを選ぶ #}
{% elseif rootCategoryId == 9 %}{# デザインを選ぶ #}
{{ include('Block/product_detail.twig') }}{# 印刷サイズ・サービス #}
{% elseif rootCategoryId == 10 %}{# ラッピング #}
{% endif %}
<form name=\"formSelSP2\" id=\"formSelSP2\" method=\"get\" action=\"{{ url('product_list') }}\">
<input type=\"hidden\" name=\"mode\">
{% if rootCategoryId == 7 %}{# ボールを選ぶ #}
<input type=\"hidden\" name=\"category_id\" value=\"7\">
{% elseif rootCategoryId == 8 %}{# マーカーを選ぶ #}
{% elseif rootCategoryId == 9 %}{# デザインを選ぶ #}
<input type=\"hidden\" name=\"category_id\" value=\"9\">
{% elseif rootCategoryId == 10 %}{# ラッピング #}
{% endif %}
<input type=\"hidden\" name=\"name\">
<input type=\"hidden\" name=\"pageno\" value=\"1\">
<input type=\"hidden\" name=\"disp_number\" value=\"21\">
<input type=\"hidden\" name=\"orderby\" value=\"2\">
{% if rootCategoryId == 7 %}{# ボールを選ぶ #}
<input type=\"hidden\" id=\"ball-type\" name=\"ball-type\">
<input type=\"hidden\" id=\"ball-nums\" name=\"ball-nums\">
<input type=\"hidden\" id=\"ball-price\" name=\"ball-price\">
{% elseif rootCategoryId == 8 %}{# マーカーを選ぶ #}
{% elseif rootCategoryId == 9 %}{# デザインを選ぶ #}
<input type=\"hidden\" id=\"design-cate\" name=\"design-cate\">
{% elseif rootCategoryId == 10 %}{# ラッピング #}
{% endif %}
</form>
<div class=\"modalBoxAlert\" id=\"alert01\">
<div class=\"modalInnerAlert\">
絞り込みたい項目がある場合のみチェックしてください。
</div>
</div>
</main>
</div>
</div>
<!-- modal -->
<div class=\"modal fade\" id=\"filterModal\" tabindex=\"-1\" aria-labelledby=\"filterModalLabel\" aria-hidden=\"true\">
<div class=\"modal-dialog\">
<div class=\"modal-content\">
<div class=\"modal-header\">
<h5 class=\"modal-title\" id=\"filterModalLabel\">絞り込み</h5>
<button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\" aria-label=\"Close\"></button>
</div>
<form name=\"formSelSP\" id=\"formSelSP\">
<div class=\"modal-body\">
<!-- 絞り込みフォームの内容をここに追加 -->
{% if rootCategoryId == 7 %}{# ボールを選ぶ #}
<div class=\"aside-filter _modal\">
<div class=\"title\">
ボールの種類から選ぶ
</div>
<ul class=\"list-unstyled mb-0 list\">
<li>
<label>
<input type=\"checkbox\" name=\"ball_type\" class=\"ball_type_sp\" value=\"14\">
持ち込みボール
</label>
</li>
<li>
<label>
<input type=\"checkbox\" name=\"ball_type\" class=\"ball_type_sp\" value=\"11\">
スリクソン
</label>
</li>
<li>
<label>
<input type=\"checkbox\" name=\"ball_type\" class=\"ball_type_sp\" value=\"12\">
ゼクシオ
</label>
</li>
<li>
<label>
<input type=\"checkbox\" name=\"ball_type\" class=\"ball_type_sp\" value=\"13\">
ツアースペシャル
</label>
</li>
</ul>
<div class=\"title\">
ボールの球数から選ぶ
</div>
<ul class=\"list-unstyled mb-0 list\">
<li>
<label>
<input type=\"checkbox\" name=\"ball_nums\" class=\"ball_nums_sp\" value=\"8,13\">
3球
</label>
</li>
<li>
<label>
<input type=\"checkbox\" name=\"ball_nums\" class=\"ball_nums_sp\" value=\"11,14\">
6球
</label>
</li>
<li>
<label>
<input type=\"checkbox\" name=\"ball_nums\" class=\"ball_nums_sp\" value=\"12,15\">
12球
</label>
</li>
</ul>
<div class=\"title\">
価格で選ぶ
</div>
<ul class=\"list-unstyled mb-0 list\">
<li>
<label>
<input type=\"checkbox\" name=\"ball_price\" class=\"ball_price_sp\" value=\"1\">
~2,999円
</label>
</li>
<li>
<label>
<input type=\"checkbox\" name=\"ball_price\" class=\"ball_price_sp\" value=\"2\">
3,000円~4,999円
</label>
</li>
<li>
<label>
<input type=\"checkbox\" name=\"ball_price\" class=\"ball_price_sp\" value=\"3\">
5,000円~9,999円
</label>
</li>
<li>
<label>
<input type=\"checkbox\" name=\"ball_price\" class=\"ball_price_sp\" value=\"4\">
10,000円以上
</label>
</li>
</ul>
</div>
{% elseif rootCategoryId == 8 %}{# マーカーを選ぶ #}
{% elseif rootCategoryId == 9 %}{# デザインを選ぶ #}
<div class=\"aside-filter _modal\">
<div class=\"title\">
カテゴリから選ぶ
</div>
<ul class=\"list-unstyled mb-0 list\">
<li>
<label>
<input type=\"checkbox\" name=\"design_cate\" class=\"design_cate_sp\" value=\"15\">
誕生日祝い
</label>
</li>
<li>
<label>
<input type=\"checkbox\" name=\"design_cate\" class=\"design_cate_sp\" value=\"16\">
定年退職祝い
</label>
</li>
<li>
<label>
<input type=\"checkbox\" name=\"design_cate\" class=\"design_cate_sp\" value=\"17\">
還暦祝い
</label>
</li>
<li>
<label>
<input type=\"checkbox\" name=\"design_cate\" class=\"design_cate_sp\" value=\"18\">
コンペ景品
</label>
</li>
<li>
<label>
<input type=\"checkbox\" name=\"design_cate\" class=\"design_cate_sp\" value=\"19\">
父の日祝い
</label>
</li>
<li>
<label>
<input type=\"checkbox\" name=\"design_cate\" class=\"design_cate_sp\" value=\"20\">
母の日祝い
</label>
</li>
<li>
<label>
<input type=\"checkbox\" name=\"design_cate\" class=\"design_cate_sp\" value=\"21\">
GOLFPRINT オリジナル
</label>
</li>
</ul>
</div>
{% elseif rootCategoryId == 10 %}{# ラッピング #}
{% endif %}
</div>
<div class=\"modal-footer\">
<button type=\"button\" class=\"btn btn-outline-dark\" data-bs-dismiss=\"modal\">閉じる</button>
<button type=\"button\" class=\"btn btn-outline-dark\" onclick=\"location.href='{{ url('product_detail', {'id': Product.id}) }}'\">クリア</button>
<button type=\"button\" onclick=\"setValSP()\" class=\"btn btn-primary\">絞り込む</button>
</div>
</form>
</div>
</div>
</div>
{% endblock %}", "Product/detail.twig", "/home/insp/insp.sixcore.jp/public_html/app/template/default/Product/detail.twig");
}
public function checkSecurity()
{
static $tags = array("set" => 13, "for" => 138, "if" => 159);
static $filters = array("raw" => 147, "json_encode" => 180, "escape" => 183, "trans" => 269, "no_image_product" => 348, "slice" => 351, "replace" => 351, "default" => 351, "number_format" => 758, "nl2br" => 875);
static $functions = array("range" => 141, "class_categories_as_json" => 147, "url" => 315, "asset" => 345, "include" => 705, "form_row" => 777, "form_errors" => 778, "form_widget" => 790, "form_rest" => 830);
try {
$this->sandbox->checkSecurity(
['set', 'for', 'if'],
['raw', 'json_encode', 'escape', 'trans', 'no_image_product', 'slice', 'replace', 'default', 'number_format', 'nl2br'],
['range', 'class_categories_as_json', 'url', 'asset', 'include', 'form_row', 'form_errors', 'form_widget', 'form_rest']
);
} catch (SecurityError $e) {
$e->setSourceContext($this->source);
if ($e instanceof SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
$e->setTemplateLine($tags[$e->getTagName()]);
} elseif ($e instanceof SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
$e->setTemplateLine($filters[$e->getFilterName()]);
} elseif ($e instanceof SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
$e->setTemplateLine($functions[$e->getFunctionName()]);
}
throw $e;
}
}
}