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

Open in your IDE?
  1. {#
  2. This file is part of EC-CUBE
  3. Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
  4. http://www.ec-cube.co.jp/
  5. For the full copyright and license information, please view the LICENSE
  6. file that was distributed with this source code.
  7. #}
  8. {% extends 'default_frame.twig' %}
  9. {% set body_class = 'registration_page' %}
  10. {% form_theme form 'Form/form_div_layout.twig' %}
  11. {% block stylesheet %}
  12.     <style>
  13.         .dzx-table_row_detail {
  14.             min-width: auto;
  15.             width:100%;
  16.         }
  17.         .bank_branch_list tbody {
  18.             display:block;
  19.             height:195px;
  20.             overflow-y:scroll;
  21.         }
  22.         .bank_branch_list thead, tbody tr {
  23.             display:table;
  24.             width:100%;
  25.             table-layout:fixed;
  26.         }
  27.         .bank_branch_list thead {
  28.             width: calc( 100% - 1em )
  29.         }
  30.         .bank_branch_select {
  31.             padding: 5px;
  32.             font-size: 12px;
  33.         }
  34.         .ec-select select {
  35.             width:100%;
  36.         }
  37.     </style>
  38. {% endblock stylesheet %}
  39. {% block javascript %}
  40.     <script src="//yubinbango.github.io/yubinbango/yubinbango.js" charset="UTF-8"></script>
  41.     <script>
  42.         var sys_AllowIsApp = true;
  43.         $(function() {
  44.             var branchList = null;
  45.             $("#entry_bank_bank_name").on("change", function(){
  46.                 var t = $(this);
  47.                 var bankid = t.val() || '0';
  48.                 branchList=null;
  49.                 $.ajax({
  50.                     type: "POST",
  51.                     url: "/bank/list/" + bankid,
  52.                     data: JSON.stringify({"id": bankid}),
  53.                     dataType : "json",
  54.                 }).done(function(data){
  55.                     var isSelected = false;
  56.                     if(data.status!="OK") return;
  57.                     var opt = $("#bank_branch_code");
  58.                     var txt = $("#entry_bank_branch_code");
  59.                     opt.find("option").remove().end();
  60.                     opt.append('<option value="">支店を選択</option>');
  61.                     $.each(data.data, function(i, dt){
  62.                         var item = $("<option></option>");
  63.                         item.prop("value", dt.id);
  64.                         item.text(dt.name);
  65.                         if( txt.val() == dt.id ){
  66.                             isSelected = true;
  67.                             item.prop("selected", true);
  68.                             $("#entry_bank_branch_code").val( dt.id );
  69.                             $("#bank_branch_id").val(dt.branchCode);
  70.                         }
  71.                         item.data("branchCode", dt.branchCode);
  72.                         opt.append(item);
  73.                     });
  74.                     branchList = data.data;
  75.                     if(!isSelected){
  76.                         $("#entry_bank_branch_code").val("");
  77.                         $("#bank_branch_id").val("");
  78.                     }
  79.                     return true;
  80.                 });
  81.             });
  82.             $("#bank_branch_code").on("change", function(){
  83.                 var opt = $(this).find(":selected");
  84.                 $("#entry_bank_branch_code").val( $(this).val() );
  85.                 $("#bank_branch_id").val(opt.data("branchCode"));
  86.             });
  87.             $("#bank_branch_id").on("keyup", function(){
  88.                 var isSelected = false;
  89.                 var opt = $("#bank_branch_code").find("option");
  90.                 $("#bank_branch_code").find("option").prop("selected", false);
  91.                 $("#entry_bank_branch_code").val("");
  92.                 $.each(opt, function(){
  93.                     var o = $(this);
  94.                     if(o.data("branchCode") == $("#bank_branch_id").val()){
  95.                         o.prop("selected", true);
  96.                         isSelected = true;
  97.                         $("#entry_bank_branch_code").val(o.val());
  98.                     }
  99.                 });
  100.                 if(!isSelected){
  101.                     if($("#bank_branch_id").val().length >= 3){
  102.                         $('#ec-modal-checkbox').prop('checked', true);
  103.                     }
  104.                 }
  105.             });
  106.             $("#entry_bank_bank_name").trigger("change");
  107.            $(".btn_bank_search").on("click", function(){
  108.                 if(branchList == null || branchList.length <= 0){
  109.                     $('#ec-modal-bank').prop('checked', true);
  110.                 }else{
  111.                     $('#ec-modal-banksearch').prop('checked', true);
  112.                     $(".bank_branch_list").hide();
  113.                 }
  114.                 return false;
  115.             });
  116.             $(".btn_bank_query").on("click", function(){
  117.                 var table = $(".bank_branch_list");
  118.                 var tbody = $("<tbody></tbody>");
  119.                 table.find("tbody").remove().end();
  120.                 $.each(branchList, function(i, dt){
  121.                     if(  dt.name.indexOf($("#branch_keyword").val()) >= 0 || dt.branchCode.indexOf($("#branch_keyword").val()) >= 0 ){
  122.                         var tr = $("<tr></tr>");
  123.                         var btn = $('<a class="ec-inlineBtn bank_branch_select" href="#">選択する</a>');
  124.                         var branchSel = $('<td style="width:70px;"></td>');
  125.                         var branchCode = $('<td style="width:120px;"></td>');
  126.                         var branchName = $("<td></td>");
  127.                         btn.data("value", dt.branchCode);
  128.                         branchCode.text(dt.branchCode);
  129.                         branchName.text(dt.name);
  130.                         branchSel.append(btn);
  131.                         tr.append(branchSel);
  132.                         tr.append(branchCode);
  133.                         tr.append(branchName);
  134.                         btn.on("click", function(){
  135.                             var $this = $(this);
  136.                             $('#bank_branch_id').val(btn.data("value"));
  137.                             $('#bank_branch_id').trigger("keyup");
  138.                             $('#ec-modal-banksearch').prop('checked', false);
  139.                             return false;
  140.                         });
  141.                         tbody.append(tr);
  142.                     }
  143.                 });
  144.                 if(tbody.find("tr").length==0){
  145.                     var tr = $('<tr><td colspan=3>支店が見つかりません</td></tr>');
  146.                     tbody.append(tr);
  147.                 }
  148.                 table.append(tbody);
  149.                 $(".bank_branch_list").show();
  150.                 return false;
  151.             });
  152.         });
  153.     </script>
  154. {% endblock javascript %}
  155. {% block main %}
  156.     <div class="ec-registerRole">
  157.         <div class="ec-pageHeader">
  158.             <h1>{{ '新規会員登録'|trans }}</h1>
  159.         </div>
  160.         <div class="ec-off1Grid">
  161.             <div class="ec-off1Grid__cell">
  162.                 <form method="post" action="{{ url('entry') }}" novalidate class="h-adr">
  163.                     <span class="p-country-name" style="display:none;">Japan</span>
  164.                     {{ form_widget(form._token) }}
  165.                     <div class="ec-borderedDefs">
  166.                         <dl>
  167.                             <dt>
  168.                                 {{ form_label(form.name, 'お名前', { 'label_attr': { 'class': 'ec-label' }}) }}
  169.                             </dt>
  170.                             <dd>
  171.                                 <div class="ec-halfInput{{ has_errors(form.name.name01, form.name.name02) ? ' error'}}">
  172.                                     {{ form_widget(form.name.name01, { 'attr': { 'placeholder': '姓' }}) }}
  173.                                     {{ form_widget(form.name.name02, { 'attr': { 'placeholder': '名' }}) }}
  174.                                     {{ form_errors(form.name.name01) }}
  175.                                     {{ form_errors(form.name.name02) }}
  176.                                 </div>
  177.                             </dd>
  178.                         </dl>
  179.                         <dl>
  180.                             <dt>
  181.                                 {{ form_label(form.kana, 'お名前(カナ)', { 'label_attr': { 'class': 'ec-label' }}) }}
  182.                             </dt>
  183.                             <dd>
  184.                                 <div class="ec-halfInput{{ has_errors(form.kana.kana01, form.kana.kana02) ? ' error'}}">
  185.                                     {{ form_widget(form.kana.kana01, { 'attr': { 'placeholder': 'セイ' }}) }}
  186.                                     {{ form_widget(form.kana.kana02, { 'attr': { 'placeholder': 'メイ' }}) }}
  187.                                     {{ form_errors(form.kana.kana01) }}
  188.                                     {{ form_errors(form.kana.kana02) }}
  189.                                 </div>
  190.                             </dd>
  191.                         </dl>
  192.                         <dl>
  193.                             <dt>
  194.                                 {{ form_label(form.company_name, '会社名', { 'label_attr': { 'class': 'ec-label' }}) }}
  195.                             </dt>
  196.                             <dd>
  197.                                 <div class="ec-halfInput{{ has_errors(form.company_name) ? ' error' }}">
  198.                                     {{ form_widget(form.company_name) }}
  199.                                     {{ form_errors(form.company_name) }}
  200.                                 </div>
  201.                             </dd>
  202.                         </dl>
  203.                         <dl>
  204.                             <dt>
  205.                                 {{ form_label(form.address, '住所', { 'label_attr': { 'class': 'ec-label' }}) }}
  206.                             </dt>
  207.                             <dd>
  208.                                 <div class="ec-zipInput{{ has_errors(form.postal_code) ? ' error' }}"><span>{{ '〒'|trans }}</span>
  209.                                     {{ form_widget(form.postal_code) }}
  210.                                     <div class="ec-zipInputHelp">
  211.                                         <div class="ec-zipInputHelp__icon">
  212.                                             <div class="ec-icon"><img
  213.                                                         src="{{ asset('assets/icon/question-white.svg') }}" alt="">
  214.                                             </div>
  215.                                         </div><a href="https://www.post.japanpost.jp/zipcode/" target="_blank"><span>{{ '郵便番号検索'|trans }}</span></a>
  216.                                     </div>
  217.                                     {{ form_errors(form.postal_code) }}
  218.                                 </div>
  219.                                 <div class="ec-select{{ has_errors(form.address.pref) ? ' error' }}">
  220.                                     {{ form_widget(form.address.pref) }}
  221.                                     {{ form_errors(form.address.pref) }}
  222.                                 </div>
  223.                                 <div class="ec-input{{ has_errors(form.address.addr01) ? ' error' }}">
  224.                                     {{ form_widget(form.address.addr01, { 'attr': { 'placeholder': '市区町村名(例:大阪市北区)' }}) }}
  225.                                     {{ form_errors(form.address.addr01) }}
  226.                                 </div>
  227.                                 <div class="ec-input{{ has_errors(form.address.addr02) ? ' error' }}">
  228.                                     {{ form_widget(form.address.addr02,  { 'attr': { 'placeholder': '番地・ビル名(例:西梅田1丁目6-8)' }}) }}
  229.                                     {{ form_errors(form.address.addr02) }}
  230.                                 </div>
  231.                             </dd>
  232.                         </dl>
  233.                         <dl>
  234.                             <dt>
  235.                                 {{ form_label(form.phone_number, '電話番号', { 'label_attr': { 'class': 'ec-label' }}) }}
  236.                             </dt>
  237.                             <dd>
  238.                                 <div class="ec-telInput{{ has_errors(form.phone_number) ? ' error' }}">
  239.                                     {{ form_widget(form.phone_number) }}
  240.                                     {{ form_errors(form.phone_number) }}
  241.                                 </div>
  242.                             </dd>
  243.                         </dl>
  244.                         <dl>
  245.                             <dt>
  246.                                 {{ form_label(form.email, 'メールアドレス', { 'label_attr': { 'class': 'ec-label' }}) }}
  247.                             </dt>
  248.                             <dd>
  249.                                 <div class="ec-input{{ has_errors(form.email.first) ? ' error' }}">
  250.                                     {{ form_widget(form.email.first, { 'attr': { 'placeholder': '例:ec-cube@example.com' }}) }}
  251.                                     {{ form_errors(form.email.first) }}
  252.                                 </div>
  253.                                 <div class="ec-input{{ has_errors(form.email.second) ? ' error' }}">
  254.                                     {{ form_widget(form.email.second, { 'attr': { 'placeholder': '確認のためもう一度入力してください' }}) }}
  255.                                     {{ form_errors(form.email.second) }}
  256.                                 </div>
  257.                             </dd>
  258.                         </dl>
  259.                         <dl>
  260.                             <dt>
  261.                                 {{ form_label(form.plain_password, 'パスワード', { 'label_attr': {'class': 'ec-label' }}) }}
  262.                             </dt>
  263.                             <dd>
  264.                                 <div class="ec-input{{ has_errors(form.plain_password.first) ? ' error' }}">
  265.                                     {{ form_widget(form.plain_password.first, {
  266.                                         'attr': { 'placeholder': '半角英数記号%min%〜%max%文字'|trans({ '%min%': eccube_config.eccube_password_min_len, '%max%': eccube_config.eccube_password_max_len }) },
  267.                                         'type': 'password'
  268.                                     }) }}
  269.                                     {{ form_errors(form.plain_password.first) }}
  270.                                 </div>
  271.                                 <div class="ec-input{{ has_errors(form.plain_password.second) ? ' error' }}">
  272.                                     {{ form_widget(form.plain_password.second, {
  273.                                         'attr': { 'placeholder': '確認のためもう一度入力してください'|trans },
  274.                                         'type': 'password'
  275.                                     }) }}
  276.                                     {{ form_errors(form.plain_password.second) }}
  277.                                 </div>
  278.                             </dd>
  279.                         </dl>
  280.                         <dl>
  281.                             <dt>
  282.                                 {{ form_label(form.birth, '生年月日', { 'label_attr': {'class': 'ec-label' }}) }}
  283.                             </dt>
  284.                             <dd>
  285.                                 <div class="ec-birth{{ has_errors(form.birth) ? ' error' }}">
  286.                                     {{ form_widget(form.birth.year) }}<span>/</span>
  287.                                     {{ form_widget(form.birth.month) }}<span>/</span>
  288.                                     {{ form_widget(form.birth.day) }}
  289.                                     {{ form_errors(form.birth) }}
  290.                                 </div>
  291.                             </dd>
  292.                         </dl>
  293.                         <dl>
  294.                             <dt>
  295.                                 {{ form_label(form.sex, '性別', { 'label_attr': { 'class': 'ec-label' }}) }}
  296.                             </dt>
  297.                             <dd>
  298.                                 <div class="ec-radio{{ has_errors(form.sex) ? ' error' }}">
  299.                                     {{ form_widget(form.sex) }}
  300.                                     {{ form_errors(form.sex) }}
  301.                                 </div>
  302.                             </dd>
  303.                         </dl>
  304.                         <dl>
  305.                             <dt>
  306.                                 {{ form_label(form.job, '職業', { 'label_attr': {'class': 'ec-label' }}) }}
  307.                             </dt>
  308.                             <dd>
  309.                                 <div class="ec-select{{ has_errors(form.job) ? ' error' }}">
  310.                                     {{ form_widget(form.job) }}
  311.                                     {{ form_errors(form.job) }}
  312.                                 </div>
  313.                             </dd>
  314.                         </dl>
  315.                         <dl>
  316.                             <dt>
  317.                                 {{ form_label(form.bank.bank_name, '金融機関名', { 'label_attr': {'class': 'ec-label' }}) }}
  318.                             </dt>
  319.                             <dd>
  320.                                 <div class="ec-select{{ has_errors(form.bank.bank_name) ? ' error' }}">
  321.                                     {{ form_widget(form.bank.bank_name) }}
  322.                                     {{ form_errors(form.bank.bank_name) }}
  323.                                 </div>
  324.                             </dd>
  325.                         </dl>
  326.                         <dl>
  327.                             <dt>
  328.                                 {{ form_label(form.bank_branch_code, '支店名', { 'label_attr': {'class': 'ec-label' }}) }}
  329.                             </dt>
  330.                             <dd>
  331.                                 <div class="ec-halfInput">
  332.                                     <input type="text" id="bank_branch_id" maxlength=3 class="form-control" placeholder="支店番号">
  333.                                     <button class="ec-headerSearch__keywordBtn btn_bank_search" type="submit" style="width:36px;height:36px;">
  334.                                         <div class="ec-icon">
  335.                                             <img src="/html/template/dzx02/assets/icon/search-dark.svg" alt="">
  336.                                         </div>
  337.                                     </button>
  338.                                 </div>
  339.                                 
  340.                                 <div class="ec-select{{ has_errors(form.bank_branch_code) ? ' error' }}">
  341.                                     <select id="bank_branch_code" name="bank_branch_code" class="p-bank-name form-control" placeholder="支店名">
  342.                                     </select>
  343.                                     {{ form_widget(form.bank_branch_code, { 'attr': { 'style': 'display:none;' }}) }}
  344.                                     {{ form_errors(form.bank_branch_code) }}
  345.                                 </div>
  346.                             </dd>
  347.                         </dl>
  348.                         <dl>
  349.                             <dt>
  350.                                 {{ form_label(form.bank_account, '口座番号', { 'label_attr': { 'class': 'ec-label' }}) }}
  351.                             </dt>
  352.                             <dd>
  353.                                 <div class="ec-halfInput{{ has_errors(form.bank_account) ? ' error' }}">
  354.                                     {{ form_widget(form.bank_account, { 'attr': { 'placeholder': '口座番号(例:0000000)' }}) }}
  355.                                     {{ form_errors(form.bank_account) }}
  356.                                 </div>
  357.                             </dd>
  358.                         </dl>
  359.                         <dl>
  360.                             <dt>
  361.                                 {{ form_label(form.bank_holder, '口座名義', { 'label_attr': { 'class': 'ec-label' }}) }}
  362.                             </dt>
  363.                             <dd>
  364.                                 <div class="ec-halfInput{{ has_errors(form.bank_holder) ? ' error' }}">
  365.                                     {{ form_widget(form.bank_holder, { 'attr': { 'placeholder': '口座名義(例:トウキョウフジダイガク)' }}) }}
  366.                                     {{ form_errors(form.bank_holder) }}
  367.                                 </div>
  368.                             </dd>
  369.                         </dl>
  370.                         {# エンティティ拡張の自動出力 #}
  371.                         {% for f in form|filter(f => f.vars.eccube_form_options.auto_render) %}
  372.                             {% if f.vars.eccube_form_options.form_theme %}
  373.                                 {% form_theme f f.vars.eccube_form_options.form_theme %}
  374.                                 {{ form_row(f) }}
  375.                             {% else %}
  376.                                 <dl>
  377.                                     <dt>
  378.                                         {% set label_class =  f.vars.label_attr.class is defined ? f.vars.label_attr.class : '' %}
  379.                                         {{ form_label(f, f.vars.label, { 'label_attr': {'class': label_class ~ ' ec-label' }}) }}
  380.                                     </dt>
  381.                                     <dd>
  382.                                         <div class="{{ f.vars.eccube_form_options.style_class }}{{ has_errors(f) ? ' error' }}">
  383.                                             {{ form_widget(f) }}
  384.                                             {{ form_errors(f) }}
  385.                                         </div>
  386.                                     </dd>
  387.                                 </dl>
  388.                             {% endif %}
  389.                         {% endfor %}
  390.                     </div>
  391.                     <div class="ec-registerRole__actions">
  392.                         <div class="ec-checkbox{{ has_errors(form.user_policy_check) ? ' error' }}">
  393.                             <label>
  394.                                 {{ form_widget(form.user_policy_check) }}
  395.                                 {{ '<a class="ec-link" href="%url%" target="_blank">利用規約</a>に同意してお進みください'|trans({ '%url%': url('help_agreement') })|raw }}
  396.                             </label>
  397.                             {{ form_errors(form.user_policy_check) }}
  398.                         </div>
  399.                         <div class="ec-off4Grid">
  400.                             <div class="ec-off4Grid__cell">
  401.                                 <button class="ec-blockBtn--action" type="submit" name="mode" value="confirm">{{ '同意する'|trans }}</button>
  402.                                 <a class="ec-blockBtn--cancel" href="{{ url('homepage') }}">{{ '同意しない'|trans }}</a>
  403.                             </div>
  404.                         </div>
  405.                     </div>
  406.                 </form>
  407.             </div>
  408.         </div>
  409.     </div>
  410.     <div class="ec-modal" id="bankError">
  411.         <input type="checkbox" id="ec-modal-checkbox" class="checkbox">
  412.         <div class="ec-modal-overlay">
  413.             <label for="ec-modal-checkbox" class="ec-modal-overlay-close"></label>
  414.             <div class="ec-modal-wrap">
  415.                 <label for="ec-modal-checkbox" class="ec-modal-close"><span class="ec-icon"><img src="/html/template/dzx02/assets/icon/cross-dark.svg" alt=""/></span></label>
  416.                 <div id="ec-modal-header" class="text-center">支店番号が見つかりません</div>
  417.                 <div class="ec-modal-box">
  418.                     <div class="ec-role">
  419.                         <label for="ec-modal-checkbox" class="ec-inlineBtn--cancel">閉じる</label>
  420.                     </div>
  421.                 </div>
  422.             </div>
  423.         </div>
  424.     </div>
  425.     <div class="ec-modal" id="bankError">
  426.         <input type="checkbox" id="ec-modal-bank" class="checkbox">
  427.         <div class="ec-modal-overlay">
  428.             <label for="ec-modal-bank" class="ec-modal-overlay-close"></label>
  429.             <div class="ec-modal-wrap">
  430.                 <label for="ec-modal-bank" class="ec-modal-close"><span class="ec-icon"><img src="/html/template/dzx02/assets/icon/cross-dark.svg" alt=""/></span></label>
  431.                 <div id="ec-modal-header" class="text-center">金融機関名を選択してください</div>
  432.                 <div class="ec-modal-box">
  433.                     <div class="ec-role">
  434.                         <label for="ec-modal-bank" class="ec-inlineBtn--cancel">閉じる</label>
  435.                     </div>
  436.                 </div>
  437.             </div>
  438.         </div>
  439.     </div>
  440.     <div class="ec-modal">
  441.         <input type="checkbox" id="ec-modal-banksearch" class="checkbox">
  442.         <div class="ec-modal-overlay">
  443.             <label for="ec-modal-banksearch" class="ec-modal-overlay-close"></label>
  444.             <div class="ec-modal-wrap">
  445.                 <label for="ec-modal-banksearch" class="ec-modal-close"><span class="ec-icon"><img src="/html/template/dzx02/assets/icon/cross-dark.svg" alt=""/></span></label>
  446.                 <div id="ec-modal-header">
  447.                     <div class="ec-borderedDefs">
  448.                         <dl>
  449.                             <dt>
  450.                                 支店番号または支店名
  451.                             </dt>
  452.                             <dd>
  453.                                 <div class="ec-halfInput">
  454.                                     <input type="text" id="branch_keyword" class="form-control" placeholder="番号または支店名を入力">
  455.                                     <a class="ec-inlineBtn btn_bank_query" href="#">検索</a>
  456.                                 </div>
  457.                             </dd>
  458.                         </dl>
  459.                         <table class="dzx-table_row_detail bank_branch_list">
  460.                         <thead>
  461.                             <tr>
  462.                                 <th style="width:70px;">選択</th>
  463.                                 <th style="width:120px;">支店番号</th>
  464.                                 <th>支店名</th>
  465.                             </tr>
  466.                         </thead>
  467.                         </table>
  468.                     </div>
  469.                 </div>
  470.                 <div class="ec-modal-box">
  471.                     <div class="ec-role">
  472.                         <label for="ec-modal-banksearch" class="ec-inlineBtn--cancel">閉じる</label>
  473.                     </div>
  474.                 </div>
  475.             </div>
  476.         </div>
  477.     </div>
  478. {% endblock %}