Помощь Поддержка или помощь c Prestashop - 2 часть

Статус
В этой теме нельзя размещать новые ответы.
тогда и апаш этой версии нужен
Этой, это какой?

Я на сервере могу переключать между: nginx, Apache 2.2.х, Apache 2.4.х и PHP 7.0.х, PHP 5.6.х. Так вот Преста работает нормально (без каких либо шаманств в .htaccess или еще где либо) только в связке - Apache 2.2.х + PHP 7.0.х или PHP 5.6.х. Сейчас Преста работает на Apache 2.2.х + PHP 7.0.х.
Если переключить на Apache 2.4.х, картинка вышеописанная.

При этом есть еще один простенький сайт (вэбморда почтового клиента), который работает и на Apache 2.2.х, и на Apache 2.4.х (без каких либо шаманств в его .htaccess).

Нашел в нете несколько упоминаний, Для просмотра ссылки Войди или Зарегистрируйся, что для Apache 2.4 в .htaccess Престы нужно изменить синтаксис в написании следующих строк:

Exemple de syntaxe Apache 2.2:

Код:
FilterProvider COMPRESS DEFLATE resp=Content-Type $text/html
FilterProvider COMPRESS DEFLATE resp=Content-Type $text/css

Exemple de syntaxe Apache 2.4:

Код:
FilterProvider COMPRESS DEFLATE "%{Content_Type} = 'text/html'"
FilterProvider COMPRESS DEFLATE "%{Content_Type} = 'text/css'"

И типа в .htaccess Престы добавить для совместимости:

Код:
    <IfModule mod_version.c>
      <IfModule mod_filter.c>
        <IfVersion >= 2.4>
                FilterProvider COMPRESS  DEFLATE "%{Content_Type} = 'text/html'"
                FilterProvider COMPRESS  DEFLATE "%{Content_Type} = 'text/css'"
        </IfVersion>
        <IfVersion < 2.4>
                FilterProvider COMPRESS DEFLATE resp=Content-Type $text/html
                FilterProvider COMPRESS DEFLATE resp=Content-Type $text/css
        </IfVersion>
       </IfModule>
     </IfModule>

Попробовал, ничего не получилось, результат тот же или 500 страница.
 
Подскажите, как маску номера сделать? Стоит WareHouse 4.1.4 и стоит OP. Пробовал так в шаблон
Код:
<script type="text/javascript" src="/themes/warehouse/assets/js/jquery.maskedinput-1.2.2.js"></script>
            <script type="text/javascript">
   jQuery(function($) {
      $('#delivery_phone_mobile').mask('+7(999) 999-9999');
     });</script>
