Возникла собственно проблема после конвертации - отстутствие уменьшенных изображений.
Судя по коду ПХПбб3 он формирует уменьшенное изображение лишь по время его добавления/сохранения.
Возникло желание уговорить phpBB формировать уменьшенное изображение в случае его отсутствия на лету.
После этой модификации когда phpBB пытается показать уменьшенную картинку и ее нету - происходит попытка ее создать заново.
Как вариант использования этого мода - после изменения в админке "Сообщения - настройки вложений - Максимальная ширина миниатюр" достаточно просто удалить файлы thumb_* из папки files. Они будут созданы с новыми параметрами по мере просмотра их пользователями форума.
Код: Выделить всё
#-----[ OPEN ]-----
download/file.php
#-----[ FIND ]-----
if (!@file_exists($filename))
{
trigger_error($user->lang['ERROR_NO_ATTACHMENT'] . '<br /><br />' . sprintf($user->lang['FILE_NOT_FOUND_404'], $filename));
#-----[ BEFORE, ADD ]-----
if (!@file_exists($filename) && substr($attachment[physical_filename],0,6) == 'thumb_')
{
$image_file = substr($attachment[physical_filename],6);
include_once("../includes/functions_posting.php");
if (! create_thumbnail($phpbb_root_path . $upload_dir . '/' . $image_file, $filename, ''))
{ // disable thumbnail
$db->sql_query('UPDATE ' . ATTACHMENTS_TABLE . ' SET thumbnail = 0 WHERE attach_id = ' . $attachment['attach_id']);
};
};
#-----[ SAVE/CLOSE ALL FILES ]-----
1. убрать старые миниатюры files/thumb_*
2. выставить флаг использования миниатюр для всех графических файлов:
Код: Выделить всё
UPDATE phpbb_attachments SET thumbnail = 1 WHERE extension IN ('jpg','jpeg','gif','png','tiff')
Код: Выделить всё
UPDATE phpbb_attachments SET thumbnail = 1 WHERE mimetype LIKE 'image/%'
Добавлено спустя 7 минут 18 секунд:
Также я обратил внимание на откровенно плохое качество масштабирования миниатюр (я использую imagick). Как решение предлагаю следующее:
Код: Выделить всё
#-----[ OPEN ]-----
includes/functions_posting.php
#-----[ FIND ]-----
@passthru(escapeshellcmd($config['img_imagick']) . 'convert' . ((defined('PHP_OS') && preg_match('#^win#i', PHP_OS)) ? '.exe' : '') . ' -quality 85 -antialias -sample ' . $new_width . 'x' . $new_height . ' "' . str_replace('\\', '/', $source) . '" +profile "*" "' . str_replace('\\', '/', $destination) . '"');
#-----[ REPLACE ]-----
@passthru(escapeshellcmd($config['img_imagick']) . 'convert' . ((defined('PHP_OS') && preg_match('#^win#i', PHP_OS)) ? '.exe' : '') . ' -quality 85 -antialias -resize ' . $new_width . 'x' . $new_height . ' "' . str_replace('\\', '/', $source) . '" +profile "*" "' . str_replace('\\', '/', $destination) . '"');
#-----[ SAVE/CLOSE ALL FILES ]-----