0 Пользователей и 1 Гость просматривают эту тему.
  • 5 Ответов
  • 1900 Просмотров
*

kreker92

  • Захожу иногда
  • 391
  • 16 / 0
Как сделать, подскажите пожалуйста.
Google не помогает.
 >:(
Все вопросы и предложения на почту.
*

Максим Пишняк

  • Давно я тут
  • 835
  • 35 / 0
  • Подразделение Virtuemart Украина
Способен ли JS экспортировать что-либо о заказах в каком-либо виде?
Virtuemart 2 работает практически без ошибок. Вы можете поддержать Сообщество, проголосовав за Virtuemart. Присоединяйтесь к нам на Facebook, Google Plus, Linkedin. Подпишитесь на Еженедельник о Virtuemart на Twitter
*

kreker92

  • Захожу иногда
  • 391
  • 16 / 0
Да, так и сделал =)
Просто хотелось экспортировать в нормальном виде.
Вот вам парсер, правда на выходе небольшой бардак.

Код
var i = 2166;
var dataInf = '';
var parse = setInterval(function() {
    if(i > 2160) {
        getData(i);
        i--;
    } else {
        clearInterval(parse);
console.log(dataInf);
    }
} , 3000);

function getData(num) {
    jQuery.ajax({
        url: 'http://site.ru/administrator/index.php',
        data: 'option=com_jshopping&controller=orders&task=show&order_id='+ num,
        success: function(msg) {
            /*console.log(msg);*/
            findData(msg);
        },
        error: function(msg) {
            console.log('error');
        }
    });
}

function findData(data) {
    var t = jQuery(data).find('.adminlist');
    t.each(function(i, e) {
        if(i == 1) {
            dataInf = dataInf + jQuery(e).find('tbody tr:nth-child(2) td:last-child').text() + ';';
        }
        if(i == 2) {
            dataInf = dataInf + jQuery(e).find('tbody tr:first-child td:last-child').text() + ';';
            dataInf = dataInf + jQuery(e).find('tbody tr:nth-child(2) td:last-child').text() + ';';
            dataInf = dataInf + jQuery(e).find('tbody tr:nth-child(3) td:last-child').text() + ';';
            dataInf = dataInf + jQuery(e).find('tbody tr:nth-child(4) td:last-child').text() + ';';
            dataInf = dataInf + jQuery(e).find('tbody tr:nth-child(5) td:last-child').text() + ';';
        }
        if(i == 3) {
            dataInf = dataInf + jQuery(e).find('tbody tr:nth-child(1) td:nth-child(2)').text() + ';';
            dataInf = dataInf + jQuery(e).find('tbody tr:nth-child(1) td:nth-child(3)').text() + ';';
            dataInf = dataInf + jQuery(e).find('tbody tr:nth-child(1) td:nth-child(4)').text() + ';';
dataInf = dataInf + '\n';
        }
       
    });
}

Формат вывода:

Код
          03.10.2013 13:54:03        ;имя заказчика  ; адрес такой-то;телефон такой-то;размер обувки;tut_e-mail@gmail.com;
   артикул тутачки ;
   столько-то Рублей    ;
   заказанное количество ;
          03.10.2013 13:54:03        ;имя заказчика  ; адрес такой-то;телефон такой-то;размер обувки;tut_e-mail@gmail.com;
   артикул тутачки ;
   столько-то Рублей    ;
   заказанное количество ;

Все вопросы и предложения на почту.
*

kreker92

  • Захожу иногда
  • 391
  • 16 / 0
Можно тогда тему, что ли, переименовать в парсер на JS? =))
Все вопросы и предложения на почту.
*

kreker92

  • Захожу иногда
  • 391
  • 16 / 0
Вот еще парсер для VirtueMart 2.0
Код: javascript
var i = 501;
var dataInf = '';
var parse = setInterval(function() {
    if(i > 500) {
        getData(i);
        i--;
    } else {
        clearInterval(parse);
console.log(dataInf);
    }
} , 1000);

function getData(num) {
    jQuery.ajax({
        url: 'http://site.ru/administrator/index.php',
        data: 'option=com_virtuemart&view=orders&task=edit&virtuemart_order_id='+ num,
        success: function(msg) {
            /*console.log(msg);*/
            findData(msg);
        },
        error: function(msg) {
            //console.log('error');
        }
    });
}

