К основному контенту

Организация цен на TOMTOP

Решил написать статью, которая поможет Вам адекватно и понятно воспринимать цены, выставленные в магазине TOMTOP. Примеры будут приведены для цен в рублях. Естественно, сайт мы поменять не можем, но можем воспользоваться надстройкой для Google Chrome, которая позволит нашему JavaScript обработать страницу магазина. Итак, все по порядку.

Расширение для Google Chrome

Ставим расширение для Google Chrome Custom JavaScript for websites. Расширение позволит нам писать собственный скрипт для страниц. Прелесть расширения в том, что оно умеет подключать jQuery, который сильно упростит нам жизнь.

Анализ страниц магазина

Если мы зайдем на страницу категории товаров, то увидим список продукции. У каждого товара есть цена, которая представлена в виде "руб.1611.59". Да, совсем не приятное представление. Мозг начинает напрягаться и пытаться отделить валюту от суммы. Более того, мы так же пытаемся понять разрядность суммы. Согласитесь, со всеми точками и полным отсутствием пробелов приходится потратить время и распознать, что стоимость товара "1 611.59 руб.". Намного приятнее представление. Есть люди, которым так же интересна цена в валюте магазина. Нет, мы не полезем на сайт ЦБР, что бы узнать текущий курс. Проанализировав код элемента, можно увидеть следующий тег:
В нем мы увидим атрибут usvalue, значение которого - это цена в валюте магазина. Более того, мы увидим имя CSS класса productPrice, с которым мы будем работать. Давайте проанализируем еще элемент цены, если мы откроем детальное описание товара.
Тут мы видим тот же атрибут usvalue с ценой в валюте документа. Так же мы видим идентификатор элемента detailPrice, который так же позволит нам определить элемент с ценой.

Алгоритм скрипта

Для начала опишу алгоритм. Поскольку мы хотим упростить жизнь программиста, то воспользуемся библиотекой jQuery. Для каждого элемента с CSS классом productPrice или идентификатором detailPrice мы будем брать значение цены в рублях, разбивать ее по точке и склеивать, как нам надо, а на новой строке в скобках будем писать цену в валюте магазина. Для этих двух элементов мы сделаем две ветки, поскольку данные в этих элементах разные.

Собственно, код

Сразу скажу, что у этого магазина есть поддомен ru.tomtop.com, для которого так же нужно скопировать этот скрипт.
function splitInt(input){
    output = input;
    intPart = input;
    len = intPart.length;
    th = len - 3;
    output = intPart.substr(-3);
    if(len > 0){
        output = intPart.substr(0, th) + " " + output;
    }
    return output;
}
$( document ).ready(function() {
 $(".productPrice").each(function( index ){
  htmlVal = $(this).html();
  usval = $(this).attr("usvalue");
  vals = htmlVal.split(".");
  vals[1] = splitInt(vals[1]);
 
  usvals = usval.split(".");
  usvals[0] = splitInt(usvals[0]);
 
  rurStr = vals[1] + "." + vals[2] + " " + vals[0];
  usStr = "$" + usvals[0] + "." + usvals[1];
  $(this).html(rurStr + "
(" + usStr + ")"); }); $("#detailPrice").each(function(index){ htmlVal = $(this).html(); usval = $(this).attr("usvalue"); vals = htmlVal.split("."); vals[0] = splitInt(vals[0]); usvals = usval.split("."); usvals[0] = splitInt(usvals[0]); rurStr = vals[0] + "." + vals[1]; usvals[0] = splitInt(usvals[0]); usStr = "$" + usvals[0] + "." + usvals[1]; $(this).html(rurStr + "
(" + usStr + ")"); }); });

Комментарии

Популярные сообщения из этого блога

Прямые ссылки на файлы Google диска

В предыдущей статье я рассказал, как подключить свой JavaScript файл к блогу BLOGSPOT . Но для того, что бы их подключить нужны прямые ссылки на файл, а Google диск при предоставлении общего доступа к файлу выдает ссылку на предварительный просмотр, которая никак напрямую не ссылается на файл. Для Google диска прямая ссылка на файл - это ссылка на скачивание. Ниже описаны два способа создания ссылки на скачивание на примере файла prism.js.

События для ведения таблиц

Как и всегда, в пылу проекта внезапно родилась Z табличка. Главный нюанс был в том, что она должна была хранить пароли для авторизации на стороннем сервере. Естественно, никто не хотел хранить пароли в открытом виде, а двустороннее шифрование SAP не умеет без сторонних пакетов и надстроек. Далее, все как обычно - придумали алгоритм, сделали табличку. Дело осталось за малым - нужно шифровать пароли, которые вводит пользователь. Делать отдельную программу нет смысла, поскольку ее функционал мало чем будет отличаться от сгенерированного. Вот здесь на помощь приходят события! С их помощью можно, наверное, все. По крайней мере, я не нашел чего-либо, что нельзя сделать с данными через события.

OOP ALV GRID с HTML шапкой

В этой статье хочу постараться подробно описать и привести пример, как можно создать ALV отчет с таблицей на весь экран и с HTML шапкой вверху. Я не буду описывать начальный этап, где пишется селекционный экран или делается выборка данных. Будем считать, что основа у нас есть и нам нужно просто вывести данные. Главной изюминкой является то, что нужно вывести ALV GRID на экран без использования каких-либо дополнительных элементов на экране. Step-By-Step Шаг 1. Создание окна Создаем самое простое окно с номером 100. На него не нужно кидать никаких контейнеров. Оно нам нужно только для модулей PAI и PBO и вывода на него ALV GRID.