• Почему перезагружается страница при отправке аякс-формы в popup?

    @QTnub
    Программист , музыкант , филантроп
    скорее всего связано с тем что у кнопки type="submit" он в любом случае отправляет форму перезагрузив страницу , попробуйте type="button"
    Ответ написан
  • Как сделать ajax ленту совместно с mFilter2?

    @QTnub Автор вопроса
    Программист , музыкант , филантроп
    большое спасибо за ответ , вопрос задавал давно , и уже сам разобрался , мой вариант выглядит так

    (function(){
                    var xhr_is_sent = false,        //флаг отправки
                        page_counter = 1,
                        total_node,
                        total = 0,
                        last_page = false,        
                        url = '/assets/components/msearch2/action.php',
                        param_1 = 'tv|area',
                        param_2 = 'tv|price',
                        param_3 = 'tv|metro',
                        area_min,
                        area_max,
                        price_min,
                        price_max,
                        loader,
                        items_per_page = 10,
                        anim_time = 100;
                    
                    // оборачиваем в jQ для DOM ready
                    $(function(){
                        area_min = $('#area_0');
                        area_max = $('#area_1');
                        price_min = $('#price_0');
                        price_max = $('#price_1');
                        total_node = $('#mse2_total')
                        loader = $('.loader-content').css({opacity: '0', height: '0px', overflow: 'hidden'});
                        $('#mse2_results').on('resultsLoaded', function(){
                            page_counter = 1;
                            total = total_node.text()|0;
                            last_page = total > items_per_page ? false : true;
                        });
                        total = total_node.text()|0;
                        last_page = total > items_per_page ? false : true;
                    });
                    function showLoader(){
                        loader.stop(true).css({height: 'auto'}).animate({opacity: '1'}, anim_time, 'linear');
                    }
                    function hideLoader(){
                        loader.stop(true).animate({opacity: '0'}, anim_time, 'linear', function(){
                            loader.css({height: '0px'});
                        });
                    }
                    
                    $(window).scroll(function() {
                        var data = {},
                            url_params = window.location.search.slice(1),
                            i, max;
                        if ($(window).scrollTop() == $(document).height() - $(window).height()) {
                            //отправляем запрос только если завершился предыдущий
                            if (!xhr_is_sent && !last_page) {
                                data.action = 'filter';
                                data.pageId = window.mse2Config.pageId;
                                data.key = window.mse2Config.key;
                                data.page = ++page_counter;
                                
                                xhr_is_sent = true;
                                last_page = total > items_per_page * page_counter ? false : true;
                                
                                if (url_params.length > 0) {
                                    url_params = url_params.split('&');
                                    for(i = 0, max = url_params.length; i < max; i++) {
                                        url_params[i] = url_params[i].split('=');
                                        if (url_params[i][0] === param_1) {
                                            data[param_1] = decodeURIComponent(url_params[i][1]);
                                        }
                                        if (url_params[i][0] === param_2) {
                                            data[param_2] = decodeURIComponent(url_params[i][1]);
                                        }
                                        if (url_params[i][0] === param_3) {
                                            data[param_3] = decodeURIComponent(url_params[i][1]);
                                        }
                                    }
                                }
                                
                                showLoader();
                                
                                $.post(url, data, function(data){
                                        $('#mse2_results').append($.parseJSON(data).data.results);
                                        xhr_is_sent = false;
                                        hideLoader();
                                        $(window).trigger('ajax_loaded');
                                });
                            }
                        }
                    });
                })();
    Ответ написан
    Комментировать
  • Как в Gallery Modx добавить CSS класс для первой миниатюры?

    @QTnub
    Программист , музыкант , филантроп
    тогда воспользуйтесь параметром itemCls
    Ответ написан
  • ModX - pagetitle в tvFilters не работает. Как починить?

    @QTnub
    Программист , музыкант , филантроп
    оно и не будет работать , tvFilters уже говорит о том что это поиск по TV , воспользуйтесь pdoTools и условием where
    Ответ написан
    Комментировать
  • Как сравнить один массив с другим и вывести совпадения jquery?

    @QTnub Автор вопроса
    Программист , музыкант , филантроп
    более или менее сотворил что то похожее на правду
    function arraysInCommon(arrays){
                            var i, common,
                            L= arrays.length, min= Infinity;
                            while(L){
                                if(arrays[--L].length<min){
                                    min= arrays[L].length;
                                    i= L;
                                }
                            }
                            common= arrays.splice(i, 1)[0];
                            return common.filter(function(itm, indx){
                                if(common.indexOf(itm)== indx){
                                    return arrays.every(function(arr){
                                        return arr.indexOf(itm)!= -1;
                                    });
                                }
                            });
                        }
                         
                        
                        var arr = ["Улица Академика Янгеля", "Петровско-Разумовская", "Авиамоторная", " "] ;
                        var massiv = ["Улица Академика Янгеля", "Петровско-Разумовская", "Петровско-Разумовская", "Авиамоторная"];
    
                        
                        var allArrays = [ arr, massiv];
                        console.log(allArrays);    
                        var matches = arraysInCommon(allArrays).sort();
                        console.log(matches.toString());

    этот код делает все почти так как надо , он выводит мне одинаковые станции , но если обратить внимание массивы введены вручную , а когда я пытаюсь подставить вместе них масивы которые собираюсь со страницы и из базы то ничего не происходит , вот полный код
    // собираем и танции метро из строки и преобразовываем в массив 
                        var metro_stations = "[[*svod_metro]]" ;
                        var metro_massive = metro_stations.split(',');
                        console.log(metro_massive);
                        
                        // собираем значения всех инпутов станций метро и преобразовываем в массив 
                        var input_metro = $('.metro_title').text();
                        var input_metro_massive = input_metro.split(',');
                        console.log(input_metro_massive);
                        
                        
                        
                        
                        
                        
                        // сравниваем массивы 
                       function arraysInCommon(arrays){
                            var i, common,
                            L= arrays.length, min= Infinity;
                            while(L){
                                if(arrays[--L].length<min){
                                    min= arrays[L].length;
                                    i= L;
                                }
                            }
                            common= arrays.splice(i, 1)[0];
                            return common.filter(function(itm, indx){
                                if(common.indexOf(itm)== indx){
                                    return arrays.every(function(arr){
                                        return arr.indexOf(itm)!= -1;
                                    });
                                }
                            });
                        }
                         
                        
                        var arr = ["Улица Академика Янгеля", "Петровско-Разумовская", "Авиамоторная", " "] ;
                        var massiv = ["Улица Академика Янгеля", "Петровско-Разумовская", "Петровско-Разумовская", "Авиамоторная"];
    
                        
                        var allArrays = [ metro_massive, input_metro_massive];
                        console.log(allArrays);    
                        var matches = arraysInCommon(allArrays).sort();
                        console.log(matches.toString());
    Ответ написан
    Комментировать
  • Как измененить профиль аккаунта через UpdateProfile Modx Revo?

    @QTnub
    Программист , музыкант , филантроп
    я думаю тут даже можно справится через js можно создать счетчик и записывать его в файл или еще куда , js будет его считывать , сверять с датой на сервере , и в зависимости от нее разрешать или не разрешать редактировать профиль
    Ответ написан
    Комментировать
  • Что это за конструкция ?

    @QTnub
    Программист , музыкант , филантроп
    по моему отличный пример говнокода?
    Ответ написан
  • Как изменить балун на карте яндекса?

    @QTnub Автор вопроса
    Программист , музыкант , филантроп
    в общем мне никто так и не помог и не объяснил , потратил день и разобрался сам , если кому то будет интересно то именно для такой конструкции необходимо использовать метод setOptions объекта geoQueryResult api.yandex.ru/maps/doc/jsapi/2.1-dev/ref/reference...

    а вот что нужно добавить именно в эту конструкцию чтобы все заработало

    .setOptions({
    iconLayout: 'default#image',
    iconImageHref: 'main/red_marker.png',
    iconImageSize: [20, 35],
    iconImageOffset: [-3, -42],
    balloonContentHeader: 'Тестовый заголовок',
    balloonContentBody: 'Тестовый контент '
    })
    Ответ написан
    1 комментарий
  • Как быть дальше с обучением веб-разработке?

    @QTnub
    Программист , музыкант , филантроп
    да веб достаточно интересная штука, смело учи python читай лутца он очень понятно и подробно объясняет все с нуля , чтобы шабашить не большими сайтами возьми cms на основе php я например фанат modx revo , отличный cms - cmf на нем сможешь делать сайты которые будут тебя кормить , паралельно учи питон и джангу
    Ответ написан
    Комментировать
  • Где посмотреть пример работы с yg:GeocoderMetaData?

    @QTnub Автор вопроса
    Программист , музыкант , филантроп
    Ответ написан
    Комментировать