И это сам скрипт
Код:
/// <reference path="../../../lib/jquery-1.2.6.js" />
/*
    Masked Input plugin for jQuery
    Copyright (c) 2007-2009 Josh Bush (digitalbush.com)
    Licensed under the MIT license (http://digitalbush.com/projects/masked-input-plugin/#license)
    Version: 1.2.2 (03/09/2009 22:39:06)
*/
(function($) {
    var pasteEventName = ($.browser.msie ? 'paste' : 'input') + ".mask";
    var iPhone = (window.orientation != undefined);

    $.mask = {
        //Predefined character definitions
        definitions: {
            '9': "[0-9]",
            'a': "[A-Za-z]",
            '*': "[A-Za-z0-9]"
        }
    };

    $.fn.extend({
        //Helper Function for Caret positioning
        caret: function(begin, end) {
            if (this.length == 0) return;
            if (typeof begin == 'number') {
                end = (typeof end == 'number') ? end : begin;
                return this.each(function() {
                    if (this.setSelectionRange) {
                        this.focus();
                        this.setSelectionRange(begin, end);
                    } else if (this.createTextRange) {
                        var range = this.createTextRange();
                        range.collapse(true);
                        range.moveEnd('character', end);
                        range.moveStart('character', begin);
                        range.select();
                    }
                });
            } else {
                if (this[0].setSelectionRange) {
                    begin = this[0].selectionStart;
                    end = this[0].selectionEnd;
                } else if (document.selection && document.selection.createRange) {
                    var range = document.selection.createRange();
                    begin = 0 - range.duplicate().moveStart('character', -100000);
                    end = begin + range.text.length;
                }
                return { begin: begin, end: end };
            }
        },
        unmask: function() { return this.trigger("unmask"); },
        mask: function(mask, settings) {
            if (!mask && this.length > 0) {
                var input = $(this[0]);
                var tests = input.data("tests");
                return $.map(input.data("buffer"), function(c, i) {
                    return tests[i] ? c : null;
                }).join('');
            }
            settings = $.extend({
                placeholder: "_",
                completed: null
            }, settings);

            var defs = $.mask.definitions;
            var tests = [];
            var partialPosition = mask.length;
            var firstNonMaskPos = null;
            var len = mask.length;

            $.each(mask.split(""), function(i, c) {
                if (c == '?') {
                    len--;
                    partialPosition = i;
                } else if (defs[c]) {
                    tests.push(new RegExp(defs[c]));
                    if(firstNonMaskPos==null)
                        firstNonMaskPos =  tests.length - 1;
                } else {
                    tests.push(null);
                }
            });

            return this.each(function() {
                var input = $(this);
                var buffer = $.map(mask.split(""), function(c, i) { if (c != '?') return defs[c] ? settings.placeholder : c });
                var ignore = false;              //Variable for ignoring control keys
                var focusText = input.val();

                input.data("buffer", buffer).data("tests", tests);

                function seekNext(pos) {
                    while (++pos <= len && !tests[pos]);
                    return pos;
                };

                function shiftL(pos) {
                    while (!tests[pos] && --pos >= 0);
                    for (var i = pos; i < len; i++) {
                        if (tests[i]) {
                            buffer[i] = settings.placeholder;
                            var j = seekNext(i);
                            if (j < len && tests[i].test(buffer[j])) {
                                buffer[i] = buffer[j];
                            } else
                                break;
                        }
                    }
                    writeBuffer();
                    input.caret(Math.max(firstNonMaskPos, pos));
                };

                function shiftR(pos) {
                    for (var i = pos, c = settings.placeholder; i < len; i++) {
                        if (tests[i]) {
                            var j = seekNext(i);
                            var t = buffer[i];
                            buffer[i] = c;
                            if (j < len && tests[j].test(t))
                                c = t;
                            else
                                break;
                        }
                    }
                };

                function keydownEvent(e) {
                    var pos = $(this).caret();
                    var k = e.keyCode;
                    ignore = (k < 16 || (k > 16 && k < 32) || (k > 32 && k < 41));

                    //delete selection before proceeding
                    if ((pos.begin - pos.end) != 0 && (!ignore || k == 8 || k == 46))
                        clearBuffer(pos.begin, pos.end);

                    //backspace, delete, and escape get special treatment
                    if (k == 8 || k == 46 || (iPhone && k == 127)) {//backspace/delete
                        shiftL(pos.begin + (k == 46 ? 0 : -1));
                        return false;
                    } else if (k == 27) {//escape
                        input.val(focusText);
                        input.caret(0, checkVal());
                        return false;
                    }
                };

                function keypressEvent(e) {
                    if (ignore) {
                        ignore = false;
                        //Fixes Mac FF bug on backspace
                        return (e.keyCode == 8) ? false : null;
                    }
                    e = e || window.event;
                    var k = e.charCode || e.keyCode || e.which;
                    var pos = $(this).caret();

                    if (e.ctrlKey || e.altKey || e.metaKey) {//Ignore
                        return true;
                    } else if ((k >= 32 && k <= 125) || k > 186) {//typeable characters
                        var p = seekNext(pos.begin - 1);
                        if (p < len) {
                            var c = String.fromCharCode(k);
                            if (tests[p].test(c)) {
                                shiftR(p);
                                buffer[p] = c;
                                writeBuffer();
                                var next = seekNext(p);
                                $(this).caret(next);
                                if (settings.completed && next == len)
                                    settings.completed.call(input);
                            }
                        }
                    }
                    return false;
                };

                function clearBuffer(start, end) {
                    for (var i = start; i < end && i < len; i++) {
                        if (tests[i])
                            buffer[i] = settings.placeholder;
                    }
                };

                function writeBuffer() { return input.val(buffer.join('')).val(); };

                function checkVal(allow) {
                    //try to place characters where they belong
                    var test = input.val();
                    var lastMatch = -1;
                    for (var i = 0, pos = 0; i < len; i++) {
                        if (tests[i]) {
                            buffer[i] = settings.placeholder;
                            while (pos++ < test.length) {
                                var c = test.charAt(pos - 1);
                                if (tests[i].test(c)) {
                                    buffer[i] = c;
                                    lastMatch = i;
                                    break;
                                }
                            }
                            if (pos > test.length)
                                break;
                        } else if (buffer[i] == test[pos] && i!=partialPosition) {
                            pos++;
                            lastMatch = i;
                        }
                    }
                    if (!allow && lastMatch + 1 < partialPosition) {
                        input.val("");
                        clearBuffer(0, len);
                    } else if (allow || lastMatch + 1 >= partialPosition) {
                        writeBuffer();
                        if (!allow) input.val(input.val().substring(0, lastMatch + 1));
                    }
                    return (partialPosition ? i : firstNonMaskPos);
                };

                if (!input.attr("readonly"))
                    input
                    .one("unmask", function() {
                        input
                            .unbind(".mask")
                            .removeData("buffer")
                            .removeData("tests");
                    })
                    .bind("focus.mask", function() {
                        focusText = input.val();
                        var pos = checkVal();
                        writeBuffer();
                        setTimeout(function() {
                            if (pos == mask.length)
                                input.caret(0, pos);
                            else
                                input.caret(pos);
                        }, 0);
                    })
                    .bind("blur.mask", function() {
                        checkVal();
                        if (input.val() != focusText)
                            input.change();
                    })
                    .bind("keydown.mask", keydownEvent)
                    .bind("keypress.mask", keypressEvent)
                    .bind(pasteEventName, function() {
                        setTimeout(function() { input.caret(checkVal(true)); }, 0);
                    });

                checkVal(); //Perform initial check for existing values
            });
        }
    });
})(jQuery);
Что-то не хочет применять к полю, хотя ID правильное...
 
