app/template/default/Block/seoallone_breadcrumb.twig line 1

Open in your IDE?
  1. {% set current_route = app.request.attributes.get('_route') %}
  2.     {% set current_page = repository('Eccube\\Entity\\Page').findOneBy({'url' : current_route}) %}
  3.     {% if SEOAllOneConfig is defined and SEOAllOneConfig is not null and SEOAllOneConfig.breadcrumbFlg == 1 and current_page is not null and (current_page.getUrl() == 'product_list' or current_page.getUrl() == 'product_detail') %}
  4.     {% 
  5.         set Breadcrumbs = [{ 
  6.             'name': BaseInfo.shop_name,
  7.             'url': url("homepage")
  8.         }]
  9.     %}
  10.     {% if current_page.getUrl() == 'product_list' %}
  11.         {% set category_id = app.request.get('category_id') %}
  12.         {% if category_id matches '/^\\d+$/' %}
  13.             {% set category = repository('Eccube\\Entity\\Category').findOneBy({'id': category_id}) %}
  14.         {% else %}
  15.             {% set category = null %}
  16.         {% endif %}
  17.         {% if category is not null %}
  18.             {% set c_list = [] %}
  19.             {% set parents = category.getParents() %}
  20.             {% if parents is not null %}
  21.                 {% for p in parents %}
  22.                     {% set c_list = c_list | merge([{ 'name':p.getName(), 'url': url('product_list') ~ '?category_id=' ~ p.getId() }]) %}
  23.                 {% endfor %}
  24.             {% endif %}
  25.             {% set c_list = c_list | merge([{ 'name': category.getName(), 'url': url('product_list') ~ '?category_id=' ~ category.getId()}]) %}
  26.         {% set Breadcrumbs = Breadcrumbs | merge(c_list) %}
  27.         {% else %}
  28.             {% set Breadcrumbs = Breadcrumbs | merge([{ 'name': '全ての商品'|trans, 'url': url('product_list') }]) %}
  29.         {% endif %}
  30.     {% elseif current_page.getUrl() == 'product_detail' %}
  31.         {% set c_list = [] %}
  32.         {% if Product.ProductCategories is not empty %}
  33.             {% set firstCategory = Product.ProductCategories[0] %}
  34.                 {% for Category in firstCategory.Category.path %}
  35.                     {% set c_list = c_list | merge([{ 'name':Category.getName(), 'url': url('product_list') ~ '?category_id=' ~ Category.getId() }]) %}
  36.                 {% endfor %}
  37.         {% else %}
  38.         {% set c_list = [{ 'name': '全ての商品'|trans, 'url': url('product_list')}] %}
  39.         {% endif %}
  40.         {% set c_list = c_list | merge([{ 'name':Product.getName(), 'url': url('product_detail', {'id': Product.getId()}) }]) %}
  41.         {% set Breadcrumbs = Breadcrumbs | merge(c_list) %}
  42.     {% endif %}
  43.     <div class="l-pankz">
  44.         <div class="container">
  45.         <ul class="container" itemscope itemtype="http://schema.org/BreadcrumbList">
  46.             {% for b in Breadcrumbs %}
  47.                 <li itemscope itemprop="itemListElement" itemtype="http://schema.org/ListItem">
  48.                     {% if loop.last == FALSE %}
  49.                         <a itemprop="item" href="{{ b.url }}">
  50.                             <span itemprop="name">{{ b.name }}</span>
  51.                         </a>
  52.                     {% else %}
  53.                         <span itemprop="name">{{ b.name }}</span>
  54.                     {% endif %}
  55.                     <meta itemprop="position" content="{{ loop.index }}">
  56.                 </li>
  57.             {% endfor %}
  58.         </ul>
  59.         </div>
  60.     </div>
  61.     {% block stylesheet %}
  62.         <style type="text/css">
  63.             .l-pankz div.container {
  64.                 max-width: 1130px;
  65.             }
  66.             .l-pankz ul {
  67.                 margin: 0 auto;
  68.                 width: 100%;
  69.                 overflow-x: auto;
  70.                 display: flex;
  71.                 font-size: 1.5rem;
  72.                 padding: .5em;
  73.                 justify-content: flex-start;
  74.             }
  75.             .l-pankz ul li {
  76.                 margin-right: .3em;
  77.                 word-break: keep-all;
  78.                 list-style: none;
  79.             }
  80.             .l-pankz ul li a{
  81.                 text-decoration:none;
  82.                 cursor: pointer;
  83.             }
  84.             .l-pankz ul li a:after {
  85.                 content: "/";
  86.                 padding-left: .3em;
  87.                 color: #000;
  88.             }
  89.         </style>
  90.     {% endblock %}
  91. {% endif %}