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.     <link rel="stylesheet" href="{{ asset('assets/css/contact.css') }}">
  13. {% endblock %}
  14. {% block javascript %}
  15.     <script src="//yubinbango.github.io/yubinbango/yubinbango.js" charset="UTF-8"></script>
  16.     <script src="{{ asset('assets/js/customer-input-validate.js') }}"></script>
  17.     <script>
  18.     $(function() {
  19.         CustomerInputValidate.bindFormValidation($('#entry-form'), {
  20.             nameSelector: '#entry_name_name01, #entry_name_name02',
  21.             kanaSelector: '#entry_kana_kana01, #entry_kana_kana02',
  22.             kanaHiraganaHint: true,
  23.             kanaHintSelector: '#entry-kana-hiragana-hint',
  24.             phoneSelector: '#entry_phone_number',
  25.             postalCodeSelector: '#entry_postal_code',
  26.             prefSelector: '#entry_address_pref',
  27.             addr01Selector: '#entry_address_addr01',
  28.             addr02Selector: '#entry_address_addr02',
  29.             emailSelector: '#entry_email_first',
  30.             emailConfirmSelector: '#entry_email_second',
  31.             passwordSelector: '#entry_plain_password_first',
  32.             passwordConfirmSelector: '#entry_plain_password_second',
  33.             checkboxSelector: '#entry_user_policy_check',
  34.             wrapperSelector: '.form-input-wrapper, .postal-input-wrapper, .prefecture-select-wrapper, .form-input-full-wrapper, .birth-date-wrapper, .gender-radio-wrapper, .entry-terms-wrapper',
  35.             fieldSelectors: [
  36.                 '#entry_name_name01',
  37.                 '#entry_name_name02',
  38.                 '#entry_kana_kana01',
  39.                 '#entry_kana_kana02',
  40.                 '#entry_postal_code',
  41.                 '#entry_address_pref',
  42.                 '#entry_address_addr01',
  43.                 '#entry_address_addr02',
  44.                 '#entry_phone_number',
  45.                 '#entry_email_first',
  46.                 '#entry_email_second',
  47.                 '#entry_plain_password_first',
  48.                 '#entry_plain_password_second',
  49.                 '#entry_user_policy_check'
  50.             ],
  51.             showServerErrors: {{ form.vars.submitted and not form.vars.valid ? 'true' : 'false' }}
  52.         });
  53.     });
  54.     </script>
  55. {% endblock javascript %}
  56. {% block main %}
  57.   <!-- breadcrumb section -->
  58.   <div class="breadcrumb-section">
  59.     <div class="container-1360 border-box px-40">
  60.       <nav class="breadcrumb">
  61.         <a href="{{ url('homepage') }}" class="breadcrumb__item text-black">ホーム</a>
  62.         <img src="{{ asset('assets/img/default/icons/icon-breadcrumb-arrow.svg') }}" alt=">" class="breadcrumb__separator">
  63.         <a href="{{ url('entry') }}" class="breadcrumb__item text-black">新規会員登録</a>
  64.       </nav>
  65.     </div>
  66.   </div>
  67.   <!-- entry section -->
  68.   <div class="container-1200">
  69.     <div class="contact-wrapper">
  70.       <!-- Entry Title Section -->
  71.       <div class="top-header-title-section">
  72.         <div class="top-header-icon-text">
  73.           <div class="top-header-icon-text">
  74.             <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
  75.               <g clip-path="url(#clip0_459_17914)">
  76.               <path d="M10 10C12.7614 10 15 7.76142 15 5C15 2.23858 12.7614 0 10 0C7.23858 0 5 2.23858 5 5C5 7.76142 7.23858 10 10 10Z" fill="#00A854"/>
  77.               <path d="M10 12C5.58172 12 2 13.7909 2 16V20H18V16C18 13.7909 14.4183 12 10 12Z" fill="#00A854"/>
  78.               </g>
  79.               <defs>
  80.               <clipPath id="clip0_459_17914">
  81.               <rect width="20" height="20" fill="white"/>
  82.               </clipPath>
  83.               </defs>
  84.             </svg>
  85.             <span class="top-header-text">新規会員登録</span>
  86.           </div>
  87.         </div>
  88.         <h1 class="top-header-title">SIGN UP</h1>
  89.       </div>
  90.       <!-- Entry Form -->
  91.       <div class="contact-form">
  92.         <form method="post" action="{{ url('entry') }}" novalidate class="contact-form-wrapper h-adr" id="entry-form">
  93.           <span class="p-country-name" style="display:none;">Japan</span>
  94.           {{ form_widget(form._token) }}
  95.           <!-- Name Field -->
  96.           <div class="form-field">
  97.             <div class="form-field-header">
  98.               <span class="form-label">{{ 'common.name'|trans }}</span>
  99.               <span class="required-badge">必須</span>
  100.             </div>
  101.             <div class="form-field-inputs">
  102.               <div class="form-input-wrapper{{ has_errors(form.name.name01, form.name.name02) ? ' error' }}">
  103.                 {{ form_widget(form.name.name01, {'attr': {'class': 'form-input', 'placeholder': 'common.last_name'|trans}}) }}
  104.                 {{ form_errors(form.name.name01) }}
  105.               </div>
  106.               <div class="form-input-wrapper{{ has_errors(form.name.name01, form.name.name02) ? ' error' }}">
  107.                 {{ form_widget(form.name.name02, {'attr': {'class': 'form-input', 'placeholder': 'common.first_name'|trans}}) }}
  108.                 {{ form_errors(form.name.name02) }}
  109.               </div>
  110.             </div>
  111.           </div>
  112.           <!-- Name (Kana) Field -->
  113.           <div class="form-field">
  114.             <div class="form-field-header">
  115.               <span class="form-label">{{ 'common.kana'|trans }}</span>
  116.               <span class="required-badge">必須</span>
  117.             </div>
  118.             <div class="form-field-body">
  119.               <div class="form-field-inputs">
  120.                 <div class="form-input-wrapper{{ has_errors(form.kana.kana01, form.kana.kana02) ? ' error' }}">
  121.                   {{ form_widget(form.kana.kana01, {'attr': {'class': 'form-input', 'placeholder': 'common.last_name_kana'|trans}}) }}
  122.                   {{ form_errors(form.kana.kana01) }}
  123.                 </div>
  124.                 <div class="form-input-wrapper{{ has_errors(form.kana.kana01, form.kana.kana02) ? ' error' }}">
  125.                   {{ form_widget(form.kana.kana02, {'attr': {'class': 'form-input', 'placeholder': 'common.first_name_kana'|trans}}) }}
  126.                   {{ form_errors(form.kana.kana02) }}
  127.                 </div>
  128.               </div>
  129.               <p class="form-field-hint kana-hiragana-hint" id="entry-kana-hiragana-hint" hidden>
  130.                 {{ 'front.entry.kana_hiragana_hint'|trans }}
  131.               </p>
  132.             </div>
  133.           </div>
  134.           <!-- Company Name Field -->
  135.           {% if form.company_name is defined %}
  136.           <div class="form-field">
  137.             <div class="form-field-header">
  138.               <span class="form-label">{{ 'common.company_name'|trans }}</span>
  139.             </div>
  140.             <div class="form-field-inputs">
  141.               <div class="form-input-wrapper{{ has_errors(form.company_name) ? ' error' }}">
  142.                 {{ form_widget(form.company_name, {'attr': {'class': 'form-input'}}) }}
  143.                 {{ form_errors(form.company_name) }}
  144.               </div>
  145.             </div>
  146.           </div>
  147.           {% endif %}
  148.           <!-- Address Field -->
  149.           <div class="form-field">
  150.             <div class="form-field-header">
  151.               <span class="form-label">{{ 'common.address'|trans }}</span>
  152.               <span class="required-badge">必須</span>
  153.             </div>
  154.             <div class="form-field-address">
  155.               <!-- Postal Code -->
  156.               <div class="postal-code-section">
  157.                 <div class="flex items-center postal-code-wrap">
  158.                   <span class="postal-label">{{ 'common.postal_symbol'|trans }}</span>
  159.                   <div class="postal-input-wrapper{{ has_errors(form.postal_code) ? ' error' }}">
  160.                     {{ form_widget(form.postal_code, {'attr': {'class': 'postal-input p-postal-code', 'placeholder': '例:5300001'}}) }}
  161.                     {{ form_errors(form.postal_code) }}
  162.                   </div>
  163.                 </div>
  164.                 <a href="https://www.post.japanpost.jp/zipcode/" target="_blank" class="postal-search-btn">{{ 'common.search_postal_code'|trans }}</a>
  165.               </div>
  166.               <!-- Prefecture -->
  167.               <div class="prefecture-section">
  168.                 <div class="prefecture-select-wrapper{{ has_errors(form.address.pref) ? ' error' }}">
  169.                   {{ form_widget(form.address.pref, {'attr': {'class': 'prefecture-select p-region-id'}}) }}
  170.                   {{ form_errors(form.address.pref) }}
  171.                 </div>
  172.               </div>
  173.               <!-- City -->
  174.               <div class="form-input-full-wrapper{{ has_errors(form.address.addr01) ? ' error' }}">
  175.                 {{ form_widget(form.address.addr01, {'attr': {'class': 'form-input-full p-locality p-street-address', 'placeholder': 'common.address_sample_01'|trans}}) }}
  176.                 {{ form_errors(form.address.addr01) }}
  177.               </div>
  178.               <!-- Address -->
  179.               <div class="form-input-full-wrapper{{ has_errors(form.address.addr02) ? ' error' }}">
  180.                 {{ form_widget(form.address.addr02, {'attr': {'class': 'form-input-full p-extended-address', 'placeholder': 'common.address_sample_02'|trans}}) }}
  181.                 {{ form_errors(form.address.addr02) }}
  182.               </div>
  183.             </div>
  184.           </div>
  185.           <!-- Phone Field -->
  186.           <div class="form-field">
  187.             <div class="form-field-header">
  188.               <span class="form-label">{{ 'common.phone_number'|trans }}</span>
  189.               <span class="required-badge">必須</span>
  190.             </div>
  191.             <div class="form-field-inputs">
  192.               <div class="form-input-wrapper{{ has_errors(form.phone_number) ? ' error' }}">
  193.                 {{ form_widget(form.phone_number, {'attr': {'class': 'form-input', 'placeholder': '例:11122223333'}}) }}
  194.                 {{ form_errors(form.phone_number) }}
  195.               </div>
  196.             </div>
  197.           </div>
  198.           <!-- Email Field -->
  199.           <div class="form-field">
  200.             <div class="form-field-header">
  201.               <span class="form-label">{{ 'common.mail_address'|trans }}</span>
  202.               <span class="required-badge">必須</span>
  203.             </div>
  204.             <div class="form-field-inputs email-field-inputs">
  205.               <div class="form-input-wrapper{{ has_errors(form.email.first) ? ' error' }}">
  206.                 {{ form_widget(form.email.first, {'attr': {'class': 'form-input', 'placeholder': 'common.mail_address_sample'|trans}}) }}
  207.                 {{ form_errors(form.email.first) }}
  208.               </div>
  209.               <div class="form-input-wrapper{{ has_errors(form.email.second) ? ' error' }}">
  210.                 {{ form_widget(form.email.second, {'attr': {'class': 'form-input', 'placeholder': 'common.repeated_confirm'|trans}}) }}
  211.                 {{ form_errors(form.email.second) }}
  212.               </div>
  213.             </div>
  214.           </div>
  215.           <!-- Password Field -->
  216.           <div class="form-field">
  217.             <div class="form-field-header">
  218.               <span class="form-label">{{ 'common.password'|trans }}</span>
  219.               <span class="required-badge">必須</span>
  220.             </div>
  221.             <div class="form-field-inputs password-field-inputs">
  222.               <div class="form-input-wrapper{{ has_errors(form.plain_password.first) ? ' error' }}">
  223.                 {{ form_widget(form.plain_password.first, {
  224.                   'attr': {
  225.                     'class': 'form-input',
  226.                     'placeholder': 'common.password_sample'|trans({ '%min%': eccube_config.eccube_password_min_len, '%max%': eccube_config.eccube_password_max_len }),
  227.                   },
  228.                   'type': 'password'
  229.                 }) }}
  230.                 {{ form_errors(form.plain_password.first) }}
  231.               </div>
  232.               <div class="form-input-wrapper{{ has_errors(form.plain_password.second) ? ' error' }}">
  233.                 {{ form_widget(form.plain_password.second, {
  234.                   'attr': {
  235.                     'class': 'form-input',
  236.                     'placeholder': 'common.repeated_confirm'|trans,
  237.                   },
  238.                   'type': 'password'
  239.                 }) }}
  240.                 {{ form_errors(form.plain_password.second) }}
  241.               </div>
  242.             </div>
  243.           </div>
  244.           <!-- Birth Day Field -->
  245.           {% if form.birth is defined %}
  246.           <div class="form-field">
  247.             <div class="form-field-header">
  248.               <span class="form-label">{{ 'common.birth_day'|trans }}</span>
  249.             </div>
  250.             <div class="form-field-inputs">
  251.               <div class="birth-date-wrapper{{ has_errors(form.birth) ? ' error' }}">
  252.                 {{ form_widget(form.birth.year, {'attr': {'class': 'birth-select'}}) }}
  253.                 <span class="birth-separator">/</span>
  254.                 {{ form_widget(form.birth.month, {'attr': {'class': 'birth-select'}}) }}
  255.                 <span class="birth-separator">/</span>
  256.                 {{ form_widget(form.birth.day, {'attr': {'class': 'birth-select'}}) }}
  257.                 {{ form_errors(form.birth) }}
  258.               </div>
  259.             </div>
  260.           </div>
  261.           {% endif %}
  262.           <!-- Gender Field -->
  263.           {% if form.sex is defined %}
  264.           <div class="form-field">
  265.             <div class="form-field-header">
  266.               <span class="form-label">{{ 'common.gender'|trans }}</span>
  267.             </div>
  268.             <div class="form-field-inputs">
  269.               <div class="gender-radio-wrapper{{ has_errors(form.sex) ? ' error' }}">
  270.                 {{ form_widget(form.sex) }}
  271.                 {{ form_errors(form.sex) }}
  272.               </div>
  273.             </div>
  274.           </div>
  275.           {% endif %}
  276.           <!-- Job Field -->
  277.           {% if form.job is defined %}
  278.           <div class="form-field">
  279.             <div class="form-field-header">
  280.               <span class="form-label">{{ 'common.job'|trans }}</span>
  281.             </div>
  282.             <div class="form-field-inputs">
  283.               <div class="form-input-wrapper{{ has_errors(form.job) ? ' error' }}">
  284.                 <div class="prefecture-select-wrapper">
  285.                   {{ form_widget(form.job, {'attr': {'class': 'prefecture-select'}}) }}
  286.                   {{ form_errors(form.job) }}
  287.                 </div>
  288.               </div>
  289.             </div>
  290.           </div>
  291.           {% endif %}
  292.           {# エンティティ拡張の自動出力 #}
  293.           {% for f in form|filter(f => f.vars.eccube_form_options.auto_render) %}
  294.             {% if f.vars.eccube_form_options.form_theme %}
  295.               {% form_theme f f.vars.eccube_form_options.form_theme %}
  296.               <div class="form-field">
  297.                 <div class="form-field-header">
  298.                   {{ form_label(f) }}
  299.                 </div>
  300.                 <div class="form-field-inputs">
  301.                   {{ form_row(f) }}
  302.                 </div>
  303.               </div>
  304.             {% else %}
  305.               <div class="form-field">
  306.                 <div class="form-field-header">
  307.                   {{ form_label(f) }}
  308.                 </div>
  309.                 <div class="form-field-inputs">
  310.                   <div class="{{ f.vars.eccube_form_options.style_class }}{{ has_errors(f) ? ' error' }}">
  311.                     {{ form_widget(f, {'attr': {'class': 'form-input'}}) }}
  312.                     {{ form_errors(f) }}
  313.                   </div>
  314.                 </div>
  315.               </div>
  316.             {% endif %}
  317.           {% endfor %}
  318.             <!-- Terms Agreement -->
  319.             <div class="entry-terms-section">
  320.                 <div class="entry-terms-wrapper{{ has_errors(form.user_policy_check) ? ' error' }}">
  321.                 <label class="entry-terms-label">
  322.                     {{ form_widget(form.user_policy_check) }}
  323.                     <span class="entry-terms-text">{{ 'front.entry.agree_with_terms'|trans({ '%url%': url('help_agreement') })|raw }}</span>
  324.                 </label>
  325.                 <div class="entry-terms-error">
  326.                     {{ form_errors(form.user_policy_check) }}
  327.                 </div>
  328.                 </div>
  329.             </div>
  330.             <!-- Submit Buttons -->
  331.             <div class="submit-section">
  332.                 <div class="submit-buttons-wrapper">
  333.                 <button type="submit" class="submit-btn submit-btn-primary" form="entry-form" name="mode" value="confirm">{{ 'front.entry.agree'|trans }}</button>
  334.                 </div>
  335.             </div>
  336.         </form>
  337.       </div>
  338.     </div>
  339.   </div>
  340. {% endblock %}