Последнее редактирование:
PHP:
 <input type="tel" class="form-control grey validate call_me_phone" id="message" pattern="\d (\d\d\d\) ?\d\d\d-\d\d-\d\d" placeholder="Телефон*" name="message" data-validate="isPhoneNumber" value="{if isset($message)}{$message|escape:'html':'UTF-8'}{/if}">
name id и классы свои вставляйте
Код:
!function(a){"function" == typeof define && define.amd?define(["jquery"], a):a("object" == typeof exports?require("jquery"):jQuery)}(function(a){var b, c = navigator.userAgent, d = /iphone/i.test(c), e = /chrome/i.test(c), f = /android/i.test(c); a.mask = {definitions:{9:"[0-9]", a:"[A-Za-z]", "*":"[A-Za-z0-9]"},autoclear:!0,dataName:"rawMaskFn",placeholder:"_"},a.fn.extend({caret:function(a, b){var c; if (0 !== this.length && !this.is(":hidden"))return"number" == typeof a?(b = "number" == typeof b?b:a, this.each(function(){this.setSelectionRange?this.setSelectionRange(a, b):this.createTextRange && (c = this.createTextRange(), c.collapse(!0), c.moveEnd("character", b), c.moveStart("character", a), c.select())})):(this[0].setSelectionRange?(a=this[0].selectionStart,b=this[0].selectionEnd):document.selection&&document.selection.createRange&&(c=document.selection.createRange(),a=0-c.duplicate().moveStart("character",-1e5),b=a+c.text.length),{begin:a, end:b})},unmask:function(){return this.trigger("unmask")},mask:function(c,g){var h, i, j, k, l, m, n, o; if (!c && this.length > 0){h = a(this[0]); var p = h.data(a.mask.dataName); return p?p():void 0}return g=a.extend({autoclear:a.mask.autoclear, placeholder:a.mask.placeholder, completed:null},g),i=a.mask.definitions,j=[],k=n=c.length,l=null,a.each(c.split(""),function(a,b){"?" == b?(n--, k = a):i[b]?(j.push(new RegExp(i[b])), null === l && (l = j.length - 1), k > a && (m = j.length - 1)):j.push(null)}),this.trigger("unmask").each(function(){function h(){if (g.completed){for (var a = l; m >= a; a++)if (j[a] && C[a] === p(a))return; g.completed.call(B)}}function p(a){return g.placeholder.charAt(a < g.placeholder.length?a:0)}function q(a){for (; ++a < n && !j[a]; ); return a}function r(a){for (; --a >= 0 && !j[a]; ); return a}function s(a,b){var c, d; if (!(0 > a)){for (c = a, d = q(b); n > c; c++)if (j[c]){if (!(n > d && j[c].test(C[d])))break; C[c] = C[d], C[d] = p(d), d = q(d)}z(),B.caret(Math.max(l,a))}}function t(a){var b, c, d, e; for (b = a, c = p(a); n > b; b++)if (j[b]){if (d = q(b), e = C[b], C[b] = c, !(n > d && j[d].test(e)))break; c = e}}function u(){var a = B.val(), b = B.caret(); if (o && o.length && o.length > a.length){for (A(!0); b.begin > 0 && !j[b.begin - 1]; )b.begin--; if (0 === b.begin)for (; b.begin < l && !j[b.begin]; )b.begin++; B.caret(b.begin, b.begin)}else{for (A(!0); b.begin < n && !j[b.begin]; )b.begin++; B.caret(b.begin, b.begin)}h()}function v(){A(), B.val() != E && B.change()}function w(a){if (!B.prop("readonly")){var b, c, e, f = a.which || a.keyCode; o = B.val(), 8 === f || 46 === f || d && 127 === f?(b = B.caret(), c = b.begin, e = b.end, e - c === 0 && (c = 46 !== f?r(c):e = q(c - 1), e = 46 === f?q(e):e), y(c, e), s(c, e - 1), a.preventDefault()):13 === f?v.call(this, a):27 === f && (B.val(E), B.caret(0, A()), a.preventDefault())}}function x(b){if (!B.prop("readonly")){var c, d, e, g = b.which || b.keyCode, i = B.caret(); if (!(b.ctrlKey || b.altKey || b.metaKey || 32 > g) && g && 13 !== g){if (i.end - i.begin !== 0 && (y(i.begin, i.end), s(i.begin, i.end - 1)), c = q(i.begin - 1), n > c && (d = String.fromCharCode(g), j[c].test(d))){if (t(c), C[c] = d, z(), e = q(c), f){var k = function(){a.proxy(a.fn.caret, B, e)()};setTimeout(k,0)}else B.caret(e);i.begin<=m&&h()}b.preventDefault()}}}function y(a,b){var c; for (c = a; b > c && n > c; c++)j[c] && (C[c] = p(c))}function z(){B.val(C.join(""))}function A(a){var b, c, d, e = B.val(), f = - 1; for (b = 0, d = 0; n > b; b++)if (j[b]){for (C[b] = p(b); d++<e.length;)if(c=e.charAt(d-1),j[b].test(c)){C[b] = c, f = b; break}if(d>e.length){y(b + 1, n); break}}else C[b]===e.charAt(d)&&d++,k>b&&(f=b);return a?z():k>f+1?g.autoclear||C.join("")===D?(B.val()&&B.val(""),y(0,n)):z():(z(),B.val(B.val().substring(0,f+1))),k?b:l}var B=a(this),C=a.map(c.split(""),function(a,b){return"?" != a?i[a]?p(b):a:void 0}),D=C.join(""),E=B.val();B.data(a.mask.dataName,function(){return a.map(C, function(a, b){return j[b] && a != p(b)?a:null}).join("")}),B.one("unmask",function(){B.off(".mask").removeData(a.mask.dataName)}).on("focus.mask",function(){if (!B.prop("readonly")){clearTimeout(b); var a; E = B.val(), a = A(), b = setTimeout(function(){B.get(0) === document.activeElement && (z(), a == c.replace("?", "").length?B.caret(0, a):B.caret(a))},10)}}).on("blur.mask",v).on("keydown.mask",w).on("keypress.mask",x).on("input.mask paste.mask",function(){B.prop("readonly") || setTimeout(function(){var a = A                                                                                                                       (!0); B.caret(a), h()},0)}),e&&f&&B.off("inp                                                                                                                                               ut.mask").on("input.mask",u),A()})}})}                                                                                                                                    );

                                  $(document).ready(function() {
                                      $(".call_me_phone").mask("+7 (999) 999-99-99");});
 
