PageSourceSearch

https://sungtaepaek.com/js/module/review_contents.js

js sungtaepaek.com collected 2026-09-29 10:44:44 UTC 14,927 bytes, 253 lines download raw bytes

1(function (jQuery) {
2
3	$doc = $(document);
4
5	window.onload = function(){
6		setLanguage(LANG);
7	}
8	$(function() {
9		if(typeof LANG == 'undefined') LANG = getLanguage();
10	});
11
12	$.reviewContents = {
13		init: function(review_block_id, gallery_data) {
14			var R_SID = (typeof SID == 'undefined') ? property.SID : SID,
15				R_PUBLISH = (typeof property == 'undefined') ? false : property.PUBLISH,
16				R_VALIDPLAN = (typeof VALIDPLAN == 'undefined') ? property.VALIDPLAN : VALIDPLAN,
17				R_VALIDTYPE = (typeof VALIDTYPE == 'undefined') ? property.VALIDTYPE : VALIDTYPE;
18
19			var $review_el = $('.element[data-id="' + review_block_id + '"]'),
20                loop = $review_el.find('.item').eq(0).clone().prop('outerHTML'),
21				post_view = (typeof $review_el.find('[data-loop="true"]').attr('data-view') == 'undefined') ? 5 : $review_el.find('[data-loop="true"]').attr('data-view');
22            var blocklang = ($review_el.attr('data-blocklang'))? $review_el.attr('data-blocklang') : LANG;
23			var cookie_review_orderby = $.cookie('review-orderby-' + review_block_id);
24	        if(!cookie_review_orderby) cookie_review_orderby = 'recent';
25
26			if(PAGE_MODE != 'c' && (!R_VALIDPLAN || R_VALIDTYPE != 'SM')) {
27				$review_el.html('').addClass('hide');
28				return false;
29			}
30
31			$.ajax({
32                url: '/template/review_contents/',
33                dataType: 'json',
34                type: 'POST',
35                data: { sid : R_SID, type : 'get', review_block_id : review_block_id, view : post_view, orderby: cookie_review_orderby, gallery_data : gallery_data, action : 'init', publish: R_PUBLISH },
36                async: false,
37                cache: false,
38                success: function(r_data) {
39					checkError(r_data);
40					var elsettings = r_data['data']['elsettings'];
41					var total = r_data['data']['total'];
42                	var field_disable = (typeof elsettings['field_disable'] != 'undefined' && elsettings['field_disable'] != null && !$.isEmptyObject(elsettings['field_disable']))? elsettings['field_disable'] : [];
43	                var field_listSet = ['title', 'caption', 'name', 'star_rating', 'date'];
44
45                	$loop = $(loop).removeClass('active');
46                    var ftitle = $loop.find('.figure.title'),
47                        fscore = $loop.find('.figure.review_score'),
48                        fname = $loop.find('.figure.name'),
49                        fdatetime = $loop.find('.figure.date'),
50                        fcaption = $loop.find('.figure.caption');
51
52                    if(!$.isEmptyObject(r_data['data']) && !$.isEmptyObject(r_data['data']['list'])) {
53	                    $review_el.removeClass('review-sample-block');
54                        $review_el.find('[data-loop="true"]').html('');
55                        // console.log('r_data', r_data);
56                        // console.log('gallery_data', gallery_data);
57                        $.each(r_data['data']['list'], function(i,o) {
58                            if(typeof o.review != 'undefined') {
59                            	if(typeof elsettings.review_type == 'undefined' || elsettings.review_type != 'text_only') {
60                            		var review_image = (o.review_image)? o.review_image : o.image;
61                                	if($loop.find('img').length > 0) $loop.find('img').attr('src', review_image);
62                                	if($loop.find('.ly-img').length > 0) $loop.find('.ly-img').css('background-image', 'url('+review_image+')');
63                            	}
64
65                                if($loop.find('.review_image').length > 0) $loop.find('.review_image img').attr('src', o.image_thumb);
66                                $loop.find('a').attr('data-review', o.seq);
67
68                                var score = '';
69                                for(var i = 0; i < 5; i++) {
70                                    var rsOnOff = (i < o.review_score)? 'on' : 'off';
71                                    score += '<span class="re_starimg star_' + rsOnOff + '"><svg viewBox="0 0 15 15" width="15" height="15"><polygon points="15 5.8 9.78 4.77 7.5 0 5.22 4.77 0 5.8 3.59 9.55 2.93 15 7.5 12.61 12.07 15 11.41 9.55 "/></svg></span>';
72                                }
73                                
74                                ftitle.html(o.review);
75                                fscore.html(score);
76                                fname.text(o.name);
77                                fdatetime.text(o.reg_date);
78                                fcaption.text(o.review);
79                                $loop.find('.review-prd_title').text(o.title);
80                                $loop.find('.prd-review_score').text(o.avg_score);
81                                $loop.find('.prd-review_cnt').text(o.review_cnt);
82
83                                $review_el.find('[data-loop="true"]').append($loop[0].outerHTML);
84                                changeBrokenImages($review_el);
85                            }
86                        });
87                    } else {
88	                    var sample_el_tag = (typeof r_data['empty_data']['eltag'] != 'undefined') ? htmlspecialchars_decode(r_data['empty_data']['eltag'],'ENT_QUOTES') : '',
89							$sample_el = $(sample_el_tag).hasClass($review_el.attr('data-name')) ? $(sample_el_tag) : $review_el;
90
91	                    $review_el.addClass('review-sample-block');
92						$review_el.find('[data-loop="true"]').html($sample_el.find('[data-loop="true"]').html());
93	                }
94
95	                if($review_el.find('.review-sort-wrap').length > 0) {
96	                	var cookie_review_orderby = $.cookie('review-orderby-' + review_block_id);
97			            if(!cookie_review_orderby) cookie_review_orderby = 'recent';
98			            var g_orderby = {
99			                'recent': $.lang[blocklang]['review.shopping.orderby.recent'],
100			                'review_score': $.lang[blocklang]['review.shopping.orderby.review_score'],
101			                'review_cnt': $.lang[blocklang]['review.shopping.orderby.review_cnt'],
102			            };
103			            var review_sort_nav = '';
104			            var orderby_nav_list = '';
105			            var active_orderby = (typeof cookie_review_orderby != 'undefined' && cookie_review_orderby)? g_orderby[cookie_review_orderby] : '신상품순';
106
107			            var i = 0;
108			            $.each(g_orderby, function(k, v) {
109			                var active = (k == cookie_review_orderby) ? 'active' : '';
110			                orderby_nav_list += '\
111			                    <li class="' + active + '"><a href="javascript:;" data-idx="' + i + '" data-orderby="' + k + '">' + v + '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 13 10" width="13" height="10"><path d="m5 9.71-5-5 1.41-1.42L5 6.88 11.59.29 13 1.71z"/></svg></a></li>\
112			                ';
113			                i++;
114			            });
115			            review_sort_nav += '\
116			                    <div class="review-sort-nav" data-sort-lang="' + blocklang + '" data-selector=".review-sort-nav" data-font="true" data-title="sort font">\
117			                        <div class="toggle-dropdown display-flex space-between align-items-center">\
118			                            <span class="active-sort">' + active_orderby + '</span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="m8 11.35-6-6 .71-.7L8 9.94l5.29-5.29.71.7z"/></svg>\
119			                        </div>\
120			                        <ul>\
121			                        ' + orderby_nav_list + '\
122			                        </ul>\
123			                    </div>\
124			                ';
125		                
126		                if ($review_el.find('.review-sort-nav').length > 0) $review_el.find('.review-sort-nav').replaceWith(review_sort_nav);
127		                else $review_el.find('.review-sort-wrap').append(review_sort_nav);
128	                }
129
130	                $.each(field_listSet, function(idx, v) {
131						var tmp_v = (v == 'star_rating') ? 'review_score' : v,
132							field_onoff = ($.inArray(v,field_disable) > -1) ? false : true;
133						if(field_onoff) $review_el.find(`.figure.${tmp_v}`).removeClass('hide');
134						else $review_el.find(`.figure.${tmp_v}`).addClass('hide');
135                    });
136
137	                if(typeof elsettings.review_type != 'undefined' && elsettings.review_type == 'text_only') {
138                		$review_el.find('.img-wrapper').addClass('hide');
139                	} else {
140                		$review_el.find('.img-wrapper').removeClass('hide');
141                	}
142
143	                if($review_el.find('.lyoption[data-lyh]').length > 0) setLayoutHeight();
144                    $.reviewContents.loadMoreBtn(review_block_id, post_view, total, 1, blocklang);
145                }
146            });
147		},
148		update: function(review_block_id, gallery_data, sort, page_num) {
149			var R_SID = (typeof SID == 'undefined') ? property.SID : SID,
150				R_PUBLISH = (typeof property == 'undefined') ? false : property.PUBLISH,
151				R_VALIDPLAN = (typeof VALIDPLAN == 'undefined') ? property.VALIDPLAN : VALIDPLAN,
152				R_VALIDTYPE = (typeof VALIDTYPE == 'undefined') ? property.VALIDTYPE : VALIDTYPE;
153
154			var $review_el = $('.element[data-id="' + review_block_id + '"]'),
155                loop = $review_el.find('.item').eq(0).clone().prop('outerHTML'),
156				post_view = (typeof $review_el.find('[data-loop="true"]').attr('data-view') == 'undefined') ? 5 : $review_el.find('[data-loop="true"]').attr('data-view');
157            var blocklang = ($review_el.attr('data-blocklang'))? $review_el.attr('data-blocklang') : LANG;
158
159			if(typeof sort == 'undefined' || sort == '') sort = 'recent';
160			if(typeof page_num == 'undefined' || page_num == '') page_num = 1;
161
162			$.ajax({
163                url: '/template/review_contents/',
164                dataType: 'json',
165                type: 'POST',
166                data: { sid : R_SID, type : 'get', review_block_id : review_block_id, view : post_view, orderby: sort, page: page_num, gallery_data : gallery_data, action : 'update', publish: R_PUBLISH },
167                async: false,
168                cache: false,
169                success: function(r_data) {
170					checkError(r_data);
171					var elsettings = r_data['data']['elsettings'];
172					var total = $review_el.find('.review-data-loadmore').attr('data-total');
173                	var field_disable = (typeof elsettings['field_disable'] != 'undefined' && !$.isEmptyObject(elsettings['field_disable']))? elsettings['field_disable'] : [];
174	                var field_listSet = ['title', 'caption', 'name', 'review_score', 'date'];
175
176                	$loop = $(loop).removeClass('active');
177                    var ftitle = $loop.find('.figure.title'),
178                        fscore = $loop.find('.figure.review_score'),
179                        fname = $loop.find('.figure.name'),
180                        fdatetime = $loop.find('.figure.date'),
181                        fcaption = $loop.find('.figure.caption');
182
183                    if(!$.isEmptyObject(r_data['data']) && !$.isEmptyObject(r_data['data']['list'])) {
184                        $review_el.find('[data-loop="true"]').html('');
185                        
186                        $.each(r_data['data']['list'], function(i,o) {
187                            if(typeof o.review != 'undefined') {
188                            	if(typeof elsettings.review_type == 'undefined' || elsettings.review_type != 'text_only') {
189                            		var review_image = (o.review_image)? o.review_image : o.image;
190                                	if($loop.find('img').length > 0) $loop.find('img').attr('src', review_image);
191                                	if($loop.find('.ly-img').length > 0) $loop.find('.ly-img').css('background-image', 'url('+review_image+')');
192                            	}
193
194                                if($loop.find('.review_image').length > 0) $loop.find('.review_image img').attr('src', o.image_thumb);
195                                $loop.find('a').attr('data-review', o.seq);
196
197                                var score = '';
198                                for(var i = 0; i < 5; i++) {
199                                    var rsOnOff = (i < o.review_score)? 'on' : 'off';
200                                    score += '<span class="re_starimg star_' + rsOnOff + '"><svg viewBox="0 0 15 15" width="15" height="15"><polygon points="15 5.8 9.78 4.77 7.5 0 5.22 4.77 0 5.8 3.59 9.55 2.93 15 7.5 12.61 12.07 15 11.41 9.55 "/></svg></span>';
201                                }
202                                
203                                ftitle.html(o.review);
204                                fscore.html(score);
205                                fname.text(o.name);
206                                fdatetime.text(o.reg_date);
207                                fcaption.text(o.review);
208                                $loop.find('.review-prd_title').text(o.title);
209                                $loop.find('.prd-review_score').text(o.avg_score);
210                                $loop.find('.prd-review_cnt').text(o.review_cnt);
211
212                                $review_el.find('[data-loop="true"]').append($loop[0].outerHTML);
213                                changeBrokenImages($review_el);
214                            }
215                        });
216                    }            
217
218	                $.each(field_listSet, function(idx, v) {
219						if($.inArray(v,field_disable) > -1) {
220		                  	$review_el.find('.figure.'+v).addClass('hide');
221						} else {
222		                  	$review_el.find('.figure.'+v).removeClass('hide');
223						}
224                    });
225
226	                if(typeof elsettings.review_type != 'undefined' && elsettings.review_type == 'text_only') {
227                		$review_el.find('.img-wrapper').addClass('hide');
228                	} else {
229                		$review_el.find('.img-wrapper').removeClass('hide');
230                	}
231
232	                if($review_el.find('.lyoption[data-lyh]').length > 0) setLayoutHeight();
233                    $.reviewContents.loadMoreBtn(review_block_id, post_view, total, page_num, blocklang);
234                }
235            });
236		},
237		loadMoreBtn: function (review_block_id, post_view, total, page_num, blocklang) {
238			var $review_el = $('.element[data-id="' + review_block_id + '"]');
239			var max_page = Math.ceil(total / post_view);
240
241			if(total > post_view * page_num) {
242            	// loadmore btn
243            	page_num ++;
244   				var rlm_btn = '<div class="review-data-loadmore" data-loadmore="true" data-selector=".review-data-loadmore" data-total="' + total + '" data-id="' + review_block_id + '" data-page="'+page_num+'" data-view="' + post_view + '">' + $.lang[blocklang]['data.review.loadmore'] + '</div>';
245
246                if ($review_el.find('.review-data-loadmore').length > 0) $review_el.find('.review-data-loadmore').replaceWith(rlm_btn);
247                else $review_el.append(rlm_btn);
248            } else {
249            	$review_el.find('.review-data-loadmore').remove();
250            }
251		},
252	}
253})(jQuery);

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.