Oleg

Oleg

С нами с 16 марта 2019; Место в рейтинге пользователей: #10315
Oleg
20 апреля 2019, 19:48
0
Понял, спасибо.
Oleg
15 апреля 2019, 22:57
0
Благодарю!
Oleg
10 апреля 2019, 18:42
0
Я думаю проблема в этой части кода, но если её удалить весь js ложится.
3: [function(t, e, i) {
        "use strict";
        jQuery(function(t) {
            window.form_adjuster = {
                init: function(t) {
                    this.options = t, this.init_cache(), this.init_validation(), this.init_mask(), this.options.file && (this.build_file_structure(), this.check_file(), this.input_file_reset()), this.send_validation(), this.init_btn_no_ajax(), this.init_ajax_without_form(), this.number_only_init()
                },
                init_options: function() {
                    var e = !!window.wp_data && window.wp_data,
                        i = {
                            type: "POST",
                            handler: e.sau_sender_ajax_url ? e.sau_sender_ajax_url : "./form-handler.php",
                            dataType: "json",
                            contentType: !1,
                            processData: !1,
                            task: "task",
                            file: !1,
                            onload: !1,
                            success: !1,
                            error: !1
                        };
                    return this.options ? t.extend(i, this.options) : i
                },
                init_cache: function(e) {
                    this.options = this.init_options(), this.$input_phone = t(".userphone"), this.$input_date = t(".js-input-date"), this.$form = t("form:not(.js-no-ajax)"), this.$noajax_btn = t(".js-noajax-btn"), this.$number_only = t(".js-number-only"), this.$file_input = t(".js-file-check"), this.$btn_without_form = t(".js-single-button")
                },
                init_validation: function() {
                    t.validator.addMethod("regexp", function(t, e, i) {
                        var n = new RegExp(i);
                        return this.optional(e) || n.test(t)
                    }, "Please check your input."), t.validator.addClassRules({
                        userphone: {
                            regexp: "[^_]+$"
                        },
                        usermail: {
                            email: !0,
                            required: !0
                        },
                        required: {
                            required: !0
                        },
                        password: {
                            minlength: 6
                        },
                        passwordConfirm: {
                            minlength: 6,
                            equalTo: ".js-input-new-password"
                        }
                    })
                },
                init_mask: function() {
                    this.$input_phone.inputmask({
                        mask: "+7 (999) 999-99-99",
                        showMaskOnHover: !1
                    }), this.$input_date.inputmask("dd/mm/yyyy", {
                        showMaskOnHover: !1
                    })
                },
                form_send: function(e, i) {
                    var n = form_adjuster.options;
                    t.ajax({
                        type: n.type,
                        url: n.handler,
                        dataType: n.dataType,
                        contentType: n.contentType,
                        processData: n.processData,
                        data: e,
                        success: function() {
                            n.success ? n.success() : form_adjuster.ajax_success(), form_adjuster.$form_cur = !1
                        },
                        error: function() {
                            n.error ? n.error() : form_adjuster.ajax_error(), form_adjuster.$form_cur = !1
                        }
                    })
                },
                ajax_success: function() {
                    console.log("success"), form_adjuster.$form_cur && form_adjuster.$form_cur.trigger("reset")
                },
                ajax_error: function() {
                    console.log("error")
                },
                formData_assembly: function(e) {
                    var i, n = new FormData,
                        o = {},
                        s = t(e),
                        r = s.find(":input:not(.js-no-collect),select,textarea"),
                        a = [];
                    i = r.serializeArray();
                    for (var l = 0; l < i.length; l++)
                        if (i[l].value.length > 0) {
                            var c = r.filter("[name=" + i[l].name + "]"),
                                u = {};
                            if ("hidden" == c.attr("type") || c.hasClass("js-system-field")) c.hasClass("js-system-field") || n.append(i[l].name, i[l].value);
                            else {
                                var d = c.attr("data-title");
                                if (c.hasClass("js-work-position")) {
                                    var p = c.closest(".js-add-work-block").find(".js-datepicker-period");
                                    a.push({
                                        value: i[l].value,
                                        period: p.val(),
                                        title: "Данные о месте работы"
                                    })
                                } else s.hasClass("js-only-selected") ? o[i[l].value] = c.closest(".js-wrap").find(".js-counter-input").val() : (u.value = i[l].value, u.title = d, o[i[l].name] = u)
                            }
                        }
                    if (a.length > 0 && (o.position = a), n.append("formData", JSON.stringify(o)), form_adjuster.options.file) {
                        var h = t(e).find(".js-file-check");
                        h.length > 0 && h.each(function() {
                            var e = t(this),
                                i = e.val().length,
                                o = e.prop("multiple");
                            i > 0 && (o ? form_adjuster.collect_multiple_file(n, e) : n.append(e.attr("name"), e[0].files[0]))
                        })
                    }
                    this.form_send(n, !1)
                },
                collect_multiple_file: function(e, i) {
                    var n = i.closest(".js-file-wrapper");
                    n.find(".js-file-list");
                    t(".js-file-list li").each(function() {
                        for (var n = t(this).attr("data-name"), o = 0; o < i[0].files.length; o++) n == i[0].files[o].name && e.append(i.attr("name"), i[0].files[o])
                    })
                },
                check_file: function() {
                    function e(t) {
                        switch (t.target.error.code) {
                            case t.target.error.NOT_FOUND_ERR:
                                alert("File Not Found!");
                                break;
                            case t.target.error.NOT_READABLE_ERR:
                                alert("File is not readable");
                                break;
                            case t.target.error.ABORT_ERR:
                                break;
                            default:
                                alert("An error occurred reading this file.")
                        }
                    }

                    function i(e) {
                        for (var i = t(this), o = 0; o < i[0].files.length; o++) n(i[0].files[o], i)
                    }

                    function n(t, i) {
                        var n = new FileReader,
                            o = t.name,
                            s = i.closest(".js-upload-wrapper"),
                            r = (s.find(".js-filename"), i.closest(".js-input-file-block"));
                        n.file_name = o, n.onerror = e, r.addClass("_onload"), n.onabort = function(t) {
                            alert("File read cancelled")
                        }, n.onload = function(t) {
                            form_adjuster.options.onload ? form_adjuster.options.onload() : form_adjuster.file_onload(i, n)
                        }, n.onprogress = function(t) {
                            if (t.lengthComputable) {
                                var e = parseInt(t.loaded / t.total * 100, 10);
                                s.find(".js-upload-progressbar").css("width", e + "%")
                            }
                        }, n.readAsDataURL(t)
                    }
                    form_adjuster.$file_input.on("change", i)
                },
                file_onload: function(e, i) {
                    if (e.hasClass("js-file-preview")) {
                        var n = e.closest(".js-file-module"),
                            o = n.find(".js-object-fit");
                        n.find(".js-indicator-changes").attr("value", "true"), o.attr("src", i.result), t.fn.objectFitImages(o)
                    } else {
                        var n = e.closest(".js-upload-wrapper"),
                            s = n.find(".js-upload-text");
                        e.closest(".js-input-file-block").removeClass("_onload").addClass("_loaded"), n.addClass("_loaded"), s.text(i.file_name)
                    }
                },
                build_file_structure: function() {
                    form_adjuster.$file_input.each(function() {
                        var e = t(this),
                            i = e.data("params");
                        i = i || {}, e.wrap('<div class="upload-wrapper js-upload-wrapper' + (i.mod ? " upload-wrapper_" + i.mod : "") + '"></div>').after('<div class="upload-wrapper__bar-wrapper"><div class="upload-wrapper__bar js-upload-progressbar"></div></div><span class="upload-wrapper__label"><span class="upload-wrapper__text js-upload-text">' + (i.label ? i.label : "Изменить") + "</span>" + ("simple" === i.mod ? '<span class="cross-btn js-file-reset"></span>' : "") + "</span>")
                    })
                },
                input_file_reset: function() {
                    t(document).on("click", ".js-file-reset", function() {
                        var e = t(this);
                        if (e.hasClass("js-reset-preview")) {
                            var i = e.closest(".js-file-module"),
                                n = i.find(".js-file-check"),
                                o = i.find(".js-object-fit");
                            i.find(".js-indicator-changes").attr("value", "true"), o.attr("src", "").removeAttr("style")
                        } else {
                            var i = e.closest(".js-upload-wrapper"),
                                s = i.find(".js-upload-text"),
                                n = i.find(".js-file-check");
                            i.removeClass("_loaded"), s.text(n.data("params").label)
                        }
                        n.replaceWith(n.val("").clone(!0))
                    })
                },
                init_ajax_without_form: function() {
                    form_adjuster.$btn_without_form.click(function(e) {
                        e.preventDefault();
                        var i = JSON.parse(t(this).attr("data-json"));
                        form_adjuster.form_send(JSON.stringify(i.parameters), i.action)
                    })
                },
                init_btn_no_ajax: function() {
                    form_adjuster.$noajax_btn.click(function(e) {
                        e.preventDefault(), t(this).closest("form").submit()
                    })
                },
                number_only_init: function() {
                    t(document).on("keydown", ".js-number-only", function(t) {
                        46 == t.keyCode || 8 == t.keyCode || 9 == t.keyCode || 27 == t.keyCode || 65 == t.keyCode && !0 === t.ctrlKey || t.keyCode >= 35 && t.keyCode <= 39 || (t.keyCode < 48 || t.keyCode > 57) && (t.keyCode < 96 || t.keyCode > 105) && t.preventDefault()
                    })
                },
                send_validation: function() {
                    this.$form.each(function() {
                        t(this).validate({
                            errorPlacement: function(t, e) {
                                t.remove()
                            },
                            submitHandler: function(e) {
                                form_adjuster.$form_cur = t(e), t(e).hasClass("js-custom-ajax") ? t(e).trigger("custom_ajax") : form_adjuster.formData_assembly(e)
                            }
                        })
                    })
                }
            }
        })
    }, {}],
