app/template/default/Entry/index.twig line 1

Open in your IDE?
  1. {#
  2. カスタマイズTwig
  3. #}
  4. {% extends 'default_frame.twig' %}
  5. {% set body_class = 'registration_page' %}
  6. {% form_theme form 'Form/form_div_layout.twig' %}
  7. {% block stylesheet %}
  8. <style>
  9.     #entry_company_name {
  10.         width: 100%;
  11.     }
  12.     .form_comments {
  13.         font-size: 12px;
  14.         color: #525263;
  15.         margin: 3px 0px 3px 0px;
  16.         font-weight: normal;
  17.         line-height: 2;
  18.     }
  19.     .ec-checkbox label {
  20.         font-weight: normal;
  21.     }
  22.     .ec-registerRole .ec-registerRole__actions {
  23.         text-align: left;
  24.         padding-top: 0px;
  25.     }
  26.     .related_line {
  27.         background-color: #F5F5F5;
  28.         padding: 16px 10px;
  29.         font-size: 14px;
  30.         margin: 12px 0px 24px 0px;
  31.     }
  32.     .progress_bar_step {
  33.         margin: 0 auto;
  34.         max-width: 280px;
  35.         padding: 18px 0;
  36.     }
  37.     @media only screen and (max-width: 767px) {
  38.         .progress_bar_step {
  39.             max-width: 230px;
  40.         }
  41.     }
  42. </style>
  43. {% endblock %}
  44. {% block javascript %}
  45.     <script>
  46.         $(function() {
  47.             var userAgent = navigator.userAgent.toLowerCase();
  48.             var isInstagramOrFacebook = userAgent.includes("instagram") || userAgent.includes("facebook");
  49.              const passwordField = document.getElementById("entry_plain_password");
  50.             const toggleLink = document.getElementById("show_password");
  51.             if (passwordField && toggleLink) {
  52.                 toggleLink.addEventListener("click", function(event) {
  53.                     event.preventDefault();
  54.                     if (passwordField.type === "password") {
  55.                         passwordField.type = "text";
  56.                         toggleLink.textContent = "パスワードを非表示";
  57.                     } else {
  58.                         passwordField.type = "password";
  59.                         toggleLink.textContent = "パスワードを表示";
  60.                     }
  61.                 });
  62.             }
  63.             var hasValue = false;
  64.             $("input[type='text']").each(function() {
  65.                 if ($(this).val().trim() !== "") {
  66.                     hasValue = true;
  67.                     return false; // ループを抜ける
  68.                 }
  69.             });
  70.             {% set current_domain = app.request.getHost() %}
  71.             {% set is_prod = 'web-order.shikomel.com' in current_domain %}
  72.             {% set is_stg = 'web-order-stg.shikomel.com' in current_domain %}
  73.             // 会員情報入力画面の表示イベント
  74.             {% if is_prod %}
  75.                 fbq('trackCustom', 'ce_show_entry', {
  76.                     content_type: "ShowEntry",
  77.                     value: 63
  78.                 });
  79.                 window.dataLayer.push({
  80.                     event: 'ce_show_entry',
  81.                     custom_event_name: 'ce_show_entry',
  82.                     custom_customer_id: '',
  83.                     custom_user_agent: $("#user_agent").val(),
  84.                     custom_is_ig: $("#is_ig").val(),
  85.                     custom_is_line: $("#is_line").val(),
  86.                     custom_referer: $("#referer").val(),
  87.                     custom_real_ip: $("#real_ip").val(),
  88.                 });
  89.                 _lt('send', 'cv', {
  90.                     type: 'ce_show_entry'
  91.                 },['d6fb195c-aa19-4109-8ea0-7b1d883fb349']);
  92.                 $('#input_entry').click(function() {
  93.                     // 会員情報入力確定
  94.                     fbq('trackCustom', 'ce_inputed_entry', {
  95.                         content_type: "InputedEntry",
  96.                         value: 65
  97.                     });
  98.                     window.dataLayer.push({
  99.                         event: 'ce_inputed_entry',
  100.                         custom_event_name: 'ce_inputed_entry',
  101.                         custom_customer_id: '',
  102.                         custom_user_agent: $("#user_agent").val(),
  103.                         custom_is_ig: $("#is_ig").val(),
  104.                         custom_is_line: $("#is_line").val(),
  105.                         custom_referer: $("#referer").val(),
  106.                         custom_real_ip: $("#real_ip").val(),
  107.                     });
  108.                     _lt('send', 'cv', {
  109.                         type: 'ce_inputed_entry'
  110.                     },['d6fb195c-aa19-4109-8ea0-7b1d883fb349']);
  111.                 });
  112.             {% endif %}
  113.             const requiredInputs = document.querySelectorAll("input[required]");
  114.             const button = document.getElementById("submit_btn");
  115.             const checkbox = document.getElementById("entry_user_policy_check");
  116.             function toggleButton() {
  117.                 // 全ての input に値が入っているかチェック
  118.                 const allFilled = Array.from(requiredInputs).every(input => input.value.trim() !== "");
  119.                 const isCheckboxChecked = checkbox.checked;
  120.     
  121.                 if (allFilled && isCheckboxChecked) {
  122.                     button.classList.remove("disabled"); // クラス削除で有効化
  123.                 } else {
  124.                     button.classList.add("disabled"); // クラス追加で無効化
  125.                 }
  126.             }
  127.             // 全ての input にイベントリスナーを設定
  128.             requiredInputs.forEach(input => input.addEventListener("input", toggleButton));
  129.             // 画面表示時に処理実行
  130.             toggleButton();
  131.         });
  132.     </script>
  133.     {% if is_prod %}
  134.     <!-- Ptengine Tag -->
  135.     <script src="https://js.ptengine.jp/21yt6a2v.js">
  136.     </script>
  137.     <!-- End Ptengine Tag -->
  138.     {% endif %}
  139.     
  140. {% endblock javascript %}
  141. {% block main %}
  142.     <div class="ec-registerRole">
  143.         <div class="ec-pageHeader">
  144.             <h1 style="margin-top: 10px; margin-bottom: 10px; border-top: none; border-bottom: 1px solid #ccc;">会員登録(無料)</h1>
  145.         </div>
  146.         <div class="progress_bar_step">
  147.             <img src="{{ asset('assets/img/common/entry_progress_step1.png', 'user_data') }}">
  148.         </div>
  149.         <div class="ec-off1Grid" style="max-width: 430px; margin: auto;">
  150.             <div class="">
  151.                 <form method="post" action="{{ url('entry') }}" class="h-adr formByMailArea" id="form">
  152.                     {% if isFromLine %}
  153.                     <div class="related_line">
  154.                         LINEアカウントと連携しました。<br>
  155.                         会員登録完了で、クーポンを獲得できます。
  156.                     </div>
  157.                     {% endif %}
  158.                     <span class="p-country-name" style="display:none;">Japan</span>
  159.                     {{ form_widget(form._token) }}
  160.                     <div class="">
  161.                         <dl>
  162.                             <dt>
  163.                                 {{ form_label(form.email, 'メールアドレス', { 'label_attr': { 'class': 'ec-label' }}) }}
  164.                             </dt>
  165.                             <dd>
  166.                                 <div class="ec-input{{ has_errors(form.email) ? ' error' }}">
  167.                                     {{ form_widget(form.email, { 'attr': { 'placeholder': 'shikomel-store@gmail.com' }}) }}
  168.                                     {{ form_errors(form.email) }}
  169.                                 </div>
  170.                             </dd>
  171.                         </dl>
  172.                         {% if isFromLine %}
  173.                         {# Line連携ログインの場合はパスワード共通のダミーを設定する #}
  174.                         {{ form_widget(form.plain_password, { type : 'hidden', value : dummyPass }) }}
  175.                         {% else %}
  176.                         <dl>
  177.                             <dt>
  178.                                 {{ form_label(form.plain_password, 'パスワード', { 'label_attr': {'class': 'ec-label' }}) }}
  179.                                 <div class="form_comments">{{ '半角英数記号%min%〜%max%文字'|trans({ '%min%': eccube_config.eccube_password_min_len, '%max%': eccube_config.eccube_password_max_len }) }}<div>
  180.                             </dt>
  181.                             <dd>
  182.                                 <div class="ec-input{{ has_errors(form.plain_password) ? ' error' }}">
  183.                                     {{ form_widget(form.plain_password, {
  184.                                         'attr': { 'placeholder': ''},
  185.                                         'type': 'password'
  186.                                     }) }}
  187.                                     <div style="text-align: right;">
  188.                                         <a id="show_password" href="#" style="top: -5px; position: relative; font-size: 12px; color: #1F9FCB">パスワードを表示</a>
  189.                                     </div>
  190.                                     {{ form_errors(form.plain_password) }}
  191.                                 </div>
  192.                             </dd>
  193.                         </dl>
  194.                         {% endif %}
  195.                         <dl>
  196.                             <dt>
  197.                                 {{ form_label(form.company_name, '店舗名・事業者名', { 'label_attr': { 'class': 'ec-label' }}) }}
  198.                                 <div class="form_comments">当サイトは事業を営む企業、個人の方向けのサービスです。個人事業主の方は屋号または個人名をご入力ください。<div>
  199.                             </dt>
  200.                             <dd>
  201.                                 <div class="ec-halfInput{{ has_errors(form.company_name) ? ' error' }}">
  202.                                     {{ form_widget(form.company_name, { 'attr': { 'placeholder': '株式会社シコメルキッチン' }}) }}
  203.                                     {{ form_errors(form.company_name) }}
  204.                                 </div>
  205.                                 <div style="font-size: 16px; line-height: 1.5;"></div>
  206.                             </dd>
  207.                         </dl>
  208.                     </div>
  209.                     <div class="ec-registerRole__actions">
  210.                         <div class="ec-checkbox{{ has_errors(form.user_policy_check) ? ' error' }}">
  211.                             <label>
  212.                                 {{ form_widget(form.user_policy_check) }}
  213.                                 {{ 'シコメルの<a class="ec-link" href="https://shikomel.com/terms/" target="_blank">利用規約</a>に同意'|raw }}
  214.                             </label>
  215.                             {{ form_errors(form.user_policy_check) }}
  216.                         </div>
  217.                         <div>
  218.                             <button id="submit_btn" class="ec-blockBtn--action disabled" type="submit" id="input_entry" name="mode" value="confirm">{{ '確認へ進む'|trans }}</button>
  219.                         </div>
  220.                     </div>
  221.                     {# 名前、住所等は購入時に入力してもらうように変更 #}
  222.                     <input type="hidden" id="entry_name_name01" name="entry[name][name01]" value="未入力"/>
  223.                     <input type="hidden" id="entry_name_name01" name="entry[name][name02]" value="未入力"/>
  224.                     <input type="hidden" id="entry_kana_kana01" name="entry[kana][kana01]" value="カナ"/>
  225.                     <input type="hidden" id="entry_kana_kana02" name="entry[kana][kana02]" value="カナ"/>
  226.                     <input type="hidden" id="entry_postal_code" name="entry[postal_code]" value="0000000"/>
  227.                     <input type="hidden" id="entry_address_pref" name="entry[address][pref]" value="13"/>
  228.                     <input type="hidden" id="entry_address_addr01" name="entry[address][addr01]" value="未入力"/>
  229.                     <input type="hidden" id="entry_address_addr02" name="entry[address][addr02]" value="未入力"/>
  230.                     <input type="hidden" id="entry_phone_number" name="entry[phone_number]" value="00000000000"/>
  231.                 </form>
  232.             </div>
  233.         </div>
  234.     </div>
  235. {% endblock %}