{#
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.
#}
{% block javascript %}
<script>
{% if category_id is defined %}
$(function() {
function getQueryString (url)
{
if (url !== undefined && url === '') {
return [];
}
var vars = [], hash;
var path = url === undefined ? window.location.href : $('<a href="'+ url +'"/>').get(0).href;
if (path.indexOf('?') >= 0 && path.length != path.indexOf('?') + 1) {
var hashes = path.indexOf('#') >= 0
? path.slice(path.indexOf('?') + 1, path.indexOf('#')).split('&')
: path.slice(path.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++) {
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
}
return vars;
}
function escapeRegExp (str)
{
return str.replace(/([.*+?^=!:${}()|[\]\/\\])/g, "\\$1");
}
let currentQueries = [];
currentQueries.push('category_id');
currentQueries['category_id'] = {{ category_id }};
$('.ec-itemNav__nav li a')
.removeClass('current')
.each(function(){
var nav = $(this).attr('href');
var navQueries = getQueryString(nav); //ナビゲーションhrefのクエリストリングをパース
console.log(nav, navQueries);
console.log(currentQueries);
if (currentQueries.length > 0) {
for (var i = 0; i < currentQueries.length; i++) {
//最初のクエリストリングのみ調査
if ($.inArray(currentQueries[i], navQueries) >= 0 &&
currentQueries[currentQueries[i]] == navQueries[currentQueries[i]])
{
$(this).addClass('current');
$(this).parents('.category_child').css('display','block');
return false; //break
}
}
} else {
if (currentURI.match(new RegExp('^'+ escapeRegExp(nav) +'$', 'i'))) {
$(this).addClass('current');
$(this).parents('.category_child').css('display','block');
return false; //break
}
}
});
$('.ec-headerCategoryArea .ec-itemNav__nav li a')
.removeClass('current')
.each(function(){
var nav = $(this).attr('href');
var navQueries = getQueryString(nav); //ナビゲーションhrefのクエリストリングをパース
if (currentQueries.length > 0) {
for (var i = 0; i < currentQueries.length; i++) {
//最初のクエリストリングのみ調査
if ($.inArray(currentQueries[i], navQueries) >= 0 &&
currentQueries[currentQueries[i]] == navQueries[currentQueries[i]])
{
$(this).addClass('current');
$(this).parents('.category_child').css('display','block');
return false; //break
}
}
} else {
if (currentURI.match(new RegExp('^'+ escapeRegExp(nav) +'$', 'i'))) {
$(this).addClass('current');
$(this).parents('.category_child').css('display','block');
return false; //break
}
}
});
});
{% endif %}
</script>
<script>
$(function() {
$('.ec-categoryNaviRole .ec-itemNav__nav li > a').on('click', function() {
$categoryItem = $(this).parent('.haschild');
$categoryList = $categoryItem.children('.category_child');
$childrenIcon = $(this).children('.only-opend');
if ($categoryList.length > 0){
if ($categoryList.css('display') == 'none') {
$categoryList.slideDown(300);
$childrenIcon.addClass('active');
} else {
$categoryList.slideUp(250);
$childrenIcon.removeClass('active');
}
return false;
}
});
});
</script>
{% endblock %}
{% set Categories = repository('Eccube\\Entity\\Category').getList() %}
{% macro tree(Category) %}
{% from _self import tree %}
<a href="{{ url('product_list') }}?category_id={{ Category.id }}">
{{ Category.name }}
{% if Category.children|length == 0 %}
<img src="{{ asset('assets/icon/icon_arrow_red.svg') }}" class="ec-itemNav__iconlink" alt="矢印アイコン">
{% else %}
<img src="{{ asset('assets/icon/icon_add.svg') }}" class="ec-itemNav__iconlink only-opend" alt="プラスアイコン">
<img src="{{ asset('assets/icon/icon_minus.svg') }}" class="ec-itemNav__iconlink" alt="マイナスアイコン">
{% endif %}
</a>
{% if Category.children|length > 0 %}
<ul style="display: none;" class="category_child">
<li>
<a id="category_all" href="{{ url('product_list') }}?category_id={{ Category.id }}">
<span>すべて</span>
<img src="{{ asset('assets/icon/icon_arrow_red.svg') }}" class="ec-itemNav__iconlink" alt="矢印アイコン">
</a>
</li>
{% for ChildCategory in Category.children %}
<li>
{{ tree(ChildCategory) }}
</li>
{% endfor %}
</ul>
{% endif %}
{% endmacro %}
{# @see https://github.com/bolt/bolt/pull/2388 #}
{% from _self import tree %}
<div class="ec-categoryNaviRole">
<div class="ec-headerCategoryArea__heading">
<p>{{ 'カテゴリから探す'|trans }}</p>
<span class="ec-headerCategoryArea__toggle">すべて開く</span>
</div>
<div class="ec-itemNav">
<ul class="ec-itemNav__nav">
{% for Category in Categories %}
<li>
{{ tree(Category) }}
</li>
{% endfor %}
</ul>
</div>
</div>