UMIhelp

Разработка сайта на UMI.CMS => JS и AJAX => Тема начата: albion от 16 Июня 2015, 11:02:29

Название: Подгрузка цены с помощью JQuery
Отправлено: albion от 16 Июня 2015, 11:02:29
Опишу суть проблемы. В свое время сделал на сайте файловое кеширование с возможностью выставлять срок хранения кеша, но из за постоянного изменения курса валют (спасибо государству) кеш приходиться постоянно удалять. Сайт достаточно большой - товаров только 2500 примерно. И если после удаления приходит какой то робот, то возникает нагрузка на дисковую подсистему хостера - на что он и жалуется. Пришла идея, что кеш можно создавать со сроком хранения примерно месяц, и что бы его не удалять при смене курса необходимо через JQuery подгрузить цену товара, а как ее вытащить с помощью JQuery не понятно. Может, кто подскажет?
Название: Re: Подгрузка цены с помощью JQuery
Отправлено: atach от 16 Июня 2015, 16:07:37
Я обычно стучусь так (не знаю на сколько правильно).

$.ajax({
    url: '/upage/' + ide + '.json',
    type: "get",
    dataType: 'json',    
    success: function (data) {
}
Название: Re: Подгрузка цены с помощью JQuery
Отправлено: albion от 16 Июня 2015, 16:44:04
Так получаются данные в евро (цена, которая забита в базу). 

P.S. JQuery знаком на уровне - что то подправить. Писать с 0 не приходилось.
Название: Re: Подгрузка цены с помощью JQuery
Отправлено: atach от 16 Июня 2015, 16:58:33
Тогда не понятно, вытащить цену нужно из предыдущего кеша?
Название: Re: Подгрузка цены с помощью JQuery
Отправлено: albion от 16 Июня 2015, 17:22:01
Не. Как то получить уже перемноженную цену (то, что в базе умноженное на курс).
Название: Re: Подгрузка цены с помощью JQuery
Отправлено: atach от 16 Июня 2015, 17:27:08
курсы записаны в системе как? в модуле "ИМ" -> "Валюты" ?
Тогда через /udata/emarket/currencySelector

Просто вы не полностью описываете сам процесс. Обновление валют происходит как и где
Название: Re: Подгрузка цены с помощью JQuery
Отправлено: albion от 17 Июня 2015, 09:26:28
Сейчас все делается (кроме кеша) стандартными методами UMI на tpl шаблонизаторе. И курсы записаны в модуле ИМ-Валюты. КЕШ состоит из сгенерированного HTML контентной части страницы. И необходимо, что бы в сохраненке кеша был код JavaScript, который будет вызывать цену текущего товара уже перемноженного на курс. Т.е. по сути цена не будет кешироваться.
Название: Re: Подгрузка цены с помощью JQuery
Отправлено: admin от 08 Июля 2015, 15:06:02
новую цену (в том числе в других валютах) можно получить через макрос udata/emarket/price (http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/internetmagazin/emarket_price/)
и обратиться к нему для конкретного товара через примерно такой скрипт:

Берем откуда-то id товара  например перебираем dom элементы содержащим инфу о товаре (например по классу .catalog_object) и у каждого такого элемента есть параметр el_id с id данного товара (который мы формирует на уровне шаблона). Можно перебирать все эти элементы и в цикле выполнять такой запрос.
var id = $(this).attr('el_id');
$.ajax({
    url: '/udata/emarket/price/' + id + '.json',
    dataType: 'json',    
    success: function (data) {
         if (typeof data->price->actual != 'undefined') {
              var price = data->price->actual; //может вам нужна цена из другого блока, запросите макрос вручную в адресной строке и посмотрите что возвращает umi и что вам из этого нужно
              // выводим значение переменной price в блок с ценой
         }

    }
});