![]() |
Страницы (2): [1] 2 » Показаны 28 сообщений на этой странице |
Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- Хаки от Netadmin или "Сделай сам" (http://netadmin.ws/forum/forumdisplay.php?forumid=76)
-- Контроль размера картинок, вставленных тегом Img (http://netadmin.ws/forum/showthread.php?threadid=9516)
Контроль размера картинок, вставленных тегом Img
Вопрос вот в чем, где можно ограничить размеры картинок, вставленных по средствам тега IMG? Т.е. где дается ссылка на картинку. Возможно ли ограничить размеры? Или делать ресайз картинок? Или еще какие есть варианты, чтобы не растягивался скин по размеру картинки?
VB3.0.3
Самое простое решение это запретить показ картинок и вставлять ссылку на них, в противном случае требуеться трудоемкое программирование.
__________________
Всегда есть решение.
А может есть какие хаки для этого написанные? Или можно какие-либо настройки самого скина изменить, чтобы он не менял свой размер, даже если картинка больше его ширины?
Ну можно конечно прописать явно размеры картинки но ведь просто так нельзя узнать исходный размер картинки, поэтому не удасться сохранить пропорции.
__________________
Всегда есть решение.
Dr. Shost да такие хаки имеются:
http://www.vbulletin.org/forum/showthread.php?t=63458
http://www.vbulletin.org/forum/showthread.php?t=68429
http://www.vbulletin.org/forum/showthread.php?t=67743
__________________
yMC.ru - хомяк музыканта
А нельзя только по ширине прописать, а что не влезает, то пусть обрезается что ли..? Главное, чтобы скин не растягивался...
MCTarakan
Спасибо за ссылки, попробую разобраться, что там к чему... Только мне, как не имеющиму статуса зарегенново не показываются все коды на их форуме...
А не можешь поделиться этим хаком?
Чето поспешил я, экспромтом функцию немного переделал.
Вобщем нужно в includes/functions_bbcodeparse.php найти функцию function handle_bbcode_img_match и заменить ее на:
function handle_bbcode_img_match($link)
{
$link = strip_smilies(str_replace('\"', '"', $link));
// remove double spaces -- fixes issues with wordwrap
$link = str_replace(' ', '', $link);
$max_width = 250; // указываем максимально допустимую ширину
$max_height = 150; // указываем максимально допустимую высоту
$image_data = getimagesize($link);
$width = $image_data['0'];
$height = $image_data['1'];
$x_ratio = $max_width/$width;
$y_ratio = $max_height/$height;
if ($width > $max_width OR $height > $max_height)
{
if (($width*$y_ratio) < $max_width)
{
$width = ceil($y_ratio*$width);
$height = $max_height;
}
else
{
$height = ceil($x_ratio*$height);
$width = $max_width;
}
}
$image_size = " width=\"$width\" height=\"$height\"";
return '<img src="' . $link . '" border="0"' . $image_size .' alt="" />';
}
__________________
Всегда есть решение.
polo
БОЛЬШОЕ СПАСИБО! Очень помог.
Да, действительно, спасибо POLO!
нужная доработка...
__________________
Всё в наших руках.
все классно работает, до тех пор, пока кто то из узеров не пихнет ссылку на несуществующую картинку (в тегах [img]естессно)
или с другим расширением, чем на самом деле (gif вместо jpg, например. хз, как так можно, но было один раз...)
или вообще без расширения...
тогда форум выкидывает ошибку:
Warning: getimagesize(http://ссылка/на/картинку/без расширения): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/htdocs/web/html/forum/includes/functions_bbcodeparse.php on line 1039
Warning: Division by zero in /home/htdocs/web/html/forum/includes/functions_bbcodeparse.php on line 1042
Warning: Division by zero in /home/htdocs/web/html/forum/includes/functions_bbcodeparse.php on line 1043
и указывает на линии хака в файле
страница не загружается полностью, сначала эта ошибка, потом лого, и все... "сообщение форума, бла, бла, бла..."
приходится лезть на фтп, убирать хак, что бы страница загрузилась и потом удалять/редактировать сообщение...
как это можно пофиксить?
Считаю, что IMG код нужно отключать сразу во всех форумах. Исключение могут составлять подписи, да и то, под вопросом. Если возникла неодходимость в fullscreen картинки в сообщениях, то можно использовать стандартную возможность ограничения размера картирки аттача. IMG это зло, IMG нарушает целостность проекта, заставляет его зависить от других серверов.
А как баг исправить то?
Bochkarev_D.S.
я тоже так считаю, но узерам это сложно объяснить...
да и не об этом сейчас речь идет, был задан вопрос, как изменить размер картинки в постах, polo предложил свое решение, ок...
но появились баги, можно попытаться общими усилиями их побороть, а запретить или разрешить никогда не поздно...
--------------
AFGAN
спасибо, что перенес пост сюда...
kerk добавил 24-10-2004 в 18:58:25:
мысль тут одна появилась...
я не очень то разбираюсь в php, поэтому постарайтесь понять меня правильно...
как видно из сообщения, фукция ......getimagesize возвращает нам .....HTTP request failed! HTTP/1.1 404 Not Found in......
т.е. не найдена 404 что бы нам ее показать, если картинки не существует..., а если где то там прописать так, что бы при обращении и ненахождении картинки, возвращало бы 404.
то есть если картинка есть, но большая=> изменяет размер на указанный в коде и показывает картинку, если нету или ссылка введена неправильно=> отображало бы 404 объект не найден и белый квадрат с крестиком
===============================
все как то путанно, но надеюсь, что знающие php, поймут, что я хотел сказать...
не проверял..
навскидку вариант Поло с проверкой на отсутствие картинки
function handle_bbcode_img_match($link )
{
$link = strip_smilies(str_replace('\"', '"', $link));
// remove double spaces -- fixes issues with wordwrap
$link = str_replace(' ', '', $link);
$max_width = 250; // указываем максимально допустимую ширину
$max_height = 150; // указываем максимально допустимую высоту
if (fopen($link,"r")===0)
// пробуем открыть на чтение
// если открылся то работаем с картинкой
{
$image_data = getimagesize($link);
$width = $image_data['0'];
$height = $image_data['1'];
$x_ratio = $max_width/$width;
$y_ratio = $max_height/$height;
if ($width > $max_width OR $height > $max_height)
{
if (($width*$y_ratio) < $max_width)
{
$width = ceil($y_ratio*$width);
$height = $max_height;
}
else
{
$height = ceil($x_ratio*$height);
$width = $max_width;
}
}
$image_size = " width=\"$width\" height=\"$height\"";
return '<img src="' . $link . '" border="0"' . $image_size .' alt="" />';
}
else
// нету файла
// выводим "а файла то нету"
{
return '<b>Где ка-а-артинка-а-а? Не-е-ет картинки! :( </b>';
}
}
__________________
Новая жизнь HMM3(Герои 3.5 WoG)http://hmm3.fclan.ru
fStrange
спасибо
проверю, как поставлю форум на локалку заново, обрушил нах, своими экспериментами... 
| Формат времени GMT. Текущее время 10:39. | Страницы (2): [1] 2 » Показаны 28 сообщений на этой странице |
Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.