DOM

DOM

Был в сети 02 апреля 2023, 17:42
Заказы не принимаю
Вера, я так понимаю если сайт особо не администрировался, то все бэкапы только на хостинге, при условии что у вас нормальный хостинг и делает бэкапы. Срочно ищите опытного специалиста, так как они на хостинге не вечные и потом возможно сайт уже будет легче переделать, чем спасать.
Тоже сегодня поймал через старый сайт (2.4.3). По всему аккаунту хостинга зараза пошла (php-файлы), благо увидел это очень вовремя, грохнул сайт и начал чистить врукопашную. Добрались даже до статический сайтов. Пока вроде победил, сайт наверное буду обновлять на локальном сервере а уже потом на хостинг. При чем это единственный сайт у которого не спрятаны коннекторы, не переименован конфиг, админка и т.д… В общем стандартная установка. На хостинге есть еще такие древние, но там сделано по феншую, и на них пока не пробита защита.
Поэтому, ребята, такие пациенты в очень высокой зоне риска. Советую приделить им максимум внимания.
Гуру MODX, а как правильно обновлять старые сайты? Еще с админкой 2.2, 2.3. Я знаю три метода обновления. Через компоненты из репозитория, через пхп-файл Боба Рея, и обновлять каждую версию вручную. Что весьма долго для старых сайтов. А обновить надо более 10 сайтов. Пробовал все три, последний метод самый железный. При чем на хостинге срабатывает не всегда, иногда надо стащить на локальный сервер, обновить и опять залить (
Да и не только старые сайты. Как правильно обновить MODX Revo?
У меня тв с картинкой подвязан под отдельный медиа источник, поэтому я захожу:
Системные настройки → collections
Там есть Путь к изображению визуализации с ключем collections.renderer_image_path и прописываю ему значение baseUrl из медиа источника
«вынесенная в настройки опция включить\выключить транслитерацию имени файла»
А не подскажите где такое можно найти, что-то в системных настройках никогда такого не видел. Интересовался этим вопросом, нашел специально плагин, модифицировал его и работает. Помню в Evo была такая фишка из коробки, и очень удивился что в Revo такого нет.
Для вообще ленивых :), авторизация Login по ajax:
Вызов:
[[!Login? &loginTpl=`lgnLoginTpl` &logoutTpl=`lgnLogoutTpl` &errTpl=`lgnErrTpl` &loginResourceId=`52` &logoutResourceId=`[[*id]]`]]

Форма:
<div class="loginForm">
    <div class="loginLogin">
        <div class="loginMessage">[[!+errors]]</div>
        <form class="loginLoginForm auth" action="[[~[[*id]]]]" method="post">
            <fieldset class="loginLoginFieldset">
                <label class="loginUsernameLabel" for="login">[[%login.username]]</label>
                <input class="loginUsername put-focus" type="text" name="username" id="login">
                <span class="error error-login"></span>
                
                <label class="loginPasswordLabel" for="pass">[[%login.password]]</label>
                <input class="loginPassword" type="password" name="password" id="pass">
                <span class="error error-password"></span>
                    
                <input class="loginRememberme" type="checkbox" name="rememberme" id="checkbox-1" checked>
                <label class="loginRemembermeLabel new-check" for="checkbox-1">Запомнить меня</label>
                
                <input class="loginLoginValue" type="hidden" name="service" value="login">
                <input type="submit" name="Login" value="[[+actionMsg]]">
                 
                <input class="returnUrl" type="hidden" name="returnUrl" value="[[+request_uri]]">
            </fieldset>
            <div class="text-center">
                <a class="forgot-login" href="[[~45]]">Забыли логин или пароль?</a>
            </div>
        </form>
    </div>
</div>

Скрипт:
<script>
        $(document).ready(function(){
            $(".auth").bind("submit", function() {
                $("span.error, .loginMessage").text("");
                $("input.error, textarea.error").removeClass('error');
                
                if ($(".loginUsername").val().length < 1 && $(".loginPassword").val().length < 1) {
                    $(".error-login").text("Для входа введите Ваш логин");
                    $(".error-password").text("Для входа введите Ваш пароль");
                    $('.loginUsername, .loginPassword').addClass('error');
                    return false;
                }
                
                if ($(".loginUsername").val().length < 1) {
                    $(".error-login").text("Для входа введите Ваш логин");
                    $('.loginUsername').addClass('error');
                    return false;
                }
                
                if ($(".loginPassword").val().length < 1) {
                    $(".error-password").text("Для входа введите Ваш пароль");
                    $('.loginPassword').addClass('error');
                    return false;
                }
                
                $.ajax({
                        type    : "POST",
                        cache   : false,
                        url     : "[[~[[*id]]]]",
                        data    : $(this).serializeArray(),
                        success: function(data) {
                            var errMessage = $(data).find(".loginMessage").text();
                            if(errMessage == ""){
                                window.location = "[[~[[*id]]]]";
                            }else{
                                $(".error-login").text('Неправильный логин или пароль');
                                $('.loginUsername, .loginPassword').addClass('error');
                            }
                        }
                });
        
                return false;
        	});
        });
    </script>