custom/plugins/EmovaTheme/src/Resources/views/storefront/component/address/address-personal.html.twig line 1

Open in your IDE?
  1. {# Provides customer type, salutation, title, firstname, lastname and birthday fields for address forms (e.g. registering a user, creating or updating an address) #}
  2. {% set ev_salutationid = app.session.get('ev_salutationid') %}
  3. {# {% extends '@Storefront/storefront/component/account/register.html.twig' %} #}
  4. {% block component_address_personal_fields %}
  5.     {% block component_address_personal_account_type %}
  6.         {% if onlyCompanyRegistration or (config('core.loginRegistration.showAccountTypeSelection') and not hideCustomerTypeSelect) %}
  7.             <div class="{{ formRowClass }}" style="{{deliverStyle}}">
  8.                 <div class="form-group form-group-select col-md-12 col-sm-12 contact-type custom-dropdown">
  9.                     {% block component_address_personal_account_type_label %}
  10.                         <label class="form-label"
  11.                                for="{{ idPrefix ~ prefix }}accountType"><span>
  12.                             {{ "account.personalTypeLabel"|trans|sw_sanitize }}{{ "general.required"|trans|sw_sanitize }}
  13.                             </span></label>
  14.                     {% endblock %}
  15.                     {% block component_address_personal_account_type_select %}
  16.                             {% if onlyCompanyRegistration or config('core.loginRegistration.showAccountTypeSelection') %}
  17.                                 <select name="{% if prefix %}{{ prefix }}[accountType]{% else %}accountType{% endif %}"
  18.                                     id="{{ idPrefix ~ prefix }}accountType"
  19.                                     {% if onlyCompanyRegistration %}disabled{% endif %}
  20.                                     required="required"
  21.                                     class="{{ formSelectClass }} contact-select"
  22.                                     data-form-field-toggle="true"
  23.                                     data-form-field-toggle-target=".js-field-toggle-contact-type-company{% if customToggleTarget %}-{{ prefix }}{% endif %}"
  24.                                     data-form-field-toggle-value="{{ constant('Shopware\\Core\\Checkout\\Customer\\CustomerEntity::ACCOUNT_TYPE_BUSINESS') }}"
  25.                                     data-form-field-toggle-scope="{% if scope == 'parent' %}parent{% else %}all{% endif %}"
  26.                                     {% if scope == 'parent' %}data-form-field-toggle-parent-selector={{ parentSelector }}{% endif %}
  27.                                 >
  28.                             {% endif %}
  29.                             {% set isCompany = false %}
  30.                             {% if page.address.company or data.company is not empty %}
  31.                                 {% set isCompany  = true %}
  32.                             {% endif %}
  33.                             {% if onlyCompanyRegistration or (accountType and accountType == constant('Shopware\\Core\\Checkout\\Customer\\CustomerEntity::ACCOUNT_TYPE_BUSINESS')) %}
  34.                                 {% set isCompany  = true %}
  35.                             {% endif %}
  36.                             {% set isLoginPage = false %}
  37.                             {% if activeRoute == 'frontend.account.login.page' %}
  38.                                 {% set isLoginPage = true %}
  39.                             {% endif %}
  40.                             {% if isLoginPage %}
  41.                                 <option disabled="disabled"
  42.                                         selected="selected"
  43.                                         value="">
  44.                                     {#{{ "account.personalTypeLabel"|trans|sw_sanitize }}{{ "general.required"|trans|sw_sanitize }}#}
  45.                                 </option>
  46.                             {% endif %}
  47.                             {% if not onlyCompanyRegistration %}
  48.                                 <option value="{{ constant('Shopware\\Core\\Checkout\\Customer\\CustomerEntity::ACCOUNT_TYPE_PRIVATE') }}"
  49.                                     {% if isCompany == false and isLoginPage == false %} selected="selected"{% endif %}>
  50.                                     {{ "account.personalTypePrivate"|trans|sw_sanitize }}
  51.                                 </option>
  52.                             {% endif %}
  53.                             <option value="{{ constant('Shopware\\Core\\Checkout\\Customer\\CustomerEntity::ACCOUNT_TYPE_BUSINESS') }}"
  54.                                 {% if isCompany == true and isLoginPage == false %} selected="selected"{% endif %}>
  55.                                 {{ "account.personalTypeBusiness"|trans|sw_sanitize }}
  56.                             </option>
  57.                         </select>
  58.                         {% if onlyCompanyRegistration %}<input type="hidden" name="accountType" value="{{ constant('Shopware\\Core\\Checkout\\Customer\\CustomerEntity::ACCOUNT_TYPE_BUSINESS') }}">{% endif %}
  59.                     {% endblock %}
  60.                     {% block component_address_personal_account_type_error %}
  61.                     {% endblock %}
  62.                 </div>
  63.             </div>
  64.         {% elseif not hideCustomerTypeSelect %}
  65.             <input type="hidden" name="accountType">
  66.         {% endif %}
  67.     {% endblock %}
  68.     {% block component_address_personal_fields_salutation_title %}
  69.         <div class="{{ formRowClass }}"  style="{{deliverStyle}}">
  70.             {% block component_address_personal_fields_salutation %}
  71.                 <div class="form-group col-md-12 col-sm-12 form-group-select">
  72.                     {% block component_address_personal_fields_salutation_label %}
  73.                         <label class="form-label"
  74.                                for="{{ idPrefix ~ prefix }}personalSalutation"><span>
  75.                             {{ "account.personalSalutationLabel"|trans|sw_sanitize }}{{ "general.required"|trans|sw_sanitize }}
  76.                             </span></label>
  77.                     {% endblock %}
  78.                     {% block component_address_form_salutation_select %}
  79.                     <div class="custom-dropdown">
  80.                         <select id="{{ idPrefix ~ prefix }}personalSalutation"
  81.                                 class="{{ formSelectClass }}{% if formViolations.getViolations('/salutationId') is not empty %} is-invalid{% endif %}"
  82.                                 name="{% if prefix %}{{ prefix }}[salutationId]{% else %}salutationId{% endif %}"
  83.                                 required="required">
  84.                             {% if not data.get('salutationId') %}
  85.                                 <option disabled="disabled"
  86.                                         selected="selected"
  87.                                         value="">
  88.                                     {{ "account.personalSalutationPlaceholder"|trans|sw_sanitize }}
  89.                                 </option>
  90.                             {% endif %}
  91.                             {% for salutation in page.salutations %}
  92.                                 <option
  93.                               {% if salutation.id == data.get('salutationId') %}
  94.                                     selected="selected"
  95.                               {% endif %}
  96.                               {% if salutation.id == ev_salutationid %}
  97.                                     selected="selected"
  98.                               {% endif %}
  99.                                         value="{{ salutation.id }}">
  100.                                     {{ salutation.translated.displayName }}
  101.                                 </option>
  102.                             {% endfor %}
  103.                         </select>
  104.                     </div>
  105.                     {% endblock %}
  106.                     {% block component_address_form_salutation_select_error %}
  107.                         {% if formViolations.getViolations('/salutationId') is not empty %}
  108.                             {% sw_include '@Storefront/storefront/utilities/form-violation.html.twig' with {
  109.                                 violationPath: '/salutationId'
  110.                             } %}
  111.                         {% endif %}
  112.                     {% endblock %}
  113.                 </div>
  114.             {% endblock %}
  115.             {% block component_address_personal_fields_title %}
  116.                 {% if config('core.loginRegistration.showTitleField') %}
  117.                     <div class="form-group form-group-text col-md-12 col-sm-12">
  118.                         {% block component_address_personal_fields_title_label %}
  119.                             <label class="form-label"
  120.                                    for="{{ idPrefix ~ prefix }}personalTitle"><span>
  121.                                 {{ "account.personalTitleLabel"|trans|sw_sanitize }}
  122.                                 </span></label>
  123.                         {% endblock %}
  124.                         {% block component_address_personal_fields_title_input %}
  125.                             <input type="text"
  126.                                    class="form-control"
  127.                                    autocomplete="section-personal title"
  128.                                    id="{{ idPrefix ~ prefix }}personalTitle"
  129.                                    {#placeholder="{{ "account.personalTitlePlaceholder"|trans|striptags }}"#}
  130.                                    name="{% if prefix %}{{ prefix }}[title]{% else %}title{% endif %}"
  131.                                    value="{{ data.get('title') }}">
  132.                         {% endblock %}
  133.                     </div>
  134.                 {% endif %}
  135.             {% endblock %}
  136.         </div>
  137.     {% endblock %}
  138.     {% block component_address_personal_fields_name %}
  139. {% set ev_addresses = app.session.get('ev_address_data') %}
  140.         <div class="{{ formRowClass }}" style="{{deliverStyle}}">
  141.             {% block component_address_personal_fields_first_name %}
  142.                     <div class="form-group form-group-text col-sm-12">
  143.                         {% if formViolations.getViolations("/firstName") is not empty %}
  144.                             {% set violationPath = "/firstName" %}
  145.                         {% else %}
  146.                             {% set requiredMessage = "error.VIOLATION::IS_BLANK_ERROR"|trans({ '%field%': "account.personalFirstNameLabel"|trans|sw_sanitize }) %}
  147.                         {% endif %}
  148.                         {% block component_address_personal_fields_first_name_label %}
  149.                             <label class="form-label"
  150.                                    for="{{ idPrefix ~ prefix }}personalFirstName"><span>
  151.                                 {{ "account.personalFirstNameLabel"|trans|sw_sanitize }}{{ "general.required"|trans|sw_sanitize }}
  152.                             </span></label>
  153.                         {% endblock %}
  154.                         {% block component_address_personal_fields_first_name_input %}
  155.                             <input type="text"
  156.                                    class="form-control{% if violationPath is not empty %} is-invalid{% endif %}"
  157.                                    autocomplete="section-personal given-name"
  158.                                    id="{{ idPrefix ~ prefix }}personalFirstName"
  159.                                    {#placeholder="{{ "account.personalFirstNamePlaceholder"|trans|striptags }}"#}
  160.                                    name="{% if prefix %}{{ prefix }}[firstName]{% else %}firstName{% endif %}"
  161.                                    value="{% if data.get('firstName') is empty %}{{ ev_addresses[0].ev_firstname }}{% else %}{{ data.get('firstName') }}{% endif %}"
  162.                                    data-form-validation-required
  163.                                    {% if requiredMessage is defined %}data-form-validation-required-message="{{ requiredMessage }}"{% endif %}
  164.                                    required="required">
  165.                         {% endblock %}
  166.                         {% block component_address_personal_fields_first_name_input_error %}
  167.                             {% if violationPath %}
  168.                                 {% sw_include '@Storefront/storefront/utilities/form-violation.html.twig' %}
  169.                             {% endif %}
  170.                         {% endblock %}
  171.                     </div>
  172.             {% endblock %}
  173.         </div>
  174.         <div class="{{ formRowClass }}">
  175.             {% block component_address_personal_fields_last_name %}
  176.                 <div class="form-group form-group-text col-sm-12">
  177.                     {% if formViolations.getViolations("/lastName") is not empty %}
  178.                         {% set violationPath = "/lastName" %}
  179.                     {% else %}
  180.                         {% set requiredMessage = "error.VIOLATION::IS_BLANK_ERROR"|trans({ '%field%': "account.personalLastNameLabel"|trans|sw_sanitize }) %}
  181.                     {% endif %}
  182.                     {% block component_address_personal_fields_last_name_label %}
  183.                         <label class="form-label"
  184.                                for="{{ idPrefix ~ prefix }}personalLastName"><span>
  185.                             {{ "account.personalLastNameLabel"|trans|sw_sanitize }}{{ "general.required"|trans|sw_sanitize }}
  186.                             </span></label>
  187.                     {% endblock %}
  188.                     {% block component_address_personal_fields_last_name_input %}
  189.                         <input type="text"
  190.                                class="form-control{% if violationPath %} is-invalid{% endif %}"
  191.                                autocomplete="section-personal family-name"
  192.                                id="{{ idPrefix ~ prefix }}personalLastName"
  193.                                {#placeholder="{{ "account.personalLastNamePlaceholder"|trans|striptags }}"#}
  194.                                name="{% if prefix %}{{ prefix }}[lastName]{% else %}lastName{% endif %}"
  195.                                value="{% if data.get('lastName') is empty %}{{ ev_addresses[0].ev_name }}{% else %}{{ data.get('lastName') }}{% endif %}"
  196.                                data-form-validation-required
  197.                                {% if requiredMessage is defined %}data-form-validation-required-message="{{ requiredMessage }}"{% endif %}
  198.                                required="required">
  199.                     {% endblock %}
  200.                     {% block component_address_personal_fields_last_name_input_error %}
  201.                         {% if violationPath %}
  202.                             {% sw_include '@Storefront/storefront/utilities/form-violation.html.twig' %}
  203.                         {% endif %}
  204.                     {% endblock %}
  205.                 </div>
  206.             {% endblock %}
  207.         </div>
  208.     {% endblock %}
  209.     {% block component_address_personal_company %}
  210.         {% if (onlyCompanyRegistration or config('core.loginRegistration.showAccountTypeSelection')) and activeRoute == 'frontend.account.profile.page' %}
  211.             <div class="js-field-toggle-contact-type-company{% if customToggleTarget %}-{{ prefix }}{% endif %}">
  212.                 {% block component_address_personal_company_fields %}
  213.                     <div class="{{ formRowClass }}">
  214.                         {% block component_address_personal_company_name %}
  215.                             <div class="form-group form-group-text col-12">
  216.                                 {% if formViolations.getViolations("/company") is not empty %}
  217.                                     {% set violationPath = "/company" %}
  218.                                 {% else %}
  219.                                     {% set requiredMessage = "error.VIOLATION::IS_BLANK_ERROR"|trans({ '%field%': "address.companyNameLabel"|trans|sw_sanitize }) %}
  220.                                 {% endif %}
  221.                                 {% block component_address_personal_company_name_label %}
  222.                                     <label class="form-label" for="{{ idPrefix ~ prefix }}company"><span>
  223.                                         {{ "address.companyNameLabel"|trans|sw_sanitize }}{{ "general.required"|trans|sw_sanitize }}
  224.                                         </span></label>
  225.                                 {% endblock %}
  226.                                 {% block component_address_personal_company_name_input %}
  227.                                     <input type="text"
  228.                                            class="form-control{% if violationPath %} is-invalid{% endif %}"
  229.                                            id="{{ idPrefix ~ prefix }}company"
  230.                                            {#placeholder="{{ "address.companyNamePlaceholder"|trans|striptags }}"#}
  231.                                            name="company"
  232.                                            value="{{ data.get('company') }}"
  233.                                            data-form-validation-required
  234.                                            {% if requiredMessage is defined %}data-form-validation-required-message="{{ requiredMessage }}"{% endif %}
  235.                                            required="required">
  236.                                 {% endblock %}
  237.                                 {% block component_address_personal_company_name_input_error %}
  238.                                     {% if violationPath %}
  239.                                         {% sw_include '@Storefront/storefront/utilities/form-violation.html.twig' %}
  240.                                     {% endif %}
  241.                                 {% endblock %}
  242.                             </div>
  243.                         {% endblock %}
  244.                     </div>
  245.                 {% endblock %}
  246.             </div>
  247.         {% endif %}
  248.     {% endblock %}
  249.     {% block component_address_personal_vat_id %}
  250.         {% if showVatIdField %}
  251.             {% if config('core.loginRegistration.showAccountTypeSelection') or onlyCompanyRegistration %}
  252.                 <div class="js-field-toggle-contact-type-company{% if customToggleTarget %}-{{ prefix }}{% endif %} js-field-toggle-contact-type-vat-id">
  253.                     {% block component_address_personal_vat_id_fields %}
  254.                         <div class="{{ formRowClass }}">
  255.                             <div class="form-group col-12">
  256.                                 {% sw_include '@Storefront/storefront/component/address/address-personal-vat-id.html.twig' with {
  257.                                     'vatIds': data.get('vatIds'),
  258.                                     'editMode': true
  259.                                 } %}
  260.                             </div>
  261.                         </div>
  262.                     {% endblock %}
  263.                 </div>
  264.             {% endif %}
  265.         {% endif %}
  266.     {% endblock %}
  267.     {% block component_address_personal_fields_birthday %}
  268.         {% if showBirthdayField %}
  269.          <div class="form-group-text is-active">
  270.             {% block component_address_personal_fields_birthday_label %}
  271.                 <label class="form-label" for="{{ idPrefix ~ prefix }}personalBirthday"><span>
  272.                     {{ "account.personalBirthdayLabel"|trans|sw_sanitize }}{{ config('core.loginRegistration.birthdayFieldRequired') ? "general.required"|trans|sw_sanitize }}
  273.                     </span></label>
  274.             {% endblock %}
  275.             {% block component_address_personal_fields_birthday_selects %}
  276.                 <div class="{{ formRowClass }} checkout-dob-select">
  277.                     {% block component_address_personal_fields_birthday_select_day %}
  278.                         <div class="form-group col-md-12 col-12 custom-dropdown">
  279.                             <select id="{{ idPrefix ~ prefix }}personalBirthday" onchange="checkYears();"
  280.                                     name="{% if prefix %}{{ prefix }}[birthdayDay]{% else %}birthdayDay{% endif %}"
  281.                                     class="{{ formSelectClass }}{% if formViolations.getViolations('/birthdayDay') is not empty %} is-invalid{% endif %}"
  282.                                     {{ config('core.loginRegistration.birthdayFieldRequired') ? 'required="required"' }}>
  283.                                 {% if not data.get('birthdayDay') %}
  284.                                     <option selected="selected"
  285.                                             value="">
  286.                                         {{ "account.personalBirthdaySelectDay"|trans|sw_sanitize }}
  287.                                     </option>
  288.                                 {% endif %}
  289.                                 {% for day in range(1, 31) %}
  290.                                     <option value="{{ day }}"
  291.                                             {% if day == data.get('birthdayDay') %} selected="selected"{% endif %}>
  292.                                         {{ day }}
  293.                                     </option>
  294.                                 {% endfor %}
  295.                             </select>
  296.                             {% block component_address_personal_fields_birthday_select_day_error %}
  297.                                 {% if formViolations.getViolations('/birthdayDay') is not empty %}
  298.                                     {% sw_include '@Storefront/storefront/utilities/form-violation.html.twig' with {
  299.                                         violationPath: '/birthdayDay'
  300.                                     } %}
  301.                                 {% endif %}
  302.                             {% endblock %}
  303.                         </div>
  304.                     {% endblock %}
  305.                     {% block component_address_personal_fields_birthday_select_month %}
  306.                         <div class="form-group custom-dropdown">
  307.                             <select id="personalMonth" onchange="checkYears();" name="{% if prefix %}{{ prefix }}[birthdayMonth]{% else %}birthdayMonth{% endif %}"
  308.                                     class="{{ formSelectClass }}{% if formViolations.getViolations('/birthdayMonth') is not empty %} is-invalid{% endif %}"
  309.                                     {{ config('core.loginRegistration.birthdayFieldRequired') ? 'required="required"' }}>
  310.                                 {% if not data.get('birthdayMonth') %}
  311.                                     <option selected="selected"
  312.                                             value="">
  313.                                         {{ "account.personalBirthdaySelectMonth"|trans|sw_sanitize }}
  314.                                     </option>
  315.                                 {% endif %}
  316.                                 {% for month in range(1, 12) %}
  317.                                     <option value="{{ month }}"
  318.                                             {% if month == data.get('birthdayMonth') %} selected="selected"{% endif %}>
  319.                                         {{ month }}
  320.                                     </option>
  321.                                 {% endfor %}
  322.                             </select>
  323.                             {% block component_address_personal_fields_birthday_select_month_error %}
  324.                                 {% if formViolations.getViolations('/birthdayMonth') is not empty %}
  325.                                     {% sw_include '@Storefront/storefront/utilities/form-violation.html.twig' with {
  326.                                         violationPath: '/birthdayMonth'
  327.                                     } %}
  328.                                 {% endif %}
  329.                             {% endblock %}
  330.                         </div>
  331.                     {% endblock %}
  332.                     {% block component_address_personal_fields_birthday_select_year %}
  333.                         <div class="form-group custom-dropdown">
  334.                             {% set currentYear = "now"|date('Y') %}
  335.                             {% set startYear = currentYear - 120 %}
  336.                             <select id="personalYear" onchange="checkYears();" name="{% if prefix %}{{ prefix }}[birthdayYear]{% else %}birthdayYear{% endif %}"
  337.                                     class="{{ formSelectClass }}{% if formViolations.getViolations('/birthdayYear') is not empty %} is-invalid{% endif %}"
  338.                                     {{ config('core.loginRegistration.birthdayFieldRequired') ? 'required="required"' }}>
  339.                                 {% if not data.get('birthdayYear') %}
  340.                                     <option selected="selected"
  341.                                             value="">
  342.                                         {{ "account.personalBirthdaySelectYear"|trans|sw_sanitize }}
  343.                                     </option>
  344.                                 {% endif %}
  345.                                 {% for year in range(currentYear, startYear) %}
  346.                                     <option value="{{ year }}"
  347.                                             {% if year == data.get('birthdayYear') %} selected="selected"{% endif %}>
  348.                                         {{ year }}
  349.                                     </option>
  350.                                 {% endfor %}
  351.                             </select>
  352.                             {% block component_address_personal_fields_birthday_select_year_error %}
  353.                                 {% if formViolations.getViolations('/birthdayYear') is not empty %}
  354.                                     {% sw_include '@Storefront/storefront/utilities/form-violation.html.twig' with {
  355.                                         violationPath: '/birthdayYear'
  356.                                     } %}
  357.                                 {% endif %}
  358.                             {% endblock %}
  359.                         </div>
  360.                         <script>
  361.                             function checkYears(){
  362.                                 const birthdayDay = $('#personalBirthday :selected').val()
  363.                                 const birthdayMonth = $('#personalMonth :selected').val()
  364.                                 const birthdayYear = $('#personalYear :selected').val()
  365.                                 const age = 18;
  366.                                 const mydate = new Date();
  367.                                 mydate.setFullYear(birthdayYear, birthdayMonth-1, birthdayDay);
  368.                                 const currdate = new Date();
  369.                                 currdate.setFullYear(currdate.getFullYear() - age);
  370.                                 if (currdate < mydate) {
  371.                                     localStorage.setItem("isAdult", "1");
  372.                                     document.getElementById("errorMessageYears").style.display = "block";
  373.                                 } else {
  374.                                     localStorage.setItem("isAdult", "2");
  375.                                     document.getElementById("errorMessageYears").style.display = "none";
  376.                                 }
  377.                                 const event = new Event("isAdultChanged");
  378.                                 document.dispatchEvent(event);
  379.                             }
  380.                         </script>
  381.                     {% endblock %}
  382.                 </div>
  383.             {% endblock %}
  384.         </div>
  385.              <div>
  386.                 <label id="errorMessageYears" style="display: none; color:var(--red); margin-top: -2px;">Bestellung ab 18 Jahre m&ouml;glich.<label>
  387.             </div>
  388.         {% endif %}
  389.     {% endblock %}
  390. {% endblock %}