app/template/default/brand.twig line 1

Open in your IDE?
  1. {% extends 'fullwidth_frame.twig' %}
  2. {% block main %}
  3.     {# ブランド[カテゴリID:34]の子カテゴリ一覧を表示 #}
  4.     {% set parentId = 34 %}
  5.     {% set ParentCategory = repository('Eccube\\Entity\\Category').find(parentId) %}
  6.     {% set childCategories = ParentCategory.children|sort((a, b) => a.sortNo <=> b.sortNo) %}
  7.     <div class="home_title__inner">
  8.         <h2 class="home_en_title "><span class="en">Brand</span><small>ブランドから探す</small></h2>
  9.     </div><!--/.home_title__inner-->
  10.     <div class="brand_sort_area">
  11.         <ul class="sort-btn">
  12.             <li class="sort_search_btn">
  13.                 <input class="search-field form-control" type="text" name="search" placeholder="ブランド名検索">
  14.                 <img class="seach_icon" src="{{ asset('assets/icon/search-dark.svg') }}" alt="">
  15.             </li>
  16.             <li class="alphabet_wrap">
  17.                 <ul class="alphabet">
  18.                     <li class="brand_A"><span>A</span></li>
  19.                     <li class="brand_B"><span>B</span></li>
  20.                     <li class="brand_C"><span>C</span></li>
  21.                     <li class="brand_D"><span>D</span></li>
  22.                     <li class="brand_E"><span>E</span></li>
  23.                     <li class="brand_F"><span>F</span></li>
  24.                     <li class="brand_G"><span>G</span></li>
  25.                     <li class="brand_H"><span>H</span></li>
  26.                     <li class="brand_I"><span>I</span></li>
  27.                     <li class="brand_J"><span>J</span></li>
  28.                     <li class="brand_K"><span>K</span></li>
  29.                     <li class="brand_L"><span>L</span></li>
  30.                     <li class="brand_M"><span>M</span></li>
  31.                     <li class="brand_N"><span>N</span></li>
  32.                     <li class="brand_O"><span>O</span></li>
  33.                     <li class="brand_P"><span>P</span></li>
  34.                     <li class="brand_Q"><span>Q</span></li>
  35.                     <li class="brand_R"><span>R</span></li>
  36.                     <li class="brand_S"><span>S</span></li>
  37.                     <li class="brand_T"><span>T</span></li>
  38.                     <li class="brand_U"><span>U</span></li>
  39.                     <li class="brand_V"><span>V</span></li>
  40.                     <li class="brand_W"><span>W</span></li>
  41.                     <li class="brand_X"><span>X</span></li>
  42.                     <li class="brand_Y"><span>Y</span></li>
  43.                     <li class="brand_Z"><span>Z</span></li>
  44.                 </ul>
  45.             </li>
  46.         </ul>
  47.         <ul class="grid">
  48.             {% for category in childCategories|sort((a, b) => a.slug <=> b.slug) %}
  49.                 <li class="item brand_{{ category.slug }}">
  50.                     <a class="item_content" href="#target{{ category.id }}" data-id="{{ category.id }}">
  51.                         <div class="thumb">
  52.                             <img src="{{ asset('rich_category/'~category.file_name,'save_image') }}">
  53.                         </div><!--/.thumb-->
  54.                         <span class="ttl_en">{{ category.englishText }}</span>
  55.                         <span class="ttl">{{ category.japaneseText }}</span>
  56.                         <span class="search_keywords">{{ category.searchKeywords }}</span>
  57.                     </a>
  58.                 </li>
  59.             {% endfor %}
  60.         </ul>
  61.     </div><!--/wrapper-->
  62.     <section class="brand_display_section">
  63.     {# A〜E #}
  64.     {% set filteredCategories = childCategories|filter(category => category.slug|slice(0, 1)|upper in ['A', 'B', 'C', 'D', 'E']) %}
  65.     {% if filteredCategories %}
  66.     <div class="home_title__inner">
  67.         <h2 class="home_en_title "><span class="en">A-E</span></h2>
  68.     </div><!--/.home_title__inner-->
  69.     <div class="category_detail_list">
  70.     {% for category in filteredCategories|sort((a, b) => a.slug <=> b.slug) %}
  71.         <a id="target{{ category.id }}" class="category_detail_block" href="{{ url('homepage') }}products/list?category_id={{ category.id }}">
  72.             <div class="category_detail_block__inner">
  73.                 <div class="category_detail_block__img">
  74.                     <img src="{{ asset('rich_category/'~category.file_name,'save_image') }}">
  75.                 </div>
  76.                 <div class="category_detail_block__txt">
  77.                     <div class="logo_ja_block">
  78.                         <img src="{{ asset('rich_category/'~category.logo_file_name,'save_image') }}">
  79.                         <p class="cat_ttl">{{ category.japaneseText }}</p>
  80.                     </div><!--/.logo_ja_block-->
  81.                     <p>{{ category.content|default('説明文がありません') }}</p>
  82.                     <div class="text-right">
  83.                     <span class="base_link_brn">
  84.                         <span>詳細を見る</span>
  85.                         <span>詳細を見る</span>
  86.                     </span>
  87.                     </div><!--/.text-right-->
  88.                 </div><!--./category_detail_block__txt-->
  89.             </div><!--/.category_detail_block__inner-->
  90.         </a><!--/.category_detail_block-->
  91.     {% endfor %}
  92.     </div><!--/.category_detail_list-->
  93.     {% endif %}
  94.     {# F〜J #}
  95.     {% set filteredCategories = childCategories|filter(category => category.slug|slice(0, 1)|upper in ['F', 'G', 'H', 'I', 'J']) %}
  96.     <div class="home_title__inner">
  97.         <h2 class="home_en_title "><span class="en">F-J</span></h2>
  98.     </div><!--/.home_title__inner-->
  99.     {% if filteredCategories %}
  100.     <div class="category_detail_list">
  101.         {% for category in filteredCategories|sort((a, b) => a.slug <=> b.slug) %}
  102.             <a id="target{{ category.id }}" class="category_detail_block" href="{{ url('homepage') }}products/list?category_id={{ category.id }}">
  103.                 <div class="category_detail_block__inner">
  104.                     <div class="category_detail_block__img">
  105.                         <img src="{{ asset('rich_category/'~category.file_name,'save_image') }}">
  106.                     </div>
  107.                     <div class="category_detail_block__txt">
  108.                         <div class="logo_ja_block">
  109.                             <img src="{{ asset('rich_category/'~category.logo_file_name,'save_image') }}">
  110.                             <p class="cat_ttl">{{ category.japaneseText }}</p>
  111.                         </div><!--/.logo_ja_block-->
  112.                         <p>{{ category.content|default('説明文がありません') }}</p>
  113.                         <div class="text-right">
  114.                     <span class="base_link_brn">
  115.                         <span>詳細を見る</span>
  116.                         <span>詳細を見る</span>
  117.                     </span>
  118.                         </div><!--/.text-right-->
  119.                     </div><!--./category_detail_block__txt-->
  120.                 </div><!--/.category_detail_block__inner-->
  121.             </a><!--/.category_detail_block-->
  122.         {% endfor %}
  123.     </div><!--/.category_detail_list-->
  124.     {% endif %}
  125.     {# K〜O #}
  126.     {% set filteredCategories = childCategories|filter(category => category.slug|slice(0, 1)|upper in ['K', 'L', 'M', 'N', 'O']) %}
  127.     {% if filteredCategories %}
  128.     <div class="home_title__inner">
  129.         <h2 class="home_en_title "><span class="en">K-O</span></h2>
  130.     </div><!--/.home_title__inner-->
  131.     <div class="category_detail_list">
  132.         {% for category in filteredCategories|sort((a, b) => a.slug <=> b.slug) %}
  133.             <a id="target{{ category.id }}" class="category_detail_block" href="{{ url('homepage') }}products/list?category_id={{ category.id }}">
  134.                 <div class="category_detail_block__inner">
  135.                     <div class="category_detail_block__img">
  136.                         <img src="{{ asset('rich_category/'~category.file_name,'save_image') }}">
  137.                     </div>
  138.                     <div class="category_detail_block__txt">
  139.                         <div class="logo_ja_block">
  140.                             <img src="{{ asset('rich_category/'~category.logo_file_name,'save_image') }}">
  141.                             <p class="cat_ttl">{{ category.japaneseText }}</p>
  142.                         </div><!--/.logo_ja_block-->
  143.                         <p>{{ category.content|default('説明文がありません') }}</p>
  144.                         <div class="text-right">
  145.                     <span class="base_link_brn">
  146.                         <span>詳細を見る</span>
  147.                         <span>詳細を見る</span>
  148.                     </span>
  149.                         </div><!--/.text-right-->
  150.                     </div><!--./category_detail_block__txt-->
  151.                 </div><!--/.category_detail_block__inner-->
  152.             </a><!--/.category_detail_block-->
  153.         {% endfor %}
  154.     </div><!--/.category_detail_list-->
  155.     {% endif %}
  156.     {# P〜T #}
  157.     {% set filteredCategories = childCategories|filter(category => category.slug|slice(0, 1)|upper in ['P', 'Q', 'R', 'S', 'T']) %}
  158.     {% if filteredCategories %}
  159.     <div class="home_title__inner">
  160.         <h2 class="home_en_title "><span class="en">P-T</span></h2>
  161.     </div><!--/.home_title__inner-->
  162.     <div class="category_detail_list">
  163.         {% for category in filteredCategories|sort((a, b) => a.slug <=> b.slug) %}
  164.             <a id="target{{ category.id }}" class="category_detail_block" href="{{ url('homepage') }}products/list?category_id={{ category.id }}">
  165.                 <div class="category_detail_block__inner">
  166.                     <div class="category_detail_block__img">
  167.                         <img src="{{ asset('rich_category/'~category.file_name,'save_image') }}">
  168.                     </div>
  169.                     <div class="category_detail_block__txt">
  170.                         <div class="logo_ja_block">
  171.                             <img src="{{ asset('rich_category/'~category.logo_file_name,'save_image') }}">
  172.                             <p class="cat_ttl">{{ category.japaneseText }}</p>
  173.                         </div><!--/.logo_ja_block-->
  174.                         <p>{{ category.content|default('説明文がありません') }}</p>
  175.                         <div class="text-right">
  176.                     <span class="base_link_brn">
  177.                         <span>詳細を見る</span>
  178.                         <span>詳細を見る</span>
  179.                     </span>
  180.                         </div><!--/.text-right-->
  181.                     </div><!--./category_detail_block__txt-->
  182.                 </div><!--/.category_detail_block__inner-->
  183.             </a><!--/.category_detail_block-->
  184.         {% endfor %}
  185.     </div><!--/.category_detail_list-->
  186.     {% endif %}
  187.     {# U〜Z #}
  188.     {% set filteredCategories = childCategories|filter(category => category.slug|slice(0, 1)|upper in ['U', 'V', 'W', 'X', 'Y','Z']) %}
  189.     {% if filteredCategories %}
  190.     <div class="home_title__inner">
  191.         <h2 class="home_en_title "><span class="en">U-Z</span></h2>
  192.     </div><!--/.home_title__inner-->
  193.     <div class="category_detail_list">
  194.         {% for category in filteredCategories|sort((a, b) => a.slug <=> b.slug) %}
  195.             <a id="target{{ category.id }}" class="category_detail_block" href="{{ url('homepage') }}products/list?category_id={{ category.id }}">
  196.                 <div class="category_detail_block__inner">
  197.                     <div class="category_detail_block__img">
  198.                         <img src="{{ asset('rich_category/'~category.file_name,'save_image') }}">
  199.                     </div>
  200.                     <div class="category_detail_block__txt">
  201.                         <div class="logo_ja_block">
  202.                             <img src="{{ asset('rich_category/'~category.logo_file_name,'save_image') }}">
  203.                             <p class="cat_ttl">{{ category.japaneseText }}</p>
  204.                         </div><!--/.logo_ja_block-->
  205.                         <p>{{ category.content|default('説明文がありません') }}</p>
  206.                         <div class="text-right">
  207.                     <span class="base_link_brn">
  208.                         <span>詳細を見る</span>
  209.                         <span>詳細を見る</span>
  210.                     </span>
  211.                         </div><!--/.text-right-->
  212.                     </div><!--./category_detail_block__txt-->
  213.                 </div><!--/.category_detail_block__inner-->
  214.             </a><!--/.category_detail_block-->
  215.         {% endfor %}
  216.     </div><!--/.category_detail_list-->
  217.     {% endif %}
  218.     </section><!--/.brand_display_section-->
  219. {% endblock %}
  220. {% block javascript %}
  221. <script>
  222.     $(window).on('load',function(){
  223.         $('.grid').addClass('show');
  224.         //Muuriギャラリープラグイン設定
  225.         var grid = new Muuri('.grid', {
  226.     });
  227.         // 検索機能
  228.         $('input.search-field').on('input', function () {
  229.         var searchText = $(this).val().toLowerCase();
  230.         grid.filter(function (item) {
  231.         var element = item.getElement();
  232.         var textContent = element.textContent || element.innerText;
  233.         return textContent.toLowerCase().indexOf(searchText) > -1;
  234.     });
  235.     });
  236.         //並び替えボタン設定
  237.         $('.sort-btn ul li').on('click',function(){//並び替えボタンをクリックしたら
  238.         var className = $(this).attr("class")//クリックしたボタンのクラス名を取得
  239.         className = className.split(' '); //「.sort-btn ul li」のクラス名を分割して配列にする
  240.         //ボタンにクラス名activeがついている場合
  241.         if($(this).hasClass("active")){
  242.         if(className[0] != "all"){              //ボタンのクラス名がallでなければ
  243.         $(this).removeClass("active");          //activeクラスを消す
  244.         var selectElms = $(".sort-btn ul li.active"); //ボタン内にactiveクラスがついている要素を全て取得
  245.         if(selectElms.length == 0){           //取得した配列内にactiveクラスがついている要素がなければ
  246.         $(".sort-btn ul li.all").addClass("active");//ボタンallにactiveを追加し
  247.         grid.show('');                //ギャラリーの全ての画像を表示
  248.     }else{
  249.         filterDo();                 //取得した配列内にactiveクラスがついている要素があれば並び替えを行う
  250.     }
  251.     }
  252.     }
  253.         //ボタンにクラス名activeがついていない場合
  254.         else{
  255.         if(className[0] == "all"){              //ボタンのクラス名にallとついていたら
  256.         $(".sort-btn ul li").removeClass("active");   //ボタンのli要素の全てのactiveを削除し
  257.         $(this).addClass("active");           //allにactiveクラスを付与
  258.         grid.show('');                  //ギャラリーの全ての画像を表示
  259.     }else{
  260.         if($(".all").hasClass("active")){       //allクラス名にactiveクラスが付いていたら
  261.         $(".sort-btn ul li.all").removeClass("active");//ボタンallのactiveクラスを消し
  262.     }
  263.         $(this).addClass("active");           //クリックしたチェックボックスへactiveクラスを付与
  264.         filterDo();                   //並び替えを行う
  265.     }
  266.     }
  267.     });
  268.         //画像の並び替え設定
  269.         function filterDo(){
  270.         var selectElms = $(".sort-btn ul li.active"); //全てのボタンのactive要素を取得
  271.         var selectElemAry = [];             //activeクラスがついているボタンのクラス名(sortXX)を保存する配列を定義
  272.         $.each(selectElms, function(index, selectElm) {
  273.         var className = $(this).attr("class")   //activeクラスがついている全てのボタンのクラス名(sortXX)を取得
  274.         className = className.split(' ');     //ボタンのクラス名を分割して配列にし、
  275.         selectElemAry.push("."+className[0]);   //selectElemAry配列に、チェックのついたクラス名(sortXX)を追加
  276.     })
  277.         str = selectElemAry.join(',');        //selectElemAry配列に追加されたクラス名をカンマ区切りでテキストにして
  278.         grid.filter(str);               //grid.filter(str);のstrに代入し、ボタンのクラス名と<li>につけられたクラス名が一致したら出現
  279.     }
  280. });
  281. </script>
  282. {% endblock %}