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.