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. {% endblock javascript %}
  16. {% block main %}
  17.   <!-- breadcrumb section -->
  18.   <div class="breadcrumb-section">
  19.     <div class="container-1360 border-box px-40">
  20.       <nav class="breadcrumb">
  21.         <a href="{{ url('homepage') }}" class="breadcrumb__item text-black">ホーム</a>
  22.         <img src="{{ asset('assets/img/default/icons/icon-breadcrumb-arrow.svg') }}" alt=">" class="breadcrumb__separator">
  23.         <a href="{{ url('contact') }}" class="breadcrumb__item text-black">お問い合わせ</a>
  24.       </nav>
  25.     </div>
  26.   </div>
  27.   <!-- contact section -->
  28.   <div class="container-1200">
  29.     <div class="contact-wrapper">
  30.       <!-- Contact Title Section -->
  31.       <div class="top-header-title-section">
  32.         <div class="top-header-icon-text">
  33.           <div class="top-header-icon-text">
  34.             <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
  35.               <g clip-path="url(#clip0_459_17912)">
  36.               <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"/>
  37.               </g>
  38.               <defs>
  39.               <clipPath id="clip0_459_17912">
  40.               <rect width="20" height="20" fill="white"/>
  41.               </clipPath>
  42.               </defs>
  43.             </svg>
  44.             <span class="top-header-text">お問い合わせ</span>
  45.           </div>
  46.         </div>
  47.         <h1 class="top-header-title">CONTACT</h1>
  48.       </div>
  49.       <!-- contact content section -->
  50.       <div class="contact-content-section">
  51.         <p class="contact-notice-text">
  52.           回答によっては返信にお時間をいただくことがございます。<br>
  53.           また、休業日は翌営業日以降の対応となりますのでご了承ください。
  54.         </p>
  55.       </div>
  56.       <!-- Contact Form -->
  57.       <div class="contact-form">
  58.         <form id="contact-form" method="post" action="{{ url('contact') }}" class="contact-form-wrapper h-adr" novalidate>
  59.           <span class="p-country-name" style="display:none;">Japan</span>
  60.           {{ form_widget(form._token) }}
  61.           <!-- Name Field -->
  62.           <div class="form-field">
  63.             <div class="form-field-header">
  64.               <span class="form-label">{{ 'common.name'|trans }}</span>
  65.               <span class="required-badge">必須</span>
  66.             </div>
  67.             <div class="form-field-inputs">
  68.               <div class="form-input-wrapper{{ has_errors(form.name.name01) ? ' error' }}">
  69.                 {{ form_widget(form.name.name01, {'attr': {'class': 'form-input', 'placeholder': 'common.last_name'|trans}}) }}
  70.                 {{ form_errors(form.name.name01) }}
  71.               </div>
  72.               <div class="form-input-wrapper{{ has_errors(form.name.name02) ? ' error' }}">
  73.                 {{ form_widget(form.name.name02, {'attr': {'class': 'form-input', 'placeholder': 'common.first_name'|trans}}) }}
  74.                 {{ form_errors(form.name.name02) }}
  75.               </div>
  76.             </div>
  77.           </div>
  78.           <!-- Name (Kana) Field -->
  79.           <div class="form-field">
  80.             <div class="form-field-header">
  81.               <span class="form-label">{{ 'common.kana'|trans }}</span>
  82.               <span class="required-badge">必須</span>
  83.             </div>
  84.             <div class="form-field-inputs">
  85.               <div class="form-input-wrapper{{ has_errors(form.kana.kana01) ? ' error' }}">
  86.                 {{ form_widget(form.kana.kana01, {'attr': {'class': 'form-input', 'placeholder': 'common.last_name_kana'|trans}}) }}
  87.                 {{ form_errors(form.kana.kana01) }}
  88.               </div>
  89.               <div class="form-input-wrapper{{ has_errors(form.kana.kana02) ? ' error' }}">
  90.                 {{ form_widget(form.kana.kana02, {'attr': {'class': 'form-input', 'placeholder': 'common.first_name_kana'|trans}}) }}
  91.                 {{ form_errors(form.kana.kana02) }}
  92.               </div>
  93.             </div>
  94.           </div>
  95.           <!-- Address Field -->
  96.           <div class="form-field">
  97.             <div class="form-field-header">
  98.               <span class="form-label">{{ 'common.address'|trans }}</span>
  99.               <span class="required-badge">必須</span>
  100.             </div>
  101.             <div class="form-field-address">
  102.               <!-- Postal Code -->
  103.               <div class="postal-code-section">
  104.                 <div class="flex items-center postal-code-wrap">
  105.                   <span class="postal-label">{{ 'common.postal_symbol'|trans }}</span>
  106.                   <div class="postal-input-wrapper{{ has_errors(form.postal_code) ? ' error' }}">
  107.                     {{ form_widget(form.postal_code, {'attr': {'class': 'postal-input p-postal-code', 'placeholder': '例:5300001'}}) }}
  108.                     {{ form_errors(form.postal_code) }}
  109.                   </div>
  110.                 </div>
  111.                 <a href="https://www.post.japanpost.jp/zipcode/" target="_blank" class="postal-search-btn">{{ 'common.search_postal_code'|trans }}</a>
  112.               </div>
  113.               <!-- Prefecture -->
  114.               <div class="prefecture-section">
  115.                 <div class="prefecture-select-wrapper{{ has_errors(form.address.pref) ? ' error' }}">
  116.                   {{ form_widget(form.address.pref, {'attr': {'class': 'prefecture-select p-region-id'}}) }}
  117.                   {{ form_errors(form.address.pref) }}
  118.                 </div>
  119.               </div>
  120.               <!-- City -->
  121.               <div class="form-input-full-wrapper{{ has_errors(form.address.addr01) ? ' error' }}">
  122.                 {{ form_widget(form.address.addr01, {'attr': {'class': 'form-input-full p-locality p-street-address', 'placeholder': 'common.address_sample_01'|trans}}) }}
  123.                 {{ form_errors(form.address.addr01) }}
  124.               </div>
  125.               <!-- Address -->
  126.               <div class="form-input-full-wrapper{{ has_errors(form.address.addr02) ? ' error' }}">
  127.                 {{ form_widget(form.address.addr02, {'attr': {'class': 'form-input-full p-extended-address', 'placeholder': 'common.address_sample_02'|trans}}) }}
  128.                 {{ form_errors(form.address.addr02) }}
  129.               </div>
  130.             </div>
  131.           </div>
  132.           <!-- Phone Field -->
  133.           <div class="form-field">
  134.             <div class="form-field-header">
  135.               <span class="form-label">{{ 'common.phone_number'|trans }}</span>
  136.               <span class="required-badge">必須</span>
  137.             </div>
  138.             <div class="form-field-inputs">
  139.               <div class="form-input-wrapper{{ has_errors(form.phone_number) ? ' error' }}">
  140.                 {{ form_widget(form.phone_number, {'attr': {'class': 'form-input', 'placeholder': '例:11122223333'}}) }}
  141.                 {{ form_errors(form.phone_number) }}
  142.               </div>
  143.             </div>
  144.           </div>
  145.           <!-- Email Field -->
  146.           <div class="form-field">
  147.             <div class="form-field-header">
  148.               <span class="form-label">{{ 'common.mail_address'|trans }}</span>
  149.               <span class="required-badge">必須</span>
  150.             </div>
  151.             <div class="form-field-inputs">
  152.               <div class="form-input-wrapper{{ has_errors(form.email) ? ' error' }}">
  153.                 {{ form_widget(form.email, {'attr': {'class': 'form-input', 'placeholder': '例:test@example.com'}}) }}
  154.                 {{ form_errors(form.email) }}
  155.               </div>
  156.             </div>
  157.           </div>
  158.           <!-- Message Field -->
  159.           <div class="form-field">
  160.             <div class="form-field-header">
  161.               <span class="form-label">{{ 'front.contact.inquiry_contents'|trans }}</span>
  162.               <span class="required-badge">必須</span>
  163.             </div>
  164.             <div class="form-field-inputs">
  165.               <div class="form-textarea-wrapper{{ has_errors(form.contents) ? ' error' }}">
  166.                 {{ form_widget(form.contents, {'attr': {'class': 'form-textarea', 'placeholder': 'お問い合わせ内容をご記入ください'}}) }}
  167.                 {{ form_errors(form.contents) }}
  168.               </div>
  169.             </div>
  170.           </div>
  171.           {# エンティティ拡張の自動出力 #}
  172.           {% for f in form|filter(f => f.vars.eccube_form_options.auto_render) %}
  173.             {% if f.vars.eccube_form_options.form_theme %}
  174.               {% form_theme f f.vars.eccube_form_options.form_theme %}
  175.               <div class="form-field">
  176.                 <div class="form-field-header">
  177.                   {{ form_label(f) }}
  178.                 </div>
  179.                 <div class="form-field-inputs">
  180.                   {{ form_row(f) }}
  181.                 </div>
  182.               </div>
  183.             {% else %}
  184.               <div class="form-field">
  185.                 <div class="form-field-header">
  186.                   {{ form_label(f) }}
  187.                 </div>
  188.                 <div class="form-field-inputs">
  189.                   <div class="{{ f.vars.eccube_form_options.style_class }}{{ has_errors(f) ? ' error' }}">
  190.                     {{ form_widget(f, {'attr': {'class': 'form-input'}}) }}
  191.                     {{ form_errors(f) }}
  192.                   </div>
  193.                 </div>
  194.               </div>
  195.             {% endif %}
  196.           {% endfor %}
  197.             <!-- Submit Button -->
  198.             <div class="submit-section">
  199.                 <button type="submit" class="submit-btn" form="contact-form" name="mode" value="confirm">{{ 'common.go_to_confirm'|trans }}</button>
  200.             </div>
  201.         </form>
  202.       </div>
  203.     </div>
  204.   </div>
  205. {% endblock %}