CAB |
Отправлено: 30 октября 2011 — 21:14
|
Super Member
Покинул форум
Сообщений всего: 629
Дата рег-ции: Февр. 2011
Откуда: Москва
Репутация: 30
|
В данной доработке мне очень не нравится то, что все картинки без разбора превращаются в превью!
Я долго ломал голову, знаний маловато и интернет не смог мне дать ответы на мои вопросы. Но всё-таки я набросал свою версию доработки.
В файле include\lib.php заменяем функцию replace_img_link на следующий код:CODE:
function replace_img_link($imlink) {
global $fm;
$headersget = @get_headers ($imlink, 1);
if (preg_match("|200|", $headersget[0])) {
if (ini_get('allow_url_fopen') && ($size = @getimagesize($imlink)) !== FALSE){
if ($size[0] <= 288) {
$imgtag = "<i> <img src=\"$imlink\"> </i>";
} else {
if ($fm->exbb['redirect'] && !stristr($imlink, 'http://www.'.$fm->exbb_domain) && !stristr($imlink, 'http://'.$fm->exbb_domain))
$_imlink = 'rd2.php?'.$imlink;
else $_imlink = $imlink;
$imgtag = $fm->LANG['ImgLinked']."<a href=\"$_imlink\" rel=\"clearbox\" title=\"".$fm->LANG['ToIncrease']."\" target=\"_blank\"><i> <img src=\"printfile.php?action=link&img=$imlink\" border=\"0\" style=\"border: 1px outset #DCDCDC;\"> </i></a>";
}
} else {
$imgtag = "<i> <img src=\"$imlink\"> </i>";
}
} else {
$imgtag = "<i> $imlink </i>";
}
return $imgtag;
}
Хотелось бы, что бы данная доработка позволила избавиться от проблемы этого мода, а именно от проблемы долгого открытия тем с обилием внешних (вставленных через бб-код img) изображений, если сервер изображений тормозит. Но в этом можно убедиться только после реального тестирования.
В настоящее время реально протестирован только вывод URL картинки, если сервер изображений не работает, картинки нет на нём, сервер "левый" - не сообщает о наличии картинки.
Очень бы хотелось увидеть комментарии, а особенно после тестирования данной доработки. |
|
|
CAB |
Отправлено: 31 октября 2011 — 19:02
|
Super Member
Покинул форум
Сообщений всего: 629
Дата рег-ции: Февр. 2011
Откуда: Москва
Репутация: 30
|
BON, это естественно. Никакие ухищрения не смогут снять нагрузку от преобразования 100 фоток. Даже без этого мода такая страница будет отрываться очень долго, да ещё в некоторых браузерах и скакать будет туда-сюда. Тут только ограничение в правилах для пользователей может помочь. Я же рассчитываю на обычную ситуацию, когда фоток не много, а замедление открытия страницы вызвано тормознутыми хостингами изображений, коих сейчас предостаточно. В частности меня сподвигли на это всего 3 картинки, выложенные на saveimg.ru
И так, я собрал рабочий код доработки мода превью-копий. Подходит для тех, у кого установлен мод редиректа.
В файле include\lib.php заменяем функцию replace_img_link на следующий код:CODE:
function replace_img_link($imlink) {
global $fm;
/*
Доработка мода превью-копий прикреплённых изображений
Автор CAB http://exbb.su/
*/
if (ini_get('allow_url_fopen')) { // проверяем разрешены ли удалённые соединения
$headersget = @get_headers ($imlink, 1); // запрос заголовков файла
if (preg_match("|200|", $headersget[0])) { // выделяем из ответа файл есть
if (($size = @getimagesize($imlink)) !== FALSE) { // запрос параметров изображения
if ($size[0] <= 512) { // сверяем ширину картинки с установленным числом
$imgtag = "<i> <img src=\"$imlink\" /></i>"; // выводим картинку без превью
} else {
if ($fm->exbb['redirect'] && !stristr($imlink, 'http://www.'.$fm->exbb_domain) && !stristr($imlink, 'http://'.$fm->exbb_domain)) // проверяем свой домен
$_imlink = 'rd2.php?'.$imlink; // редиректим чужой домен
else $_imlink = $imlink; // свой домен выводим без редиректа
$imgtag = $fm->LANG['ImgLinked']."<a href=\"$_imlink\" rel=\"clearbox\" title=\"".$fm->LANG['ToIncrease']."\" target=\"_blank\"><img src=\"printfile.php?action=link&img=$imlink\" border=\"0\" style=\"border: 1px outset #DCDCDC;\" /></a>"; // формируем код превью
}
} else {
$imgtag = "<i> <span class=\"admin\">• </span>$imlink</i>"; // файл не изображение
}
} else {
$imgtag = "<i> <span class=\"admin\">• </span>$imlink</i>"; // нет ответа что файл есть
}
} else {
$imgtag = "<i> <img src=\"$imlink\" /></i>"; // удалённые соединения не разрешены
}
return $imgtag;
}
Украшательства и ширину картинки можно менять под себя. Меня интересует как данный вариант работает с тормозными серверами изображений. |
|
|
|