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.     <!-- Google Tag Manager -->
  12.     <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
  13.                 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
  14.             j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
  15.             'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f)
  16.         ;
  17.         })(window,document,'script','dataLayer','GTM-WPNQR96');</script>
  18.     <!-- End Google Tag Manager -->
  19.     
  20.     <!-- Global site tag (gtag.js) - Google Analytics -->
  21.     <script async src="https://www.googletagmanager.com/gtag/js?id=UA-222072587-1"></script>
  22.     <script>
  23.     {% if app.user.groups is defined %}
  24.         gtag('set', 'user_properties', {
  25.             'member_rank': '{{ app.user.groups|map(g => g.name)|join('|') }}',
  26.             'user_id': '{{ app.user.Id }}'
  27.         });
  28.     {% endif %}
  29.     window.dataLayer = window.dataLayer || [];
  30.     function gtag(){dataLayer.push(arguments);}
  31.     gtag('js', new Date());
  32.     gtag('config', 'UA-222072587-1');
  33.       {% set request_uri = app.request.server.get('REQUEST_URI') %}
  34.         {% if '/shopping/complete' in request_uri %}
  35.         gtag('event', 'purchase', {
  36.             'transaction_id': '{{ Order.orderNo }}', //受注ID
  37.             'affiliation': '{{ BaseInfo.shop_name }}', //ショップ名
  38.             'value': {{ Order.payment_total }}, //合計金額
  39.             'currency': 'JPY', //通貨コード
  40.             'tax': {{ Order.tax }}, //消費税
  41.             'shipping': {{ Order.delivery_fee_total }}, //送料
  42.             'items': [
  43.             {% for OrderItem in Order.MergedProductOrderItems %}
  44.                 {
  45.                 'item_sku': '{{ OrderItem.product_code }}', //SKU
  46.                 'item_name': '{{ OrderItem.product_name }}', //商品名
  47.                 'quantity': {{ OrderItem.quantity }}, //数量
  48.                 'price': {{ OrderItem.price_inc_tax }}, //商品価格
  49.                 'category': '{% for ProductCategory in OrderItem.Product.ProductCategories %}{% for Category in ProductCategory.Category.path %}{% if ( Category.parent is not null ) %}{{ Category.Parent.name }}:{{ Category.name }}{% endif %}{% endfor %}{% endfor %}' //カテゴリ
  50.                 },
  51.             {% endfor %}
  52.             ]
  53.         });
  54.         dataLayer = [{'user_id': '{{ app.user.Id }}'}];
  55.         dataLayer = [{
  56.             'items':
  57.                     {% for OrderItem in Order.MergedProductOrderItems %}
  58.                         {
  59.                             'item_sku': '{{ OrderItem.product_code }}', //SKU
  60.                             'item_name': '{{ OrderItem.product_name }}', //商品名
  61.                         },
  62.                     {% endfor %}
  63.         }];
  64.         {% endif %}
  65.     </script>
  66.     <meta charset="utf-8">
  67.     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  68.     <meta name="eccube-csrf-token" content="{{ csrf_token(constant('Eccube\\Common\\Constant::TOKEN_NAME')) }}">
  69.     <title>{{ BaseInfo.shop_name }}{% if subtitle is defined and subtitle is not empty %} / {{ subtitle }}{% elseif title is defined and title is not empty %} / {{ title }}{% endif %}</title>
  70.     {% if Page.meta_tags is not empty %}
  71.         {{ include(template_from_string(Page.meta_tags)) }}
  72.         {% if Page.description is not empty %}
  73.             <meta name="description" content="{{ Page.description }}">
  74.         {% endif %}
  75.     {% else %}
  76.         {{ include('meta.twig') }}
  77.     {% endif %}
  78.     {% if Page.author is not empty %}
  79.         <meta name="author" content="{{ Page.author }}">
  80.     {% endif %}
  81.     {% if Page.keyword is not empty %}
  82.         <meta name="keywords" content="{{ Page.keyword }}">
  83.     {% endif %}
  84.     {% if Page.meta_robots is not empty %}
  85.         <meta name="robots" content="{{ Page.meta_robots }}">
  86.     {% endif %}
  87.     <link rel="icon" href="{{ asset('assets/img/common/favicon.ico', 'user_data') }}">
  88.     <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css" integrity="sha384-HSMxcRTRxnN+Bdg0JdbxYKrThecOKuH5zCYotlSAcp1+c8xmyTe9GYg1l9a69psu" crossorigin="anonymous">
  89.     <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous">
  90.     <link rel="stylesheet" href="//cdn.jsdelivr.net/jquery.slick/1.6.0/slick.css">
  91.     <link rel="stylesheet" href="{{ asset('assets/css/style.css') }}">
  92.     {% block stylesheet %}{% endblock %}
  93.     <script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
  94.     <script>
  95.         $(function() {
  96.             $.ajaxSetup({
  97.                 'headers': {
  98.                     'ECCUBE-CSRF-TOKEN': $('meta[name="eccube-csrf-token"]').attr('content')
  99.                 }
  100.             });
  101.         });
  102.     </script>
  103.     
  104.     {# Layout: HEAD #}
  105.     {% if Layout.Head %}
  106.         {{ include('block.twig', {'Blocks': Layout.Head}) }}
  107.     {% endif %}
  108.     {# プラグイン用styleseetやmetatagなど #}
  109.     {% if plugin_assets is defined %}{{ include('@admin/snippet.twig', { snippets: plugin_assets }) }}{% endif %}
  110.     <link rel="stylesheet" href="{{ asset('assets/css/customize.css', 'user_data') }}">
  111. </head>
  112. <body id="page_{{ app.request.get('_route') }}" class="{{ body_class|default('other_page') }}">
  113. <!-- Google Tag Manager (noscript) -->
  114. <noscript>
  115.     <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-WPNQR96"
  116.                   height="0" width="0" style="display:none;visibility:hidden"></iframe>
  117. </noscript>
  118. <!-- End Google Tag Manager (noscript) -->
  119. {# Layout: BODY_AFTER #}
  120. {% if Layout.BodyAfter %}
  121.     {{ include('block.twig', {'Blocks': Layout.BodyAfter}) }}
  122. {% endif %}
  123. <div class="ec-layoutRole">
  124.     <div class="l-header mb40 spMb20">
  125.     {# Layout: HEADER #}
  126.     {% if Layout.Header %}
  127.         <div class="ec-layoutRole__header">
  128.             {{ include('block.twig', {'Blocks': Layout.Header}) }}
  129.         </div>
  130.     {% endif %}
  131.     {# Layout: CONTENTS_TOP #}
  132.     {% if Layout.ContentsTop %}
  133.         <div class="ec-layoutRole__contentTop">
  134.             {{ include('block.twig', {'Blocks': Layout.ContentsTop}) }}
  135.         </div>
  136.     {% endif %}
  137.     </div>
  138.     <div class="ec-layoutRole__contents">
  139.         {# Layout: SIDE_LEFT #}
  140.         {% if Layout.SideLeft %}
  141.             <div class="ec-layoutRole__left">
  142.                 {{ include('block.twig', {'Blocks': Layout.SideLeft}) }}
  143.             </div>
  144.         {% endif %}
  145.         {% set layoutRoleMain = 'ec-layoutRole__main' %}
  146.         {% if Layout.ColumnNum == 2 %}
  147.             {% set layoutRoleMain = 'ec-layoutRole__mainWithColumn' %}
  148.         {% elseif Layout.ColumnNum == 3 %}
  149.             {% set layoutRoleMain = 'ec-layoutRole__mainBetweenColumn' %}
  150.         {% endif %}
  151.         <div class="{{ layoutRoleMain }}">
  152.             {# Layout: MAIN_TOP #}
  153.             {% if Layout.MainTop %}
  154.                 <div class="ec-layoutRole__mainTop">
  155.                     {{ include('block.twig', {'Blocks': Layout.MainTop}) }}
  156.                 </div>
  157.             {% endif %}
  158.             {# MAIN AREA #}
  159.             {% block main %}{% endblock %}
  160.             {# Layout: MAIN_Bottom #}
  161.             {% set request_uri = app.request.server.get('REQUEST_URI') %}
  162.             {% if 'collection' in request_uri %}
  163.             
  164.             {% else %}
  165.                 {% if Layout.MainBottom %}
  166.                     <div class="ec-layoutRole__mainBottom">
  167.                         {{ include('block.twig', {'Blocks': Layout.MainBottom}) }}
  168.                     </div>
  169.                 {% endif %}
  170.             {% endif %}
  171.             {% set request_uri = app.request.server.get('REQUEST_URI') %}
  172.             {% if request_uri == '/'  %}
  173.             {# request_uriの内容を出力する #}
  174.             {% endif %}
  175.         </div>
  176.         {# Layout: SIDE_RIGHT #}
  177.         {% if Layout.SideRight %}
  178.             <div class="ec-layoutRole__right">
  179.                 {{ include('block.twig', {'Blocks': Layout.SideRight}) }}
  180.             </div>
  181.         {% endif %}
  182.     </div>
  183.     {# Layout: CONTENTS_BOTTOM #}
  184.     {% if Layout.ContentsBottom %}
  185.         <div class="ec-layoutRole__contentBottom">
  186.             {{ include('block.twig', {'Blocks': Layout.ContentsBottom}) }}
  187.         </div>
  188.     {% endif %}
  189.     {# Layout: CONTENTS_FOOTER #}
  190.     {% if Layout.Footer %}
  191.         <div class="ec-layoutRole__footer">
  192.             {{ include('block.twig', {'Blocks': Layout.Footer}) }}
  193.         </div>
  194.     {% endif %}
  195.     <div class="l-background"></div>
  196. </div><!-- ec-layoutRole -->
  197. <div class="ec-overlayRole"></div>
  198. <div class="ec-drawerRoleClose">
  199.     <div class="ec-headerNavSPContainer">
  200.         <i class="fas fa-times"></i><span>閉じる</span>
  201.     </div>
  202. </div>
  203. <div class="ec-drawerRole">
  204.     {# Layout: DRAWER #}
  205.     {% if Layout.Drawer %}
  206.         {{ include('block.twig', {'Blocks': Layout.Drawer}) }}
  207.     {% endif %}
  208. </div>
  209. <div class="ec-blockTopBtn pagetop">{{'▲'|trans}}</div>
  210. <script src="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js" integrity="sha384-aJ21OjlMXNL5UyIl/XNwTMqvzeRMZH2w8c5cRVpzpU8Y5bApTppSuUkhZXN0VxHd" crossorigin="anonymous"></script>
  211. <script src="https://cdn.jsdelivr.net/jquery.slick/1.6.0/slick.min.js"></script>
  212. {% include('@common/lang.twig') %}
  213. <script src="{{ asset('assets/js/function.js') }}"></script>
  214. <script src="{{ asset('assets/js/eccube.js') }}"></script>
  215. {% block javascript %}{% endblock %}
  216. {# Layout: CLOSE_BODY_BEFORE #}
  217. {% if Layout.CloseBodyBefore %}
  218.     {{ include('block.twig', {'Blocks': Layout.CloseBodyBefore}) }}
  219. {% endif %}
  220. {# プラグイン用Snippet #}
  221. {% if plugin_snippets is defined %}
  222.     {{ include('snippet.twig', { snippets: plugin_snippets }) }}
  223. {% endif %}
  224.     <script src="{{ asset('assets/js/customize.js', 'user_data') }}"></script>
  225. </body>
  226. </html>