Oleg
10 апреля 2019, 17:53
0
Я вот что заметил. На формит приходит спам учитывая что вывода форм на сайте нет. Как они это делают? Почему у них контактная форма работает?
Oleg
10 апреля 2019, 17:20
0
Возможно есть какой то способ оградить контактные формы от этой библиотеки?
Oleg
10 апреля 2019, 15:22
0
Спасибо, упустил момент с страницей ошибки.
Oleg
10 апреля 2019, 15:09
0
Совсем никаких ошибок от bundle.js. Сам файл cloud.mail.ru/public/6FMU/36Km6wuq9
Oleg
09 апреля 2019, 16:57
0
Может есть другие контактные формы? Можете какие то посоветовать?
Oleg
08 апреля 2019, 20:12
0
Нашёл проблему. Она была в подключаемой bundle.js. Без неё форма работает исправно, но дело в том что она(bundle.js) жизненно необходима самому сайту (ибо ребята которые делали шаблон так решили) сам же сайт не подключается к jquery.
Если js оставить то форма выводит на формит следующее.
{"name":{"value":"Имя"},"phone":{"value":"+7 (000) 000-00-00"},"agree":{"value":"on"}}
Сама библиотека огромна, и как я понял в 11 строчек. Есть предложения? (Копировать её в комментарий чистой воды издевательство, возможно как то файлик перекинуть?)
Oleg
08 апреля 2019, 18:05
0
А что на счёт оповещений ajax? Они в самой форме тоже не отображаются, как при ошибках так и при попытке отправки сообщения. (Те прямоугольники в правом верхнем углу) Подключал как в стандартном шаблоне. Более того создал чистую страницу с стандартной формой, и опять же ничего не происходит. Даже почту обычную ставил @mail.ru всё рано никакого результата. Может к ним нужно подключать отдельно какие то js/css библиотеки?
Oleg
08 апреля 2019, 17:20
0
Хостинг masterhost. В спаме сообщений нет.
Oleg
08 апреля 2019, 14:58
0
Сообщение на почту не пришло. Хотя плагин написал что сообщение отправлено. Пробовал вывести через
[[!QuickEmail? &debug=`1`]]
так же написало почту на которую отправлять и «Сообщение успешно отправлено». emailsender в настройках заполнен верно.
В error логах жалоба на " modRestClient::__construct is deprecated since version 2.3.0. Use the modRest classes instead."
Oleg
07 апреля 2019, 21:09
0
Извиняюсь, это я тоже заметил, но форма всё равно не работает. Сообщения не отправляет.
Oleg
28 марта 2019, 13:43
0
Блин, вот как всегда внимательность самое главное. Спасибо за помощь добрый человек! =)
Oleg
28 марта 2019, 03:40
0
Чтото не пойму. Этот:
{var $checked = !($order.delivery in keys $deliveries) && $index == 0 || $delivery.id == $order.delivery}
Или этот?
<label for="{$delivery.id}" class="label">
Потому как кроме них всё идентично и всё равно не работает. Я слишком тупой да?
Oleg
27 марта 2019, 22:06
0
Чанк
<form class="ms2_form" id="msOrder" method="post">
    
    <div class="row">
        <div class="col-md-6" id="deliveries" style="margin-bottom: 20px">
            <h4 style="margin-bottom:7px;">{'ms2_frontend_deliveries' | lexicon}:</h4>
           
                
                    {foreach $deliveries as $delivery index=$index}
                        {var $checked = !$order.delivery && $index == 0 || $delivery.id == $order.delivery}
                        <label>
                           
                                <input id="{$delivery.id}" type="radio" name="delivery" class="radio" value="{$delivery.id}" id="delivery_{$delivery.id}"
                                       data-payments="{$delivery.payments | json_encode}"
                                        {$checked ? 'checked' : ''}>
                                         <label for="{$delivery.id}" class="label">{if $delivery.logo?}
                                    <img src="{$delivery.logo}" alt="{$delivery.name}" title="{$delivery.name}"/>
                                {else}
                                    {$delivery.name}
                                {/if}
                                {*if $delivery.description?}
                                    <p class="small">
                                        {$delivery.description}
                                    </p>
                                {/if*}</span>
                                
                            
                        </label>
                    {/foreach}
              
          
        </div>
        
        <div class="col-md-6" id="payments"  style="margin-bottom: 20px">
            
            <h4 style="margin-bottom:7px;">{'ms2_frontend_payments' | lexicon}:</h4>
            
                
              
                    {foreach $payments as $payment index=$index}
                        {var $checked = !$order.payment && $index == 0 || $payment.id == $order.payment}
                      
                            <label>
                                <input id="{$payment.id}" type="radio" name="payment" class="radio" value="{$payment.id}" id="payment_{$payment.id}"
                                        {$checked ? 'checked' : ''}>
                                         <label for="{$payment.id}" class="label">{if $payment.logo?}
                                    <img src="{$payment.logo}" alt="{$payment.name}" title="{$payment.name}"/>
                                {else}
                                    {$payment.name}
                                {/if}
                                {if $payment.description?}
                                    <p class="small">
                                        {$payment.description}
                                    </p>
                                {/if}</label>
                                
                            </label>
                      
                    {/foreach}
            
            
        </div>
    </div>

    <div class="row">
        
        <div class="col-md-6">
            <h4>{'ms2_frontend_credentials' | lexicon}:</h4>
            {foreach ['email','receiver','phone'] as $field}
                <div class="input-parent">
                    <label class="control-label" for="{$field}">
                        <span class="required-star">*</span> {('ms2_frontend_' ~ $field) | lexicon}
                    </label>
                  
                        <input type="text" id="{$field}" placeholder="{('ms2_frontend_' ~ $field) | lexicon}"
                               name="{$field}" value="{$form[$field]}"
                               class="form-control{($field in list $errors) ? ' error' : ''}">
               
                </div>
            {/foreach}

            
        </div>

        <div class="col-md-6">
             <h4>{'ms2_frontend_address' | lexicon}:</h4>
            <div class="row">
               
              <div class="col-md-6">
                  
            {foreach ['region','city'] as $field}
               <div class="input-parent">
                   
               <label for="">        <span class="required-star">*</span> {('ms2_frontend_' ~ $field) | lexicon}</label> 
               
                  
                        <input type="text" id="{$field}" placeholder="{('ms2_frontend_' ~ $field) | lexicon}"
                               name="{$field}" value="{$form[$field]}"
                               class="form-control{($field in list $errors) ? ' error' : ''}">
                 
                </div>
            {/foreach}
            </div>
            <div class="col-md-6">
               
                    
               
                    {foreach ['street','building','room'] as $field}
                    <div class="input-parent">
                        <label class="control-label" for="{$field}">
                            <span class="required-star">*</span> {('ms2_frontend_' ~ $field) | lexicon}
                        </label>
                  
                            <input type="text" id="{$field}" placeholder="{('ms2_frontend_' ~ $field) | lexicon}"
                                   name="{$field}" value="{$form[$field]}"
                                   class="form-control{($field in list $errors) ? ' error' : ''}">
                      </div>
                    {/foreach}
              
            </div>
            </div>
        </div>
        
        <div class="col-md-12">
                <label class="control-label" for="comment">
                    <span class="required-star">*</span> {'ms2_frontend_comment' | lexicon}</label>
             
                    <textarea name="comment" id="comment" placeholder="{'ms2_frontend_comment' | lexicon}"
                              class="form-control{('comment' in list $errors) ? ' error' : ''}">{$form.comment}</textarea>
            
        </div>
        
        

        
        

        <div style="margin-bottom:30px;" class="col-md-12"><strong>{'ms2_frontend_order_cost' | lexicon}:
                <span id="ms2_order_cost">{$order.cost ?: 0}</span>
                руб.,</strong>
        </div>
 
        <div class="col-md-4">
            <button type="submit" name="ms2_action" value="order/submit" class="btn btn-default btn-primary ms2_link">
                {'ms2_frontend_order_submit' | lexicon}*
            </button>           
        </div>
  
    </div>





</form>
Вы чтото нашли?
Oleg
27 марта 2019, 21:44
0
Может я чего не понимаю, что вы имеете ввиду под выражением «чанк по умолчанию»?
Oleg
27 марта 2019, 21:08
0
Всё в порядке. Пробовал методично отключать JS, не помогает.
Oleg
27 марта 2019, 18:40
0
У меня к примеру выводится точно так же, но всё равно сразу не отображается.
Oleg
25 марта 2019, 12:51
0
Значит переопределением называется «пересоздание» класса?