1(function($) { 2 3 var uniqID = function() { 4 return Math.round(new Date().getTime() + (Math.random() * 100)); 5 } 6 7 var blWrap = function(bltype,blmode,blview) { 8 var id = uniqID(), 9 menu_lock = (PAGE_MODE == 'c') ? '' : property.ISLOCK, 10 bl_class = (typeof menu_lock != 'undefined' && menu_lock == 'true') ? 'hide ' : ''; 11 if(bltype == 'F') bl_class += 'colorSet '; 12 if(bltype == 'P' && blmode == 'project') bl_class += 'galProjectBg '; 13 14 $str = $('<div class="page-bottomlist ' + bl_class + '" data-pid="' + blview + '"></div>'); 15 $str.css({ 16 'text-align' : 'center', 17 'font-size' : '20px', 18 'background-image' : 'url(https://storage.googleapis.com/i.addblock.net/preloader2.gif)', 19 'background-position' : 'center center', 20 'background-repeat' : 'no-repeat', 21 'min-height' : '50px' 22 }); 23 return { 24 id : id, 25 tpl : $str 26 } 27 } 28 29 var blGalleryData = function(page) { 30 var blPAGEMODE = (PAGE_MODE == 'c') ? MODE : property.PUBLISH, 31 blPARENT = (PAGE_MODE == 'c') ? PARENT : property.PARENT, 32 blVIEW = (PAGE_MODE == 'c') ? VIEW : property.VIEW; 33 34 var r; 35 $.ajax({ 36 url: '/template/gallery/bl_data/view/' + blVIEW, 37 data: { mode: blPAGEMODE, page: page, gacte_home: blPARENT.gcate_home }, 38 dataType: 'json', 39 type: 'POST', 40 async: false, 41 cache: false, 42 success : function(data) { 43 checkError(data); 44 r = data; 45 } 46 },'json'); 47 return r; 48 } 49 50 var blGalleryItemEmpty = function() { 51 var str = '\ 52 <div class="blitem gallery-item sample-item" data-seq="-1" data-index="-1">\ 53 <div class="col-xs-3 col-sm-3 col-md-3">\ 54 <div class="center-block"><img src="//storage.googleapis.com/i.addblock.net/blitem_empty_img.png" alt="" class="img-responsive"/></div>\ 55 </div>\ 56 </div>\ 57 '; 58 59 return str; 60 } 61 var blGalleryItem = function(idx,obj) { 62 var blSID = (PAGE_MODE == 'c') ? SID : property.SID, 63 blONE = (PAGE_MODE == 'c') ? ONE : property.ONE, 64 blVIEW = (PAGE_MODE == 'c') ? VIEW : property.blVIEW, 65 blPAGEMODE = (PAGE_MODE == 'c') ? MODE : property.PUBLISH, 66 blRPATH = (PAGE_MODE == 'c') ? RESOURCE+'/'+blSID+'/' : property.RESOURCE+'/'+blSID+'/'; 67 68 var gsettings = (typeof obj.gsettings != 'undefined' && obj.gsettings) ? $.parseJSON(obj.gsettings) : {}, 69 imgPATH = (typeof gsettings.storage != 'undefined' && gsettings.storage) ? gsettings.storage : blRPATH, 70 s = ((obj.image).indexOf('[{') > -1 ) ? $.parseJSON(obj.image) : obj.image, 71 src = (typeof s[0]['file'] != 'undefined') ? getServeImage(s[0]['file'],"600",imgPATH) : getServeImage(obj.image,"600",imgPATH), 72 img_src = (typeof gsettings.storage != 'undefined' && gsettings.storage) ? gsettings.storage + '600/' + obj.image : blRPATH + '600/' + obj.image, 73 g_url = (blPAGEMODE == 'config' || blPAGEMODE == 'demo') ? '/'+CONFIG_URL+'config/page' : property.URL, 74 g_link = obj.page + '/view/' + obj.seq, 75 g_link_option = '', 76 blitem_active = (blVIEW == obj.seq) ? ' active' : ''; 77 78 if(typeof gsettings['glink'] != 'undefined' && gsettings['glink']) { 79 var g_link = (checkBase64Encode(gsettings['glink'])) ? Base64.decode(gsettings['glink']) : gsettings['glink'], 80 g_link_target = gsettings['glink_target'], 81 glink_val = (g_link) ? makeLinkUrl(g_link, blONE, blVIEW) : '', 82 menu_list = (typeof MENULIST != 'undefined') ? MENULIST : property.MENULIST; 83 84 if(menu_list.indexOf(g_link.replace(/ /g,'-'))>-1) { 85 g_link_option = 'data-user-link="' + glink_val + '"'; 86 g_link = glink_val; 87 } else if(g_link.match(/^\@/g)) { 88 g_link_option = 'attr-bookmark="' + g_link.replace(/^\@/g,'') + '"'; 89 } else { 90 g_link_option = 'attr-link="' + htmlEntities(g_link) + '"'; 91 g_link = glink_val; 92 } 93 94 if(g_link_target.length > 0 ) g_link_option += ' target="' + g_link_target + '"'; 95 96 } else { 97 g_link = (g_url == '/') ? g_url + g_link : g_url + '/' + g_link; 98 } 99 100 var str = '\ 101 <div class="blitem gallery-item'+blitem_active+'" data-seq="'+obj.seq+'" data-index="'+idx+'">\ 102 <div class="col-xs-3 col-sm-3 col-md-3">\ 103 <a href="'+htmlEntities(g_link)+'" '+ g_link_option + '>\ 104 <img src="'+src+'" class="img-responsive center-block">\ 105 <div class="over-wrap"><span>'+obj.title+'</span></div>\ 106 </a>\ 107 </div>\ 108 </div>\ 109 '; 110 111 return str; 112 } 113 114 var blGallery = function(page) { 115 var id = uniqID(), 116 r = blGalleryData(page), 117 bl_g_data = r.list, 118 bl_g_page = Number(r.page),
119 bl_g_end_page = Number(r.end_page), 120 bl_g_total = Number(r.total); 121 122 var str = '\ 123 <div class="container">\ 124 <div class="row clearfix">\ 125 <div class="col-xs-12 col-sm-12 col-md-12">\ 126 '; 127 128 bl_g_data.forEach(function(o,i) { 129 str = str +'\ 130 ' + blGalleryItem(((bl_g_page*4)-4)+i,o) + '\ 131 '; 132 }); 133 if(bl_g_data.length < 4) { 134 for(var i=0; i< (4-bl_g_data.length); i++) { 135 str = str + blGalleryItemEmpty(); 136 } 137 } 138 str = str +'\ 139 </div>\ 140 </div>\ 141 '; 142 143 if(bl_g_page > 1) { 144 str = str + '\ 145 <div class="left bl-g-control" data-slide="prev" data-page="' + (bl_g_page-1) + '">\ 146 <span><svg viewBox="0 0 24 24" width="24" height="24"><path d="M15 5l-7 7 7 7z"/></svg></span>\ 147 </div>\ 148 '; 149 } else { 150 str = str + '\ 151 <div class="left bl-g-control empty" data-slide="prev" data-page="1">\ 152 <span><svg viewBox="0 0 24 24" width="24" height="24"><path d="M15 5l-7 7 7 7z"/></svg></span>\ 153 </div>\ 154 '; 155 } 156 157 if(bl_g_page < bl_g_end_page) { 158 str = str + '\ 159 <div class="right bl-g-control" data-slide="next" data-page="' + (bl_g_page+1) + '">\ 160 <span><svg viewBox="0 0 24 24" width="24" height="24"><path d="M9 5l7 7-7 7z"/></svg></span>\ 161 </div>\ 162 '; 163 } else { 164 str = str + '\
165 <div class="right bl-g-control empty" data-slide="next" data-page="bl_g_end_page">\ 166 <span><svg viewBox="0 0 24 24" width="24" height="24"><path d="M9 5l7 7-7 7z"/></svg></span>\ 167 </div>\ 168 '; 169 } 170 str = str + '\ 171 </div>'; 172 173 return { 174 str: $(str), 175 page: bl_g_page, 176 end_page: bl_g_end_page, 177 total: bl_g_total 178 }; 179 } 180 181 var blForum = function(d,wrap) { 182 var css_str = htmlspecialchars_decode(d.elcss); 183 if($('.dsgn-body').find('#page-bottomlistcss').length > 0 ) $('.dsgn-body').find('#page-bottomlistcss').html(css_str); 184 else $('.dsgn-body').prepend('<style id="page-bottomlistcss" type="text/css">' + css_str + '</style>'); 185 186 var blPAGE = (PAGE_MODE == 'c') ? PAGE : property.PAGE, 187 blVIEW = (PAGE_MODE == 'c') ? VIEW : property.VIEW; 188 189 var msny = (d.feature=='masonry') ? true : false; 190 wrap.addClass('element page-bottomlist ' + d.elname) 191 .attr('data-id', d.seq) 192 .attr('data-el','el_bottomlist') 193 .attr('data-name', d.elname) 194 .attr('data-msny', msny) 195 .attr('data-type', d.type) 196 .attr('data-type2', d.type2) 197 .attr('data-mode', d.mode) 198 .attr('data-width', d.folder); 199 200 wrap.html(htmlspecialchars_decode(d.eltag)); 201 if(wrap.find('[data-fcolor]').length > 0) wrap.attr('data-ver','1'); 202 203 var view = wrap.find('[data-loop="true"]').attr('data-view'); 204 if(typeof view == 'undefined') view = 10; 205 206 if(typeof $.cookie('forum_' + d.seq) != 'undefined' && $.cookie('forum_' + d.seq)) 207 $.forum.init(d.seq,blPAGE,view,$.cookie('forum_' + d.seq),$.cookie('forum_'+ d.seq +'_sfl'),$.cookie('forum_'+ d.seq +'_stx'),$.cookie('forum_'+ d.seq +'_scate')); 208 else 209 $.forum.init(d.seq,blPAGE,view); 210 211 wrap.find('[data-id="' + blVIEW + '"]').closest('tr').addClass('active').siblings('tr').removeClass('active'); 212 } 213 214 215 $(document).on('click','.bl-g-control', function(e){ 216 if($(this).hasClass('empty')) return false; 217 218 var step = $(this).data('slide'), 219 page = $(this).data('page'), 220 bl_g = blGallery(Number(page)); 221 $('.page-bottomlist.bl-gallery-wrap').html(bl_g.str); 222 changeBrokenImages($('.page-bottomlist.bl-gallery-wrap')); 223 }); 224 225 226 $.bottomlist = { 227 init : function() { 228 var blSID = (PAGE_MODE == 'c') ? SID : property.SID, 229 blPARENT = (PAGE_MODE == 'c') ? PARENT : property.PARENT, 230 blPAGE = (PAGE_MODE == 'c') ? PAGE : property.PAGE; 231 232 if(typeof blSID == 'undefined' || !blSID) { console.log('blSID undefined'); return false; } 233 if(typeof blPARENT == 'undefined' || !blPARENT) { console.log('blPARENT undefined'); return false; } 234 if(typeof blPAGE == 'undefined' || !blPAGE) { console.log('blPAGE undefined'); return false; } 235 if(blPARENT.mode===null) { console.log('blPARENT.mode null'); return false; } 236 237 var blPARENT_SETTINGS = (typeof blPARENT.settings != 'undefined' && blPARENT.settings) ? jQuery.parseJSON(blPARENT.settings) : {}, 238 blSETTINGS = (PAGE_MODE == 'c') ? SETTINGS : property.SETTINGS; 239 if(typeof blSETTINGS == 'undefined' || !blSETTINGS) blSETTINGS = {}; 240 241 var checkUrl = blPAGE.split(','), 242 blTYPE = (checkUrl[0] == 'forum') ? 'F' : 'P', 243 blPID = blPARENT.pid, 244 blVIEW = (PAGE_MODE == 'c') ? VIEW : property.VIEW; 245 246 if(typeof blTYPE == 'undefined' || !blTYPE) { console.log('blTYPE undefined'); return false; } 247 if(typeof blPID == 'undefined' || !blPID) { console.log('blPID undefined'); return false; } 248 if(typeof blVIEW == 'undefined' || !blVIEW) { console.log('blVIEW undefined'); return false; } 249 250 $('.page-bottomlist').remove(); 251 var blwrap = blWrap(blTYPE,blPARENT.mode,blVIEW), 252 $blwrap = $(blwrap.tpl); 253 254 if(blTYPE == 'F') $blwrap.addClass('el_bl'); 255 $blwrap.append('<div class="container">'); 256 257 if($('.el-footer').length) { 258 $lastEl = ($('.el-footer_ctrl').length > 0) ? $('.el-footer_ctrl') : $('.el-footer'); 259 if(blVIEW && blPARENT.mode=='project') $lastEl.before($blwrap); 260 else $('.forum-view').append($blwrap); 261 } else { 262 $('.dsgn-body').append($blwrap); 263 } 264 $blwrap.removeAttr('style'); 265 266 switch(blTYPE) { 267 case 'F' : 268 var getblForum = $.ajax({ url : '/template/element/type/get/seq/' + blPID, data: { use : 'bottomlist'}, dataType: 'json', type: 'POST', async: false, cache: false }); 269 getblForum.then(function(data) { 270 checkError(data); 271 var d = data[0]; 272 blForum(d,$blwrap); 273 }); 274 break; 275
276 case 'P' : 277 $blwrap.addClass('bl-gallery-wrap'); 278 var bl_g = blGallery(), 279 bl_g_html = bl_g.str; 280 $blwrap.html(bl_g_html); 281 changeBrokenImages($blwrap); 282 break; 283 284 default: 285 // console.log('TYPE default'); 286 break; 287 } 288 // setHeight(pageHeight()); 289 290 }, 291 destory : function() { 292 var $obj = $('.page-bottomlist'); 293 $obj.fadeOut('slow',function() { 294 $(this).remove(); 295 }); 296 } 297 } 298}(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.