app/template/default/Contact/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. {% form_theme form 'Form/form_div_layout.twig' %}
  10. {% block stylesheet %}
  11.     <link rel="stylesheet" href="{{ asset('assets/css/contact.css') }}">
  12. {% endblock %}
  13. {% block javascript %}
  14.     <script src="//yubinbango.github.io/yubinbango/yubinbango.js" charset="UTF-8"></script>
  15.     <script src="{{ asset('assets/js/customer-input-validate.js') }}"></script>
  16.     <script>
  17.     $(function() {
  18.         CustomerInputValidate.bindFormValidation($('#contact-form'), {
  19.             nameSelector: '#contact_name_name01, #contact_name_name02',
  20.             kanaSelector: '#contact_kana_kana01, #contact_kana_kana02',
  21.             kanaHiraganaHint: true,
  22.             kanaHintSelector: '#contact-kana-hiragana-hint',
  23.             phoneSelector: '#contact_phone_number',
  24.             postalCodeSelector: '#contact_postal_code',
  25.             prefSelector: '#contact_address_pref',
  26.             addr01Selector: '#contact_address_addr01',
  27.             addr02Selector: '#contact_address_addr02',
  28.             emailSelector: '#contact_email',
  29.             requiredSelector: '#contact_contents',
  30.             wrapperSelector: '.form-input-wrapper, .postal-input-wrapper, .prefecture-select-wrapper, .form-input-full-wrapper, .form-textarea-wrapper',
  31.             fieldSelectors: [
  32.                 '#contact_name_name01',
  33.                 '#contact_name_name02',
  34.                 '#contact_kana_kana01',
  35.                 '#contact_kana_kana02',
  36.                 '#contact_postal_code',
  37.                 '#contact_address_pref',
  38.                 '#contact_address_addr01',
  39.                 '#contact_address_addr02',
  40.                 '#contact_phone_number',
  41.                 '#contact_email',
  42.                 '#contact_contents'
  43.             ],
  44.             showServerErrors: {{ form.vars.submitted and not form.vars.valid ? 'true' : 'false' }}
  45.         });
  46.     });
  47.     </script>
  48. {% endblock javascript %}
  49. {% block main %}
  50.   <!-- breadcrumb section -->
  51.   <div class="breadcrumb-section">
  52.     <div class="container-1360 border-box px-40">
  53.       <nav class="breadcrumb">
  54.         <a href="{{ url('homepage') }}" class="breadcrumb__item text-black">ホーム</a>
  55.         <img src="{{ asset('assets/img/default/icons/icon-breadcrumb-arrow.svg') }}" alt=">" class="breadcrumb__separator">
  56.         <a href="{{ url('contact') }}" class="breadcrumb__item text-black">お問い合わせ</a>
  57.       </nav>
  58.     </div>
  59.   </div>
  60.   <!-- contact section -->
  61.   <div class="container-1200">
  62.     <div class="contact-wrapper">
  63.       <!-- Contact Title Section -->
  64.       <div class="top-header-title-section">
  65.         <div class="top-header-icon-text">
  66.           <div class="top-header-icon-text">
  67.             <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
  68.               <g clip-path="url(#clip0_459_17912)">
  69.               <path d="M16.6665 3.33325H3.33317C2.4165 3.33325 1.67484 4.08325 1.67484 4.99992L1.6665 14.9999C1.6665 15.9166 2.4165 16.6666 3.33317 16.6666H16.6665C17.5832 16.6666 18.3332 15.9166 18.3332 14.9999V4.99992C18.3332 4.08325 17.5832 3.33325 16.6665 3.33325ZM16.6665 6.66659L9.99984 10.8333L3.33317 6.66659V4.99992L9.99984 9.16658L16.6665 4.99992V6.66659Z" fill="#00A854"/>
  70.               </g>
  71.               <defs>
  72.               <clipPath id="clip0_459_17912">
  73.               <rect width="20" height="20" fill="white"/>
  74.               </clipPath>
  75.               </defs>
  76.             </svg>
  77.             <span class="top-header-text">お問い合わせ</span>
  78.           </div>
  79.         </div>
  80.         <h1 class="top-header-title">CONTACT</h1>
  81.       </div>
  82.       <!-- contact content section -->
  83.       <div class="contact-content-section">
  84.         <p class="contact-notice-text">
  85.           回答によっては返信にお時間をいただくことがございます。<br>
  86.           また、休業日は翌営業日以降の対応となりますのでご了承ください。
  87.         </p>
  88.       </div>
  89.       <!-- Contact Form -->
  90.       <div class="contact-form">
  91.         <form id="contact-form" method="post" action="{{ url('contact') }}" class="contact-form-wrapper h-adr" novalidate>
  92.           <span class="p-country-name" style="display:none;">Japan</span>
  93.           {{ form_widget(form._token) }}
  94.           <!-- Name Field -->
  95.           <div class="form-field">
  96.             <div class="form-field-header">
  97.               <span class="form-label">{{ 'common.name'|trans }}</span>
  98.               <span class="required-badge">必須</span>
  99.             </div>
  100.             <div class="form-field-inputs">
  101.               <div class="form-input-wrapper{{ has_errors(form.name.name01) ? ' error' }}">
  102.                 {{ form_widget(form.name.name01, {'attr': {'class': 'form-input', 'placeholder': 'common.last_name'|trans}}) }}
  103.                 {{ form_errors(form.name.name01) }}
  104.               </div>
  105.               <div class="form-input-wrapper{{ has_errors(form.name.name02) ? ' error' }}">
  106.                 {{ form_widget(form.name.name02, {'attr': {'class': 'form-input', 'placeholder': 'common.first_name'|trans}}) }}
  107.                 {{ form_errors(form.name.name02) }}
  108.               </div>
  109.             </div>
  110.           </div>
  111.           <!-- Name (Kana) Field -->
  112.           <div class="form-field">
  113.             <div class="form-field-header">
  114.               <span class="form-label">{{ 'common.kana'|trans }}</span>
  115.               <span class="required-badge">必須</span>
  116.             </div>
  117.             <div class="form-field-body">
  118.               <div class="form-field-inputs">
  119.                 <div class="form-input-wrapper{{ has_errors(form.kana.kana01) ? ' error' }}">
  120.                   {{ form_widget(form.kana.kana01, {'attr': {'class': 'form-input', 'placeholder': 'common.last_name_kana'|trans}}) }}
  121.                   {{ form_errors(form.kana.kana01) }}
  122.                 </div>
  123.                 <div class="form-input-wrapper{{ has_errors(form.kana.kana02) ? ' error' }}">
  124.                   {{ form_widget(form.kana.kana02, {'attr': {'class': 'form-input', 'placeholder': 'common.first_name_kana'|trans}}) }}
  125.                   {{ form_errors(form.kana.kana02) }}
  126.                 </div>
  127.               </div>
  128.               <p class="form-field-hint kana-hiragana-hint" id="contact-kana-hiragana-hint" hidden>
  129.                 {{ 'front.contact.kana_hiragana_hint'|trans }}
  130.               </p>
  131.             </div>
  132.           </div>
  133.           <!-- Address Field -->
  134.           <div class="form-field">
  135.             <div class="form-field-header">
  136.               <span class="form-label">{{ 'common.address'|trans }}</span>
  137.               <span class="required-badge">必須</span>
  138.             </div>
  139.             <div class="form-field-address">
  140.               <!-- Postal Code -->
  141.               <div class="postal-code-section">
  142.                 <div class="flex items-center postal-code-wrap">
  143.                   <span class="postal-label">{{ 'common.postal_symbol'|trans }}</span>
  144.                   <div class="postal-input-wrapper{{ has_errors(form.postal_code) ? ' error' }}">
  145.                     {{ form_widget(form.postal_code, {'attr': {'class': 'postal-input p-postal-code', 'placeholder': '例:5300001'}}) }}
  146.                     {{ form_errors(form.postal_code) }}
  147.                   </div>
  148.                 </div>
  149.                 <a href="https://www.post.japanpost.jp/zipcode/" target="_blank" class="postal-search-btn">{{ 'common.search_postal_code'|trans }}</a>
  150.               </div>
  151.               <!-- Prefecture -->
  152.               <div class="prefecture-section">
  153.                 <div class="prefecture-select-wrapper{{ has_errors(form.address.pref) ? ' error' }}">
  154.                   {{ form_widget(form.address.pref, {'attr': {'class': 'prefecture-select p-region-id'}}) }}
  155.                   {{ form_errors(form.address.pref) }}
  156.                 </div>
  157.               </div>
  158.               <!-- City -->
  159.               <div class="form-input-full-wrapper{{ has_errors(form.address.addr01) ? ' error' }}">
  160.                 {{ form_widget(form.address.addr01, {'attr': {'class': 'form-input-full p-locality p-street-address', 'placeholder': 'common.address_sample_01'|trans}}) }}
  161.                 {{ form_errors(form.address.addr01) }}
  162.               </div>
  163.               <!-- Address -->
  164.               <div class="form-input-full-wrapper{{ has_errors(form.address.addr02) ? ' error' }}">
  165.                 {{ form_widget(form.address.addr02, {'attr': {'class': 'form-input-full p-extended-address', 'placeholder': 'common.address_sample_02'|trans}}) }}
  166.                 {{ form_errors(form.address.addr02) }}
  167.               </div>
  168.             </div>
  169.           </div>
  170.           <!-- Phone Field -->
  171.           <div class="form-field">
  172.             <div class="form-field-header">
  173.               <span class="form-label">{{ 'common.phone_number'|trans }}</span>
  174.               <span class="required-badge">必須</span>
  175.             </div>
  176.             <div class="form-field-inputs">
  177.               <div class="form-input-wrapper{{ has_errors(form.phone_number) ? ' error' }}">
  178.                 {{ form_widget(form.phone_number, {'attr': {'class': 'form-input', 'placeholder': '例:11122223333'}}) }}
  179.                 {{ form_errors(form.phone_number) }}
  180.               </div>
  181.             </div>
  182.           </div>
  183.           <!-- Email Field -->
  184.           <div class="form-field">
  185.             <div class="form-field-header">
  186.               <span class="form-label">{{ 'common.mail_address'|trans }}</span>
  187.               <span class="required-badge">必須</span>
  188.             </div>
  189.             <div class="form-field-inputs">
  190.               <div class="form-input-wrapper{{ has_errors(form.email) ? ' error' }}">
  191.                 {{ form_widget(form.email, {'attr': {'class': 'form-input', 'placeholder': '例:test@example.com'}}) }}
  192.                 {{ form_errors(form.email) }}
  193.               </div>
  194.             </div>
  195.           </div>
  196.           <!-- Message Field -->
  197.           <div class="form-field">
  198.             <div class="form-field-header">
  199.               <span class="form-label">{{ 'front.contact.inquiry_contents'|trans }}</span>
  200.               <span class="required-badge">必須</span>
  201.             </div>
  202.             <div class="form-field-inputs">
  203.               <div class="form-textarea-wrapper{{ has_errors(form.contents) ? ' error' }}">
  204.                 {{ form_widget(form.contents, {'attr': {'class': 'form-textarea', 'placeholder': 'お問い合わせ内容をご記入ください'}}) }}
  205.                 {{ form_errors(form.contents) }}
  206.               </div>
  207.             </div>
  208.           </div>
  209.           {# エンティティ拡張の自動出力 #}
  210.           {% for f in form|filter(f => f.vars.eccube_form_options.auto_render) %}
  211.             {% if f.vars.eccube_form_options.form_theme %}
  212.               {% form_theme f f.vars.eccube_form_options.form_theme %}
  213.               <div class="form-field">
  214.                 <div class="form-field-header">
  215.                   {{ form_label(f) }}
  216.                 </div>
  217.                 <div class="form-field-inputs">
  218.                   {{ form_row(f) }}
  219.                 </div>
  220.               </div>
  221.             {% else %}
  222.               <div class="form-field">
  223.                 <div class="form-field-header">
  224.                   {{ form_label(f) }}
  225.                 </div>
  226.                 <div class="form-field-inputs">
  227.                   <div class="{{ f.vars.eccube_form_options.style_class }}{{ has_errors(f) ? ' error' }}">
  228.                     {{ form_widget(f, {'attr': {'class': 'form-input'}}) }}
  229.                     {{ form_errors(f) }}
  230.                   </div>
  231.                 </div>
  232.               </div>
  233.             {% endif %}
  234.           {% endfor %}
  235.             <!-- Submit Button -->
  236.             <div class="submit-section">
  237.                 <button type="submit" class="submit-btn" form="contact-form" name="mode" value="confirm">{{ 'common.go_to_confirm'|trans }}</button>
  238.             </div>
  239.         </form>
  240.       </div>
  241.     </div>
  242.   </div>
  243. {% endblock %}