PageSourceSearch

https://petrolero.ru/bitrix/components/aspro/catalog.viewed.lite/templates/main/script.js

js petrolero.ru collected 2026-10-07 18:16:22 UTC 4,541 bytes, 104 lines download raw bytes

1if (!funcDefined('showViewedItems')) {
2	showViewedItems = function($viewedSlider, cookieItems, config) {
3		config = (typeof config === 'object' && config) ? config : {};
4		config.SHOW_MEASURE = config.SHOW_MEASURE !== 'N' ? 'Y' : 'N';
5		config.SHOW_BONUS = config.SHOW_BONUS !== 'Y' ? 'N' : 'Y';
6
7		if ($viewedSlider.length) {			
8			try {
9				let storageItems = JViewed.get().getProducts();
10				
11				// remove some old items
12				for (var i in cookieItems) {
13					let productId = cookieItems[i].PRODUCT_ID;
14					if(
15						productId && 
16						typeof storageItems[productId] == 'undefined'
17					) {
18						$viewedSlider.find('.catalog-viewed__item-wrap[data-id=' + productId + ']').closest('.catalog-viewed__item').remove();
19					}
20				}
21				
22				for (let productId in storageItems) {
23					var $item = $viewedSlider.find('.catalog-viewed__item-wrap[data-id=' + productId + ']');
24
25					if ($item.length) {
26						let storageItem = storageItems[productId];
27
28						let picture = {
29							ID: false,
30							SRC: arAsproOptions.SITE_TEMPLATE_PATH + '/images/svg/noimage_product.svg',
31							ALT: storageItem.NAME,
32							TITLE: storageItem.NAME,
33						};
34						if (typeof $item.attr('data-picture') !== 'undefined') {
35							picture = JSON.parse($item.attr('data-picture'));
36						}
37
38						let bSaleMode = arAsproOptions.MODULES.sale;
39						let isOffer = storageItem.IS_OFFER == 'Y';
40						let bWithOffers = storageItem.WITH_OFFERS == 'Y';
41						let bShowMeasure = config.SHOW_MEASURE == 'Y' && !bWithOffers && storageItem.CATALOG_MEASURE_NAME.length;
42						let bHasPrice = typeof storageItem.PRICE === 'object' && storageItem.PRICE && (storageItem.PRICE.PRICE > 0 || (!bSaleMode &&storageItem.PRICE.PRICE.length));
43						let bHasEconomy = typeof storageItem.PRICE === 'object' && storageItem.PRICE && (storageItem.PRICE.ECONOMY > 0 || (!bSaleMode &&storageItem.PRICE.ECONOMY.length));
44
45						let priceHtml = '';
46						if (bHasPrice) {
47							let pricePrint = typeof storageItem.PRICE.PRICE_PRINT !== 'undefined' ? storageItem.PRICE.PRICE_PRINT : storageItem.PRICE.PRICE;
48							priceHtml = '<div class="price__new"><span class="price__new-val font_15">' + (bWithOffers && bSaleMode ? BX.message('CATALOG_FROM_VIEWED') + ' ' : '') + pricePrint.replace(BX.message('CATALOG_FROM_VIEWED'), '').trim() + (bShowMeasure ? '/' + storageItem.CATALOG_MEASURE_NAME : '') + '</span></div>';
49						}
50						priceHtml = '<div class="price color_222">' + priceHtml + '</div>';
51
52						let stickersHtml = '';
53						let economyHtml = '';
54						if (bHasEconomy) {
55							let economyPrint = typeof storageItem.PRICE.ECONOMY_PRINT !== 'undefined' ? storageItem.PRICE.ECONOMY_PRINT : storageItem.PRICE.ECONOMY;
56							economyHtml = '<div class="catalog-viewed__item-sticker-value rounded-x sticker__item sticker__item--sale">' + economyPrint + '</div>';
57						}
58
59						let bonusHtml = '';
60						// if (config.SHOW_BONUS == 'Y') {
61						// 	bonusHtml = '<div class="bonus-system-block lb_bonus lb_bonus_viewed lb_ajax_' + storageItem.productId + '" data-item="' + storageItem.productId + '"></div>';
62						// }
63
64						if (economyHtml || bonusHtml) {
65							stickersHtml = '<div class="catalog-viewed__item-sticker">' + economyHtml + bonusHtml + '</div>';
66						}
67
68						$item.html(
69							'<div class="catalog-viewed__item__inner flexbox flexbox--column">' +
70								'<div class="catalog-viewed__item__image__wrap">' +
71									'<div class="catalog-viewed__item__image">' +
72										'<a href="' + storageItem.DETAIL_PAGE_URL + '" class="thumb">' +
73											'<img border="0" src="' + picture.SRC + '" alt="' + (picture.ALT.length ? picture.ALT : storageItem.NAME) + '" title="' + (picture.TITLE.length ? picture.TITLE : storageItem.NAME) + '" />' +
74										'</a>' +
75									'</div>' +
76									stickersHtml +
77								'</div>' +
78								'<div class="catalog-viewed__item__info item_info">' +
79									priceHtml +
80									'<div class="catalog-viewed__item__title font_14 linecamp-2">' +
81										'<a class="dark_link switcher-title color-theme-target" href="' + storageItem.DETAIL_PAGE_URL + '"><span>' + storageItem.NAME + '</span></a>' +
82									'</div>' +
83								'</div>' +
84							'</div>'
85						);
86					}
87					else {
88						// item not finded
89						// may be if it`s new item (it`s detail page now)
90						// or quantity limit
91					}
92				}
93	
94				// if no items than remove block
95				if (!$viewedSlider.find('.catalog-viewed__item').length) {
96					$viewedSlider.closest('.catalog-viewed-list').remove();
97				}
98			}
99			catch (e) {
100				console.error(e);
101			}
102		}
103	}
104}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.