Установить по инструкции или же просто заменить файлы с архива
используем вот так poster[img,POSTER,req,WxH:500x500]
рип аддона с rutracker.org
используем вот так poster[img,POSTER,req,WxH:500x500]
рип аддона с rutracker.org
- Инструкция по установке
-
Добавить в jquery.pack.js
Код:Добавить в jquery.pack.js ;// js/lib/jquery/jquery.imagesloaded.js !function(a,b){"use strict";var c="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";a.fn.imagesLoaded=function(d){function e(){var b=a(l),c=a(m);h&&(m.length?h.reject(j,b,c):h.resolve(j)),a.isFunction(d)&&d.call(g,j,b,c)}function f(b,d){b.src!==c&&-1===a.inArray(b,k)&&(k.push(b),d?m.push(b):l.push(b),a.data(b,"imagesLoaded",{isBroken:d,src:b.src}),i&&h.notifyWith(a(b),[d,j,a(l),a(m)]),j.length===k.length&&(setTimeout(e),j.unbind(".imagesLoaded")))}var g=this,h=a.isFunction(a.Deferred)?a.Deferred():0,i=a.isFunction(h.notify),j=g.find("img").add(g.filter("img")),k=[],l=[],m=[];return a.isPlainObject(d)&&a.each(d,function(a,b){"callback"===a?d=b:h&&h[a](b)}),j.length?j.bind("load.imagesLoaded error.imagesLoaded",function(a){f(a.target,"error"===a.type)}).each(function(d,e){var g=e.src,h=a.data(e,"imagesLoaded");return h&&h.src===g?void f(e,h.isBroken):e.complete&&e.naturalWidth!==b?void f(e,0===e.naturalWidth||0===e.naturalHeight):void((e.readyState||e.complete)&&(e.src=c,e.src=g))}):e(),h?h.promise(g):g}}(jQuery); Найти // количество найденных ошибок при заполнении формы Вставить перед images: {/* {img_id: Image()} */}, // загружаемые для проверки картинки img_wait_load: {/* {img_id: timer_id} */}, // для задержки submit пока картинки не загрузятся ИЛИ же загрузка не отвалится по timeout img_load_timeout: 10000, // ms; отмена проверки, если картинка не успела полностью загрузится за это время load_and_check_img: function(el, img_url, max_W, max_H) { var img_id = $P.md5(''+el+img_url.toLowerCase()); if ( !(img_id in TPL.images) ) { TPL.images[img_id] = new Image(); TPL.images[img_id].src = img_url; } // submit будет задержан, пока TPL.img_wait_load не пустой TPL.img_wait_load[img_id] = setTimeout(function(){ TPL.cancel_wait_load(img_id); }, TPL.img_load_timeout); $(TPL.images[img_id]).imagesLoaded( function(){ TPL.check_img_size(img_id, el, max_W, max_H) } ); TPL.add_loading_icon(el, img_id); }, check_img_size: function(img_id, el, max_W, max_H) { TPL.cancel_wait_load(img_id); var img = TPL.images[img_id]; if (img.width > max_W || img.height > max_H) { var err_msg_id = 'big_img_'+ img_id; TPL.err_msg[err_msg_id] = 'Максимальные ширина и высота должны быть <b>'+ max_W +'</b>x<b>'+ max_H +'</b>. У вас <b>'+ img.width +'</b>x<b>'+ img.height +'</b>'; TPL.hl_form_err(el, err_msg_id); } }, cancel_wait_load: function(img_id) { $(TPL.images[img_id]).unbind('.imagesLoaded'); if (TPL.img_wait_load[img_id] != null) { clearTimeout(TPL.img_wait_load[img_id]); delete(TPL.img_wait_load[img_id]); } TPL.remove_loading_icon(img_id); }, add_loading_icon: function(el, img_id) { var el_id = TPL.get_el_id(el); $('#'+el_id).parent('td').append('<div id="'+img_id+'" class="tpl-loading-icon"><i class="loading-1">загружается...</i></div>'); $('#'+img_id).siblings('input[type="text"]').prop({readonly: true}); }, remove_loading_icon: function(img_id) { $('#'+img_id).siblings('input[type="text"]').prop({readonly: false}); $('#'+img_id).remove(); }, disable_submit_btn: function() { $('#tpl-submit-btn').val('загружается...').prop({disabled: true}); }, enable_submit_btn: function() { if ( $.isEmptyObject(TPL.img_wait_load) ) { $('#tpl-submit-btn').val('Продолжить').prop({disabled: false}); } }, Найти img_tag : /(https?:\/\/[^\s\?&;:=\#\"<>]+\.(jpg|jpeg|gif|png)(?!\[|\]|\.))/ig Заменить img_tag : /(https?:\/\/[^\s\?&;:=\#\"<>]+\.(jpg|jpeg|gif|png)(?!\[|\]|\.))/ig, img_WxH : /^WxH:(\d+)x(\d+)$/ Найти if ($.inArray('img', at) != -1 && !TPL.reg['img'].test(el_val)) { TPL.hl_form_err(el, 'not_img'); return true; // continue } Заменить if ($.inArray('img', at) != -1) { if (!TPL.reg['img'].test(el_val)) { TPL.hl_form_err(el, 'not_img'); return true; // continue } else { if ($.inArray('POSTER', at) != -1) { var WxH = $.grep( at, function(n,i){ return n.match(TPL.reg['img_WxH']) }); if ( WxH.length && (m = WxH[0].match(TPL.reg['img_WxH'])) ) { TPL.load_and_check_img(el, el_val, m[1], m[2]); } } } } Найти // удаление подсветки ошибок, сброс счетчика reset_f_errors: function() { Заменить // удаление подсветки ошибок, сброс счетчика reset_f_errors: function() { for (var img_id in TPL.images) { TPL.cancel_wait_load(img_id); } TPL.f_errors_cnt = 0; $('tr.tpl-err-hl-tr').removeClass('tpl-err-hl-tr'); $('.tpl-err-hl-input').removeClass('tpl-err-hl-input'); $('div.tpl-err-hint').remove(); }, Найти function tpl_submit () Заменить function tpl_build_and_submit () { if ( TPL.build_msg_all('tpl-post-message', 'tpl-post-subject') ) { tpl_submit(); } } function tpl_submit () { if ( !$.isEmptyObject(TPL.img_wait_load) ) { TPL.disable_submit_btn(); setTimeout(function(){ tpl_submit(); }, 1000); } else { if (!TPL.f_errors_cnt) { $('#tpl-post-form').submit(); } TPL.enable_submit_btn(); } } Найти <input type="button" value="Продолжить" class="bold" style="width: 150px;" onclick="tpl_submit(true);" /> Заменить <input type="button" value="Продолжить" class="bold" style="width: 150px;" onclick="tpl_build_and_submit();" />