Усовершенствование плагина ImageManager для WordPress
Вчера делал картинную галерею для сайта одной знакомой на базе этого плагина версии 2.37 и нарвался на засаду: фотки сделаны с разрешением примерно 1000 x 1200 и знакомая уперлась - ни в какую не хотела уменьшать их. Плагин такие фотки выводит в окошке в обрезанном виде. :-| Ужоснах.
Решение получилось такое: добавляем параметры width и height для выводимой картинки, а их значения вычисляем исходя из требования, чтобы в экран поместилась целиком.
Итак, ищем в архиве plug-in-а файлик под названием imagemanager-plugin.php и чуток его подправим.
Имеем следующее:
Видоизменяем на (курсивом выделил, что добавилось):
Пониже находим строчку
убиваем ее и вместо ставим свою:
Проверяем - вуаля, всё работает!
Решение получилось такое: добавляем параметры width и height для выводимой картинки, а их значения вычисляем исходя из требования, чтобы в экран поместилась целиком.
Итак, ищем в архиве plug-in-а файлик под названием imagemanager-plugin.php и чуток его подправим.
Имеем следующее:
function ps_imagemanager_popup(imgurl,title,w,h) {
lpos=(screen.width)?(screen.width-w)/2:100;
tpos=(screen.height)?(screen.height-h)/2:100;
settings='width='+w+',height='+h+',top='+tpos+',left='+lpos+',scrollbars=no, location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=yes'; Видоизменяем на (курсивом выделил, что добавилось):
function ps_imagemanager_popup(imgurl,title,w,h) {
lpos=(screen.width)?(screen.width-w)/2:100;
tpos=(screen.height)?(screen.height-h)/2:100;
var maxW = screen.availWidth*0.95;
var maxH = screen.availHeight*0.95;
var new_w; var new_h;
if (! ((w<=maxW) && (h<=maxH)) ) {
if (parseInt(w) >= parseInt(h)) {
new_w = maxW;
new_h = new_w * h / w;
}
else {
new_h = maxH;
new_w = new_h * w / h;
}
h = parseInt(new_h); w = parseInt(new_w);
}
settings='width='+w+',height='+h+',top='+tpos+',left='+lpos+',scrollbars=no, location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=yes'; Пониже находим строчку
doc += '<img style="cursor:pointer;" src="' + imgurl + '" title="' + title + '" onclick="self.close();"/>'; убиваем ее и вместо ставим свою:
doc += '<img style="cursor:pointer;" src="' + imgurl + '" title="' + title + '" width="' + w + 'px" height="' + h + 'px" onclick="self.close();" />'; Проверяем - вуаля, всё работает!
