Как не создавать миниатюры для маленьких изображений
Материал из Umicms
Версия от 14:10, 28 июля 2010; Waclaw (обсуждение | вклад)
Создадим свой собственный custom-ный макрос (подробнее о создании макроса http://wiki.umisoft.ru/Вызов_макроса_через_custom.php)
Код будет следующий:
public function my_thumbnail($path, $width, $hight, $template, $max, $min) {
if ($width>$hight){
if($max>$width) {
$my_thumbnail = "<img src=".$path." width=".$width." height=".$hight."";
}
else{
$my_thumbnail = "%system makeThumbnail('.".$path."', '".$max."', 'auto', '".$template."')%";
}
}
else {
if($max>$hight){
$my_thumbnail = "<img src=".$path." width=".$width." height=".$hight."";
}
else
{
$my_thumbnail = "%system makeThumbnail(.".$path.", auto, ".$max.", ".$template.")%";
}
}
return $my_thumbnail;
}
Для использования его в tpl-шаблонах сделаем следующее:
В вызове шаблона в папке tpls/data/ указываем:
$FORMS['img_file'] = <<<END
%custom my_thumbnail(%src%, %width%, %height%, имя_шаблона_для_вывода, 100, 100)%
END;
100 - это значения высоты и ширины, которые нас интересуют для вывода (относительно которых будут проверяться размеры изображения)
Шаблон для вывода может быть таким:
<?php
$FORMS = Array();
$FORMS['image'] = <<<END
<img src="%src%" width="%width%" height="%height%"
END;
?>
То есть он подставит только начало кода для изображения, а окончание "некторый код />" будет указано в шаблоне, где будет выводится изображение.