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. {% set current_path = app.request.get('_route') %}
  10. {# パンクズの一括管理 #}
  11. {% if BreadCrumbs is not defined  %}
  12.     {% set BreadCrumbs = ['none']  %}
  13. {% endif %}
  14. <html lang="{{ eccube_config.locale }}">
  15. <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# product: http://ogp.me/ns/product#">
  16.     <meta charset="utf-8">
  17.     {% if wannaSeePc() %}
  18.     <meta name="viewport" content="width=990, initial-scale=1, shrink-to-fit=no">
  19.     {% else %}
  20.     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  21.     {% endif %}
  22.     <meta name="eccube-csrf-token" content="{{ csrf_token(constant('Eccube\\Common\\Constant::TOKEN_NAME')) }}">
  23.     {% include 'Common/canonical.twig' %}
  24.     {% if MetaTags is not defined  %}
  25.         {% set MetaTags = []  %}
  26.     {% endif %}
  27.     {{ SetMetaTags(MetaTags)|raw}}
  28.     <meta name="sentry-trace" content="{{ getToTraceParent() }}" />
  29.     <meta name="baggage" content="sentry-trace_id={{ getTrackId() }}" />
  30.     {#% if Page.meta_tags is not empty %}
  31.         {{ include(template_from_string(Page.meta_tags)) }}
  32.         {% if Page.description is not empty %}
  33.             <meta name="description" content="{{ Page.description }}">
  34.         {% endif %}
  35.     {% else %}
  36.         {{ include('meta.twig') }}
  37.     {% endif %#}
  38.     {# 全ページ共通メタタグ #}
  39.     <link rel="shortcut icon" href="https://img0.land-mark.biz/ut_img/public_images/favicon.ico">
  40.     <link rel="apple-touch-icon" href="https://img0.land-mark.biz/ut_img/public_images/apple-touch-icon.png">
  41.     <link rel="icon" type="image/png" href="https://img0.land-mark.biz/ut_img/public_images/android-chrome-256x256.png">
  42.     <link rel="stylesheet" rel="dns-prefetch" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css" integrity="sha384-HSMxcRTRxnN+Bdg0JdbxYKrThecOKuH5zCYotlSAcp1+c8xmyTe9GYg1l9a69psu" crossorigin="anonymous">
  43.     <link rel="stylesheet" rel="dns-prefetch" href="https://use.fontawesome.com/releases/v5.6.1/css/all.css">
  44.     <link rel="stylesheet" href="{{ asset('assets/css/style.min.css') }}?v=20240313">
  45.     {{ LmCssList()|raw }}
  46.     {% include 'init/stylesheet.twig' %}
  47.     {% block stylesheet %}{% endblock %}
  48.     <script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
  49.     <script>
  50.         $(function() {
  51.             $.ajaxSetup({
  52.                 'headers': {
  53.                     'ECCUBE-CSRF-TOKEN': $('meta[name="eccube-csrf-token"]').attr('content')
  54.                 }
  55.             });
  56.         });
  57.     </script>
  58.     {# Layout: HEAD #}
  59.     {% if Layout.Head %}
  60.         {{ include('block.twig', {'Blocks': Layout.Head}) }}
  61.     {% endif %}
  62.     {# プラグイン用styleseetやmetatagなど #}
  63.     {% if plugin_assets is defined %}{{ include('@admin/snippet.twig', { snippets: plugin_assets }) }}{% endif %}
  64.    {# <link rel="stylesheet" href="{{ asset('assets/css/customize.css', 'user_data') }}"> #}
  65.     {% include 'Common/dataLayer.twig' %}
  66.     {% if php_env('APP_ENV') == 'prod' %}
  67.         <!-- Google Tag Manager -->
  68.         <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
  69.                     new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
  70.                 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
  71.                 '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
  72.             })(window,document,'script','dataLayer','GTM-5259DT');</script>
  73.         <!-- End Google Tag Manager -->
  74.     {% else %}
  75.         <!-- Google Tag Manager -->
  76.         <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
  77.                     new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
  78.                 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
  79.                 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
  80.             })(window,document,'script','dataLayer','GTM-TJ2GNKW');</script>
  81.         <!-- End Google Tag Manager -->
  82.     {% endif %}
  83. </head>
  84. <body id="page_{{ app.request.get('_route') }}" class="{{ body_class|default('other_page') }}">
  85. {% spaceless %}
  86. {% if php_env('APP_ENV') == 'prod' %}
  87. <!-- Google Tag Manager -->
  88. <noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-5259DT"
  89.                   height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
  90. <!-- End Google Tag Manager -->
  91. {% else %}
  92. <!-- Google Tag Manager (noscript) -->
  93. <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-TJ2GNKW"
  94.                   height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
  95. <!-- End Google Tag Manager (noscript) -->
  96. {% endif %}
  97. {% if wannaSeePc() %}
  98. <div>
  99.     <a id="to-sp-page" href="/?device_view=mobile">
  100.         <img alt="スマートフォンサイトを表示" src="https://img0.land-mark.biz/ut_img/public_images/sp/to_sp.jpg">
  101.     </a>
  102. </div>
  103. {% endif %}
  104. {# Layout: BODY_AFTER #}
  105. {% if Layout.BodyAfter %}
  106.     {{ include('block.twig', {'Blocks': Layout.BodyAfter}) }}
  107. {% endif %}
  108. <div class="ec-layoutRole">
  109.     <div id="header">
  110.         {# Layout: HEADER #}
  111.         {% if Layout.Header %}
  112.             <div class="ec-layoutRole__header">
  113.                 {{ include('block.twig', {'Blocks': Layout.Header}) }}
  114.             </div>
  115.         {% endif %}
  116.         {# Layout: CONTENTS_TOP #}
  117.         {% if Layout.ContentsTop %}
  118.             <div class="ec-layoutRole__contentTop" id="header-4">
  119.                 {{ include('block.twig', {'Blocks': Layout.ContentsTop}) }}
  120.             </div>
  121.         {% endif %}
  122.         {# LM: After contents_top. #}
  123.         {% block lm_after_contents_top %}{% endblock %}
  124.     </div>
  125.     <div id="contents_wrapper">
  126.     <div class="ec-layoutRole__contents">
  127.         {# Layout: SIDE_LEFT #}
  128.         {% if Layout.SideLeft %}
  129.             <div class="ec-layoutRole__left" id="lmenu" data-layout="calendar_layout">
  130.                 {{ include('block.twig', {'Blocks': Layout.SideLeft}) }}
  131.             </div>
  132.         {% endif %}
  133.         {% set layoutRoleMain = 'ec-layoutRole__main' %}
  134.         {% if Layout.ColumnNum == 2 %}
  135.             {% set layoutRoleMain = 'ec-layoutRole__mainWithColumn' %}
  136.         {% elseif Layout.ColumnNum == 3 %}
  137.             {% set layoutRoleMain = 'ec-layoutRole__mainBetweenColumn' %}
  138.         {% endif %}
  139.         <div class="{{ layoutRoleMain }}" id="contents">
  140.             {# Layout: MAIN_TOP #}
  141.             {% if Layout.MainTop %}
  142.                 <div class="ec-layoutRole__mainTop">
  143.                     {{ include('block.twig', {'Blocks': Layout.MainTop}) }}
  144.                 </div>
  145.             {% endif %}
  146.             {# MAIN AREA #}
  147.             {% set current_path = app.request.get('_route') %}
  148.             {% set paths_use_custom_breadcrumb = ['estimate', 'estimate_with_id', 'cart', 'shopping_login'] %}
  149.             {% if (current_path == 'item/detail' and isMobile is defined and isMobile) or current_path in paths_use_custom_breadcrumb %}
  150.             {% else %}
  151.             {{ SetBreadCrumb(BreadCrumbs)|raw}}
  152.             {% endif %}
  153.             {% block main %}{% endblock %}
  154.             {# Layout: MAIN_Bottom #}
  155.             {% if Layout.MainBottom %}
  156.                 <div class="ec-layoutRole__mainBottom">
  157.                     {{ include('block.twig', {'Blocks': Layout.MainBottom}) }}
  158.                 </div>
  159.             {% endif %}
  160.         </div>
  161.         {# Layout: SIDE_RIGHT #}
  162.         {% if Layout.SideRight %}
  163.             <div class="ec-layoutRole__right">
  164.                 {{ include('block.twig', {'Blocks': Layout.SideRight}) }}
  165.             </div>
  166.         {% endif %}
  167.     </div>
  168.     <div class="ec-layoutRole__contentBottom">
  169.         {# LM: Before contents_bottom. #}
  170.         {% block lm_before_contents_bottom %}{% endblock %}
  171.         {# Layout: CONTENTS_BOTTOM #}
  172.         {% if Layout.ContentsBottom %}
  173.             {{ include('block.twig', {'Blocks': Layout.ContentsBottom}) }}
  174.         {% endif %}
  175.     </div>
  176.     </div>
  177.     {# Layout: CONTENTS_FOOTER #}
  178.     {% if Layout.Footer and (isHiddenOnEstimateMobile is not defined or isHiddenOnEstimateMobile == false) %}
  179.         <div class="ec-layoutRole__footer" id="footer">
  180.             {{ include('block.twig', {'Blocks': Layout.Footer}) }}
  181.         </div>
  182.     {% endif %}
  183.     {% block lm_estimate_footer %}{% endblock %}
  184. </div><!-- ec-layoutRole -->
  185. <div class="ec-overlayRole"></div>
  186. <div class="ec-drawerRoleClose"><i class="fas fa-times"></i></div>
  187. <div class="ec-drawerRole">
  188.     {# Layout: DRAWER #}
  189.     {% if Layout.Drawer %}
  190.         {{ include('block.twig', {'Blocks': Layout.Drawer}) }}
  191.     {% endif %}
  192. </div>
  193. {#<div class="ec-blockTopBtn pagetop">{{'common.pagetop'|trans}}</div>#}
  194. <script async defer type="text/javascript" src="/javascripts/item.js?20230228_01"></script>
  195. <script src="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js" integrity="sha384-aJ21OjlMXNL5UyIl/XNwTMqvzeRMZH2w8c5cRVpzpU8Y5bApTppSuUkhZXN0VxHd" crossorigin="anonymous"></script>
  196. <script src="https://cdn.jsdelivr.net/jquery.slick/1.6.0/slick.min.js"></script>
  197. {% include('@common/lang.twig') %}
  198. <script async src="{{ asset('assets/js/function.js') }}"></script>
  199. <script async src="{{ asset('assets/js/eccube.js') }}"></script>
  200. {% include 'init/javascript.twig' %}
  201. {% block javascript %}{% endblock %}
  202. {# Layout: CLOSE_BODY_BEFORE #}
  203. {% if Layout.CloseBodyBefore %}
  204.     {{ include('block.twig', {'Blocks': Layout.CloseBodyBefore}) }}
  205. {% endif %}
  206. {# プラグイン用Snippet #}
  207. {% if plugin_snippets is defined %}
  208.     {{ include('snippet.twig', { snippets: plugin_snippets }) }}
  209. {% endif %}
  210.     {# <script src="{{ asset('assets/js/customize.js', 'user_data') }}"></script> #}
  211. <script>
  212.     if ('serviceWorker' in navigator) {
  213.         window.addEventListener('load', function() {
  214.             navigator.serviceWorker.register('/javascripts/workers/service-worker.js?20240129').then(function(registration) {
  215.                 console.log('ServiceWorker registration successful with scope: ', registration.scope);
  216.             }, function(err) {
  217.                 console.log('ServiceWorker registration failed: ', err);
  218.             });
  219.         });
  220.     }
  221.     $('a[href^="tel:"]').on('click', function (e) {
  222.         var fromUrl = window.location.href;
  223.         $.ajax({
  224.             type: "POST",
  225.             url: "{{ url('ajax_karte_tel_inquiry') }}",
  226.             data: {
  227.                 fromUrl: fromUrl
  228.             },
  229.             dataType: 'json'
  230.         }).done(function(response) {
  231.             if (response && response.data && response.data.script) {
  232.                 var script = JSON.parse(response.data.script);
  233.                 script = script.replace(/\\\//g, "/");
  234.                 $('body').append(script);
  235.             }
  236.         });
  237.     });
  238. </script>
  239. {% endspaceless %}
  240. </body>
  241. </html>