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

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 разбираюсь((((
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как указать каноническую страницу rel="canonical" в VirtueMart?

Автор pbelosvet

Ответов: 0
Просмотров: 68
Последний ответ 10.12.2018, 13:10:02
от pbelosvet
Как настроить отправку писем при заказе VirtueMart с помощью Acymaling?

Автор Mm66

Ответов: 1
Просмотров: 77
Последний ответ 29.11.2018, 22:47:09
от lexxbry
Вывод категорий VirtueMart 3

Автор giovanni

Ответов: 7
Просмотров: 155
Последний ответ 19.11.2018, 00:11:46
от lexxbry
Проблема с VirtueMart

Автор duck-man

Ответов: 2
Просмотров: 131
Последний ответ 01.11.2018, 22:34:03
от duck-man
Способ оплаты HTML-форма (virtuemart 3.4)

Автор efree

Ответов: 0
Просмотров: 79
Последний ответ 21.10.2018, 11:50:19
от efree