app/template/aneros2023/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.     <meta charset="utf-8">
  12.     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  13.     <meta name="eccube-csrf-token" content="{{ csrf_token(constant('Eccube\\Common\\Constant::TOKEN_NAME')) }}">
  14. {% set path  = app.request.getPathInfo()|default('') %}
  15. {% set route = app.request.attributes.get('_route')|default('') %}
  16. {# LP pages only #}
  17. {% set is_lp_page = (path == '/lp') or (path starts with '/lp/') %}
  18. {# URL param override (useful if you ever need it) #}
  19. {% set lp_param = app.request.query.get('lp')|default('') %}
  20. {% set is_lp_param = (lp_param == '1') %}
  21. {# Session flag set by LP controller #}
  22. {% set lp_session = app.session.get('lp_flow')|default('') %}
  23. {% set is_lp_session = (lp_session == '1') %}
  24. {# ✅ Only these routes should be "LP flow" once user leaves /lp/* #}
  25. {% set lp_checkout_routes = [
  26.   'shopping',
  27.   'shopping_shipping',
  28.   'shopping_nonmember',
  29.   'shopping_shipping_edit',
  30.   'shopping_error',
  31.   'shopping_confirm',
  32.   'shopping_complete',
  33.   'amazon_pay_shopping',
  34.   'shopping_redirect_to',
  35.   'plugin_stripe_credit_card',
  36.   'plugin_stripe_konbini',
  37.   'plugin_stripe_payment_method_detach',
  38.   'plugin_stripe_payment_gateway_payment',
  39.   'plugin_stripe_pr_shipping',
  40.   'plugin_stripe_pr_pay',
  41.   'plugin_stripe_confirm_intent',
  42.   'plugin_stripe_payment_gateway_webhook',
  43.   'amazon_pay_shopping_confirm',
  44.   'shopping_checkout',
  45.   'amazon_checkout_review',
  46.   'paidy_confirm',
  47.   'paidy_complete',
  48.   'get_stripe_public_key',
  49.   'submit_stripe_shopping',
  50.   'payment_callback',
  51.   'payment_success',
  52.   'payment_error'
  53. ] %}
  54. {% set is_lp_checkout_route = route in lp_checkout_routes %}
  55. {# ✅ medical flow is: LP page OR (checkout route AND came from LP) #}
  56. {% set is_medical_flow = is_lp_page or (is_lp_checkout_route and (is_lp_param or is_lp_session)) %}
  57. {#
  58.     <title>
  59.         {% if Page.url == "homepage" %}
  60.             アネロスジャパン | ANEROS JAPAN
  61.         {% else %}
  62.             {% if subtitle is defined and subtitle is not empty %}{{ subtitle }} | {% elseif title is defined and title is not empty %}{{ title }} | {% endif %}アネロスジャパン | ANEROS JAPAN
  63.         {% endif %}
  64.     </title>
  65. #}
  66.     <title>
  67.         {% if is_medical_flow %}
  68.             {% if subtitle is defined and subtitle is not empty %}
  69.                 {{ subtitle }}
  70.             {% elseif title is defined and title is not empty %}
  71.                 {{ title }}
  72.             {% else %}
  73.                 前立腺セルフケア
  74.             {% endif %}
  75.         {% else %}
  76.             {% if Page.url == "homepage" %}
  77.                 アネロスジャパン | ANEROS JAPAN
  78.             {% else %}
  79.                 {% if subtitle is defined and subtitle is not empty %}{{ subtitle }} | {% elseif title is defined and title is not empty %}{{ title }} | {% endif %}アネロスジャパン | ANEROS JAPAN
  80.             {% endif %}
  81.         {% endif %}
  82.     </title>
  83. {#
  84.     {#
  85.     <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>
  86.     #}
  87.     {% if Page.author is not empty %}
  88.         <meta name="author" content="{{ Page.author }}">
  89.     {% endif %}
  90.     {% if Page.description is not empty %}
  91.         <meta name="description" content="{{ Page.description }}">
  92.     {% endif %}
  93.     {% if Page.keyword is not empty %}
  94.         <meta name="keywords" content="{{ Page.keyword }}">
  95.     {% endif %}
  96.     {% if Page.meta_robots is not empty %}
  97.         <meta name="robots" content="{{ Page.meta_robots }}">
  98.     {% endif %}
  99.     {% if Page.meta_tags is not empty %}
  100.         {{ include(template_from_string(Page.meta_tags)) }}
  101.     {% endif %}
  102.     <link rel="icon" href="{{ asset('assets/img/common/favicon.ico', 'user_data') }}">
  103. {#
  104.     <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css" integrity="sha384-HSMxcRTRxnN+Bdg0JdbxYKrThecOKuH5zCYotlSAcp1+c8xmyTe9GYg1l9a69psu" crossorigin="anonymous">
  105.     <script src="https://kit.fontawesome.com/63c5755af8.js" crossorigin="anonymous"></script>
  106. #}
  107.     <link rel="stylesheet" href="{{ asset('aneros/css/all.min.css') }}">
  108. {% if not is_medical_flow %}
  109.     <link rel="stylesheet" href="//cdn.jsdelivr.net/jquery.slick/1.6.0/slick.css">
  110. {% endif %} 
  111.     {# 商品ページでは「style.css」を読み込まない #}
  112.     {% if body_class is not defined or body_class != 'product_page' %}
  113.         <link rel="stylesheet" href="{{ asset('assets/css/style.css?v=20240528') }}">
  114.     {% endif %}
  115.     {# カート、購入ページ、マイページで「shopping.css」を読み込む #}
  116.     {% if Page.url == 'cart' or 'shopping' in Page.url or 'entry' in Page.url or 'mypage' in Page.url or 'contact' in Page.url or 'forgot' in Page.url or 'introduce_friend' in Page.url %}
  117.         <link rel="stylesheet" href="{{ asset('aneros/css/shopping.css?v=20221025') }}">
  118.     {% endif %}
  119.     {# マイページで「mypage.css」を読み込む(マイページログインでは読み込まない) #}
  120.     {% if 'mypage' in Page.url and Page.url != 'mypage_login' or 'contact' in Page.url or 'forgot' in Page.url or 'introduce_friend' in Page.url %}
  121.         <link rel="stylesheet" href="{{ asset('aneros/css/mypage.css?v=20220602') }}">
  122.     {% endif %}
  123.     {# 商品一覧ページ、カテゴリページ(一覧付き)で「product_list.css」を読み込む #}
  124.     {% if Page.url == 'product_list' or Page.url == 'accessories' or Page.url == 'sex-toys-for-men' or Page.url == 'sex-toys-for-women' or Page.url == 'sex-toys-for-couples' or Page.url == 'lubricants' or Page.url == 'masturbators' or Page.url == 'special-offers' or Page.url == 'timesale2024' or Page.url == '2024-xmas-sale' or Page.url == '2025-vday-sale' or Page.url == '2025-gw-sale' or Page.url == '2025-summer-sale' or Page.url == '2025-time-sale' or Page.url == '2025-black-friday-sale' or Page.url == '2025-xmas-sale' or Page.url == '2026-vday-sale' %}
  125.         <link rel="stylesheet" href="{{ asset('aneros/css/product_list.css') }}">
  126.     {% endif %}
  127.     {# その他ページ #}
  128.     {% if  Page.url == 'dr-voice' or Page.url == 'greeting' or Page.url == 'company' or Page.url == 'patent' or Page.url == 'disclaimer' or Page.url == 'privacy' or Page.url == 'terms' or Page.url == 'refund-policy' or Page.url == 'warranty-policy' or Page.url == 'payment' or Page.url == 'shipping' or Page.url == 'faqs' or Page.url == 'help_agreement' or Page.url == 'error404' or Page.url == 'aneros-members' or Page.url == 'help_tradelaw' %}
  129.         <link rel="stylesheet" href="{{ asset('aneros/css/other-page.css') }}">
  130.     {% endif %}
  131.     {# カテゴリページ #}
  132.     {% if Page.url == 'prostate-massagers' or Page.url == 'accessories' or Page.url == 'sex-toys-for-men' or Page.url == 'sex-toys-for-women' or Page.url == 'sex-toys-for-couples' or Page.url == 'lubricants' or Page.url == 'masturbators' or Page.url == 'special-offers' or Page.url == 'trident-series' or Page.url == 'progasm-products' or Page.url == 'timesale2024' or Page.url == '2024-xmas-sale' or Page.url == '2025-vday-sale' or Page.url == '2025-gw-sale' or Page.url == '2025-summer-sale' or Page.url == '2025-time-sale' or Page.url == '2025-black-friday-sale' or Page.url == '2025-xmas-sale' or Page.url == '2026-vday-sale' %}
  133.         <link rel="stylesheet" href="{{ asset('aneros/css/category.css?v=20250822') }}">
  134.     {% endif %}
  135.     {# アネロス講座 #}
  136.     {% if Page.url == 'learning-center' or Page.url == 'learning-center-men' or Page.url == 'learning-center-women' or Page.url == 'learning-center-unisex' %}
  137.         <link rel="stylesheet" href="{{ asset('aneros/css/learning-center.css') }}">
  138.     {% endif %}
  139.     {# LP CSS #}
  140.     {% if is_medical_flow %}
  141.         <link rel="stylesheet" href="{{ asset('aneros/css/lp.css?v=20260123') }}">
  142. <!-- Meta Pixel Code -->
  143. <script>
  144. !function(f,b,e,v,n,t,s)
  145. {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
  146. n.callMethod.apply(n,arguments):n.queue.push(arguments)};
  147. if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
  148. n.queue=[];t=b.createElement(e);t.async=!0;
  149. t.src=v;s=b.getElementsByTagName(e)[0];
  150. s.parentNode.insertBefore(t,s)}(window, document,'script',
  151. 'https://connect.facebook.net/en_US/fbevents.js');
  152. fbq('init', '1219774326333240');
  153. fbq('track', 'PageView');
  154. </script>
  155. <noscript><img height="1" width="1" style="display:none"
  156. src="https://www.facebook.com/tr?id=1219774326333240&ev=PageView&noscript=1"
  157. /></noscript>
  158. <!-- End Meta Pixel Code -->
  159.         <script src="{{ asset('aneros/js/lp.js?v=20260123A') }}"></script>
  160.     {% endif %}    
  161.     {# レビュー一覧 #}
  162.     {% if Page.url == 'review_list' %}
  163.         <link rel="canonical" href="{{ url('review_list', {'id': Product.id}) }}" />
  164.     {% endif %}
  165.     
  166.     {# レビュー投稿 #}
  167.     {% if Page.url == 'review_post' %}
  168.         <link rel="canonical" href="{{ url('review_post', {'id': Product.id}) }}" />
  169.     {% endif %}
  170.     {% block stylesheet %}{% endblock %}
  171.     {#<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>#}
  172.     <script src="{{ asset('aneros/modules/jquery/jquery-3.5.1.min.js') }}"></script>
  173.     <script>
  174.         $(function() {
  175.             $.ajaxSetup({
  176.                 'headers': {
  177.                     'ECCUBE-CSRF-TOKEN': $('meta[name="eccube-csrf-token"]').attr('content')
  178.                 }
  179.             });
  180.         });
  181.     </script>
  182.     {# Layout: HEAD #}
  183.     {% if Layout.Head and not is_medical_flow %}
  184.         {{ include('block.twig', {'Blocks': Layout.Head}) }}
  185.     {% endif %}
  186.     {# プラグイン用styleseetやmetatagなど #}
  187.     {% if plugin_assets is defined %}{{ include('@admin/snippet.twig', { snippets: plugin_assets }) }}{% endif %}
  188.     <link rel="stylesheet" href="{{ asset('assets/css/customize.css', 'user_data') }}">
  189. {# Sticky Footer: PDP only #}
  190. {% set route = app.request.attributes.get('_route')|default('') %}
  191. {% if route == 'product_detail' %}
  192.   {# {% include 'abtest/sticky_footer.twig' %} #}
  193.   {% include 'abtest/pdp_value_msg.twig' %}
  194. {% endif %}
  195. </head>
  196. {#
  197. <body id="page_{{ app.request.get('_route') }}" class="{{ body_class|default('other_page') }}">
  198. #}
  199. <body id="page_{{ app.request.get('_route') }}" class="{{ body_class|default('other_page') }}{{ is_medical_flow ? ' is-medical-flow' : '' }}{{ (is_medical_flow and is_lp_checkout_route) ? ' is-lp-flow-checkout' : '' }}">
  200. {# Layout: BODY_AFTER #}
  201. {% if Layout.BodyAfter and not is_medical_flow %}
  202.     {{ include('block.twig', {'Blocks': Layout.BodyAfter}) }}
  203. {% endif %}
  204. <div class="ec-layoutRole">
  205.     {# Layout: HEADER #}
  206.     {% if Layout.Header and not is_medical_flow %}
  207.         {#<div class="ec-layoutRole__header">#}
  208.             {{ include('block.twig', {'Blocks': Layout.Header}) }}
  209.         {#</div>#}
  210.     {% endif %}
  211.     {# Layout: CONTENTS_TOP #}
  212.     {% if Layout.ContentsTop and not is_medical_flow %}
  213.         <div class="ec-layoutRole__contentTop">
  214.             {{ include('block.twig', {'Blocks': Layout.ContentsTop}) }}
  215.         </div>
  216.     {% endif %}
  217.     <div class="ec-layoutRole__contents">
  218.         {# Layout: SIDE_LEFT #}
  219.         {% if Layout.SideLeft and not is_medical_flow %}
  220.             <div class="ec-layoutRole__left">
  221.                 {{ include('block.twig', {'Blocks': Layout.SideLeft}) }}
  222.             </div>
  223.         {% endif %}
  224.         {% set layoutRoleMain = 'ec-layoutRole__main' %}
  225.         {% if Layout.ColumnNum == 2 %}
  226.             {% set layoutRoleMain = 'ec-layoutRole__mainWithColumn' %}
  227.         {% elseif Layout.ColumnNum == 3 %}
  228.             {% set layoutRoleMain = 'ec-layoutRole__mainBetweenColumn' %}
  229.         {% endif %}
  230.         <div class="{{ layoutRoleMain }}">
  231.             {# Layout: MAIN_TOP #}
  232.             {% if Layout.MainTop and not is_medical_flow %}
  233.                 <div class="ec-layoutRole__mainTop">
  234.                     {{ include('block.twig', {'Blocks': Layout.MainTop}) }}
  235.                 </div>
  236.             {% endif %}
  237.             {# MAIN AREA #}
  238.             {# {% block main %}{% endblock %} #}
  239.             {% if is_medical_flow and is_lp_checkout_route %}
  240.                 <div class="lp-flowWrap">
  241.             {% endif %}
  242.             {% block main %}{% endblock %}
  243.             
  244.             {% if is_medical_flow and is_lp_checkout_route %}
  245.               {% include 'lp/_footer_notes.twig' %}
  246.             {% endif %}
  247.             
  248.             {% if is_medical_flow and is_lp_checkout_route %}
  249.                 </div>
  250.             {% endif %}
  251.             {# Layout: MAIN_Bottom #}
  252.             {% if Layout.MainBottom and not is_medical_flow %}
  253.                 <div class="ec-layoutRole__mainBottom">
  254.                     {{ include('block.twig', {'Blocks': Layout.MainBottom}) }}
  255.                 </div>
  256.             {% endif %}
  257.         </div>
  258.         {# Layout: SIDE_RIGHT #}
  259.         {% if Layout.SideRight and not is_medical_flow %}
  260.             <div class="ec-layoutRole__right">
  261.                 {{ include('block.twig', {'Blocks': Layout.SideRight}) }}
  262.             </div>
  263.         {% endif %}
  264.     </div>
  265.     {# Layout: CONTENTS_BOTTOM #}
  266.     {% if Layout.ContentsBottom and not is_medical_flow %}
  267.         <div class="ec-layoutRole__contentBottom">
  268.             {{ include('block.twig', {'Blocks': Layout.ContentsBottom}) }}
  269.         </div>
  270.     {% endif %}
  271.     {# Layout: CONTENTS_FOOTER #}
  272.     {% if Layout.Footer and not is_medical_flow %}
  273.         <div class="ec-layoutRole__footer">
  274.             {{ include('block.twig', {'Blocks': Layout.Footer}) }}
  275.         </div>
  276.     {% endif %}
  277. </div><!-- ec-layoutRole -->
  278. <div class="ec-overlayRole"></div>
  279. {#<div class="ec-drawerRoleClose"><i class="fas fa-times"></i></div>#}
  280. <div class="ec-drawerRole">
  281.     {# Layout: DRAWER #}
  282.     {% if Layout.Drawer and not is_medical_flow %}
  283.         {{ include('block.twig', {'Blocks': Layout.Drawer}) }}
  284.     {% endif %}
  285. </div>
  286. {#<div class="ec-blockTopBtn pagetop">{{'ページトップへ'|trans}}</div>#}
  287. {% if not is_medical_flow %}
  288. <style>
  289. #r18overlay ,#r18overlay .overlay_back {
  290.     height:100vh;
  291. }
  292. #r18overlay {
  293.     margin:0;
  294.     padding:0;
  295.     font-family:メイリオ,ヒラギノ角ゴ Pro W3,MS Pゴシック,Osaka,Meiryo,sans-serif;
  296.     z-index: 1000;
  297.     position: absolute;
  298.     top: 0;
  299.     bottom: 0;
  300.     left: 0;
  301.     right: 0;
  302. }
  303. #r18overlay .overlay_back {
  304.     background:#ffffff;
  305. }
  306. #r18overlay .age_c {
  307.     position: absolute;
  308.     top: 0;
  309.     left: 0;
  310.     right: 0;
  311.     bottom: 0;
  312.     margin: 0 auto;
  313.     width: 100%;
  314.     text-align:center;
  315.     padding:0;
  316. }
  317. #r18overlay .age_c p {
  318.     font-size:14px;
  319.     margin-bottom:20px;
  320.     color:#000000;
  321. }
  322. #r18overlay .age_c #age_c_hd{
  323.     background-color:#111111;
  324.     color:#ffffff;
  325.     padding:5px 0;
  326.     font-weight:bold;
  327.     margin-bottom:20px;
  328.     font-size:14px;
  329. }
  330. #r18overlay .age_c #age_c_logo img{
  331.     max-width: 600px;
  332.     width:100%;
  333.     margin: 0 auto 5px;
  334. }
  335. #r18overlay .age_c #age_c_logo p.r18_slogan{
  336.     letter-spacing:3px;
  337.     color:#000000;
  338.     font-size:21px;
  339. }
  340. #r18overlay .age_c ul.r18_buttons {
  341.     display:flex;
  342.     flex-flow: row no-wrap;
  343.     justify-content: center;
  344. }
  345. #r18overlay .age_c ul.r18_buttons li.no-button {
  346.     margin-left:10px;
  347. }
  348. #r18overlay .age_c #age_c_ft{
  349.     background-color:#111111;
  350.     color:#ffffff;
  351.     padding:5px 0;
  352.     font-weight:bold;
  353.     margin-bottom:20px;
  354.     font-size:12px;
  355.     margin-top:50px;
  356. }
  357. @media only screen and (max-width: 999px) {
  358.     #r18overlay .age_c ul.r18_buttons {
  359.         flex-direction:column;
  360.         align-items:center;
  361.     }
  362.     #r18overlay .age_c ul.r18_buttons li.no-button {
  363.         margin-top:10px;
  364.         margin-left:0;
  365.     }
  366.     #r18overlay .age_c ul.r18_buttons img {
  367.         max-width:100%;
  368.     }
  369. }
  370. @media only screen and (max-width: 487px) {
  371.     #r18overlay .age_c #age_c_logo, #r18overlay .age_c p, #r18overlay .age_c ul.r18_buttons {
  372.         padding:0 10px;
  373.     }
  374.     #r18overlay .age_c p {
  375.         font-size:12px;
  376.     }
  377.     #r18overlay .age_c #age_c_logo p.r18_slogan{
  378.         letter-spacing:2px;
  379.         font-size:16px;
  380.     }
  381. }
  382. </style>
  383. <div id="r18overlay" style="display: none;">
  384. <div class="overlay_back">
  385. </div>
  386. <div class="age_c">
  387.     <div id="age_c_hd">
  388.         ANEROS公式ウェブサイト - アネロスジャパン
  389.     </div>
  390.     <div id="age_c_logo">
  391.         <img src="/html/template/aneros2023/aneros/img/age_c/age_c_logo.jpg" alt="ANEROS JAPAN" title="ANEROS JAPAN" />
  392.         <p class="r18_slogan">アネロス以外はただのおもちゃさ!</p>
  393.     </div>
  394.     <p>
  395.         当サイトは、一部成人を対象とした表現が含まれています。<br />
  396.         18歳以上の方は各自の責任の上でご覧ください。<br />
  397.         また、18歳未満の方はここから先のアクセスを固くお断りいたします。<br />
  398.     </p>
  399.     <ul class="r18_buttons">
  400.         <li><a href="#" class="yes_button"><img src="/html/template/aneros2023/aneros/img/age_c/age_c_enter.jpg" alt="18歳以上の方/ENTER" title="ENTER" /></a></li>
  401.         <li class="no-button"><a href="https://www.google.co.jp" target="_blank"><img src="/html/template/aneros2023/aneros/img/age_c/age_c_exit.jpg" alt="18歳未満の方/EXIT" title="EXIT" /></a></li>
  402.     </ul>
  403.     <div id="age_c_ft">
  404.         Copyright © 2005-2026 Aneros Japan All Rights Reserved<br />
  405.         無店舗型性風俗特殊営業(千葉県公安委員会)受理番号第51号<br />
  406.     </div>
  407.     </div>
  408. </div>
  409. </div>
  410. {% endif %}
  411. {#
  412. <script src="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js" integrity="sha384-aJ21OjlMXNL5UyIl/XNwTMqvzeRMZH2w8c5cRVpzpU8Y5bApTppSuUkhZXN0VxHd" crossorigin="anonymous"></script>
  413. #}
  414. <script src="https://cdn.jsdelivr.net/jquery.slick/1.6.0/slick.min.js"></script>
  415. {% include('@common/lang.twig') %}
  416. <script src="{{ asset('assets/js/function.js') }}"></script>
  417. <script src="{{ asset('assets/js/eccube.js') }}"></script>
  418. {% block javascript %}{% endblock %}
  419. {# Layout: CLOSE_BODY_BEFORE #}
  420. {% if Layout.CloseBodyBefore and not is_medical_flow %}
  421.     {{ include('block.twig', {'Blocks': Layout.CloseBodyBefore}) }}
  422. {% endif %}
  423. {# プラグイン用Snippet #}
  424. {% if plugin_snippets is defined %}
  425.     {{ include('snippet.twig', { snippets: plugin_snippets }) }}
  426. {% endif %}
  427.     <script src="{{ asset('assets/js/customize.js', 'user_data') }}"></script>
  428.     {# カート、購入ページで「shopping.js」を読み込む #}
  429.     {% if Page.url == 'cart' or Page.url == 'shopping_login' or Page.url == 'shopping' %}
  430.         <script src="{{ asset('aneros/js/shopping.js?v=20230331A') }}"></script>
  431.     {% endif %}
  432. </body>
  433. </html>