app/template/default/default_frame.twig line 1

Open in your IDE?
  1. <!doctype html>
  2. {#
  3. This file is part of EC-CUBE
  4. Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
  5. http://www.ec-cube.co.jp/
  6. For the full copyright and license information, please view the LICENSE
  7. file that was distributed with this source code.
  8. #}
  9. <html lang="{{ eccube_config.locale }}">
  10. <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# product: http://ogp.me/ns/product#">
  11. {% if app.request.get('_route') == 'product_list' %}
  12. {% if app.request.query.get('category_id') is not empty %}
  13. <link rel="canonical" href="{{ url('homepage') }}products/list?category_id={{ app.request.query.get('category_id') }}" />
  14. {% else %}
  15. <link rel="canonical" href="{{ url('homepage') }}products/list" />
  16. {% endif %}
  17. {% set pages = pagination.paginationData %}
  18. {% if pages.pageCount > 1 %}
  19. {% if pages.previous is defined %}
  20. <link rel="prev" href="{{ app.request.schemeAndHttpHost() ~ path(app.request.attributes.get('_route'),app.request.query.all|merge({'pageno': pages.previous})) }}">
  21. {% endif %}
  22. {% if pages.next is defined %}
  23. <link rel="next" href="{{ app.request.schemeAndHttpHost() ~ path(app.request.attributes.get('_route'),app.request.query.all|merge({'pageno': pages.next})) }}">
  24. {% endif %}
  25. {% endif %}
  26. {% endif %}
  27.     <meta charset="utf-8">
  28.     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  29.     <meta name="eccube-csrf-token" content="{{ csrf_token(constant('Eccube\\Common\\Constant::TOKEN_NAME')) }}">
  30. {% if app.request.get('_route') == 'product_detail' and Product.itoben_seo_title is not empty %}
  31. <title>{{ Product.itoben_seo_title }}</title>
  32. {% elseif app.request.get('_route') == 'product_list' and app.request.query.get('category_id') is empty %}
  33. <title>全商品 / {{ BaseInfo.shop_name }}</title>
  34. {% elseif app.request.get('_route') == 'product_list' and Category.itoben_seo_title is not empty %}
  35. <title>{{ Category.itoben_seo_title }}</title>
  36. {% else %}
  37. <title>{% if app.request.get('_route') == 'product_detail' or app.request.get('_route') == 'product_list' %}{{ subtitle }} / {{ BaseInfo.shop_name }}{% else %}{{ BaseInfo.shop_name }}{% if subtitle is defined and subtitle is not empty %} / {{ subtitle }}{% elseif title is defined and title is not empty %} / {{ title }}{% endif %}{% endif %}</title>
  38. {% endif %}
  39. {% if app.request.get('_route') == 'product_detail' and Product.itoben_seo_author is not empty %}
  40. <meta name="author" content="{{ Product.itoben_seo_author }}">
  41. {% elseif app.request.get('_route') == 'product_list' and app.request.query.get('category_id') is empty %}
  42. {% if Page.author is not empty %}<meta name="author" content="{{ Page.author }}">{% endif %}
  43. {% elseif app.request.get('_route') == 'product_list' and Category.itoben_seo_author is not empty %}
  44. <meta name="author" content="{{ Category.itoben_seo_author }}">
  45. {% elseif Page.author is not empty %}
  46. <meta name="author" content="{{ Page.author }}">
  47. {% endif %}
  48. {% if app.request.get('_route') == 'product_detail' and Product.itoben_seo_description is not empty %}
  49. <meta name="description" content="{{ Product.itoben_seo_description }}">
  50. {% elseif app.request.get('_route') == 'product_list' and app.request.query.get('category_id') is empty %}
  51. {% if Page.description is not empty %}<meta name="description" content="{{ Page.description }}">{% endif %}
  52. {% elseif app.request.get('_route') == 'product_list' and Category.itoben_seo_description is not empty %}
  53. <meta name="description" content="{{ Category.itoben_seo_description }}">
  54. {% elseif Page.description is not empty %}
  55. <meta name="description" content="{{ Page.description }}">
  56. {% endif %}
  57. {% if app.request.get('_route') == 'product_detail' and Product.itoben_seo_keyword is not empty %}
  58. <meta name="keywords" content="{{ Product.itoben_seo_keyword }}">
  59. {% elseif app.request.get('_route') == 'product_list' and app.request.query.get('category_id') is empty %}
  60. {% if Page.keyword is not empty %}<meta name="keywords" content="{{ Page.keyword }}">{% endif %}
  61. {% elseif app.request.get('_route') == 'product_list' and Category.itoben_seo_keyword is not empty %}
  62. <meta name="keywords" content="{{ Category.itoben_seo_keyword }}">
  63. {% elseif Page.keyword is not empty %}
  64. <meta name="keywords" content="{{ Page.keyword }}">
  65. {% endif %}
  66. {% if app.request.get('_route') == 'product_detail' and Product.itoben_seo_meta_robots is not empty %}
  67. <meta name="robots" content="{{ Product.itoben_seo_meta_robots }}">
  68. {% elseif app.request.get('_route') == 'product_list' and app.request.query.get('category_id') is empty %}
  69. {% if Page.meta_robots is not empty %}<meta name="robots" content="{{ Page.meta_robots }}">{% endif %}
  70. {% elseif app.request.get('_route') == 'product_list' and Category.itoben_seo_meta_robots is not empty %}
  71. <meta name="robots" content="{{ Category.itoben_seo_meta_robots }}">
  72. {% elseif Page.meta_robots is not empty %}
  73. <meta name="robots" content="{{ Page.meta_robots }}">
  74. {% endif %}
  75. {% if Page.meta_tags is not empty %}
  76. {{ include(template_from_string(Page.meta_tags), sandboxed = true) }}
  77. {% endif %}
  78. {% if app.request.get('_route') == 'product_detail' and Product.itoben_seo_meta_tags is not empty %}
  79. {{ include(template_from_string(Product.itoben_seo_meta_tags), sandboxed = true) }}
  80. {% endif %}
  81. {% if app.request.get('_route') == 'product_list' and app.request.query.get('category_id') is empty %}
  82. {% elseif app.request.get('_route') == 'product_list' and Category.itoben_seo_meta_tags is not empty %}
  83. {{ include(template_from_string(Category.itoben_seo_meta_tags), sandboxed = true) }}
  84. {% endif %}
  85.     <link rel="icon" href="{{ asset('assets/img/common/favicon.ico', 'user_data') }}">
  86.     <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css" integrity="sha384-HSMxcRTRxnN+Bdg0JdbxYKrThecOKuH5zCYotlSAcp1+c8xmyTe9GYg1l9a69psu" crossorigin="anonymous">
  87.     <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous">
  88.     <link rel="stylesheet" href="//cdn.jsdelivr.net/jquery.slick/1.6.0/slick.css">
  89.     <link rel="stylesheet" href="{{ asset('assets/css/style.css') }}">
  90.     <link rel="preconnect" href="https://fonts.googleapis.com">
  91.     <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  92.     <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@100;300;400;500;700&display=swap" rel="stylesheet">
  93.     <link href="https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100;300;400;500;700;900&display=swap" rel="stylesheet">
  94.     {% block stylesheet %}{% endblock %}
  95.     <script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
  96.     <script>
  97.         $(function() {
  98.             $.ajaxSetup({
  99.                 'headers': {
  100.                     'ECCUBE-CSRF-TOKEN': $('meta[name="eccube-csrf-token"]').attr('content')
  101.                 }
  102.             });
  103.         });
  104.     </script>
  105.     {# Layout: HEAD #}
  106.     {% if Layout.Head %}
  107.         {{ include('block.twig', {'Blocks': Layout.Head}) }}
  108.     {% endif %}
  109.     {# プラグイン用styleseetやmetatagなど #}
  110.     {% if plugin_assets is defined %}{{ include('@admin/snippet.twig', { snippets: plugin_assets }) }}{% endif %}
  111.     <link rel="stylesheet" href="{{ asset('assets/css/customize.css', 'user_data') }}">
  112.     
  113.     <!-- Google Analytics -->
  114.     <script>
  115.       (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  116.       (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  117.       m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  118.       })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
  119.     
  120.       ga('create', 'UA-58357089-1', {
  121.         'name': 'plg_gaecommerceua',
  122.         'cookieDomain': 'auto'
  123.       });
  124.     
  125.       ga('plg_gaecommerceua.send', 'pageview');
  126.     </script>
  127. </head>
  128. <body id="page_{{ app.request.get('_route') }}" class="{{ body_class|default('other_page') }}">
  129. {# Layout: BODY_AFTER #}
  130. {% if Layout.BodyAfter %}
  131.     {{ include('block.twig', {'Blocks': Layout.BodyAfter}) }}
  132. {% endif %}
  133. <div class="ec-layoutRole">
  134.     {# Layout: HEADER #}
  135.     {% if Layout.Header %}
  136.         <div class="ec-layoutRole__header">
  137.             <div class="ec-layoutRole__header__inner">
  138.                 <div class="ec-headerRole__navSP">
  139.                     {{ include('Block/nav_sp.twig') }}
  140.                 </div>
  141.                 {{ include('block.twig', {'Blocks': Layout.Header}) }}
  142.             </div>
  143.         </div>
  144.     {% endif %}
  145.     {# Layout: CONTENTS_TOP #}
  146.     {% if Layout.ContentsTop %}
  147.         <div class="ec-layoutRole__contentTop">
  148.             {{ include('block.twig', {'Blocks': Layout.ContentsTop}) }}
  149.         </div>
  150.     {% endif %}
  151.     <div class="ec-layoutRole__contents">
  152.         {# Layout: SIDE_LEFT #}
  153.         {% if Layout.SideLeft %}
  154.             <div class="ec-layoutRole__left">
  155.                 {{ include('block.twig', {'Blocks': Layout.SideLeft}) }}
  156.             </div>
  157.         {% endif %}
  158.         {% set layoutRoleMain = 'ec-layoutRole__main' %}
  159.         {% if Layout.ColumnNum == 2 %}
  160.             {% set layoutRoleMain = 'ec-layoutRole__mainWithColumn' %}
  161.         {% elseif Layout.ColumnNum == 3 %}
  162.             {% set layoutRoleMain = 'ec-layoutRole__mainBetweenColumn' %}
  163.         {% endif %}
  164.         <div class="{{ layoutRoleMain }}">
  165.             {# Layout: MAIN_TOP #}
  166.             {% if Layout.MainTop %}
  167.                 <div class="ec-layoutRole__mainTop">
  168.                     {{ include('block.twig', {'Blocks': Layout.MainTop}) }}
  169.                 </div>
  170.             {% endif %}
  171.             {# MAIN AREA #}
  172.             {% block main %}{% endblock %}
  173.             {# Layout: MAIN_Bottom #}
  174.             {% if Layout.MainBottom %}
  175.                 <div class="ec-layoutRole__mainBottom">
  176.                     {{ include('block.twig', {'Blocks': Layout.MainBottom}) }}
  177.                 </div>
  178.             {% endif %}
  179.         </div>
  180.         {# Layout: SIDE_RIGHT #}
  181.         {% if Layout.SideRight %}
  182.             <div class="ec-layoutRole__right">
  183.                 {{ include('block.twig', {'Blocks': Layout.SideRight}) }}
  184.             </div>
  185.         {% endif %}
  186.     </div>
  187.     {# Layout: CONTENTS_BOTTOM #}
  188.     {% if Layout.ContentsBottom %}
  189.         <div class="ec-layoutRole__contentBottom">
  190.             {{ include('block.twig', {'Blocks': Layout.ContentsBottom}) }}
  191.         </div>
  192.     {% endif %}
  193.     {# Layout: CONTENTS_FOOTER #}
  194.     {% if Layout.Footer %}
  195.         <div class="ec-layoutRole__footer">
  196.             {{ include('block.twig', {'Blocks': Layout.Footer}) }}
  197.         </div>
  198.     {% endif %}
  199. </div><!-- ec-layoutRole -->
  200. <div class="ec-overlayRole"></div>
  201. <div class="ec-drawerRole">
  202.     <div class="ec-drawerRole__inner">
  203.     {# Layout: DRAWER #}
  204.     {% if Layout.Drawer %}
  205.         <div class="ec-layoutRole__header__inner">
  206.             <div class="ec-drawerRoleClose"><img src="{{ asset('assets/icon/icon_menuclose.svg') }}" class="" alt="メニュー閉じるアイコン"></div>
  207.             {{ include('Block/logo.twig') }}
  208.             <div class="ec-headerNaviRole">
  209.                 <div class="ec-headerNaviRole__left">
  210.                 </div>
  211.                 <div class="ec-headerNaviRole__right">
  212.                     <div class="ec-headerNaviRole__nav">
  213.                         {{ include('Block/login.twig') }}
  214.                     </div>
  215.                     <div class="ec-headerRole__cart">
  216.                         {{ include('Block/cart.twig') }}
  217.                     </div>
  218.                 </div>
  219.             </div>
  220.         </div>
  221.     {% endif %}
  222.     {{ include('block.twig', {'Blocks': Layout.Drawer}) }}
  223.     </div>
  224. </div>
  225. <div class="ec-headerNaviRole__bottom sticky">
  226.     {#
  227.     <div class="ec-headerNaviRole__fixentry">
  228.         <a href="{{ url('contact_product_fix') }}">修理の申し込み</a>
  229.     </div>
  230.     #}
  231.     <div class="ec-headerNaviRole__contact">
  232.         <a href="{{ url('contact') }}">お問い合わせ・お見積り</a>
  233.     </div>
  234.     <div class="ec-headerNaviRole__searchSP anchor">
  235.         <a href="">
  236.             <img src="{{ asset('assets/icon/icon_search.svg') }}" class="" alt="アイコン検索虫眼鏡">
  237.         </a>
  238.     </div>
  239. </div>
  240. <div class="ec-blockTopBtn pagetop"><img src="{{ asset('assets/icon/icon_arrow_wh.svg') }}" class="" alt="ページトップアイコン"></div>
  241. <script src="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js" integrity="sha384-aJ21OjlMXNL5UyIl/XNwTMqvzeRMZH2w8c5cRVpzpU8Y5bApTppSuUkhZXN0VxHd" crossorigin="anonymous"></script>
  242. <script src="https://cdn.jsdelivr.net/jquery.slick/1.6.0/slick.min.js"></script>
  243. {% include('@common/lang.twig') %}
  244. <script src="{{ asset('assets/js/function.js') }}"></script>
  245. <script src="{{ asset('assets/js/eccube.js') }}"></script>
  246. {% block javascript %}{% endblock %}
  247. {# Layout: CLOSE_BODY_BEFORE #}
  248. {% if Layout.CloseBodyBefore %}
  249.     {{ include('block.twig', {'Blocks': Layout.CloseBodyBefore}) }}
  250. {% endif %}
  251. {# プラグイン用Snippet #}
  252. {% if plugin_snippets is defined %}
  253.     {{ include('snippet.twig', { snippets: plugin_snippets }) }}
  254. {% endif %}
  255.     <script src="{{ asset('assets/js/customize.js', 'user_data') }}"></script>
  256. </body>
  257. </html>