У меня везде этот код работает, под спойлером в literal обернуть.
 
про все совместимости с apach я не сильна, только то,что вижу могу написать на одном моём хостинге используются CGI: 7.1.11 с php 7
 
ещё с одного
Информация о сервере Linux #96-Ubuntu SMP Thu Apr 20 09:56:33 UTC 2017 x86_64

Версия веб-сервера Apache/2.4.18 (Ubuntu)

Версия PHP 7.0.22-0ubuntu0.16.04.1

кстати этот сайт переводили с версии 5.6, в htassets ничего не правила, там вылазили небольшие разногласия в синтаксисе php удалось отловить, prestashop 1.6
 
Последнее редактирование:
Могу только к сисадмину отправить, если на хостинге тех поддержка не помогает.
 
Подскажите что подправить чтобы сделать картинку на CMS странице во всю ширину экрана
 
PHP:
 <input type="tel" class="form-control grey validate call_me_phone" id="message" pattern="\d (\d\d\d\) ?\d\d\d-\d\d-\d\d" placeholder="Телефон*" name="message" data-validate="isPhoneNumber" value="{if isset($message)}{$message|escape:'html':'UTF-8'}{/if}">
name id и классы свои вставляйте
Код:
!function(a){"function" == typeof define && define.amd?define(["jquery"], a):a("object" == typeof exports?require("jquery"):jQuery)}(function(a){var b, c = navigator.userAgent, d = /iphone/i.test(c), e = /chrome/i.test(c), f = /android/i.test(c); a.mask = {definitions:{9:"[0-9]", a:"[A-Za-z]", "*":"[A-Za-z0-9]"},autoclear:!0,dataName:"rawMaskFn",placeholder:"_"},a.fn.extend({caret:function(a, b){var c; if (0 !== this.length && !this.is(":hidden"))return"number" == typeof a?(b = "number" == typeof b?b:a, this.each(function(){this.setSelectionRange?this.setSelectionRange(a, b):this.createTextRange && (c = this.createTextRange(), c.collapse(!0), c.moveEnd("character", b), c.moveStart("character", a), c.select())})):(this[0].setSelectionRange?(a=this[0].selectionStart,b=this[0].selectionEnd):document.selection&&document.selection.createRange&&(c=document.selection.createRange(),a=0-c.duplicate().moveStart("character",-1e5),b=a+c.text.length),{begin:a, end:b})},unmask:function(){return this.trigger("unmask")},mask:function(c,g){var h, i, j, k, l, m, n, o; if (!c && this.length > 0){h = a(this[0]); var p = h.data(a.mask.dataName); return p?p():void 0}return g=a.extend({autoclear:a.mask.autoclear, placeholder:a.mask.placeholder, completed:null},g),i=a.mask.definitions,j=[],k=n=c.length,l=null,a.each(c.split(""),function(a,b){"?" == b?(n--, k = a):i[b]?(j.push(new RegExp(i[b])), null === l && (l = j.length - 1), k > a && (m = j.length - 1)):j.push(null)}),this.trigger("unmask").each(function(){function h(){if (g.completed){for (var a = l; m >= a; a++)if (j[a] && C[a] === p(a))return; g.completed.call(B)}}function p(a){return g.placeholder.charAt(a < g.placeholder.length?a:0)}function q(a){for (; ++a < n && !j[a]; ); return a}function r(a){for (; --a >= 0 && !j[a]; ); return a}function s(a,b){var c, d; if (!(0 > a)){for (c = a, d = q(b); n > c; c++)if (j[c]){if (!(n > d && j[c].test(C[d])))break; C[c] = C[d], C[d] = p(d), d = q(d)}z(),B.caret(Math.max(l,a))}}function t(a){var b, c, d, e; for (b = a, c = p(a); n > b; b++)if (j[b]){if (d = q(b), e = C[b], C[b] = c, !(n > d && j[d].test(e)))break; c = e}}function u(){var a = B.val(), b = B.caret(); if (o && o.length && o.length > a.length){for (A(!0); b.begin > 0 && !j[b.begin - 1]; )b.begin--; if (0 === b.begin)for (; b.begin < l && !j[b.begin]; )b.begin++; B.caret(b.begin, b.begin)}else{for (A(!0); b.begin < n && !j[b.begin]; )b.begin++; B.caret(b.begin, b.begin)}h()}function v(){A(), B.val() != E && B.change()}function w(a){if (!B.prop("readonly")){var b, c, e, f = a.which || a.keyCode; o = B.val(), 8 === f || 46 === f || d && 127 === f?(b = B.caret(), c = b.begin, e = b.end, e - c === 0 && (c = 46 !== f?r(c):e = q(c - 1), e = 46 === f?q(e):e), y(c, e), s(c, e - 1), a.preventDefault()):13 === f?v.call(this, a):27 === f && (B.val(E), B.caret(0, A()), a.preventDefault())}}function x(b){if (!B.prop("readonly")){var c, d, e, g = b.which || b.keyCode, i = B.caret(); if (!(b.ctrlKey || b.altKey || b.metaKey || 32 > g) && g && 13 !== g){if (i.end - i.begin !== 0 && (y(i.begin, i.end), s(i.begin, i.end - 1)), c = q(i.begin - 1), n > c && (d = String.fromCharCode(g), j[c].test(d))){if (t(c), C[c] = d, z(), e = q(c), f){var k = function(){a.proxy(a.fn.caret, B, e)()};setTimeout(k,0)}else B.caret(e);i.begin<=m&&h()}b.preventDefault()}}}function y(a,b){var c; for (c = a; b > c && n > c; c++)j[c] && (C[c] = p(c))}function z(){B.val(C.join(""))}function A(a){var b, c, d, e = B.val(), f = - 1; for (b = 0, d = 0; n > b; b++)if (j[b]){for (C[b] = p(b); d++<e.length;)if(c=e.charAt(d-1),j[b].test(c)){C[b] = c, f = b; break}if(d>e.length){y(b + 1, n); break}}else C[b]===e.charAt(d)&&d++,k>b&&(f=b);return a?z():k>f+1?g.autoclear||C.join("")===D?(B.val()&&B.val(""),y(0,n)):z():(z(),B.val(B.val().substring(0,f+1))),k?b:l}var B=a(this),C=a.map(c.split(""),function(a,b){return"?" != a?i[a]?p(b):a:void 0}),D=C.join(""),E=B.val();B.data(a.mask.dataName,function(){return a.map(C, function(a, b){return j[b] && a != p(b)?a:null}).join("")}),B.one("unmask",function(){B.off(".mask").removeData(a.mask.dataName)}).on("focus.mask",function(){if (!B.prop("readonly")){clearTimeout(b); var a; E = B.val(), a = A(), b = setTimeout(function(){B.get(0) === document.activeElement && (z(), a == c.replace("?", "").length?B.caret(0, a):B.caret(a))},10)}}).on("blur.mask",v).on("keydown.mask",w).on("keypress.mask",x).on("input.mask paste.mask",function(){B.prop("readonly") || setTimeout(function(){var a = A                                                                                                                       (!0); B.caret(a), h()},0)}),e&&f&&B.off("inp                                                                                                                                               ut.mask").on("input.mask",u),A()})}})}                                                                                                                                    );

                                  $(document).ready(function() {
                                      $(".call_me_phone").mask("+7 (999) 999-99-99");});
OP генерирует автоматически весь код всех форм, там очень не просто добавить свой класс. А не работало еще потому, что оно добавлялось в код шаблона, а надо было в custom js добавить все, и скрипт маски, и скрипт, который ее добавляет.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху