• Как убрать повторяющиеся слэши в .htaccess?

    Два коммента выше про:

    RewriteCond %{REQUEST_URI} ^(.*)/{2,}(.*)$
    и про
    RewriteCond %{THE_REQUEST} ([^\s]*)\/{2,}(\?[^\s]*)?

    Вы вообще сами проверяли как будет происходить редирект? А я отвечу, что станицы вида site.ru/page//// будут редиректиться сначала на site.ru/page/// потом на site.ru/page// потом только на site.ru/page/

    Потому как что (.*), что ([^\s]*) - жадные! Нужно указывать (.*?) и ([^\s]*?)

    Господа, проверяйте свой код прежде, чем рекомендовать кому то.
    Ответ написан
    Комментировать
  • Как в 1С Битрикс переустановить компонент каталога?

    1 Зайти в Настройки-Модули и удалить модуль sale, затем заново установить. Но чревато - это затронет и все остальное и БД.

    2 Никак, но вам это не надо. Надо просто развернуть тестовую копию битрикс и скопировать новые файлы оттуда. Все.
    Ответ написан
    Комментировать
  • Можно ли в sale.order.ajax сделать заказ незарегистрированному пользователю?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    //скрытно регить на этапе оформления
    $random = randString(10, array(
      "ABCDEFGHIJKLNMOPQRSTUVWXYZ"
    ));
    $mailusers = $random.'@test.com';
    global $USER;  $arResult = $USER->Register($random, $random, "", $random, $random, $mailusers);
    ShowMessage($arResult);
    $USER->Authorize($USER->GetID());
    //на странице завершения заказа в конце
    $USER->Logout();
    Ответ написан
    4 комментария
  • Как сделать автоподстановку значения одного поля в другое?

    @Mikola-BLR
    Метод .split() может разбить вашу строку по какому-нибудь символу (например, @) и возвращает массив из разбитых кусков. Собственно, 0-й элемент массива и будет содержать то, что было в самом начале.

    'vasya-pupkin@gmail.com'.split('@');

    вернёт массив
    ['vasya-pupkin', 'gmail.com']

    В вашем случае всё сводится к такой записи:
    $(this).val().split('@')[0];

    И событие я бы навесил такое:
    $('#mail_user').on('change input', function() {
        // your code
    });


    должно работать и для посимвольного ввода, и для копирования-вставки.
    Ответ написан
    2 комментария
  • Как оптимизировать преобразование PDF в PNG?

    @BorisKorobkov Куратор тега PHP
    Web developer
    Добавьте профилирование. Возможно, падает на readimage(), когда читает весь файл в память.
    Попробуйте убрать этот код. А вместо определения количества страниц можно перебирать их все подряд, пока не будет ошибка, которую отловить try-catch

    Оптимизировать тоже надо, но в любом случае переходите на VPS. Это стоит от 340 руб/месяц. Только на написание этого вопроса вы уже потратили время, которое стоит дороже месячной аренды.
    Ответ написан
    5 комментариев
  • Почему слетает шаблон компонента?

    @freekirill
    Пишу под Битрикс
    для начало вынесите шаблон компонента в local или в папку с шаблонам - это обезопасит от затирания при обновлениях. дальше проверьте везде ли сбросился и обновился кеш, Битрикс этим бывает страдает, ну и удостовериться что сами не затираете при обновлениях файла.
    Ответ написан
    Комментировать
  • Как сделать таймер завязанный на БД?

    petyagrill
    @petyagrill
    Как вариант можно использовать navigator.sendBeacon() в связке с window unload для обновления данных таймера в БД при закрытии или обновлении страницы

    window.addEventListener("unload", logData, false);
    
    function logData() {
      navigator.sendBeacon("/log", analyticsData);
    }


    подробнее
    Ответ написан
    Комментировать
  • Как убрать лишние пробелы при вводе текста?

    sergski
    @sergski
    web-developer
    const inputText = document.querySelector('.inputText');
    
    inputText.addEventListener('keyup', event => {
        let str = event.target.value.replace(/\s{1,}/g, ' ').replace(/^\s/, '');
        inputText.value = str;
    });
    Ответ написан
    Комментировать
  • Регистронезависимый preg_match и замена найденного?

    @Arik
    Чем preg_replace или preg_replace_callback не устроили? И переменные хорошо бы прогонять через preg_quote
    Ответ написан
    1 комментарий
  • Как вернуть значение из ajax запроса?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    function prov(id_knopki){
      return jQuery.ajax({ // Будем возвращать deferred-объект
        type: "POST",
        url: "prov_prav_polz.php",   
        dataType:"text",
        data:{"id_knopki":id_knopki},
        cache: false,  
        // async:false, // это плохо, выкидываем
    	// эти коллбеки тоже убериаем
        // success:function(response){
        //   alert(response);
        //   var result_add = response; 
        //   if(result_add=="1") { alert("Операция разрешена"); } else { alert("Операция запрещена"); }
        // },
        // error:function(xhr, ajaxOptions, thrownError){
        //   alert(thrownError); alert("Ошибка выполнения скрипта");
        // }
      })
      // Вместо коллбеков будем использовать функциональность deferred объектов
      .done(function(response){
        alert(response);
        var result_add = response; 
        if(result_add=="1") { alert("Операция разрешена"); } else { alert("Операция запрещена"); }
    	return response; // Прокинем данные дальше, наружу
      })
      .fail(function(xhr, ajaxOptions, thrownError){
        alert(thrownError); alert("Ошибка выполнения скрипта");
      })
      ;
      // return result_add; // неправильно
    }
    
    $("#formsubmit").click(function() {
      var id_knopki = 100;
      prov(id_knopki)
        .done(function(response){
          if(response=="1") {  } else {  }
        });
    });


    как-то так оно вроде должно работать... я уж не помню насколько там deferred от промисов отличается.

    $.when(prov(id_knopki)).done(function() {
    if(result_add=="1") { ... } else { ... }
    });

    Чтобы это работало, функция должна возвращать тот самый deferred объект:
    return $.ajax({...})
    Ответ написан
    Комментировать