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

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

FaceBook Pixel для VirtueMart

Автор JustRe1ax

Ответов: 0
Просмотров: 32
Последний ответ 09.10.2018, 15:00:37
от JustRe1ax
Проблема изза разных кодировок Joomla и VirtueMart

Автор fale

Ответов: 7
Просмотров: 125
Последний ответ 02.10.2018, 21:51:35
от fsv
Заголовок h1 на странице категории VirtueMart, отличающийся от названия кат-рии

Автор rsn

Ответов: 1
Просмотров: 172
Последний ответ 24.09.2018, 20:54:19
от rsn
[Решено] Баг с рейтингом товаров VirtueMart 3.0.16

Автор Strelok760

Ответов: 2
Просмотров: 333
Последний ответ 13.09.2018, 23:06:13
от bgg87
Не отображается меню из VirtueMart

Автор dimonsk

Ответов: 1
Просмотров: 115
Последний ответ 25.08.2018, 15:36:50
от dimonsk