 |
 |
Форум сетевых администраторов » Веб Форумы » VBulletin 3.x.x » Хаки от Netadmin или "Сделай сам" » Контроль размера картинок, вставленных тегом Img
| Автор |
| Тема |
 |
|
 |
|
|
|
Участник+
|
kerk
неза что..
там ошибка..
проверка неправильно
уже... |
[сооб. #71950]
29-10-2004 17:29 |
|
Участник+


Зарегистрирован: Jul 2003
Место проживания:
Публикаций: 125
Статус:  |
kerk
неза что..
там ошибка..
проверка неправильно
уже разобрался.. но времени нет исправлю в понедельник..
__________________
Новая жизнь HMM3(Герои 3.5 WoG)http://hmm3.fclan.ru
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
29-10-2004 17:29 |
|
|
Участник+
|
НЕЛП!!!
час постучался об стенку... |
[сооб. #72033]
01-11-2004 16:37 |
|
Участник+


Зарегистрирован: Jul 2003
Место проживания:
Публикаций: 125
Статус:  |
НЕЛП!!!
час постучался об стенку и выяснил, что ни фига не получается
мне пришло в голову 3 варианта проверки и все не работают
проверка вида
PHP:
$fp = @fopen($link,"r");
if (!$fp)
не работает .. ругается с 500 ошибкой
пробуем через getimagesize
PHP:
if ($image_data = getimagesize($link))
та же 500
пробовал fsockopen, тут проблемка.. выставить маленький таймаут и оно грузиться не буде.. выставить большой .. долго будет ждать если урл с ошибкой
__________________
Новая жизнь HMM3(Герои 3.5 WoG)http://hmm3.fclan.ru
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
01-11-2004 16:37 |
|
|
Участник+
|
fStrange
PHP и ошибка 500?! Ð_азве такое возможно?... |
[сооб. #72038]
01-11-2004 19:01 |
|
|
Участник+
|
phprus
Глюк это когда один раз..
но когда... |
[сооб. #72046]
02-11-2004 07:20 |
|
Участник+


Зарегистрирован: Jul 2003
Место проживания:
Публикаций: 125
Статус:  |
phprus
Глюк это когда один раз..
но когда регулярно повторяется это уже баг 
могу и скрин бросить...
я же говорю вчера час бился... сначала я думал, что я полный идиот.. как работать с функцией fopen и getimagesize не знаю
__________________
Новая жизнь HMM3(Герои 3.5 WoG)http://hmm3.fclan.ru
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
02-11-2004 07:20 |
|
|
Администратор
|
Вот исправленная версия.
[php]
function handle_bbcode_img_match($link)... |
[сооб. #72096]
03-11-2004 08:36 |
|
Администратор


Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус:  |
Вот исправленная версия.
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; // указываем максимально допустимую высоту
$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="" />';
}
__________________
Всегда есть решение.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
03-11-2004 08:36 |
|
|
k0t
|
polo
я тут нашел более "утяжеленный" вариант,... |
[сооб. #72117]
03-11-2004 20:28 |
|
k0t


Зарегистрирован: Oct 2004
Место проживания:
Публикаций: 148
Статус:  |
polo
я тут нашел более "утяжеленный" вариант, с такими настройками, как и хотел,
размер указывается только по ширине, в сообщении появляется уменьшенное кликабельное изображение с надписью внизу: "кликнуть здесь, для просмотра оригинала"
========
при вставке в теги [img] ссылку с неверным расширением или без расширения, в посте получаем маленькое окошко с текстом "Link is Broken" (настраивается, можно например предупредить узера, что бы указывал правильный линк)
в случае отсутствия картинки на сервере, получаем окошко "not found" (так же настраивается, можно написать "404 не найдено" )
в случае обращения к серверу и он не отвечает, получаем: "Server is Down"
========
поставил на локалке, все работает пока...
но уж больно много исправлений и дополнений нужно делать возможно ли облегчить?
хотя автор этого хака не убирает оригинальные строки кода, а только делает их закоментированными, ниже подставляя свой код
========
что интересно, можно указать совсем маленький размер картинки (почти тоже самое, что реализовано в vB 3.0.3 с кликабельными картинками в аттачах) и она так и будет отображаться, но вот размер в KB такой же и останется...
========
если интересно, поковыряй, скажи свое мнение...
хак прикреплю в этом сообщении
Файл: imagesize.txt
Был скачан 23 раз(а).
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
03-11-2004 20:28 |
|
|
Участник
|
| kerk хак действительно довольно сложный... |
[сооб. #75336]
19-03-2005 16:24 |
|
Участник

Зарегистрирован: Sep 2004
Место проживания:
Публикаций: 15
Статус:  |
kerk хак действительно довольно сложный проще в хак polo добавить несколько строк
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 = 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" />';
}
}
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
19-03-2005 16:24 |
|
|
k0t
|
| снес тот, что поставил раньше, потому как все... |
[сооб. #75403]
24-03-2005 03:41 |
|
k0t


Зарегистрирован: Oct 2004
Место проживания:
Публикаций: 148
Статус:  |
снес тот, что поставил раньше, потому как все равно ошибки вылетают, если в теме много картинок, да даже если теги отключены в этом разделе, но узер постит фотку, заключая ее в теги - вылетает ошибка (не долго продержался этот хак)...
Konkere
поставил твой вариант, теперь вообще ничего не показывает
в коде хака есть упоминание о том, что 404-ю гифку нужно пихнуть в дир. images/misc форума, но путем экспериментов удалось выяснить, что показывает этот гиф только если он лежит в корне форума
вот только его и показывает....
сам реальный рисунок существует, но его не показывает, наверное где то ошибка...
самому сложно разобраться в этом, ну никак мне пхп не дается... =))
kerk добавил 24-03-2005 в 04:45:47:
нашел еще одно решение проблеммы, тоже не очень много изменять в коде:
PHP:
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>';
}
}
но при просмотре темы - подтормаживает...
Сообщение было отредактировано kerk 24-03-2005 в 03:51
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
24-03-2005 03:41 |
|
|


Участник
|
| [quote]поставил твой вариант, теперь вообще ничего... |
[сооб. #75407]
24-03-2005 07:59 |
|
Участник

Зарегистрирован: Sep 2004
Место проживания:
Публикаций: 15
Статус:  |
quote: поставил твой вариант, теперь вообще ничего не показывает
в коде хака есть упоминание о том, что 404-ю гифку нужно пихнуть в дир. images/misc форума, но путем экспериментов удалось выяснить, что показывает этот гиф только если он лежит в корне форума
вот только его и показывает....
я забыл вставить в начало функции PHP:
global $stylevar;
а всё остальное работате
можешь посмотртеть вот например: http://vlab.netsys.ru/forum/showpos...91&postcount=14
Konkere добавил 24-03-2005 в 09:09:34:
Вот последний, самый свежий вариант
Фразы
тип GLOBAL
имя: in_new_windows
текст: Open in New Windows
перевод: Открыть в новом окне
имя: pic_located
текст: The Picture is located on other Server
перевод: Картинка расположена на другом сервере
имя: pic_not_found
текст: 404 Picture not found
перевод: 404 Картинка не найдена
нужно в includes/functions_bbcodeparse.php найти функцию function handle_bbcode_img_match и заменить ее на:
PHP:
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;
}
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
24-03-2005 07:59 |
|
|
k0t
|
Konkere
все равно не показывает...
сейчас... |
[сооб. #75423]
24-03-2005 23:06 |
|
k0t


Зарегистрирован: Oct 2004
Место проживания:
Публикаций: 148
Статус:  |
Konkere
все равно не показывает...
сейчас 404 гиф лежит там, где нужно и отображает от-туда и только его
положил 2 одинаковые картинки в разные места и все равно - ничего...
версия форума 3.0.7
Файл: not.jpg
Был скачан 14 раз(а).
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
24-03-2005 23:06 |
|
|
Участник
|
| чего-то ты не так сделал, http://testf.netsys.ru/forum/showthread.php?t=4... |
[сооб. #75428]
25-03-2005 08:46 |
|
|
k0t
|
Да вроде все правильно...
копи/паст в одном... |
[сооб. #75434]
25-03-2005 12:54 |
|
k0t


Зарегистрирован: Oct 2004
Место проживания:
Публикаций: 148
Статус:  |
Да вроде все правильно...
копи/паст в одном месте - трудно ошибиться... =))
заменяем функцию:
function handle_bbcode_img_match($link)
на код из поста выше
а может еще где чего нужно править?
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
25-03-2005 12:54 |
|
|
Участник
|
да вроде больше ничего не надо
а посмотри... |
[сооб. #75447]
25-03-2005 21:16 |
|
|
|
Формат времени GMT. Текущее время 12:23.
|
Правила форума:
Вы не можете создавать новые темы.
Вы не можете отвечать на существующие темы.
Вы не можете прикреплять файлы.
Вы не можете редактировать свои сообщения. |
HTML теги выкл.
Спец. код вкл.
Смайлики вкл.
[IMG] тег выкл.
|
|
|
|
| |
Page generated in 1.94517803 seconds (99.67% PHP - 0.33% MySQL) with 27 queries.
|
 |