Ресайз изображений статьи в блоге категории

Ресайз изображения статьи (привязанного через "изображения и ссылки") в блоге.

Рецепт для 2.5, новероятно будет работать и на 3.х, пока не пробовали...

<?php //Вставляем в файл blog_item.php. Не забываем переопределять на уровне своего шаблона
$img = json_decode($this->item->images);
$imgsrc = (isset($img->image_intro))?  $img->image_intro: '';
if ($imgsrc){
	$h = 100; //Новая высота изображения 
	$w = 150; //Новая ширина изображения
	$path_parts = pathinfo($imgsrc);
	$file_thumb = $path_parts['dirname'].'/'.$path_parts['filename'].'_'.$h.'_'.$w.'.'.$path_parts['extension'];
	if (!file_exists($file_thumb) || filemtime($file_thumb) <= filemtime($imgsrc)){
		$image = new JImage($imgsrc);
		$new_image = $image->resize($w, $h, true, JImage::SCALE_INSIDE );
		$properties = $image->getImageFileProperties($imgsrc);
		switch ($properties->mime){
			case 'image/jpeg':
			$type = IMAGETYPE_JPEG; break;
			case 'image/png':
			$type = IMAGETYPE_PNG;	break;
			case 'image/gif':
			$type = IMAGETYPE_GIF;	break;
		}
		$new_image->toFile($file_thumb, $type);
	}
$attr = getimagesize(JURI::base().$file_thumb);
$imgfloat = (empty($images->float_intro))? $params->get('float_intro') : $images->float_intro;
$imgfloat = htmlspecialchars($imgfloat);
$html = '<div class="img-blog-'.$imgfloat.'">';
$html .= '<a href="'.JRoute::_(ContentHelperRoute::getArticleRoute($this->item->slug, $this->item->catid)).'" title="'.$this->item->tile.'">';
$html .= JHTML::_('image', $file_thumb, htmlspecialchars($img->image_intro_alt), $attr[3]);
$html .=  '</a></div>';
echo $html;
}
?>

 

Ссылки и благодарности

Спасибо Fedor Vlasenko с JoomlaForum, там также пример для полного изображения материала. 

Ещё статьи по теме: