phpbb3: настройка превью вложений по длинной стороне или по ширине

Полезные скрипты
Ответить
Аватара пользователя
mihas
Администратор
Сообщения: 1368
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

phpbb3: настройка превью вложений по длинной стороне или по ширине

Сообщение mihas »

Обычный форум phpbb3 предлагает создавать превью с максимальным указанным размером по длинной стороне картинки.
Мне по дизайну захотелось сделать так, чтобы ширина превьюшки задавалась именно по ширине картинки, а не по ее длинной стороне, чтобы все картинки были одинаковой ширины, независимо от их высоты.
Делается просто. Открываем файл functions_posting.php из каталога includes, ищем:

Код: Выделить всё

function get_img_size_format($width, $height)
{
	global $config;

	// Maximum Width the Image can take
	$max_width = ($config['img_max_thumb_width']) ? $config['img_max_thumb_width'] : 400;

	if ($width > $height)
	{
		return array(
			round($width * ($max_width / $width)),
			round($height * ($max_width / $width))
		);
	}
	else
	{
		return array(
			round($width * ($max_width / $height)),
			round($height * ($max_width / $height))
		);
	}
}
И в обеих частях условия вписываем первое решение условия чтобы можно было если что откатиться назад. Я вписал так чтобы потом не запутаться если вдруг что:

Код: Выделить всё

	else
	{
		return array(
			//round($width * ($max_width / $height)),
			//round($height * ($max_width / $height))
			//cielab change 2 strings
			round($width * ($max_width / $width)),
			round($height * ($max_width / $width))
		);
	}
Вот примеры работы такой функции в форуме для превью с установленной шириной 320px.
настройка превью вложений
настройка превью вложений
• 69.53 КБ • 3992 просмотра
Иллюстрация работы новой functions_posting.php для вертикальной картинки
Иллюстрация работы новой functions_posting.php для вертикальной картинки
• 215.35 КБ • 3992 просмотра
Как нагенерить новых превью даже для очень старых форумов я писал в этой теме.
В 2016 году я прикинул по гугл-аналитике для сайта, что оптимальная ширина превью для большинства смартфонов (с учетом умножения на 2) равна 256 px. Я так тогда все превью и нагенерил. В конце 2020 года я снова поинтересовался у гугл-аналитики, с каких по ширине экрана мобильных девайсов заходит большинство, и исходя из этого посчитал, что теперь актуальнее превью шириной 320 px. Учитывая что мобильный стиль форума хорошо растягивает на смартфонах ретина превью ровно вдвое и делает поля вокруг него. На первом месте или для 42 процентов всех смартфонов - это ширина экрана 720 px для этого сайта. На втором месте или 16 процентов - ширина 750 px (7 айфон), шестое место или 7 процентов - 828 px (11 айфон). Почему бы не сделать максимально красиво превьюшки для большинства, подумал я и перегенерил в FastStone весь архив графических вложений форума в превью 320 px по ширине. Оно и на экране компьютера смотрится неплохо, не хуже чем ширина 256 px.

Как создать превью повышенного разрешения в форуме phpBB для современных экранов с мелким пикселем рассказано по ссылке.
Ответить

Вернуться в «PHP»