<?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_290b7d7ccef30d191e4fc761afbd44084231dfc09d769fd0a65da2099519e675 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_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "Product/detail.twig"));
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_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_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
}
// line 15
public function block_stylesheet($context, array $blocks = [])
{
$macros = $this->macros;
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "stylesheet"));
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "stylesheet"));
// line 16
echo " <style>
.slick-slider {
margin-bottom: 12px;
}
.item_visual{
opacity: 0;
transition: opacity .3s linear;
}
.item_visual.slick-initialized.slick-slider{
opacity: 1;
}
.item_visual .slide-item:focus,
.item_visual .slide-item:focus-visible{
outline: none;
}
#colorbox #cboxContent {
background-color: transparent;
padding: 8px 70px;
}
#cboxOverlay{
background: hsla(0,0%,88.6%,.9);
}
#cboxContent,
#cboxLoadedContent{
background: transparent;
border: none;
}
.cboxPhoto{
border-radius: 4px;
}
#cboxPrevious,
#cboxNext{
position: absolute;
top: 50%;
background: #fff;
padding: 10px;
border-radius: 50px;
width: 40px;
height: 40px;
z-index: 100;
}
#cboxPrevious{
left: 0px;
}
#cboxPrevious::before{
content: \"\";
display: inline-block;
padding: 3px;
margin: 0 10px;
border-left: 2px solid #000;
border-bottom: 2px solid #000;
transform: rotate(45deg);
position: absolute;
top: 15px;
left: 8px;
}
#cboxNext{
right: 0px;
}
#cboxNext::before{
content: \"\";
display: inline-block;
padding: 3px;
margin: 0 10px;
border-top: 2px solid #000;
border-right: 2px solid #000;
transform: rotate(45deg);
position: absolute;
top: 15px;
right: 8px;
}
#cboxSlideshow{
display: none;
}
#cboxClose{
background: #fff;
padding: 10px;
border-radius: 50px;
top: -10px;
right: 0px;
width: 40px;
height: 40px;
cursor: pointer;
display: block;
}
#cboxClose::before,
#cboxClose::after{
content: \"\";
display: block;
background-color: #000;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
width: 1.25vw;
height: 1px;
}
#cboxClose::before{
transform: rotate(45deg);
}
#cboxClose::after{
transform: rotate(-45deg);
}
#cboxCloseSP{
display: none;
}
@media only screen and (max-width: 767px) {
.item_visual a:hover{
opacity: 1;
outline: none;
}
#colorbox #cboxContent{
padding: 0;
}
#cboxClose{
display: none;
}
#cboxClose::before,
#cboxClose::after{
width: 5vw;
}
#cboxPrevious,
#cboxNext{
display: none!important;
}
#cboxCloseSP{
display: block;
position: absolute;
background: #fff;
padding: 10px;
border-radius: 50px;
border: none;
width: 40px;
height: 40px;
cursor: pointer;
top: 10px;
right: 10px;
z-index: 9999;
}
#cboxCloseSP::before,
#cboxCloseSP::after{
content: \"\";
display: block;
background-color: #000;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
width: 5vw;
height: 1px;
}
#cboxCloseSP::before{
transform: rotate(45deg);
}
#cboxCloseSP::after{
transform: rotate(-45deg);
}
}
</style>
";
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
}
// line 182
public function block_javascript($context, array $blocks = [])
{
$macros = $this->macros;
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "javascript"));
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "javascript"));
// line 183
echo " <script>
eccube.classCategories = ";
// line 184
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.', 184, $this->source); })()), 184, $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 195
if (twig_get_attribute($this->env, $this->source, ($context["form"] ?? null), "classcategory_id2", [], "any", true, true, true, 195)) {
// line 196
echo " fnSetClassCategories(
\$('#form1'), ";
// line 197
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.', 197, $this->source); })()), "classcategory_id2", [], "any", false, false, true, 197), "vars", [], "any", false, false, true, 197), "value", [], "any", false, false, true, 197), 197, $this->source));
echo "
);
";
} elseif (twig_get_attribute($this->env, $this->source, // line 199
($context["form"] ?? null), "classcategory_id1", [], "any", true, true, true, 199)) {
// line 200
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.', 200, $this->source); })()), "id", [], "any", false, false, true, 200), 200, $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.', 200, $this->source); })()), "classcategory_id1", [], "any", false, false, true, 200), "vars", [], "any", false, false, true, 200), "value", [], "any", false, false, true, 200), 200, $this->source));
echo ", null);
";
}
// line 202
echo " </script>
<script>
\$(function() {
\$('.add-cart').on('click', function(event) {
";
// line 206
if (twig_get_attribute($this->env, $this->source, ($context["form"] ?? null), "classcategory_id1", [], "any", true, true, true, 206)) {
// line 207
echo " // 規格1フォームの必須チェック
if (\$('#classcategory_id1').val() == '__unselected' || \$('#classcategory_id1').val() == '') {
\$('#classcategory_id1')[0].setCustomValidity('";
// line 209
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 215
echo "
";
// line 216
if (twig_get_attribute($this->env, $this->source, ($context["form"] ?? null), "classcategory_id2", [], "any", true, true, true, 216)) {
// line 217
echo " // 規格2フォームの必須チェック
if (\$('#classcategory_id2').val() == '__unselected' || \$('#classcategory_id2').val() == '') {
\$('#classcategory_id2')[0].setCustomValidity('";
// line 219
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 225
echo "
// 個数フォームのチェック
if (\$('#quantity').val() < 1) {
\$('#quantity')[0].setCustomValidity('";
// line 228
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 255
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 262
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-overlay, .ec-modal .ec-inlineBtn--cancel').on('click', function() {
\$('.ec-modal').hide()
});
</script>
<script>
\$(function() {
// bfcache無効化
\$(window).bind('pageshow', function(event) {
if (event.originalEvent.persisted) {
location.reload(true);
}
});
\$('.item_visual').slick({
dots: false,
arrows: false,
infinite: false,
});
\$('.slideThumb:first-child').addClass(\"is-current\");
\$('.slideThumb').on('click', function() {
var index = \$(this).attr('data-index');
var visual = \$('.slideThumb');
\$(visual).removeClass(\"is-current\");
\$(this).addClass(\"is-current\");
\$('.item_visual').slick('slickGoTo', index, false);
});
});
</script>
<script src=\"";
// line 301
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/js/jquery.colorbox-min.js"), "html", null, true);
echo "\"></script>
<script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/jquery.touchswipe/1.6.19/jquery.touchSwipe.min.js\"></script>
<script>
\$(document).bind('cbox_open', function(){
var test = document.getElementById('colorbox');
test.insertAdjacentHTML('beforebegin','<button type=\"button\" id=\"cboxCloseSP\"></button>');
if(!navigator.userAgent.match(/(iPhone|iPad|iPod|Android)/)) {
\$('#cboxCloseSP').on('click', function(){
\$.colorbox.close();
\$(\"#cboxCloseSP\").remove();
});
\$('#colorbox').swipe({
swipeLeft:function(){
\$.colorbox.next()
},
swipeRight:function(){
\$.colorbox.prev()
},
threshold:0
});
}
return false;
});
\$(document).ready(function(){
if(!navigator.userAgent.match(/(iPhone|iPad|iPod|Android)/)) {
\$(\"#cboxCurrent\").remove();
\$(\".gallery-slide\").colorbox({
rel:'slideshow',
maxWidth:\"90%\",
maxHeight:\"90%\",
opacity: 0.7,
overlayClose: true,
returnFocus:false,
onOpen:function() {
var ycoord = \$(this).scrollTop();
\$('#colorbox').data('ycoord',ycoord);
ycoord = ycoord * -1;
\$('body').css('position','fixed').css('left','0px').css('right','0px').css('top',ycoord + 'px');
},
onClosed:function(){
\$('#cboxOverlay').removeClass('customization');
\$('body').css('position','').css('left','auto').css('right','auto').css('top','auto');
\$(window).scrollTop(\$('#colorbox').data('ycoord'));
},
onComplete: function() {
\$.colorbox.position(0);
}
});
\$('.gallery-slide').on('click', function(){
\$('#cboxOverlay').addClass('customization');
});
}
return false;
});
\$('.gallery-slide').on('click', function(){
if(window.matchMedia(\"(max-width: 768px)\").matches){
return false;
}
});
</script>
";
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
}
// line 364
public function block_main($context, array $blocks = [])
{
$macros = $this->macros;
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "main"));
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "main"));
// line 365
echo " <link rel=\"stylesheet\" href=\"";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/js/colorbox/colorbox.css"), "html", null, true);
echo "\">
<div class=\"ec-productRole\">
";
// line 369
echo " <ul class=\"ec-productRole__tags\">
";
// line 370
$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.', 370, $this->source); })()), "Tags", [], "any", false, false, true, 370));
foreach ($context['_seq'] as $context["_key"] => $context["Tag"]) {
// line 371
echo " <li class=\"ec-productRole__tag tag_";
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, $context["Tag"], "id", [], "any", false, false, true, 371), 371, $this->source), "html", null, true);
echo "\">";
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed($context["Tag"], 371, $this->source), "html", null, true);
echo "</li>
";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['Tag'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 373
echo " </ul>
";
// line 375
echo " <div class=\"ec-productRole__title\">
<h2 class=\"ec-headingTitle\">";
// line 376
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.', 376, $this->source); })()), "name", [], "any", false, false, true, 376), 376, $this->source), "html", null, true);
echo "</h2>
</div>
<div class=\"ec-grid2\">
<div class=\"ec-grid2__cell\">
<div class=\"ec-sliderItemRole\">
<div class=\"item_visual\">
";
// line 385
$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.', 385, $this->source); })()), "ProductImage", [], "any", false, false, true, 385));
$context['_iterated'] = false;
foreach ($context['_seq'] as $context["_key"] => $context["ProductImage"]) {
// line 386
echo " <a href=\"";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($this->sandbox->ensureToStringAllowed($context["ProductImage"], 386, $this->source), "save_image"), "html", null, true);
echo "\" class=\"gallery-slide\">
<div class=\"slide-item\">
<img src=\"";
// line 388
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($this->sandbox->ensureToStringAllowed($context["ProductImage"], 388, $this->source), "save_image"), "html", null, true);
echo "\">
<div class=\"icon_zoom\"><img src=\"";
// line 389
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/icon/icon_zoom.svg"), "html", null, true);
echo "\"></div>
</div>
</a>
";
$context['_iterated'] = true;
}
if (!$context['_iterated']) {
// line 393
echo " <div class=\"slide-item\"><img src=\"";
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 "\"/></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 395
echo " </div>
<div class=\"item_nav\">
";
// line 397
$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.', 397, $this->source); })()), "ProductImage", [], "any", false, false, true, 397));
$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 398
echo " <div class=\"slideThumb\" data-index=\"";
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, $context["loop"], "index0", [], "any", false, false, true, 398), 398, $this->source), "html", null, true);
echo "\"><img src=\"";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($this->sandbox->ensureToStringAllowed($context["ProductImage"], 398, $this->source), "save_image"), "html", null, true);
echo "\"></div>
";
++$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 400
echo " </div>
</div>
</div>
<div class=\"ec-grid2__cell\">
<div class=\"ec-productRole__profile\">
";
// line 407
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.', 407, $this->source); })()), "hasProductClass", [], "any", false, false, true, 407)) {
// line 408
echo "<div class=\"ec-productRole__priceRegular\">
";
// line 409
if (( !(null === 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.', 409, $this->source); })()), "getPrice01Min", [], "any", false, false, true, 409)) && (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.', 409, $this->source); })()), "getPrice01IncTaxMin", [], "any", false, false, true, 409) == 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.', 409, $this->source); })()), "getPrice01IncTaxMax", [], "any", false, false, true, 409)))) {
// line 410
echo " <span class=\"ec-productRole__priceRegularPrice\">";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("通常価格"), "html", null, true);
echo ":<span class=\"price01-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.', 410, $this->source); })()), "getPrice01IncTaxMin", [], "any", false, false, true, 410), 410, $this->source)), "html", null, true);
echo "</span></span>
<span class=\"ec-productRole__priceRegularTax\">";
// line 411
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("円(税込)"), "html", null, true);
echo "</span>
";
} elseif (( !(null === twig_get_attribute($this->env, $this->source, // line 412
(isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 412, $this->source); })()), "getPrice01Min", [], "any", false, false, true, 412)) && !(null === 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.', 412, $this->source); })()), "getPrice01Max", [], "any", false, false, true, 412)))) {
// line 413
echo " <span class=\"ec-productRole__priceRegularPrice\">";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("通常価格"), "html", null, true);
echo ":<span class=\"price01-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.', 413, $this->source); })()), "getPrice01IncTaxMin", [], "any", false, false, true, 413), 413, $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.', 413, $this->source); })()), "getPrice01IncTaxMax", [], "any", false, false, true, 413), 413, $this->source)), "html", null, true);
echo "</span></span>
<span class=\"ec-productRole__priceRegularTax\">";
// line 414
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("円(税込)"), "html", null, true);
echo "</span>
";
}
// line 416
echo " </div>
";
} else {
// line 418
echo " ";
if ( !(null === 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.', 418, $this->source); })()), "getPrice01Max", [], "any", false, false, true, 418))) {
// line 419
echo " <span class=\"ec-productRole__priceRegularPrice\">";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("通常価格"), "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.', 419, $this->source); })()), "getPrice01IncTaxMin", [], "any", false, false, true, 419), 419, $this->source)), "html", null, true);
echo "</span>
<span class=\"ec-productRole__priceRegularTax\">";
// line 420
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("円(税込)"), "html", null, true);
echo "</span>
";
}
// line 422
echo " ";
}
// line 423
echo " ";
// line 424
echo " <div class=\"ec-productRole__price\">
";
// line 425
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.', 425, $this->source); })()), "hasProductClass", [], "any", false, false, true, 425)) {
// line 426
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.', 426, $this->source); })()), "getPrice02IncTaxMin", [], "any", false, false, true, 426) == 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.', 426, $this->source); })()), "getPrice02IncTaxMax", [], "any", false, false, true, 426))) {
// line 427
echo " <div class=\"ec-price\">
<span class=\"ec-price__price price02-default\">";
// line 428
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.', 428, $this->source); })()), "getPrice02IncTaxMin", [], "any", false, false, true, 428), 428, $this->source)), "html", null, true);
echo "</span>
<span class=\"ec-price__tax\">";
// line 429
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("円(税込)"), "html", null, true);
echo "</span>
</div>
";
} else {
// line 432
echo " <div class=\"ec-price\">
<span class=\"ec-price__price price02-default\">";
// line 433
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.', 433, $this->source); })()), "getPrice02IncTaxMin", [], "any", false, false, true, 433), 433, $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.', 433, $this->source); })()), "getPrice02IncTaxMax", [], "any", false, false, true, 433), 433, $this->source)), "html", null, true);
echo "</span>
<span class=\"ec-price__tax\">";
// line 434
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("円(税込)"), "html", null, true);
echo "</span>
</div>
";
}
// line 437
echo " ";
} else {
// line 438
echo " <div class=\"ec-price\">
<span class=\"ec-price__price\">";
// line 439
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.', 439, $this->source); })()), "getPrice02IncTaxMin", [], "any", false, false, true, 439), 439, $this->source)), "html", null, true);
echo "</span>
<span class=\"ec-price__tax\">";
// line 440
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("円(税込)"), "html", null, true);
echo "</span>
</div>
";
}
// line 443
echo " </div>
";
// line 445
echo " <div class=\"ec-productRole__point ec-productRole__code point-display-container\" style=\"display:none\">
<span class=\"product-point-default\">";
// line 446
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("joolendisplaypoints4.front.point.label"), "html", null, true);
echo "</span>
<span class=\"point-display\"></span>
</div>
<div class=\"border__box\">
";
// line 451
echo " ";
if ( !twig_test_empty(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.', 451, $this->source); })()), "code_min", [], "any", false, false, true, 451))) {
// line 452
echo " <div class=\"ec-productRole__code\">
";
// line 453
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("商品コード"), "html", null, true);
echo ": <span class=\"product-code-default\">";
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.', 453, $this->source); })()), "code_min", [], "any", false, false, true, 453), 453, $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.', 453, $this->source); })()), "code_min", [], "any", false, false, true, 453) != 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.', 453, $this->source); })()), "code_max", [], "any", false, false, true, 453))) {
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.', 453, $this->source); })()), "code_max", [], "any", false, false, true, 453), 453, $this->source), "html", null, true);
}
echo "</span>
</div>
";
}
// line 456
echo " <form action=\"";
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.', 456, $this->source); })()), "id", [], "any", false, false, true, 456)]), "html", null, true);
echo "\" method=\"post\" id=\"form1\" name=\"form1\" class=\"conversion_box\">
";
// line 457
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.', 457, $this->source); })()), "stock_find", [], "any", false, false, true, 457)) {
// line 458
echo " <div class=\"ec-productRole__actions\">
";
// line 459
if (twig_get_attribute($this->env, $this->source, ($context["form"] ?? null), "classcategory_id1", [], "any", true, true, true, 459)) {
// line 460
echo " <div class=\"ec-select\">
";
// line 461
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.', 461, $this->source); })()), "classcategory_id1", [], "any", false, false, true, 461), 461, $this->source), 'widget');
echo "
";
// line 462
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.', 462, $this->source); })()), "classcategory_id1", [], "any", false, false, true, 462), 462, $this->source), 'errors');
echo "
</div>
";
// line 464
if (twig_get_attribute($this->env, $this->source, ($context["form"] ?? null), "classcategory_id2", [], "any", true, true, true, 464)) {
// line 465
echo " <div class=\"ec-select\">
";
// line 466
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.', 466, $this->source); })()), "classcategory_id2", [], "any", false, false, true, 466), 466, $this->source), 'widget');
echo "
";
// line 467
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.', 467, $this->source); })()), "classcategory_id2", [], "any", false, false, true, 467), 467, $this->source), 'errors');
echo "
</div>
";
}
// line 470
echo " ";
}
// line 471
echo " </div>
<div class=\"ec-productRole__btn conversion_btn\">
<div class=\"ec-numberInput select_amount\"><span class=\"amount\">";
// line 473
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("数量"), "html", null, true);
echo "</span>
";
// line 474
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.', 474, $this->source); })()), "quantity", [], "any", false, false, true, 474), 474, $this->source), 'widget');
echo "
";
// line 475
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.', 475, $this->source); })()), "quantity", [], "any", false, false, true, 475), 475, $this->source), 'errors');
echo "
</div>
<button type=\"submit\" class=\"ec-blockBtn--action add-cart\">
";
// line 478
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートに入れる"), "html", null, true);
echo "
";
// line 480
echo " </button>
</div>
";
} else {
// line 483
echo " <div class=\"ec-productRole__btn conversion_btn\">
<button type=\"button\" class=\"ec-blockBtn--action\" disabled=\"disabled\">
";
// line 485
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("ただいま品切れ中です。"), "html", null, true);
echo "
</button>
</div>
";
}
// line 489
echo "
";
// line 490
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.', 490, $this->source); })()), 490, $this->source), 'rest');
echo "
</form>
</div>
<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 496
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 497
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=\"ec-inlineBtn--cancel\">";
// line 500
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お買い物を続ける"), "html", null, true);
echo "</span>
<a href=\"";
// line 501
echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("cart");
echo "\" class=\"ec-inlineBtn--action\">";
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 507
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.', 507, $this->source); })()), "option_favorite_product", [], "any", false, false, true, 507)) {
// line 508
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.', 508, $this->source); })()), "id", [], "any", false, false, true, 508)]), "html", null, true);
echo "\" method=\"post\">
<div class=\"ec-productRole__btn\">
";
// line 510
if (((isset($context["is_favorite"]) || array_key_exists("is_favorite", $context) ? $context["is_favorite"] : (function () { throw new RuntimeError('Variable "is_favorite" does not exist.', 510, $this->source); })()) == false)) {
// line 511
echo " <button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--cancel btn_outline\">
<span class=\"ec-icon\"><img src=\"";
// line 512
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/icon/icon_heart_line.svg"), "html", null, true);
echo "\" alt=\"\"/></span>";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お気に入りに追加"), "html", null, true);
echo "
</button>
";
} else {
// line 515
echo " <button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--cancel\"
disabled=\"disabled\">";
// line 516
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お気に入りに追加済です。"), "html", null, true);
echo "
</button>
";
}
// line 519
echo " </div>
</form>
";
}
// line 522
echo " </div>
</div>
</div>
<div class=\"ec-productRole__description\">
";
// line 527
echo 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.', 527, $this->source); })()), "description_detail", [], "any", false, false, true, 527), 527, $this->source));
echo "
</div>
";
// line 530
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.', 530, $this->source); })()), "freearea", [], "any", false, false, true, 530)) {
// line 531
echo " <div class=\"ec-productRole__description\">
";
// line 532
echo $this->extensions['Eccube\Twig\Extension\IgnoreTwigSandboxErrorExtension']->twig_include($this->env, $context, twig_template_from_string($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.', 532, $this->source); })()), "freearea", [], "any", false, false, true, 532), 532, $this->source)), array(), true, false, true);
echo "
</div>
";
}
// line 535
echo " ";
// line 536
echo " ";
if ( !twig_test_empty(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.', 536, $this->source); })()), "ProductCategories", [], "any", false, false, true, 536))) {
// line 537
echo " <div class=\"ec-productRole__category ec-productRole__description\">
<h3><label>";
// line 538
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("関連カテゴリ"), "html", null, true);
echo "</label></h3>
";
// line 539
$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.', 539, $this->source); })()), "ProductCategories", [], "any", false, false, true, 539));
foreach ($context['_seq'] as $context["_key"] => $context["ProductCategory"]) {
// line 540
echo " <ul>
<li>
";
// line 542
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, $context["ProductCategory"], "Category", [], "any", false, false, true, 542), "path", [], "any", false, false, true, 542));
$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["Category"]) {
// line 543
echo " <a href=\"";
echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_list");
echo "?category_id=";
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, $context["Category"], "id", [], "any", false, false, true, 543), 543, $this->source), "html", null, true);
echo "\">";
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, $context["Category"], "name", [], "any", false, false, true, 543), 543, $this->source), "html", null, true);
echo "</a>";
if ((twig_get_attribute($this->env, $this->source, $context["loop"], "last", [], "any", false, false, true, 543) == false)) {
// line 544
echo " <span>></span>";
}
++$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['Category'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 546
echo " </li>
</ul>
";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductCategory'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 549
echo " </div>
";
}
// line 551
echo " </div>
";
// line 553
$this->loadTemplate("Block/guide.twig", "Product/detail.twig", 553)->display($context);
// line 554
echo "
";
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
}
public function getTemplateName()
{
return "Product/detail.twig";
}
public function isTraitable()
{
return false;
}
public function getDebugInfo()
{
return array ( 1024 => 554, 1022 => 553, 1018 => 551, 1014 => 549, 1006 => 546, 991 => 544, 982 => 543, 965 => 542, 961 => 540, 957 => 539, 953 => 538, 950 => 537, 947 => 536, 945 => 535, 939 => 532, 936 => 531, 934 => 530, 928 => 527, 921 => 522, 916 => 519, 910 => 516, 907 => 515, 899 => 512, 896 => 511, 894 => 510, 888 => 508, 886 => 507, 875 => 501, 871 => 500, 865 => 497, 861 => 496, 852 => 490, 849 => 489, 842 => 485, 838 => 483, 833 => 480, 829 => 478, 823 => 475, 819 => 474, 815 => 473, 811 => 471, 808 => 470, 802 => 467, 798 => 466, 795 => 465, 793 => 464, 788 => 462, 784 => 461, 781 => 460, 779 => 459, 776 => 458, 774 => 457, 769 => 456, 757 => 453, 754 => 452, 751 => 451, 744 => 446, 741 => 445, 738 => 443, 732 => 440, 728 => 439, 725 => 438, 722 => 437, 716 => 434, 710 => 433, 707 => 432, 701 => 429, 697 => 428, 694 => 427, 692 => 426, 690 => 425, 687 => 424, 685 => 423, 682 => 422, 677 => 420, 670 => 419, 667 => 418, 663 => 416, 658 => 414, 649 => 413, 647 => 412, 643 => 411, 636 => 410, 634 => 409, 631 => 408, 628 => 407, 620 => 400, 601 => 398, 584 => 397, 580 => 395, 571 => 393, 562 => 389, 558 => 388, 552 => 386, 547 => 385, 535 => 376, 532 => 375, 529 => 373, 518 => 371, 514 => 370, 511 => 369, 504 => 365, 494 => 364, 422 => 301, 380 => 262, 370 => 255, 340 => 228, 335 => 225, 326 => 219, 322 => 217, 320 => 216, 317 => 215, 308 => 209, 304 => 207, 302 => 206, 296 => 202, 288 => 200, 286 => 199, 281 => 197, 278 => 196, 276 => 195, 262 => 184, 259 => 183, 249 => 182, 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: 12px;
}
.item_visual{
opacity: 0;
transition: opacity .3s linear;
}
.item_visual.slick-initialized.slick-slider{
opacity: 1;
}
.item_visual .slide-item:focus,
.item_visual .slide-item:focus-visible{
outline: none;
}
#colorbox #cboxContent {
background-color: transparent;
padding: 8px 70px;
}
#cboxOverlay{
background: hsla(0,0%,88.6%,.9);
}
#cboxContent,
#cboxLoadedContent{
background: transparent;
border: none;
}
.cboxPhoto{
border-radius: 4px;
}
#cboxPrevious,
#cboxNext{
position: absolute;
top: 50%;
background: #fff;
padding: 10px;
border-radius: 50px;
width: 40px;
height: 40px;
z-index: 100;
}
#cboxPrevious{
left: 0px;
}
#cboxPrevious::before{
content: \"\";
display: inline-block;
padding: 3px;
margin: 0 10px;
border-left: 2px solid #000;
border-bottom: 2px solid #000;
transform: rotate(45deg);
position: absolute;
top: 15px;
left: 8px;
}
#cboxNext{
right: 0px;
}
#cboxNext::before{
content: \"\";
display: inline-block;
padding: 3px;
margin: 0 10px;
border-top: 2px solid #000;
border-right: 2px solid #000;
transform: rotate(45deg);
position: absolute;
top: 15px;
right: 8px;
}
#cboxSlideshow{
display: none;
}
#cboxClose{
background: #fff;
padding: 10px;
border-radius: 50px;
top: -10px;
right: 0px;
width: 40px;
height: 40px;
cursor: pointer;
display: block;
}
#cboxClose::before,
#cboxClose::after{
content: \"\";
display: block;
background-color: #000;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
width: 1.25vw;
height: 1px;
}
#cboxClose::before{
transform: rotate(45deg);
}
#cboxClose::after{
transform: rotate(-45deg);
}
#cboxCloseSP{
display: none;
}
@media only screen and (max-width: 767px) {
.item_visual a:hover{
opacity: 1;
outline: none;
}
#colorbox #cboxContent{
padding: 0;
}
#cboxClose{
display: none;
}
#cboxClose::before,
#cboxClose::after{
width: 5vw;
}
#cboxPrevious,
#cboxNext{
display: none!important;
}
#cboxCloseSP{
display: block;
position: absolute;
background: #fff;
padding: 10px;
border-radius: 50px;
border: none;
width: 40px;
height: 40px;
cursor: pointer;
top: 10px;
right: 10px;
z-index: 9999;
}
#cboxCloseSP::before,
#cboxCloseSP::after{
content: \"\";
display: block;
background-color: #000;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
width: 5vw;
height: 1px;
}
#cboxCloseSP::before{
transform: rotate(45deg);
}
#cboxCloseSP::after{
transform: rotate(-45deg);
}
}
</style>
{% endblock %}
{% block javascript %}
<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);
}
{% 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 %}
</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-overlay, .ec-modal .ec-inlineBtn--cancel').on('click', function() {
\$('.ec-modal').hide()
});
</script>
<script>
\$(function() {
// bfcache無効化
\$(window).bind('pageshow', function(event) {
if (event.originalEvent.persisted) {
location.reload(true);
}
});
\$('.item_visual').slick({
dots: false,
arrows: false,
infinite: false,
});
\$('.slideThumb:first-child').addClass(\"is-current\");
\$('.slideThumb').on('click', function() {
var index = \$(this).attr('data-index');
var visual = \$('.slideThumb');
\$(visual).removeClass(\"is-current\");
\$(this).addClass(\"is-current\");
\$('.item_visual').slick('slickGoTo', index, false);
});
});
</script>
<script src=\"{{ asset('assets/js/jquery.colorbox-min.js') }}\"></script>
<script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/jquery.touchswipe/1.6.19/jquery.touchSwipe.min.js\"></script>
<script>
\$(document).bind('cbox_open', function(){
var test = document.getElementById('colorbox');
test.insertAdjacentHTML('beforebegin','<button type=\"button\" id=\"cboxCloseSP\"></button>');
if(!navigator.userAgent.match(/(iPhone|iPad|iPod|Android)/)) {
\$('#cboxCloseSP').on('click', function(){
\$.colorbox.close();
\$(\"#cboxCloseSP\").remove();
});
\$('#colorbox').swipe({
swipeLeft:function(){
\$.colorbox.next()
},
swipeRight:function(){
\$.colorbox.prev()
},
threshold:0
});
}
return false;
});
\$(document).ready(function(){
if(!navigator.userAgent.match(/(iPhone|iPad|iPod|Android)/)) {
\$(\"#cboxCurrent\").remove();
\$(\".gallery-slide\").colorbox({
rel:'slideshow',
maxWidth:\"90%\",
maxHeight:\"90%\",
opacity: 0.7,
overlayClose: true,
returnFocus:false,
onOpen:function() {
var ycoord = \$(this).scrollTop();
\$('#colorbox').data('ycoord',ycoord);
ycoord = ycoord * -1;
\$('body').css('position','fixed').css('left','0px').css('right','0px').css('top',ycoord + 'px');
},
onClosed:function(){
\$('#cboxOverlay').removeClass('customization');
\$('body').css('position','').css('left','auto').css('right','auto').css('top','auto');
\$(window).scrollTop(\$('#colorbox').data('ycoord'));
},
onComplete: function() {
\$.colorbox.position(0);
}
});
\$('.gallery-slide').on('click', function(){
\$('#cboxOverlay').addClass('customization');
});
}
return false;
});
\$('.gallery-slide').on('click', function(){
if(window.matchMedia(\"(max-width: 768px)\").matches){
return false;
}
});
</script>
{% endblock %}
{% block main %}
<link rel=\"stylesheet\" href=\"{{ asset('assets/js/colorbox/colorbox.css') }}\">
<div class=\"ec-productRole\">
{# タグ #}
<ul class=\"ec-productRole__tags\">
{% for Tag in Product.Tags %}
<li class=\"ec-productRole__tag tag_{{ Tag.id }}\">{{ Tag }}</li>
{% endfor %}
</ul>
{# 商品名 #}
<div class=\"ec-productRole__title\">
<h2 class=\"ec-headingTitle\">{{ Product.name }}</h2>
</div>
<div class=\"ec-grid2\">
<div class=\"ec-grid2__cell\">
<div class=\"ec-sliderItemRole\">
<div class=\"item_visual\">
{% for ProductImage in Product.ProductImage %}
<a href=\"{{ asset(ProductImage, 'save_image') }}\" class=\"gallery-slide\">
<div class=\"slide-item\">
<img src=\"{{ asset(ProductImage, 'save_image') }}\">
<div class=\"icon_zoom\"><img src=\"{{ asset('assets/icon/icon_zoom.svg') }}\"></div>
</div>
</a>
{% else %}
<div class=\"slide-item\"><img src=\"{{ asset(''|no_image_product, 'save_image') }}\"/></div>
{% endfor %}
</div>
<div class=\"item_nav\">
{% for ProductImage in Product.ProductImage %}
<div class=\"slideThumb\" data-index=\"{{ loop.index0 }}\"><img src=\"{{ asset(ProductImage, 'save_image') }}\"></div>
{% endfor %}
</div>
</div>
</div>
<div class=\"ec-grid2__cell\">
<div class=\"ec-productRole__profile\">
{# 通常価格 #}
{% if Product.hasProductClass -%}
<div class=\"ec-productRole__priceRegular\">
{% if Product.getPrice01Min is not null and Product.getPrice01IncTaxMin == Product.getPrice01IncTaxMax %}
<span class=\"ec-productRole__priceRegularPrice\">{{ '通常価格'|trans }}:<span class=\"price01-default\">{{ Product.getPrice01IncTaxMin|number_format }}</span></span>
<span class=\"ec-productRole__priceRegularTax\">{{ '円(税込)'|trans }}</span>
{% elseif Product.getPrice01Min is not null and Product.getPrice01Max is not null %}
<span class=\"ec-productRole__priceRegularPrice\">{{ '通常価格'|trans }}:<span class=\"price01-default\">{{ Product.getPrice01IncTaxMin|number_format }}~ {{ Product.getPrice01IncTaxMax|number_format }}</span></span>
<span class=\"ec-productRole__priceRegularTax\">{{ '円(税込)'|trans }}</span>
{% endif %}
</div>
{% else %}
{% if Product.getPrice01Max is not null %}
<span class=\"ec-productRole__priceRegularPrice\">{{ '通常価格'|trans }}:{{ Product.getPrice01IncTaxMin|number_format }}</span>
<span class=\"ec-productRole__priceRegularTax\">{{ '円(税込)'|trans }}</span>
{% endif %}
{% endif %}
{# 販売価格 #}
<div class=\"ec-productRole__price\">
{% if Product.hasProductClass -%}
{% if Product.getPrice02IncTaxMin == Product.getPrice02IncTaxMax %}
<div class=\"ec-price\">
<span class=\"ec-price__price price02-default\">{{ Product.getPrice02IncTaxMin|number_format }}</span>
<span class=\"ec-price__tax\">{{ '円(税込)'|trans }}</span>
</div>
{% else %}
<div class=\"ec-price\">
<span class=\"ec-price__price price02-default\">{{ Product.getPrice02IncTaxMin|number_format }} ~ {{ Product.getPrice02IncTaxMax|number_format }}</span>
<span class=\"ec-price__tax\">{{ '円(税込)'|trans }}</span>
</div>
{% endif %}
{% else %}
<div class=\"ec-price\">
<span class=\"ec-price__price\">{{ Product.getPrice02IncTaxMin|number_format }}</span>
<span class=\"ec-price__tax\">{{ '円(税込)'|trans }}</span>
</div>
{% endif %}
</div>
{# ポイント #}
<div class=\"ec-productRole__point ec-productRole__code point-display-container\" style=\"display:none\">
<span class=\"product-point-default\">{{ 'joolendisplaypoints4.front.point.label'|trans }}</span>
<span class=\"point-display\"></span>
</div>
<div class=\"border__box\">
{# 商品コード #}
{% if Product.code_min is not empty %}
<div class=\"ec-productRole__code\">
{{ '商品コード'|trans }}: <span class=\"product-code-default\">{{ Product.code_min }}{% if Product.code_min != Product.code_max %} ~ {{ Product.code_max }}{% endif %}</span>
</div>
{% endif %}
<form action=\"{{ url('product_add_cart', {id:Product.id}) }}\" method=\"post\" id=\"form1\" name=\"form1\" class=\"conversion_box\">
{% if Product.stock_find %}
<div class=\"ec-productRole__actions\">
{% if form.classcategory_id1 is defined %}
<div class=\"ec-select\">
{{ form_widget(form.classcategory_id1) }}
{{ form_errors(form.classcategory_id1) }}
</div>
{% if form.classcategory_id2 is defined %}
<div class=\"ec-select\">
{{ form_widget(form.classcategory_id2) }}
{{ form_errors(form.classcategory_id2) }}
</div>
{% endif %}
{% endif %}
</div>
<div class=\"ec-productRole__btn conversion_btn\">
<div class=\"ec-numberInput select_amount\"><span class=\"amount\">{{ '数量'|trans }}</span>
{{ form_widget(form.quantity) }}
{{ form_errors(form.quantity) }}
</div>
<button type=\"submit\" class=\"ec-blockBtn--action add-cart\">
{{ 'カートに入れる'|trans }}
{# <span class=\"ec-icon\"><img src=\"{{ asset('assets/icon/icon_cart_wh.svg') }}\" alt=\"カートアイコン\"/></span> #}
</button>
</div>
{% else %}
<div class=\"ec-productRole__btn conversion_btn\">
<button type=\"button\" class=\"ec-blockBtn--action\" disabled=\"disabled\">
{{ 'ただいま品切れ中です。'|trans }}
</button>
</div>
{% endif %}
{{ form_rest(form) }}
</form>
</div>
<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=\"ec-inlineBtn--cancel\">{{ 'お買い物を続ける'|trans }}</span>
<a href=\"{{ url('cart') }}\" class=\"ec-inlineBtn--action\">{{ 'カートへ進む'|trans }}</a>
</div>
</div>
</div>
</div>
</div>
{% if BaseInfo.option_favorite_product %}
<form action=\"{{ url('product_add_favorite', {id:Product.id}) }}\" method=\"post\">
<div class=\"ec-productRole__btn\">
{% if is_favorite == false %}
<button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--cancel btn_outline\">
<span class=\"ec-icon\"><img src=\"{{ asset('assets/icon/icon_heart_line.svg') }}\" alt=\"\"/></span>{{ 'お気に入りに追加'|trans }}
</button>
{% else %}
<button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--cancel\"
disabled=\"disabled\">{{ 'お気に入りに追加済です。'|trans }}
</button>
{% endif %}
</div>
</form>
{% endif %}
</div>
</div>
</div>
<div class=\"ec-productRole__description\">
{{ Product.description_detail|raw|nl2br }}
</div>
{% if Product.freearea %}
<div class=\"ec-productRole__description\">
{{ include(template_from_string(Product.freearea), sandboxed = true) }}
</div>
{% endif %}
{# 関連カテゴリ #}
{% if Product.ProductCategories is not empty %}
<div class=\"ec-productRole__category ec-productRole__description\">
<h3><label>{{ '関連カテゴリ'|trans }}</label></h3>
{% for ProductCategory in Product.ProductCategories %}
<ul>
<li>
{% for Category in ProductCategory.Category.path %}
<a href=\"{{ url('product_list') }}?category_id={{ Category.id }}\">{{ Category.name }}</a> {%- if loop.last == false %}
<span>></span>{% endif -%}
{% endfor %}
</li>
</ul>
{% endfor %}
</div>
{% endif %}
</div>
{% include 'Block/guide.twig' %}
{% endblock %}", "Product/detail.twig", "/home/nakatomishop/www/NfNudtBdkd/app/template/default/Product/detail.twig");
}
public function checkSecurity()
{
static $tags = array("set" => 13, "if" => 195, "for" => 370, "include" => 553);
static $filters = array("raw" => 184, "json_encode" => 197, "escape" => 200, "trans" => 209, "no_image_product" => 393, "number_format" => 410, "nl2br" => 527);
static $functions = array("class_categories_as_json" => 184, "url" => 255, "asset" => 301, "form_widget" => 461, "form_errors" => 462, "form_rest" => 490, "include" => 532, "template_from_string" => 532);
try {
$this->sandbox->checkSecurity(
['set', 'if', 'for', 'include'],
['raw', 'json_encode', 'escape', 'trans', 'no_image_product', 'number_format', 'nl2br'],
['class_categories_as_json', 'url', 'asset', 'form_widget', 'form_errors', 'form_rest', 'include', 'template_from_string']
);
} 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;
}
}
}