![]() |
Страницы (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)
kerk
неза что..
там ошибка..
проверка неправильно
уже разобрался.. но времени нет исправлю в понедельник..
__________________
Новая жизнь HMM3(Герои 3.5 WoG)http://hmm3.fclan.ru
НЕЛП!!!
час постучался об стенку и выяснил, что ни фига не получается
мне пришло в голову 3 варианта проверки и все не работают
проверка вида
$fp = @fopen($link,"r");
if (!$fp)
if ($image_data = getimagesize($link))
__________________
Новая жизнь HMM3(Герои 3.5 WoG)http://hmm3.fclan.ru
fStrange
PHP и ошибка 500?! Ð_азве такое возможно? Ð_то скорее всего глюки сервера Apache.
phprus
Глюк это когда один раз..
но когда регулярно повторяется это уже баг 
могу и скрин бросить...
я же говорю вчера час бился... сначала я думал, что я полный идиот.. как работать с функцией fopen и getimagesize не знаю
__________________
Новая жизнь HMM3(Герои 3.5 WoG)http://hmm3.fclan.ru
Вот исправленная версия.
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);
if (!empty($image_data))
{
$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
я тут нашел более "утяжеленный" вариант, с такими настройками, как и хотел,
размер указывается только по ширине, в сообщении появляется уменьшенное кликабельное изображение с надписью внизу: "кликнуть здесь, для просмотра оригинала"
========
при вставке в теги [img] ссылку с неверным расширением или без расширения, в посте получаем маленькое окошко с текстом "Link is Broken" (настраивается, можно например предупредить узера, что бы указывал правильный линк)
в случае отсутствия картинки на сервере, получаем окошко "not found" (так же настраивается, можно написать "404 не найдено" )
в случае обращения к серверу и он не отвечает, получаем: "Server is Down"
========
поставил на локалке, все работает пока...
но уж больно много исправлений и дополнений нужно делать
возможно ли облегчить?
хотя автор этого хака не убирает оригинальные строки кода, а только делает их закоментированными, ниже подставляя свой код
========
что интересно, можно указать совсем маленький размер картинки (почти тоже самое, что реализовано в vB 3.0.3 с кликабельными картинками в аттачах) и она так и будет отображаться, но вот размер в KB такой же и останется...
========
если интересно, поковыряй, скажи свое мнение...
хак прикреплю в этом сообщении
kerk хак действительно довольно сложный проще в хак polo добавить несколько строк
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 = 400; // указываем максимально допустимую ширину
$max_height = 200; // указываем максимально допустимую высоту
$space = 5; // указываем максимально допустимое свободное пространство вокруг картинки
$origin = '';
$image_data = @getimagesize($link);
if (!empty($image_data))
{
$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;
}
$origin = '<br /><div class="smallfont"><a href="' . $link . '" target="_blank">Открыть в новом окне</a></div>';
}
$image_size = " width=\"$width\" height=\"$height\" hspace=\"$space\" vspace=\"$space\"";
return '<a href="' . $link . '" target="_blank"><img src="' . $link . '" border="0"' . $image_size . ' alt="Картинка расположена на другом сервере" /></a>' . $origin;
}
else
{
return '<img src="' . $stylevar['imgdir_misc'] . '/404.gif" alt="404 Object not found" width="104" height="81" border="0" />';
}
}
снес тот, что поставил раньше, потому как все равно ошибки вылетают, если в теме много картинок, да даже если теги отключены в этом разделе, но узер постит фотку, заключая ее в теги - вылетает ошибка (не долго продержался этот хак)...
Konkere
поставил твой вариант, теперь вообще ничего не показывает
в коде хака есть упоминание о том, что 404-ю гифку нужно пихнуть в дир. images/misc форума, но путем экспериментов удалось выяснить, что показывает этот гиф только если он лежит в корне форума
вот только его и показывает....
сам реальный рисунок существует, но его не показывает, наверное где то ошибка...
самому сложно разобраться в этом, ну никак мне пхп не дается... =))
kerk добавил 24-03-2005 в 04:45:47:
нашел еще одно решение проблеммы, тоже не очень много изменять в коде:
function handle_bbcode_img_match($link)
{
global $vboptions;
$link = strip_smilies(str_replace('\"', '"', $link));
// remove double spaces -- fixes issues with wordwrap
$link = str_replace(' ', '', $link);
if ($vboptions['legacypostbit'])
{
return '<a href=' . $link . ' target="_blank"><img src="' . $link . '" onload="if(screen.width-600 < this.width) {this.width=screen.width-600;this.alt='Full View';}" onmouseover="if(this.alt) this.style.cursor='hand';" border="0"></a>';
}
else
{
return '<a href=' . $link . ' target="_blank"><img src="' . $link . '" onload="if(screen.width-80 < this.width) {this.width=screen.width-80;this.alt='Full View';}" onmouseover="if(this.alt) this.style.cursor='hand';" border="0"></a>';
}
}
quote:
поставил твой вариант, теперь вообще ничего не показывает
в коде хака есть упоминание о том, что 404-ю гифку нужно пихнуть в дир. images/misc форума, но путем экспериментов удалось выяснить, что показывает этот гиф только если он лежит в корне форума
вот только его и показывает....
global $stylevar;
function handle_bbcode_img_match($link)
{
global $stylevar, $vbphrase;
$link = strip_smilies(str_replace('\"', '"', $link));
// remove double spaces -- fixes issues with wordwrap
$link = str_replace(' ', '', $link);
$max_width = 400; // указываем максимально допустимую ширину
$max_height = 200; // указываем максимально допустимую высоту
$space = 5; // указываем максимально допустимое свободное пространство вокруг картинки
$image_data = @getimagesize($link);
if (!empty($image_data))
{
$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;
}
$origin = '<br /><div class="smallfont"><a href="' . $link . '" target="_blank">' . $vbphrase['in_new_windows'] . '</a></div>';
}
$image_link = '<a href="' . $link . '" target="_blank"><img src="' . $link . '" border="0" width="' . $width . '" height="' . $height . '" hspace="' . $space . '" vspace="' . $space . '" alt="' . $vbphrase['pic_located'] . '" /></a>' . $origin;
}
else
{
$image_link = '<img src="' . $stylevar['imgdir_misc'] . '/404.gif" alt="' . $vbphrase['pic_not_found'] . '" width="104" height="81" border="0" />';
}
return $image_link;
}
Konkere
все равно не показывает...
сейчас 404 гиф лежит там, где нужно и отображает от-туда и только его
положил 2 одинаковые картинки в разные места и все равно - ничего...
версия форума 3.0.7
чего-то ты не так сделал, http://testf.netsys.ru/forum/showthread.php?t=4 у меня то-же 3.0.7 и всё работате
Да вроде все правильно...
копи/паст в одном месте - трудно ошибиться... =))
заменяем функцию:
function handle_bbcode_img_match($link)
на код из поста выше
а может еще где чего нужно править?
да вроде больше ничего не надо
а посмотри как выглядит адрес до картинок в теле страницы
| Формат времени GMT. Текущее время 11:33. | Страницы (2): « 1 [2] Показаны 28 сообщений на этой странице |
Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.