function findData(data) {
    var t = jQuery(data).find('.adminlist');
var tables = [];
t.each(function(i, e) {
if(i == 3) {
if(jQuery(e).find("thead tr th:contains('Банкнота покупателя')").length == true) {
tables = [1, 3, 4, 6];
} else {
tables = [1, 'null', 3, 5];
}
}
});
    t.each(function(i, e) {
        if(i == tables[0]) {
            dataInf = dataInf + jQuery(e).find('tr:nth-child(2) td:nth-child(2) a').text().replace(/\s+/g,' ') + ';';
            dataInf = dataInf + jQuery(e).find('tr:nth-child(4) td:nth-child(2)').text().replace(/\s+/g,' ') + ';';
        }
        if(i == tables[1]) {
            dataInf = dataInf + jQuery(e).find('tbody tr td').text().replace(/\s+/g,' ') + ';';
        }
        if(i == tables[2]) {
if(tables[1] == 'null') {
dataInf = dataInf + ';'
}
            dataInf = dataInf + jQuery(e).find('tbody tr:nth-child(1) td:nth-child(2)').text().replace(/\s+/g,' ') + ';';
            dataInf = dataInf + jQuery(e).find('tbody tr:nth-child(2) td:nth-child(2)').text().replace(/\s+/g,' ') + ';';
            dataInf = dataInf + jQuery(e).find('tbody tr:nth-child(3) td:nth-child(2)').text().replace(/\s+/g,' ') + ';';
            dataInf = dataInf + jQuery(e).find('tbody tr:nth-child(4) td:nth-child(2)').text().replace(/\s+/g,' ') + ';';
        }
if(i == tables[3]) {
var productsNum = jQuery(e).find("tbody tr:contains('Тут у меня общее в названии у всех товаров для подсчета их количества')").length;
for(i = 1; i < productsNum+1; i++) {
dataInf = dataInf + jQuery(e).find('tbody tr:nth-child('+ i +') td:nth-child(3)').text().replace(/\s+/g,' ') + ';';
dataInf = dataInf + jQuery(e).find('tbody tr:nth-child('+ i +') td:nth-child(4)').text().replace(/\s+/g,' ') + ';';
}
dataInf = dataInf + '\n';
        }
    });
}
Все вопросы и предложения на почту.
*

alex1988

  • Захожу иногда
  • 148
  • 0 / 0
Да, так и сделал =)
Просто хотелось экспортировать в нормальном виде.
Вот вам парсер, правда на выходе небольшой бардак.

Код
var i = 2166;
var dataInf = '';
var parse = setInterval(function() {
    if(i > 2160) {
        getData(i);
        i--;
    } else {
        clearInterval(parse);
console.log(dataInf);
    }
} , 3000);

function getData(num) {
    jQuery.ajax({
        url: 'http://site.ru/administrator/index.php',
        data: 'option=com_jshopping&controller=orders&task=show&order_id='+ num,
        success: function(msg) {
            /*console.log(msg);*/
            findData(msg);
        },
        error: function(msg) {
            console.log('error');
        }
    });
}

function findData(data) {
    var t = jQuery(data).find('.adminlist');
    t.each(function(i, e) {
        if(i == 1) {
            dataInf = dataInf + jQuery(e).find('tbody tr:nth-child(2) td:last-child').text() + ';';
        }
        if(i == 2) {
            dataInf = dataInf + jQuery(e).find('tbody tr:first-child td:last-child').text() + ';';
            dataInf = dataInf + jQuery(e).find('tbody tr:nth-child(2) td:last-child').text() + ';';
            dataInf = dataInf + jQuery(e).find('tbody tr:nth-child(3) td:last-child').text() + ';';
            dataInf = dataInf + jQuery(e).find('tbody tr:nth-child(4) td:last-child').text() + ';';
            dataInf = dataInf + jQuery(e).find('tbody tr:nth-child(5) td:last-child').text() + ';';
        }
        if(i == 3) {
            dataInf = dataInf + jQuery(e).find('tbody tr:nth-child(1) td:nth-child(2)').text() + ';';
            dataInf = dataInf + jQuery(e).find('tbody tr:nth-child(1) td:nth-child(3)').text() + ';';
            dataInf = dataInf + jQuery(e).find('tbody tr:nth-child(1) td:nth-child(4)').text() + ';';
dataInf = dataInf + '\n';
        }
       
    });
}

Формат вывода:

Код
          03.10.2013 13:54:03        ;имя заказчика  ; адрес такой-то;телефон такой-то;размер обувки;tut_e-mail@gmail.com;
   артикул тутачки ;
   столько-то Рублей    ;
   заказанное количество ;
          03.10.2013 13:54:03        ;имя заказчика  ; адрес такой-то;телефон такой-то;размер обувки;tut_e-mail@gmail.com;
   артикул тутачки ;
   столько-то Рублей    ;
   заказанное количество ;

А подскажите куда этот код вставлять. С парсером не знаком, хоть и в php разбираюсь((((
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

VirtueMart 3 ссылки на логин и регистрацию

Автор Ragivort

Ответов: 0
Просмотров: 26
Последний ответ 07.08.2018, 11:03:14
от Ragivort
Не работает fancybox в VirtueMart 3.2.8

Автор DJone

Ответов: 3
Просмотров: 150
Последний ответ 25.07.2018, 05:26:17
от DJone
Конфигурация оплаты и доставкы VirtueMart 2

Автор lxxnutsxxl

Ответов: 16
Просмотров: 1873
Последний ответ 04.07.2018, 23:53:07
от lexxbry
Как вывести модуль в страницу VirtueMart?

Автор harddrop

Ответов: 10
Просмотров: 432
Последний ответ 18.06.2018, 06:05:19
от harddrop
Нет метатэга description на главной VirtueMart 2

Автор alanbus

Ответов: 13
Просмотров: 1884
Последний ответ 16.06.2018, 03:10:04
от sanek2281